├── src ├── main │ ├── resources │ │ ├── static │ │ │ ├── blog │ │ │ │ ├── plugins │ │ │ │ │ ├── README.md │ │ │ │ │ ├── highlight │ │ │ │ │ │ └── styles │ │ │ │ │ │ │ ├── pojoaque.jpg │ │ │ │ │ │ │ ├── school-book.png │ │ │ │ │ │ │ ├── brown-papersq.png │ │ │ │ │ │ │ ├── darkula.css │ │ │ │ │ │ │ ├── ascetic.css │ │ │ │ │ │ │ ├── mono-blue.css │ │ │ │ │ │ │ ├── androidstudio.css │ │ │ │ │ │ │ ├── dark.css │ │ │ │ │ │ │ ├── codepen-embed.css │ │ │ │ │ │ │ ├── brown-paper.css │ │ │ │ │ │ │ ├── vs.css │ │ │ │ │ │ │ ├── far.css │ │ │ │ │ │ │ ├── arta.css │ │ │ │ │ │ │ ├── ir-black.css │ │ │ │ │ │ │ ├── magula.css │ │ │ │ │ │ │ ├── color-brewer.css │ │ │ │ │ │ │ ├── github-gist.css │ │ │ │ │ │ │ ├── monokai.css │ │ │ │ │ │ │ ├── darcula.css │ │ │ │ │ │ │ ├── gml.css │ │ │ │ │ │ │ ├── tomorrow.css │ │ │ │ │ │ │ ├── zenburn.css │ │ │ │ │ │ │ ├── school-book.css │ │ │ │ │ │ │ ├── ocean.css │ │ │ │ │ │ │ ├── paraiso-dark.css │ │ │ │ │ │ │ ├── paraiso-light.css │ │ │ │ │ │ │ ├── dracula.css │ │ │ │ │ │ │ ├── qtcreator_dark.css │ │ │ │ │ │ │ └── qtcreator_light.css │ │ │ │ │ ├── search │ │ │ │ │ │ └── search.js │ │ │ │ │ ├── comment │ │ │ │ │ │ └── valid.js │ │ │ │ │ └── dictionary │ │ │ │ │ │ └── dictionary.css │ │ │ │ ├── default │ │ │ │ │ ├── img │ │ │ │ │ │ ├── bg.jpg │ │ │ │ │ │ ├── logo.png │ │ │ │ │ │ ├── logo2.png │ │ │ │ │ │ ├── avatar.png │ │ │ │ │ │ └── rocket.png │ │ │ │ │ ├── css │ │ │ │ │ │ └── font-awesome │ │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ └── js │ │ │ │ │ │ └── search.js │ │ │ │ └── amaze │ │ │ │ │ └── images │ │ │ │ │ ├── code-bg.png │ │ │ │ │ ├── header.jpg │ │ │ │ │ └── rocket.png │ │ │ └── admin │ │ │ │ ├── dist │ │ │ │ ├── js │ │ │ │ │ ├── plugins │ │ │ │ │ │ ├── jquery │ │ │ │ │ │ │ ├── core.js │ │ │ │ │ │ │ ├── jquery.js │ │ │ │ │ │ │ ├── jquery.min.js │ │ │ │ │ │ │ ├── jquery.min.map │ │ │ │ │ │ │ ├── jquery.slim.js │ │ │ │ │ │ │ ├── jquery.slim.min.js │ │ │ │ │ │ │ └── jquery.slim.min.map │ │ │ │ │ │ ├── popper │ │ │ │ │ │ │ ├── esm │ │ │ │ │ │ │ │ ├── popper.js │ │ │ │ │ │ │ │ ├── popper.js.map │ │ │ │ │ │ │ │ ├── popper.min.js │ │ │ │ │ │ │ │ ├── popper-utils.js │ │ │ │ │ │ │ │ ├── popper-utils.js.map │ │ │ │ │ │ │ │ ├── popper-utils.min.js │ │ │ │ │ │ │ │ ├── popper.min.js.map │ │ │ │ │ │ │ │ └── popper-utils.min.js.map │ │ │ │ │ │ │ ├── popper.js │ │ │ │ │ │ │ ├── popper.js.map │ │ │ │ │ │ │ ├── popper.min.js │ │ │ │ │ │ │ ├── umd │ │ │ │ │ │ │ │ ├── popper.js │ │ │ │ │ │ │ │ ├── popper.js.map │ │ │ │ │ │ │ │ ├── popper.min.js │ │ │ │ │ │ │ │ ├── popper-utils.js │ │ │ │ │ │ │ │ ├── popper-utils.js.map │ │ │ │ │ │ │ │ ├── popper-utils.min.js │ │ │ │ │ │ │ │ ├── popper.min.js.map │ │ │ │ │ │ │ │ └── popper-utils.min.js.map │ │ │ │ │ │ │ ├── popper-utils.js │ │ │ │ │ │ │ ├── popper.min.js.map │ │ │ │ │ │ │ ├── popper-utils.js.map │ │ │ │ │ │ │ ├── popper-utils.min.js │ │ │ │ │ │ │ └── popper-utils.min.js.map │ │ │ │ │ │ ├── bootstrap │ │ │ │ │ │ │ ├── js │ │ │ │ │ │ │ │ ├── bootstrap.js │ │ │ │ │ │ │ │ ├── bootstrap.js.map │ │ │ │ │ │ │ │ ├── bootstrap.min.js │ │ │ │ │ │ │ │ ├── bootstrap.bundle.js │ │ │ │ │ │ │ │ ├── bootstrap.min.js.map │ │ │ │ │ │ │ │ ├── bootstrap.bundle.js.map │ │ │ │ │ │ │ │ ├── bootstrap.bundle.min.js │ │ │ │ │ │ │ │ └── bootstrap.bundle.min.js.map │ │ │ │ │ │ │ └── css │ │ │ │ │ │ │ │ ├── bootstrap.css │ │ │ │ │ │ │ │ ├── bootstrap-grid.css │ │ │ │ │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ │ │ │ │ ├── bootstrap.css.map │ │ │ │ │ │ │ │ ├── bootstrap.min.css │ │ │ │ │ │ │ │ ├── bootstrap.min.css.map │ │ │ │ │ │ │ │ ├── bootstrap-grid.css.map │ │ │ │ │ │ │ │ ├── bootstrap-grid.min.css │ │ │ │ │ │ │ │ ├── bootstrap-grid.min.css.map │ │ │ │ │ │ │ │ ├── bootstrap-reboot.css.map │ │ │ │ │ │ │ │ ├── bootstrap-reboot.min.css │ │ │ │ │ │ │ │ └── bootstrap-reboot.min.css.map │ │ │ │ │ │ ├── font-awesome │ │ │ │ │ │ │ ├── css │ │ │ │ │ │ │ │ ├── font-awesome.css │ │ │ │ │ │ │ │ ├── font-awesome.css.map │ │ │ │ │ │ │ │ └── font-awesome.min.css │ │ │ │ │ │ │ └── fonts │ │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ │ ├── fontawesome-webfont.svg │ │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ │ └── chartjs2 │ │ │ │ │ │ │ └── docs │ │ │ │ │ │ │ ├── gitbook │ │ │ │ │ │ │ ├── images │ │ │ │ │ │ │ │ ├── favicon.ico │ │ │ │ │ │ │ │ └── apple-touch-icon-precomposed-152.png │ │ │ │ │ │ │ ├── fonts │ │ │ │ │ │ │ │ └── fontawesome │ │ │ │ │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ │ │ │ ├── gitbook-plugin-chartjs │ │ │ │ │ │ │ │ └── style.css │ │ │ │ │ │ │ ├── gitbook-plugin-anchorjs │ │ │ │ │ │ │ │ └── anchor-style.js │ │ │ │ │ │ │ └── gitbook-plugin-ga │ │ │ │ │ │ │ │ └── plugin.js │ │ │ │ │ │ │ ├── style.css │ │ │ │ │ │ │ └── general │ │ │ │ │ │ │ └── device-pixel-ratio.md │ │ │ │ │ └── test.js │ │ │ │ ├── img │ │ │ │ │ ├── 13.png │ │ │ │ │ ├── f.jpg │ │ │ │ │ ├── icons.png │ │ │ │ │ ├── logo.jpg │ │ │ │ │ ├── logo.png │ │ │ │ │ ├── logo2.png │ │ │ │ │ ├── logo3.jpg │ │ │ │ │ ├── wxpay.jpg │ │ │ │ │ ├── avatar.png │ │ │ │ │ ├── avatar2.png │ │ │ │ │ ├── avatar3.png │ │ │ │ │ ├── avatar5.png │ │ │ │ │ ├── favicon.png │ │ │ │ │ ├── photo1.png │ │ │ │ │ ├── photo2.png │ │ │ │ │ ├── photo3.jpg │ │ │ │ │ ├── photo4.jpg │ │ │ │ │ ├── rand │ │ │ │ │ │ ├── 1.jpg │ │ │ │ │ │ ├── 10.jpg │ │ │ │ │ │ ├── 11.jpg │ │ │ │ │ │ ├── 12.jpg │ │ │ │ │ │ ├── 13.jpg │ │ │ │ │ │ ├── 14.jpg │ │ │ │ │ │ ├── 15.jpg │ │ │ │ │ │ ├── 16.jpg │ │ │ │ │ │ ├── 17.jpg │ │ │ │ │ │ ├── 18.jpg │ │ │ │ │ │ ├── 19.jpg │ │ │ │ │ │ ├── 2.jpg │ │ │ │ │ │ ├── 20.jpg │ │ │ │ │ │ ├── 21.jpg │ │ │ │ │ │ ├── 22.jpg │ │ │ │ │ │ ├── 23.jpg │ │ │ │ │ │ ├── 24.jpg │ │ │ │ │ │ ├── 25.jpg │ │ │ │ │ │ ├── 26.jpg │ │ │ │ │ │ ├── 27.jpg │ │ │ │ │ │ ├── 28.jpg │ │ │ │ │ │ ├── 29.jpg │ │ │ │ │ │ ├── 3.jpg │ │ │ │ │ │ ├── 30.jpg │ │ │ │ │ │ ├── 31.jpg │ │ │ │ │ │ ├── 32.jpg │ │ │ │ │ │ ├── 33.jpg │ │ │ │ │ │ ├── 34.jpg │ │ │ │ │ │ ├── 35.jpg │ │ │ │ │ │ ├── 36.jpg │ │ │ │ │ │ ├── 37.jpg │ │ │ │ │ │ ├── 38.jpg │ │ │ │ │ │ ├── 39.jpg │ │ │ │ │ │ ├── 4.jpg │ │ │ │ │ │ ├── 40.jpg │ │ │ │ │ │ ├── 5.jpg │ │ │ │ │ │ ├── 6.jpg │ │ │ │ │ │ ├── 7.jpg │ │ │ │ │ │ ├── 8.jpg │ │ │ │ │ │ └── 9.jpg │ │ │ │ │ ├── avatar04.png │ │ │ │ │ ├── boxed-bg.jpg │ │ │ │ │ ├── boxed-bg.png │ │ │ │ │ ├── img-upload.png │ │ │ │ │ ├── login-bg.jpg │ │ │ │ │ ├── zhifubao1.jpg │ │ │ │ │ ├── AdminLTELogo.png │ │ │ │ │ ├── category │ │ │ │ │ │ ├── 00.png │ │ │ │ │ │ ├── 01.png │ │ │ │ │ │ ├── 02.png │ │ │ │ │ │ ├── 03.png │ │ │ │ │ │ ├── 04.png │ │ │ │ │ │ ├── 05.png │ │ │ │ │ │ ├── 06.png │ │ │ │ │ │ ├── 07.png │ │ │ │ │ │ ├── 08.png │ │ │ │ │ │ ├── 09.png │ │ │ │ │ │ ├── 10.png │ │ │ │ │ │ ├── 11.png │ │ │ │ │ │ ├── 12.png │ │ │ │ │ │ ├── 13.png │ │ │ │ │ │ ├── 14.png │ │ │ │ │ │ ├── 15.png │ │ │ │ │ │ ├── 16.png │ │ │ │ │ │ ├── 17.png │ │ │ │ │ │ ├── 18.png │ │ │ │ │ │ └── 19.png │ │ │ │ │ ├── credit │ │ │ │ │ │ ├── visa.png │ │ │ │ │ │ ├── cirrus.png │ │ │ │ │ │ ├── mestro.png │ │ │ │ │ │ ├── paypal.png │ │ │ │ │ │ ├── paypal2.png │ │ │ │ │ │ ├── mastercard.png │ │ │ │ │ │ └── american-express.png │ │ │ │ │ ├── default-150x150.png │ │ │ │ │ ├── user1-128x128.jpg │ │ │ │ │ ├── user2-160x160.jpg │ │ │ │ │ ├── user3-128x128.jpg │ │ │ │ │ ├── user4-128x128.jpg │ │ │ │ │ ├── user5-128x128.jpg │ │ │ │ │ ├── user6-128x128.jpg │ │ │ │ │ ├── user7-128x128.jpg │ │ │ │ │ └── user8-128x128.jpg │ │ │ │ └── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ └── fontawesome-webfont.woff2 │ │ │ │ └── plugins │ │ │ │ ├── editormd │ │ │ │ ├── images │ │ │ │ │ ├── loading.gif │ │ │ │ │ ├── loading@2x.gif │ │ │ │ │ ├── loading@3x.gif │ │ │ │ │ └── logos │ │ │ │ │ │ ├── vi.png │ │ │ │ │ │ ├── editormd-logo-16x16.png │ │ │ │ │ │ ├── editormd-logo-24x24.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 │ │ │ │ │ │ ├── editormd-logo-114x114.png │ │ │ │ │ │ ├── editormd-logo-120x120.png │ │ │ │ │ │ ├── editormd-logo-144x144.png │ │ │ │ │ │ ├── editormd-logo-180x180.png │ │ │ │ │ │ ├── editormd-logo-240x240.png │ │ │ │ │ │ ├── editormd-logo-320x320.png │ │ │ │ │ │ ├── editormd-favicon-16x16.ico │ │ │ │ │ │ ├── editormd-favicon-24x24.ico │ │ │ │ │ │ ├── editormd-favicon-32x32.ico │ │ │ │ │ │ ├── editormd-favicon-48x48.ico │ │ │ │ │ │ └── editormd-favicon-64x64.ico │ │ │ │ ├── examples │ │ │ │ │ ├── images │ │ │ │ │ │ ├── 4.jpg │ │ │ │ │ │ ├── 7.jpg │ │ │ │ │ │ ├── 8.jpg │ │ │ │ │ │ └── editormd-screenshot.png │ │ │ │ │ └── php │ │ │ │ │ │ ├── post.php │ │ │ │ │ │ └── upload_callback.html │ │ │ │ ├── fonts │ │ │ │ │ ├── FontAwesome.otf │ │ │ │ │ ├── editormd-logo.eot │ │ │ │ │ ├── editormd-logo.ttf │ │ │ │ │ ├── editormd-logo.woff │ │ │ │ │ ├── fontawesome-webfont.eot │ │ │ │ │ ├── fontawesome-webfont.ttf │ │ │ │ │ ├── fontawesome-webfont.woff │ │ │ │ │ ├── fontawesome-webfont.woff2 │ │ │ │ │ └── editormd-logo.svg │ │ │ │ ├── lib │ │ │ │ │ └── codemirror │ │ │ │ │ │ ├── theme │ │ │ │ │ │ ├── ambiance-mobile.css │ │ │ │ │ │ ├── neat.css │ │ │ │ │ │ ├── elegant.css │ │ │ │ │ │ ├── neo.css │ │ │ │ │ │ └── eclipse.css │ │ │ │ │ │ ├── addon │ │ │ │ │ │ ├── display │ │ │ │ │ │ │ └── fullscreen.css │ │ │ │ │ │ ├── search │ │ │ │ │ │ │ └── matchesonscrollbar.css │ │ │ │ │ │ ├── fold │ │ │ │ │ │ │ └── foldgutter.css │ │ │ │ │ │ ├── dialog │ │ │ │ │ │ │ └── dialog.css │ │ │ │ │ │ ├── hint │ │ │ │ │ │ │ └── show-hint.css │ │ │ │ │ │ ├── mode │ │ │ │ │ │ │ └── multiplex_test.js │ │ │ │ │ │ ├── lint │ │ │ │ │ │ │ ├── yaml-lint.js │ │ │ │ │ │ │ ├── json-lint.js │ │ │ │ │ │ │ └── css-lint.js │ │ │ │ │ │ └── edit │ │ │ │ │ │ │ └── trailingspace.js │ │ │ │ │ │ ├── mode │ │ │ │ │ │ ├── tiddlywiki │ │ │ │ │ │ │ └── tiddlywiki.css │ │ │ │ │ │ ├── ruby │ │ │ │ │ │ │ └── test.js │ │ │ │ │ │ ├── tiki │ │ │ │ │ │ │ └── tiki.css │ │ │ │ │ │ └── diff │ │ │ │ │ │ │ └── diff.js │ │ │ │ │ │ ├── bower.json │ │ │ │ │ │ ├── README.md │ │ │ │ │ │ ├── package.json │ │ │ │ │ │ └── LICENSE │ │ │ │ ├── docs │ │ │ │ │ ├── fonts │ │ │ │ │ │ ├── OpenSans-Bold-webfont.eot │ │ │ │ │ │ ├── OpenSans-Bold-webfont.woff │ │ │ │ │ │ ├── OpenSans-Italic-webfont.eot │ │ │ │ │ │ ├── OpenSans-Light-webfont.eot │ │ │ │ │ │ ├── OpenSans-Light-webfont.woff │ │ │ │ │ │ ├── OpenSans-Italic-webfont.woff │ │ │ │ │ │ ├── OpenSans-Regular-webfont.eot │ │ │ │ │ │ ├── OpenSans-Regular-webfont.woff │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.eot │ │ │ │ │ │ ├── OpenSans-BoldItalic-webfont.woff │ │ │ │ │ │ ├── OpenSans-LightItalic-webfont.eot │ │ │ │ │ │ └── OpenSans-LightItalic-webfont.woff │ │ │ │ │ ├── scripts │ │ │ │ │ │ ├── linenumber.js │ │ │ │ │ │ └── prettify │ │ │ │ │ │ │ └── lang-css.js │ │ │ │ │ └── index.html │ │ │ │ ├── .gitignore │ │ │ │ ├── scss │ │ │ │ │ ├── lib │ │ │ │ │ │ └── variables.scss │ │ │ │ │ ├── editormd.themes.scss │ │ │ │ │ ├── editormd.grid.scss │ │ │ │ │ └── editormd.tab.scss │ │ │ │ ├── .jshintrc │ │ │ │ ├── BUGS.md │ │ │ │ ├── bower.json │ │ │ │ ├── LICENSE │ │ │ │ └── package.json │ │ │ │ ├── bootstrap │ │ │ │ └── fonts │ │ │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ │ │ ├── glyphicons-halflings-regular.woff │ │ │ │ │ └── glyphicons-halflings-regular.woff2 │ │ │ │ ├── image-picker │ │ │ │ └── image-picker.css │ │ │ │ ├── select2 │ │ │ │ └── i18n │ │ │ │ │ ├── zh-TW.js │ │ │ │ │ ├── az.js │ │ │ │ │ ├── zh-CN.js │ │ │ │ │ ├── fi.js │ │ │ │ │ ├── id.js │ │ │ │ │ ├── hu.js │ │ │ │ │ ├── tr.js │ │ │ │ │ ├── th.js │ │ │ │ │ ├── ko.js │ │ │ │ │ ├── nb.js │ │ │ │ │ ├── vi.js │ │ │ │ │ ├── is.js │ │ │ │ │ ├── de.js │ │ │ │ │ ├── et.js │ │ │ │ │ ├── hr.js │ │ │ │ │ ├── sv.js │ │ │ │ │ ├── bg.js │ │ │ │ │ ├── he.js │ │ │ │ │ ├── gl.js │ │ │ │ │ ├── da.js │ │ │ │ │ ├── fr.js │ │ │ │ │ ├── ro.js │ │ │ │ │ ├── en.js │ │ │ │ │ ├── hi.js │ │ │ │ │ ├── fa.js │ │ │ │ │ ├── mk.js │ │ │ │ │ ├── eu.js │ │ │ │ │ ├── pt-BR.js │ │ │ │ │ ├── lv.js │ │ │ │ │ ├── pt.js │ │ │ │ │ ├── es.js │ │ │ │ │ ├── lt.js │ │ │ │ │ ├── nl.js │ │ │ │ │ ├── ca.js │ │ │ │ │ ├── it.js │ │ │ │ │ ├── sr.js │ │ │ │ │ ├── pl.js │ │ │ │ │ ├── uk.js │ │ │ │ │ ├── ru.js │ │ │ │ │ ├── sk.js │ │ │ │ │ └── cs.js │ │ │ │ └── jqgrid-5.3.0 │ │ │ │ └── ui.jqgrid-bootstrap-ui.css │ │ ├── templates │ │ │ ├── admin │ │ │ │ └── footer.html │ │ │ └── blog │ │ │ │ └── amaze │ │ │ │ ├── index.html │ │ │ │ ├── list.html │ │ │ │ └── footer.html │ │ └── application.yml │ └── java │ │ └── com │ │ └── hbu │ │ └── myblog │ │ ├── entity │ │ ├── BlogTagCount.java │ │ ├── vo │ │ │ ├── SimpleBlogListVO.java │ │ │ ├── BlogDetailVO.java │ │ │ └── BlogListVO.java │ │ ├── BlogConfig.java │ │ ├── BlogTagRelation.java │ │ ├── AdminUser.java │ │ ├── BlogTag.java │ │ ├── BlogCategory.java │ │ ├── Blog.java │ │ └── BlogComment.java │ │ ├── service │ │ ├── ConfigService.java │ │ ├── TagService.java │ │ ├── CategoryService.java │ │ ├── AdminUserService.java │ │ └── CommentService.java │ │ ├── mapper │ │ ├── BlogConfigMapper.java │ │ ├── AdminUserMapper.java │ │ ├── BlogCommentMapper.java │ │ ├── BlogTagMapper.java │ │ ├── BlogTagRelationMapper.java │ │ ├── BlogCategoryMapper.java │ │ └── BlogMapper.java │ │ ├── MyblogApplication.java │ │ ├── util │ │ ├── Result.java │ │ ├── PageQueryUtil.java │ │ ├── MarkDownUtil.java │ │ └── PageResult.java │ │ └── config │ │ ├── MyBlogWebMvcConfigurer.java │ │ └── KaptchaConfig.java └── test │ └── java │ └── com │ └── hbu │ └── myblog │ ├── MyblogApplicationTests.java │ └── util │ └── MD5UtilTest.java ├── .gitignore └── README.md /src/main/resources/static/blog/plugins/README.md: -------------------------------------------------------------------------------- 1 | 公共插件 -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/core.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.min.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.slim.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.slim.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper-utils.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/jquery/jquery.slim.min.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper-utils.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper-utils.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper-utils.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper-utils.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper-utils.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/popper-utils.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper-utils.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper-utils.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper-utils.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-grid.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-reboot.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap.min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap.min.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.bundle.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/css/font-awesome.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/esm/popper-utils.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/popper/umd/popper-utils.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .vscode/ 2 | 3 | *.iml 4 | 5 | .idea/ 6 | 7 | .history/ 8 | 9 | target/ -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-grid.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-grid.min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-grid.min.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-reboot.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-reboot.min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.bundle.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.bundle.min.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/js/bootstrap.bundle.min.js.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/css/font-awesome.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/bootstrap/css/bootstrap-reboot.min.css.map: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/fontawesome-webfont.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/13.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/f.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/icons.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/logo.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/logo.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/logo2.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/logo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/logo3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/wxpay.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/wxpay.jpg -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/img/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/img/bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/avatar.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/avatar2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/avatar2.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/avatar3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/avatar3.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/avatar5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/avatar5.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/favicon.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/photo1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/photo1.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/photo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/photo2.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/photo3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/photo3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/photo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/photo4.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/1.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/10.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/11.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/12.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/12.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/13.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/13.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/14.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/14.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/15.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/15.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/16.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/16.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/17.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/17.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/18.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/18.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/19.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/19.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/2.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/20.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/20.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/21.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/21.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/22.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/23.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/23.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/24.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/24.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/25.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/25.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/26.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/26.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/27.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/27.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/28.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/28.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/29.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/29.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/3.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/30.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/30.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/31.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/31.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/32.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/32.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/33.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/34.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/34.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/35.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/35.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/36.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/36.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/37.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/37.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/38.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/38.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/39.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/39.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/4.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/40.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/40.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/5.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/6.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/7.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/8.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/rand/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/rand/9.jpg -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/img/logo.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/img/logo2.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/avatar04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/avatar04.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/boxed-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/boxed-bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/boxed-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/boxed-bg.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/img-upload.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/img-upload.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/login-bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/login-bg.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/zhifubao1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/zhifubao1.jpg -------------------------------------------------------------------------------- /src/main/resources/static/blog/amaze/images/code-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/amaze/images/code-bg.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/amaze/images/header.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/amaze/images/header.jpg -------------------------------------------------------------------------------- /src/main/resources/static/blog/amaze/images/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/amaze/images/rocket.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/img/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/img/avatar.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/img/rocket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/img/rocket.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/AdminLTELogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/AdminLTELogo.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/00.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/01.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/02.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/03.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/04.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/05.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/06.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/07.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/08.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/09.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/10.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/11.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/12.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/13.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/14.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/15.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/16.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/17.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/18.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/category/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/category/19.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/visa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/visa.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/cirrus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/cirrus.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/mestro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/mestro.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/paypal.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/paypal2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/paypal2.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/default-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/default-150x150.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user1-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user1-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user2-160x160.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user2-160x160.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user3-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user3-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user4-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user4-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user5-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user5-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user6-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user6-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user7-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user7-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/user8-128x128.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/user8-128x128.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/mastercard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/mastercard.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/loading.gif -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/img/credit/american-express.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/img/credit/american-express.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/examples/images/4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/examples/images/4.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/examples/images/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/examples/images/7.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/examples/images/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/examples/images/8.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/loading@2x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/loading@2x.gif -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/loading@3x.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/loading@3x.gif -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/vi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/vi.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/pojoaque.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/plugins/highlight/styles/pojoaque.jpg -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.ttf -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/school-book.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/plugins/highlight/styles/school-book.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.woff -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/brown-papersq.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/plugins/highlight/styles/brown-papersq.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/css/font-awesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/css/font-awesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Bold-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Bold-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-16x16.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-24x24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-24x24.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-32x32.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-48x48.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-57x57.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-64x64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-64x64.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-72x72.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-96x96.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Bold-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Bold-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Italic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Italic-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Light-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Light-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Light-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Light-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-114x114.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-120x120.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-144x144.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-180x180.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-240x240.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-240x240.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-320x320.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-logo-320x320.png -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/blog/default/css/font-awesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/images/favicon.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/bootstrap/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Italic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Italic-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Regular-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Regular-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Regular-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-Regular-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/examples/images/editormd-screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/examples/images/editormd-screenshot.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-16x16.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-16x16.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-24x24.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-24x24.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-32x32.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-32x32.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-48x48.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-48x48.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-64x64.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/images/logos/editormd-favicon-64x64.ico -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-BoldItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-BoldItalic-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-BoldItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-BoldItalic-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-LightItalic-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-LightItalic-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-LightItalic-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/plugins/editormd/docs/fonts/OpenSans-LightItalic-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/darkula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Deprecated due to a typo in the name and left here for compatibility purpose only. 3 | Please use darcula.css instead. 4 | */ 5 | 6 | @import url('darcula.css'); 7 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/FontAwesome.otf -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/gitbook-plugin-chartjs/style.css: -------------------------------------------------------------------------------- 1 | .chartjs-wrapper canvas { 2 | -webkit-user-select: none; 3 | -moz-user-select: none; 4 | -ms-user-select: none; 5 | user-select: none; 6 | } 7 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/.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/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.eot -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/fonts/fontawesome/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/images/apple-touch-icon-precomposed-152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ms900/myblog/HEAD/src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/images/apple-touch-icon-precomposed-152.png -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/gitbook-plugin-anchorjs/anchor-style.js: -------------------------------------------------------------------------------- 1 | gitbook.events.bind('start', function(e, config) { 2 | anchors.options = config.anchorjs || {}; 3 | }); 4 | 5 | gitbook.events.bind('page.change', function() { 6 | anchors.add('h1,h2,h3,h4,h5'); 7 | }); 8 | -------------------------------------------------------------------------------- /src/test/java/com/hbu/myblog/MyblogApplicationTests.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog; 2 | 3 | import org.junit.jupiter.api.Test; 4 | import org.springframework.boot.test.context.SpringBootTest; 5 | 6 | @SpringBootTest 7 | class MyblogApplicationTests { 8 | 9 | @Test 10 | void contextLoads() { 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/entity/BlogTagCount.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author vigilr 7 | * @since 2021/02/24 8 | */ 9 | @Data 10 | public class BlogTagCount { 11 | private Integer tagId; 12 | private String tagName; 13 | private Integer tagCount; 14 | } 15 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/vo/SimpleBlogListVO.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * @author vigilr 9 | * @since 2021/02/24 10 | */ 11 | @Data 12 | public class SimpleBlogListVO implements Serializable { 13 | private Long blogId; 14 | private String blogTitle; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/dist/js/plugins/chartjs2/docs/style.css: -------------------------------------------------------------------------------- 1 | a.anchorjs-link { 2 | color: rgba(65, 131, 196, 0.1); 3 | font-weight: 400; 4 | text-decoration: none; 5 | transition: color 100ms ease-out; 6 | z-index: 999; 7 | } 8 | 9 | a.anchorjs-link:hover { 10 | color: rgba(65, 131, 196, 1); 11 | } 12 | 13 | sup { 14 | font-size: 0.75em !important; 15 | } 16 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/entity/BlogConfig.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * @author vigilr 9 | * @since 2021/02/24 10 | */ 11 | @Data 12 | public class BlogConfig { 13 | private String configName; 14 | private String configValue; 15 | private Date createTime; 16 | private Date updateTime; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/BlogTagRelation.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.Date; 6 | 7 | /** 8 | * @author vigilr 9 | * @since 2021/02/24 10 | */ 11 | @Data 12 | public class BlogTagRelation { 13 | private Long relationId; 14 | private Long blogId; 15 | private Integer tagId; 16 | private Date createTime; 17 | } 18 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/AdminUser.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import lombok.Data; 4 | 5 | /** 6 | * @author vigilr 7 | * @since 2021/02/24 8 | */ 9 | @Data 10 | public class AdminUser { 11 | private Integer adminUserId; 12 | private String loginUserName; 13 | private String loginPassword; 14 | private String nickName; 15 | private Byte locked; 16 | } 17 | -------------------------------------------------------------------------------- /src/main/resources/templates/admin/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/service/ConfigService.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.service; 2 | 3 | import java.util.Map; 4 | 5 | /** 6 | * @author vigilr 7 | * @since 2021/02/24 8 | */ 9 | public interface ConfigService { 10 | /** 11 | * 修改配置项 12 | */ 13 | int updateConfig(String configName, String configValue); 14 | 15 | /** 16 | * 获取所有的配置项 17 | */ 18 | Map getAllConfigs(); 19 | } 20 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogConfigMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.BlogConfig; 4 | 5 | import java.util.List; 6 | 7 | /** 8 | * @author vigilr 9 | * @since 2021/02/25 10 | */ 11 | public interface BlogConfigMapper { 12 | List selectAll(); 13 | 14 | BlogConfig selectByPrimaryKey(String configName); 15 | 16 | int updateByPrimaryKeySelective(BlogConfig record); 17 | } 18 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/.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/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/entity/BlogTag.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class BlogTag { 14 | private Integer tagId; 15 | private String tagName; 16 | private Byte isDeleted; 17 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") 18 | private Date createTime; 19 | } 20 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/default/js/search.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | $('#searchbox').keypress(function (e) { 3 | var key = e.which; //e.which是按键的值 4 | if (key == 13) { 5 | var q = $(this).val(); 6 | if (q && q != '') { 7 | window.location.href = '/search/' + q; 8 | } 9 | } 10 | }); 11 | }); 12 | 13 | function search() { 14 | var q = $('#searchbox').val(); 15 | if (q && q != '') { 16 | window.location.href = '/search/' + q; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/search/search.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | $('#searchbox').keypress(function (e) { 3 | var key = e.which; //e.which是按键的值 4 | if (key == 13) { 5 | var q = $(this).val(); 6 | if (q && q != '') { 7 | window.location.href = '/search/' + q; 8 | } 9 | } 10 | }); 11 | }); 12 | 13 | function search() { 14 | var q = $('#searchbox').val(); 15 | if (q && q != '') { 16 | window.location.href = '/search/' + q; 17 | } 18 | } -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/image-picker/image-picker.css: -------------------------------------------------------------------------------- 1 | ul.thumbnails.image_picker_selector { 2 | overflow: auto; 3 | list-style-image: none; 4 | list-style-position: outside; 5 | list-style-type: none; 6 | padding: 0px; 7 | margin: 0px; } 8 | ul.thumbnails.image_picker_selector li { 9 | margin: 0px 12px 12px 0px; 10 | float: left; } 11 | ul.thumbnails.image_picker_selector li .thumbnail { 12 | padding: 6px; 13 | border: 1px solid #dddddd; } 14 | ul.thumbnails.image_picker_selector li .thumbnail.selected { 15 | background: #0088cc; } 16 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/entity/BlogCategory.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class BlogCategory { 14 | private Integer categoryId; 15 | private String categoryName; 16 | private String categoryIcon; 17 | private Integer categoryRank; 18 | private Byte isDeleted; 19 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") 20 | private Date createTime; 21 | } 22 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/MyblogApplication.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog; 2 | 3 | import org.apache.ibatis.annotations.Mapper; 4 | import org.mybatis.spring.annotation.MapperScan; 5 | import org.springframework.boot.SpringApplication; 6 | import org.springframework.boot.autoconfigure.SpringBootApplication; 7 | /** 8 | * SpringBoot 启动类 9 | * 10 | * @author Vigilr 11 | */ 12 | @MapperScan("com.hbu.myblog.mapper") 13 | @SpringBootApplication 14 | public class MyblogApplication { 15 | 16 | public static void main(String[] args) { 17 | SpringApplication.run(MyblogApplication.class, args); 18 | } 19 | 20 | } 21 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/service/TagService.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.service; 2 | 3 | import com.hbu.myblog.entity.BlogTagCount; 4 | import com.hbu.myblog.util.PageQueryUtil; 5 | import com.hbu.myblog.util.PageResult; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | public interface TagService { 14 | PageResult getBlogTagPage(PageQueryUtil pageUtil); 15 | 16 | int getTotalTags(); 17 | 18 | Boolean saveTag(String tagName); 19 | 20 | Boolean deleteBatch(Integer[] ids); 21 | 22 | List getBlogTagCountForIndex(); 23 | } 24 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/application.yml: -------------------------------------------------------------------------------- 1 | mybatis: 2 | mapper-locations: classpath:mapper/*Mapper.xml 3 | 4 | #配置web服务器的端口号 5 | server: 6 | port: 8080 7 | #servlet: 8 | # context-path: /myblog 9 | 10 | #数据库连接信息 11 | spring: 12 | datasource: 13 | driverClassName: com.mysql.cj.jdbc.Driver 14 | name: my-blog-datasource 15 | username: root 16 | password: root 17 | url: jdbc:mysql://localhost:3306/myblog?useSSL=false&useUnicode=true&characterEncoding=utf8&autoReconnect=true&serverTimezone=UTC 18 | 19 | servlet: 20 | multipart: 21 | 22 | max-request-size: 100MB #最大支持max-file-size: 10MB #最大支持文件大小请求大小 23 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/util/Result.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.util; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | 7 | /** 8 | * 返回结果 9 | * 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | @Data 14 | public class Result implements Serializable { 15 | private static final long serialVersionUID = 1L; 16 | private int resultCode; 17 | private String message; 18 | private T data; 19 | 20 | public Result() { 21 | } 22 | 23 | public Result(int resultCode, String message) { 24 | this.resultCode = resultCode; 25 | this.message = message; 26 | } 27 | 28 | 29 | } 30 | 31 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/AdminUserMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.AdminUser; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | /** 7 | * @author vigilr 8 | * @since 2021/02/25 9 | */ 10 | public interface AdminUserMapper { 11 | int insert(AdminUser record); 12 | 13 | int insertSelective(AdminUser record); 14 | 15 | AdminUser login(@Param("userName") String userName, @Param("password") String password); 16 | 17 | AdminUser selectByPrimaryKey(Integer adminUserId); 18 | 19 | int updateByPrimaryKeySelective(AdminUser record); 20 | 21 | int updateByPrimaryKey(AdminUser record); 22 | } -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/zh-TW.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-TW",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="請刪掉"+t+"個字元";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="請再輸入"+t+"個字元";return n},loadingMore:function(){return"載入中…"},maximumSelected:function(e){var t="你只能選擇最多"+e.maximum+"項";return t},noResults:function(){return"沒有找到相符的項目"},searching:function(){return"搜尋中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/vo/BlogDetailVO.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity.vo; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.Date; 6 | import java.util.List; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class BlogDetailVO { 14 | private Long blogId; 15 | private String blogTitle; 16 | private Integer blogCategoryId; 17 | private Integer commentCount; 18 | private String blogCategoryIcon; 19 | private String blogCategoryName; 20 | private Long blogViews; 21 | private List blogTags; 22 | private String blogContent; 23 | private Byte enableComment; 24 | private Date createTime; 25 | } 26 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/select2/i18n/az.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/az",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return t+" simvol silin"},inputTooShort:function(e){var t=e.minimum-e.input.length;return t+" simvol daxil edin"},loadingMore:function(){return"Daha çox nəticə yüklənir…"},maximumSelected:function(e){return"Sadəcə "+e.maximum+" element seçə bilərsiniz"},noResults:function(){return"Nəticə tapılmadı"},searching:function(){return"Axtarılır…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/zh-CN.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/zh-CN",[],function(){return{errorLoading:function(){return"无法载入结果。"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="请删除"+t+"个字符";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="请再输入至少"+t+"个字符";return n},loadingMore:function(){return"载入更多结果…"},maximumSelected:function(e){var t="最多只能选择"+e.maximum+"个项目";return t},noResults:function(){return"未找到结果"},searching:function(){return"搜索中…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/entity/vo/BlogListVO.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity.vo; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.io.Serializable; 7 | import java.util.Date; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | @Data 14 | public class BlogListVO implements Serializable { 15 | private Long blogId; 16 | 17 | private String blogTitle; 18 | 19 | private String blogSummary; 20 | 21 | private Integer blogCategoryId; 22 | 23 | private String blogCategoryIcon; 24 | 25 | private String blogCategoryName; 26 | 27 | @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT") 28 | private Date createTime; 29 | } 30 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/fi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Ole hyvä ja anna "+t+" merkkiä vähemmän"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Ole hyvä ja anna "+t+" merkkiä lisää"},loadingMore:function(){return"Ladataan lisää tuloksia…"},maximumSelected:function(e){return"Voit valita ainoastaan "+e.maximum+" kpl"},noResults:function(){return"Ei tuloksia"},searching:function(){}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/id.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/id",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Hapuskan "+t+" huruf"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Masukkan "+t+" huruf lagi"},loadingMore:function(){return"Mengambil data…"},maximumSelected:function(e){return"Anda hanya dapat memilih "+e.maximum+" pilihan"},noResults:function(){return"Tidak ada data yang sesuai"},searching:function(){return"Mencari…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/templates/blog/amaze/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/hu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Túl hosszú. "+t+" karakterrel több, mint kellene."},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Túl rövid. Még "+t+" karakter hiányzik."},loadingMore:function(){return"Töltés…"},maximumSelected:function(e){return"Csak "+e.maximum+" elemet lehet kiválasztani."},noResults:function(){return"Nincs találat."},searching:function(){return"Keresés…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/tr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/tr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" karakter daha girmelisiniz";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="En az "+t+" karakter daha girmelisiniz";return n},loadingMore:function(){return"Daha fazla…"},maximumSelected:function(e){var t="Sadece "+e.maximum+" seçim yapabilirsiniz";return t},noResults:function(){return"Sonuç bulunamadı"},searching:function(){return"Aranıyor…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/templates/blog/amaze/list.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/th.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/th",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="โปรดลบออก "+t+" ตัวอักษร";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="โปรดพิมพ์เพิ่มอีก "+t+" ตัวอักษร";return n},loadingMore:function(){return"กำลังค้นข้อมูลเพิ่ม…"},maximumSelected:function(e){var t="คุณสามารถเลือกได้ไม่เกิน "+e.maximum+" รายการ";return t},noResults:function(){return"ม่พบข้อมูล"},searching:function(){return"กำลังค้นข้อมูล…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/ko.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ko",[],function(){return{errorLoading:function(){return"결과를 불러올 수 없습니다."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="너무 깁니다. "+t+" 글자 지워주세요.";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="너무 짧습니다. "+t+" 글자 더 입력해주세요.";return n},loadingMore:function(){return"불러오는 중…"},maximumSelected:function(e){var t="최대 "+e.maximum+"개까지만 선택 가능합니다.";return t},noResults:function(){return"결과가 없습니다."},searching:function(){return"검색 중…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/nb.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nb",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Vennligst fjern "+t+" tegn"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vennligst skriv inn ";return t>1?n+=" flere tegn":n+=" tegn til",n},loadingMore:function(){return"Laster flere resultater…"},maximumSelected:function(e){return"Du kan velge maks "+e.maximum+" elementer"},noResults:function(){return"Ingen treff"},searching:function(){return"Søker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/vi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/vi",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vui lòng nhập ít hơn "+t+" ký tự";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vui lòng nhập nhiều hơn "+t+' ký tự"';return n},loadingMore:function(){return"Đang lấy thêm kết quả…"},maximumSelected:function(e){var t="Chỉ có thể chọn được "+e.maximum+" lựa chọn";return t},noResults:function(){return"Không tìm thấy kết quả"},searching:function(){return"Đang tìm…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/is.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/is",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vinsamlegast styttið texta um "+t+" staf";return t<=1?n:n+"i"},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vinsamlegast skrifið "+t+" staf";return t>1&&(n+="i"),n+=" í viðbót",n},loadingMore:function(){return"Sæki fleiri niðurstöður…"},maximumSelected:function(e){return"Þú getur aðeins valið "+e.maximum+" atriði"},noResults:function(){return"Ekkert fannst"},searching:function(){return"Leita…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/test/java/com/hbu/myblog/util/MD5UtilTest.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.util; 2 | 3 | import org.junit.jupiter.api.AfterEach; 4 | import org.junit.jupiter.api.BeforeEach; 5 | import org.junit.jupiter.api.Test; 6 | 7 | import static org.junit.jupiter.api.Assertions.*; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/03/01 12 | */ 13 | class MD5UtilTest { 14 | 15 | @BeforeEach 16 | void setUp() { 17 | System.out.println("开始单元测试"); 18 | } 19 | 20 | @AfterEach 21 | void tearDown() { 22 | System.out.println("结束单元测试"); 23 | } 24 | 25 | @Test 26 | void MD5Encode() { 27 | assertEquals("e10adc3949ba59abbe56e057f20f883e",MD5Util.MD5Encode("123456","utf-8"),"MD5Encode方法异常"); 28 | System.out.println("MD5Encode测试成功"); 29 | } 30 | } -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/select2/i18n/de.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/de",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum;return"Bitte "+t+" Zeichen weniger eingeben"},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Bitte "+t+" Zeichen mehr eingeben"},loadingMore:function(){return"Lade mehr Ergebnisse…"},maximumSelected:function(e){var t="Sie können nur "+e.maximum+" Eintr";return e.maximum===1?t+="ag":t+="äge",t+=" auswählen",t},noResults:function(){return"Keine Übereinstimmungen gefunden"},searching:function(){return"Suche…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/et.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/et",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" vähem",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Sisesta "+t+" täht";return t!=1&&(n+="e"),n+=" rohkem",n},loadingMore:function(){return"Laen tulemusi…"},maximumSelected:function(e){var t="Saad vaid "+e.maximum+" tulemus";return e.maximum==1?t+="e":t+="t",t+=" valida",t},noResults:function(){return"Tulemused puuduvad"},searching:function(){return"Otsin…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/hr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hr",[],function(){function e(e){var t=" "+e+" znak";return e%10<5&&e%10>0&&(e%100<5||e%100>19)?e%10>1&&(t+="a"):t+="ova",t}return{inputTooLong:function(t){var n=t.input.length-t.maximum;return"Unesite "+e(n)},inputTooShort:function(t){var n=t.minimum-t.input.length;return"Unesite još "+e(n)},loadingMore:function(){return"Učitavanje rezultata…"},maximumSelected:function(e){return"Maksimalan broj odabranih stavki je "+e.maximum},noResults:function(){return"Nema rezultata"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/sv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sv",[],function(){return{errorLoading:function(){return"Resultat kunde inte laddas."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vänligen sudda ut "+t+" tecken";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vänligen skriv in "+t+" eller fler tecken";return n},loadingMore:function(){return"Laddar fler resultat…"},maximumSelected:function(e){var t="Du kan max välja "+e.maximum+" element";return t},noResults:function(){return"Inga träffar"},searching:function(){return"Söker…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/bg.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/bg",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Моля въведете с "+t+" по-малко символ";return t>1&&(n+="a"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Моля въведете още "+t+" символ";return t>1&&(n+="a"),n},loadingMore:function(){return"Зареждат се още…"},maximumSelected:function(e){var t="Можете да направите до "+e.maximum+" ";return e.maximum>1?t+="избора":t+="избор",t},noResults:function(){return"Няма намерени съвпадения"},searching:function(){return"Търсене…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/he.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/he",[],function(){return{errorLoading:function(){return"התוצאות לא נטענו בהלכה"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="נא למחוק "+t+" תווים";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="נא להכניס "+t+" תווים או יותר";return n},loadingMore:function(){return"טען תוצאות נוספות…"},maximumSelected:function(e){var t="באפשרותך לבחור רק "+e.maximum+" פריטים";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"לא נמצאו תוצאות"},searching:function(){return"מחפש…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/gl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/gl",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Engada ";return t===1?n+="un carácter":n+=t+" caracteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Elimine ";return t===1?n+="un carácter":n+=t+" caracteres",n},loadingMore:function(){return"Cargando máis resultados…"},maximumSelected:function(e){var t="Só pode ";return e.maximum===1?t+="un elemento":t+=e.maximum+" elementos",t},noResults:function(){return"Non se atoparon resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/Blog.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class Blog { 14 | private Long blogId; 15 | private String blogTitle; 16 | private String blogSummary; 17 | private Integer blogCategoryId; 18 | private String blogCategoryName; 19 | private String blogTags; 20 | private Byte blogStatus; 21 | private Long blogViews; 22 | private Byte enableComment; 23 | private Byte isDeleted; 24 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") 25 | private Date createTime; 26 | private Date updateTime; 27 | 28 | private String blogContent; 29 | 30 | } 31 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogCommentMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.BlogComment; 4 | 5 | import java.util.List; 6 | import java.util.Map; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/25 11 | */ 12 | public interface BlogCommentMapper { 13 | int deleteByPrimaryKey(Long commentId); 14 | 15 | int insert(BlogComment record); 16 | 17 | int insertSelective(BlogComment record); 18 | 19 | BlogComment selectByPrimaryKey(Long commentId); 20 | 21 | int updateByPrimaryKeySelective(BlogComment record); 22 | 23 | int updateByPrimaryKey(BlogComment record); 24 | 25 | List findBlogCommentList(Map map); 26 | 27 | int getTotalBlogComments(Map map); 28 | 29 | int checkDone(Integer[] ids); 30 | 31 | int deleteBatch(Integer[] ids); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/select2/i18n/da.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/da",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Angiv venligst "+t+" tegn mindre";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Angiv venligst "+t+" tegn mere";return n},loadingMore:function(){return"Indlæser flere resultater…"},maximumSelected:function(e){var t="Du kan kun vælge "+e.maximum+" emne";return e.maximum!=1&&(t+="r"),t},noResults:function(){return"Ingen resultater fundet"},searching:function(){return"Søger…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/fr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fr",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Supprimez "+t+" caractère";return t!==1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Saisissez "+t+" caractère";return t!==1&&(n+="s"),n},loadingMore:function(){return"Chargement de résultats supplémentaires…"},maximumSelected:function(e){var t="Vous pouvez seulement sélectionner "+e.maximum+" élément";return e.maximum!==1&&(t+="s"),t},noResults:function(){return"Aucun résultat trouvé"},searching:function(){return"Recherche en cours…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/ro.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ro",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Vă rugăm să introduceți mai puțin de "+t;return n+=" caracter",n!==1&&(n+="e"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Vă rugăm să introduceți incă "+t;return n+=" caracter",n!==1&&(n+="e"),n},loadingMore:function(){return"Se încarcă…"},maximumSelected:function(e){var t="Aveți voie să selectați cel mult "+e.maximum;return t+=" element",t!==1&&(t+="e"),t},noResults:function(){return"Nu a fost găsit nimic"},searching:function(){return"Căutare…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/ascetic.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Original style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: white; 12 | color: black; 13 | } 14 | 15 | .hljs-string, 16 | .hljs-variable, 17 | .hljs-template-variable, 18 | .hljs-symbol, 19 | .hljs-bullet, 20 | .hljs-section, 21 | .hljs-addition, 22 | .hljs-attribute, 23 | .hljs-link { 24 | color: #888; 25 | } 26 | 27 | .hljs-comment, 28 | .hljs-quote, 29 | .hljs-meta, 30 | .hljs-deletion { 31 | color: #ccc; 32 | } 33 | 34 | .hljs-keyword, 35 | .hljs-selector-tag, 36 | .hljs-section, 37 | .hljs-name, 38 | .hljs-type, 39 | .hljs-strong { 40 | font-weight: bold; 41 | } 42 | 43 | .hljs-emphasis { 44 | font-style: italic; 45 | } 46 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/jqgrid-5.3.0/ui.jqgrid-bootstrap-ui.css: -------------------------------------------------------------------------------- 1 | /* 2 | To change this license header, choose License Headers in Project Properties. 3 | To change this template file, choose Tools | Templates 4 | and open the template in the editor. 5 | */ 6 | /* 7 | Created on : Mar 16, 2015, 10:24:01 AM 8 | Author : tony 9 | */ 10 | 11 | .ui-jqgrid tr.jqgrow td { height: 26px;} 12 | .ui-jqgrid .ui-pg-input,.ui-jqgrid .ui-jqgrid-toppager .ui-pg-input { height:20px } 13 | .ui-state-hover 14 | { 15 | border: .15em solid; 16 | border-color: inherit; 17 | 18 | } 19 | .ui-jqdialog .ui-jqdialog-titlebar { 20 | height:29px; 21 | border-color: inherit; 22 | } 23 | 24 | .ui-jqdialog-content input.FormElement { 25 | padding: 0.25em; 26 | } 27 | 28 | .fm-button { 29 | height:30px; 30 | } 31 | #nData, #pData { height:20px; width:18px; } -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/en.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/en",[],function(){return{errorLoading:function(){return"The results could not be loaded."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Please delete "+t+" character";return t!=1&&(n+="s"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Please enter "+t+" or more characters";return n},loadingMore:function(){return"Loading more results…"},maximumSelected:function(e){var t="You can only select "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No results found"},searching:function(){return"Searching…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/hi.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/hi",[],function(){return{errorLoading:function(){return"परिणामों को लोड नहीं किया जा सका।"},inputTooLong:function(e){var t=e.input.length-e.maximum,n=t+" अक्षर को हटा दें";return t>1&&(n=t+" अक्षरों को हटा दें "),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="कृपया "+t+" या अधिक अक्षर दर्ज करें";return n},loadingMore:function(){return"अधिक परिणाम लोड हो रहे है..."},maximumSelected:function(e){var t="आप केवल "+e.maximum+" आइटम का चयन कर सकते हैं";return t},noResults:function(){return"कोई परिणाम नहीं मिला"},searching:function(){return"खोज रहा है..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/fa.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/fa",[],function(){return{errorLoading:function(){return"امکان بارگذاری نتایج وجود ندارد."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="لطفاً "+t+" کاراکتر را حذف نمایید";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="لطفاً تعداد "+t+" کاراکتر یا بیشتر وارد نمایید";return n},loadingMore:function(){return"در حال بارگذاری نتایج بیشتر..."},maximumSelected:function(e){var t="شما تنها می‌توانید "+e.maximum+" آیتم را انتخاب نمایید";return t},noResults:function(){return"هیچ نتیجه‌ای یافت نشد"},searching:function(){return"در حال جستجو..."}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/mk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/mk",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Ве молиме внесете "+e.maximum+" помалку карактер";return e.maximum!==1&&(n+="и"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Ве молиме внесете уште "+e.maximum+" карактер";return e.maximum!==1&&(n+="и"),n},loadingMore:function(){return"Вчитување резултати…"},maximumSelected:function(e){var t="Можете да изберете само "+e.maximum+" ставк";return e.maximum===1?t+="а":t+="и",t},noResults:function(){return"Нема пронајдено совпаѓања"},searching:function(){return"Пребарување…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/entity/BlogComment.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.entity; 2 | 3 | import com.fasterxml.jackson.annotation.JsonFormat; 4 | import lombok.Data; 5 | 6 | import java.util.Date; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class BlogComment { 14 | private Long commentId; 15 | private Long blogId; 16 | private String commentator; 17 | private String email; 18 | private String websiteUrl; 19 | private String commentBody; 20 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") 21 | private Date commentCreateTime; 22 | private String commentatorIp; 23 | private String replyBody; 24 | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT") 25 | private Date replyCreateTime; 26 | private Byte commentStatus; 27 | private Byte isDeleted; 28 | } 29 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/plugins/chartjs2/docs/gitbook/gitbook-plugin-ga/plugin.js: -------------------------------------------------------------------------------- 1 | require(["gitbook"], function(gitbook) { 2 | // Load analytics.js 3 | gitbook.events.bind("start", function(e, config) { 4 | (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 5 | (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 6 | m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 7 | })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 8 | 9 | var cfg = config.ga; 10 | ga('create', cfg.token, cfg.configuration); 11 | }); 12 | 13 | // Notify pageview 14 | gitbook.events.bind("page.change", function() { 15 | ga('send', 'pageview', window.location.pathname+window.location.search); 16 | }); 17 | }); 18 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/eu.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/eu",[],function(){return{inputTooLong:function(e){var t=e.input.length-e.maximum,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gutxiago",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Idatzi ";return t==1?n+="karaktere bat":n+=t+" karaktere",n+=" gehiago",n},loadingMore:function(){return"Emaitza gehiago kargatzen…"},maximumSelected:function(e){return e.maximum===1?"Elementu bakarra hauta dezakezu":e.maximum+" elementu hauta ditzakezu soilik"},noResults:function(){return"Ez da bat datorrenik aurkitu"},searching:function(){return"Bilatzen…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/select2/i18n/pt-BR.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt-BR",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Apague "+t+" caracter";return t!=1&&(n+="es"),n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Digite "+t+" ou mais caracteres";return n},loadingMore:function(){return"Carregando mais resultados…"},maximumSelected:function(e){var t="Você só pode selecionar "+e.maximum+" ite";return e.maximum==1?t+="m":t+="ns",t},noResults:function(){return"Nenhum resultado encontrado"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/comment/valid.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 判空 3 | * 4 | * @param obj 5 | * @returns {boolean} 6 | */ 7 | function isNull(obj) { 8 | if (obj == null || obj == undefined || obj.trim() == "") { 9 | return true; 10 | } 11 | return false; 12 | } 13 | 14 | /** 15 | * 参数长度验证 16 | * 17 | * @param obj 18 | * @param length 19 | * @returns {boolean} 20 | */ 21 | function validLength(obj, length) { 22 | if (obj.trim().length < length) { 23 | return true; 24 | } 25 | return false; 26 | } 27 | 28 | /** 29 | * 正则匹配2-100位的中英文字符串 30 | * 31 | * @param str 32 | * @returns {boolean} 33 | */ 34 | function validCN_ENString2_100(str) { 35 | var pattern = /^[a-zA-Z0-9-\u4E00-\u9FA5_,, ]{2,100}$/; 36 | if (pattern.test(str.trim())) { 37 | return (true); 38 | } else { 39 | return (false); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/lv.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lv",[],function(){function e(e,t,n,r){return e===11?t:e%10===1?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Lūdzu ievadiet par "+n;return r+=" simbol"+e(n,"iem","u","iem"),r+" mazāk"},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Lūdzu ievadiet vēl "+n;return r+=" simbol"+e(n,"us","u","us"),r},loadingMore:function(){return"Datu ielāde…"},maximumSelected:function(t){var n="Jūs varat izvēlēties ne vairāk kā "+t.maximum;return n+=" element"+e(t.maximum,"us","u","us"),n},noResults:function(){return"Sakritību nav"},searching:function(){return"Meklēšana…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/pt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pt",[],function(){return{errorLoading:function(){return"Os resultados não puderam ser carregados."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor apague "+t+" ";return n+=t!=1?"caracteres":"carácter",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Introduza "+t+" ou mais caracteres";return n},loadingMore:function(){return"A carregar mais resultados…"},maximumSelected:function(e){var t="Apenas pode seleccionar "+e.maximum+" ";return t+=e.maximum!=1?"itens":"item",t},noResults:function(){return"Sem resultados"},searching:function(){return"A procurar…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/es.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/es",[],function(){return{errorLoading:function(){return"La carga falló"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Por favor, elimine "+t+" car";return t==1?n+="ácter":n+="acteres",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Por favor, introduzca "+t+" car";return t==1?n+="ácter":n+="acteres",n},loadingMore:function(){return"Cargando más resultados…"},maximumSelected:function(e){var t="Sólo puede seleccionar "+e.maximum+" elemento";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No se encontraron resultados"},searching:function(){return"Buscando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/lt.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/lt",[],function(){function e(e,t,n,r){return e%100>9&&e%100<21||e%10===0?e%10>1?n:r:t}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Pašalinkite "+n+" simbol";return r+=e(n,"ių","ius","į"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Įrašykite dar "+n+" simbol";return r+=e(n,"ių","ius","į"),r},loadingMore:function(){return"Kraunama daugiau rezultatų…"},maximumSelected:function(t){var n="Jūs galite pasirinkti tik "+t.maximum+" element";return n+=e(t.maximum,"ų","us","ą"),n},noResults:function(){return"Atitikmenų nerasta"},searching:function(){return"Ieškoma…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/nl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/nl",[],function(){return{errorLoading:function(){return"De resultaten konden niet worden geladen."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Gelieve "+t+" karakters te verwijderen";return n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Gelieve "+t+" of meer karakters in te voeren";return n},loadingMore:function(){return"Meer resultaten laden…"},maximumSelected:function(e){var t="Er kunnen maar "+e.maximum+" item";return e.maximum!=1&&(t+="s"),t+=" worden geselecteerd",t},noResults:function(){return"Geen resultaten gevonden…"},searching:function(){return"Zoeken…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/util/PageQueryUtil.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.util; 2 | 3 | import lombok.Data; 4 | 5 | import java.util.LinkedHashMap; 6 | import java.util.Map; 7 | 8 | /** 9 | * 分页工具类 10 | * 11 | * @author vigilr 12 | * @since 2021/02/24 13 | */ 14 | @Data 15 | public class PageQueryUtil extends LinkedHashMap { 16 | /** 17 | * 当前页码 18 | */ 19 | private int page; 20 | /** 21 | * 每页条数 22 | */ 23 | private int limit; 24 | 25 | public PageQueryUtil(Map params) { 26 | this.putAll(params); 27 | 28 | //分页参数 29 | this.page = Integer.parseInt(params.get("page").toString()); 30 | this.limit = Integer.parseInt(params.get("limit").toString()); 31 | this.put("start", (page - 1) * limit); 32 | this.put("page", page); 33 | this.put("limit", limit); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/ca.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ca",[],function(){return{errorLoading:function(){return"La càrrega ha fallat"},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Si us plau, elimina "+t+" car";return t==1?n+="àcter":n+="àcters",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Si us plau, introdueix "+t+" car";return t==1?n+="àcter":n+="àcters",n},loadingMore:function(){return"Carregant més resultats…"},maximumSelected:function(e){var t="Només es pot seleccionar "+e.maximum+" element";return e.maximum!=1&&(t+="s"),t},noResults:function(){return"No s'han trobat resultats"},searching:function(){return"Cercant…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/dist/js/test.js: -------------------------------------------------------------------------------- 1 | $(function () { 2 | new AjaxUpload('#uploadButton', { 3 | action: '/admin/upload/file', 4 | name: 'file', 5 | autoSubmit: true, 6 | responseType: "json", 7 | onSubmit: function (file, extension) { 8 | if (!(extension && /^(jpg|jpeg|png|gif)$/.test(extension.toLowerCase()))) { 9 | alert('只支持jpg、png、gif格式的文件!'); 10 | return false; 11 | } 12 | }, 13 | onComplete: function (file, r) { 14 | if (r != null && r.resultCode == 200) { 15 | console.log(r.data); 16 | $("#img").attr("src", r.data); 17 | $("#img").attr("style", "width: 100px;display:block;"); 18 | return false; 19 | } else { 20 | alert("error"); 21 | } 22 | } 23 | }); 24 | }); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/it.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/it",[],function(){return{errorLoading:function(){return"I risultati non possono essere caricati."},inputTooLong:function(e){var t=e.input.length-e.maximum,n="Per favore cancella "+t+" caratter";return t!==1?n+="i":n+="e",n},inputTooShort:function(e){var t=e.minimum-e.input.length,n="Per favore inserisci "+t+" o più caratteri";return n},loadingMore:function(){return"Caricando più risultati…"},maximumSelected:function(e){var t="Puoi selezionare solo "+e.maximum+" element";return e.maximum!==1?t+="i":t+="o",t},noResults:function(){return"Nessun risultato trovato"},searching:function(){return"Sto cercando…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/sr.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sr",[],function(){function e(e,t,n,r){return e%10==1&&e%100!=11?t:e%10>=2&&e%10<=4&&(e%100<12||e%100>14)?n:r}return{inputTooLong:function(t){var n=t.input.length-t.maximum,r="Obrišite "+n+" simbol";return r+=e(n,"","a","a"),r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Ukucajte bar još "+n+" simbol";return r+=e(n,"","a","a"),r},loadingMore:function(){return"Preuzimanje još rezultata…"},maximumSelected:function(t){var n="Možete izabrati samo "+t.maximum+" stavk";return n+=e(t.maximum,"u","e","i"),n},noResults:function(){return"Ništa nije pronađeno"},searching:function(){return"Pretraga…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/resources/static/admin/dist/js/plugins/chartjs2/docs/general/device-pixel-ratio.md: -------------------------------------------------------------------------------- 1 | # Device Pixel Ratio 2 | 3 | By default the chart's canvas will use a 1:1 pixel ratio, unless the physical display has a higher pixel ratio (e.g. Retina displays). 4 | 5 | For applications where a chart will be converted to a bitmap, or printed to a higher DPI medium it can be desirable to render the chart at a higher resolution than the default. 6 | 7 | Setting `devicePixelRatio` to a value other than 1 will force the canvas size to be scaled by that amount, relative to the container size. There should be no visible difference on screen; the difference will only be visible when the image is zoomed or printed. 8 | 9 | ## Configuration Options 10 | 11 | | Name | Type | Default | Description 12 | | ---- | ---- | ------- | ----------- 13 | | `devicePixelRatio` | `Number` | window.devicePixelRatio | Override the window's default devicePixelRatio. 14 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/pl.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/pl",[],function(){var e=["znak","znaki","znaków"],t=["element","elementy","elementów"],n=function(t,n){if(t===1)return n[0];if(t>1&&t<=4)return n[1];if(t>=5)return n[2]};return{errorLoading:function(){return"Nie można załadować wyników."},inputTooLong:function(t){var r=t.input.length-t.maximum;return"Usuń "+r+" "+n(r,e)},inputTooShort:function(t){var r=t.minimum-t.input.length;return"Podaj przynajmniej "+r+" "+n(r,e)},loadingMore:function(){return"Trwa ładowanie…"},maximumSelected:function(e){return"Możesz zaznaczyć tylko "+e.maximum+" "+n(e.maxiumum,t)},noResults:function(){return"Brak wyników"},searching:function(){return"Trwa wyszukiwanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/templates/blog/amaze/footer.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 13 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/select2/i18n/uk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/uk",[],function(){function e(e,t,n,r){return e%100>10&&e%100<15?r:e%10===1?t:e%10>1&&e%10<5?n:r}return{errorLoading:function(){return"Неможливо завантажити результати"},inputTooLong:function(t){var n=t.input.length-t.maximum;return"Будь ласка, видаліть "+n+" "+e(t.maximum,"літеру","літери","літер")},inputTooShort:function(e){var t=e.minimum-e.input.length;return"Будь ласка, введіть "+t+" або більше літер"},loadingMore:function(){return"Завантаження інших результатів…"},maximumSelected:function(t){return"Ви можете вибрати лише "+t.maximum+" "+e(t.maximum,"пункт","пункти","пунктів")},noResults:function(){return"Нічого не знайдено"},searching:function(){return"Пошук…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/ru.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/ru",[],function(){function e(e,t,n,r){return e%10<5&&e%10>0&&e%100<5||e%100>20?e%10>1?n:t:r}return{errorLoading:function(){return"Невозможно загрузить результаты"},inputTooLong:function(t){var n=t.input.length-t.maximum,r="Пожалуйста, введите на "+n+" символ";return r+=e(n,"","a","ов"),r+=" меньше",r},inputTooShort:function(t){var n=t.minimum-t.input.length,r="Пожалуйста, введите еще хотя бы "+n+" символ";return r+=e(n,"","a","ов"),r},loadingMore:function(){return"Загрузка данных…"},maximumSelected:function(t){var n="Вы можете выбрать не более "+t.maximum+" элемент";return n+=e(t.maximum,"","a","ов"),n},noResults:function(){return"Совпадений не найдено"},searching:function(){return"Поиск…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogTagMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.BlogTag; 4 | import com.hbu.myblog.entity.BlogTagCount; 5 | import com.hbu.myblog.util.PageQueryUtil; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/25 12 | */ 13 | public interface BlogTagMapper { 14 | int deleteByPrimaryKey(Integer tagId); 15 | 16 | int insert(BlogTag record); 17 | 18 | int insertSelective(BlogTag record); 19 | 20 | BlogTag selectByPrimaryKey(Integer tagId); 21 | 22 | BlogTag selectByTagName(String tagName); 23 | 24 | int updateByPrimaryKeySelective(BlogTag record); 25 | 26 | int updateByPrimaryKey(BlogTag record); 27 | 28 | List findTagList(PageQueryUtil pageUtil); 29 | 30 | List getTagCount(); 31 | 32 | int getTotalTags(PageQueryUtil pageUtil); 33 | 34 | int deleteBatch(Integer[] ids); 35 | 36 | int batchInsertBlogTag(List tagList); 37 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 基于SpringBoot+Mybatis+MySql+thyemleaf的个人博客系统设计与实现 2 | ### 技术栈: 3 | SpringBoot、Maven、Mybatis、Thymeleaf、jqGrid等插件 4 | 5 | 数据库:5.7.24 6 | 7 | 开发工具:IntelliJ IDEA 2021.1 x64 8 | 9 | ### 项目使用说明: 10 | 1.导入myblog.sql语句 11 | 12 | 2.下载myblog项目,Maven会自动安装相关依赖,耐心等待即可 13 | 14 | 3.在application.yml中修改数据库用户名和密码 15 | 16 | 4.运行"MyblogApplication",在浏览器中输入http://localhost:8080即可访问 17 | 18 | ### 数据库设计: 19 | 20 | 21 | ### 效果展示: 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/service/CategoryService.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.service; 2 | 3 | import com.hbu.myblog.entity.BlogCategory; 4 | import com.hbu.myblog.util.PageQueryUtil; 5 | import com.hbu.myblog.util.PageResult; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | public interface CategoryService { 14 | 15 | /** 16 | * 查询分类的分页数据 17 | * 18 | * @param pageUtil 19 | * @return 20 | */ 21 | PageResult getBlogCategoryPage(PageQueryUtil pageUtil); 22 | 23 | int getTotalCategories(); 24 | 25 | /** 26 | * 添加分类数据 27 | * 28 | * @param categoryName 29 | * @param categoryIcon 30 | * @return 31 | */ 32 | Boolean saveCategory(String categoryName,String categoryIcon); 33 | 34 | Boolean updateCategory(Integer categoryId, String categoryName, String categoryIcon); 35 | 36 | Boolean deleteBatch(Integer[] ids); 37 | 38 | List getAllCategories(); 39 | } 40 | 41 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogTagRelationMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.BlogTagRelation; 4 | import org.apache.ibatis.annotations.Param; 5 | 6 | import java.util.List; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/25 11 | */ 12 | public interface BlogTagRelationMapper { 13 | int deleteByPrimaryKey(Long relationId); 14 | 15 | int insert(BlogTagRelation record); 16 | 17 | int insertSelective(BlogTagRelation record); 18 | 19 | BlogTagRelation selectByPrimaryKey(Long relationId); 20 | 21 | BlogTagRelation selectByBlogIdAndTagId(@Param("blogId") Long blogId, @Param("tagId") Integer tagId); 22 | 23 | List selectDistinctTagIds(Integer[] tagIds); 24 | 25 | int updateByPrimaryKeySelective(BlogTagRelation record); 26 | 27 | int updateByPrimaryKey(BlogTagRelation record); 28 | 29 | int batchInsert(@Param("relationList") List blogTagRelationList); 30 | 31 | int deleteByBlogId(Long blogId); 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/service/AdminUserService.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.service; 2 | 3 | import com.hbu.myblog.entity.AdminUser; 4 | 5 | /** 6 | * @author vigilr 7 | * @since 2021/02/25 8 | */ 9 | public interface AdminUserService { 10 | 11 | AdminUser login(String userName, String password); 12 | 13 | /** 14 | * 获取用户信息 15 | * 16 | * @param loginUserId 17 | * @return 18 | */ 19 | AdminUser getUserDetailById(Integer loginUserId); 20 | 21 | /** 22 | * 修改当前登录用户的密码 23 | * 24 | * @param loginUserId 25 | * @param originalPassword 26 | * @param newPassword 27 | * @return 28 | */ 29 | Boolean updatePassword(Integer loginUserId, String originalPassword, String newPassword); 30 | 31 | /** 32 | * 修改当前登录用户的名称信息 33 | * 34 | * @param loginUserId 35 | * @param loginUserName 36 | * @param nickName 37 | * @return 38 | */ 39 | Boolean updateName(Integer loginUserId, String loginUserName, String nickName); 40 | 41 | } 42 | 43 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/highlight/styles/mono-blue.css: -------------------------------------------------------------------------------- 1 | /* 2 | Five-color theme from a single blue hue. 3 | */ 4 | .hljs { 5 | display: block; 6 | overflow-x: auto; 7 | padding: 0.5em; 8 | background: #eaeef3; 9 | } 10 | 11 | .hljs { 12 | color: #00193a; 13 | } 14 | 15 | .hljs-keyword, 16 | .hljs-selector-tag, 17 | .hljs-title, 18 | .hljs-section, 19 | .hljs-doctag, 20 | .hljs-name, 21 | .hljs-strong { 22 | font-weight: bold; 23 | } 24 | 25 | .hljs-comment { 26 | color: #738191; 27 | } 28 | 29 | .hljs-string, 30 | .hljs-title, 31 | .hljs-section, 32 | .hljs-built_in, 33 | .hljs-literal, 34 | .hljs-type, 35 | .hljs-addition, 36 | .hljs-tag, 37 | .hljs-quote, 38 | .hljs-name, 39 | .hljs-selector-id, 40 | .hljs-selector-class { 41 | color: #0048ab; 42 | } 43 | 44 | .hljs-meta, 45 | .hljs-subst, 46 | .hljs-symbol, 47 | .hljs-regexp, 48 | .hljs-attribute, 49 | .hljs-deletion, 50 | .hljs-variable, 51 | .hljs-template-variable, 52 | .hljs-link, 53 | .hljs-bullet { 54 | color: #4c81c9; 55 | } 56 | 57 | .hljs-emphasis { 58 | font-style: italic; 59 | } 60 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogCategoryMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.BlogCategory; 4 | import com.hbu.myblog.util.PageQueryUtil; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | public interface BlogCategoryMapper { 14 | 15 | int deleteByPrimaryKey(Integer categoryId); 16 | 17 | int insert(BlogCategory record); 18 | 19 | int insertSelective(BlogCategory record); 20 | 21 | BlogCategory selectByPrimaryKey(Integer categoryId); 22 | 23 | BlogCategory selectByCategoryName(String categoryName); 24 | 25 | int updateByPrimaryKeySelective(BlogCategory record); 26 | 27 | int updateByPrimaryKey(BlogCategory record); 28 | 29 | List findCategoryList(PageQueryUtil pageUtil); 30 | 31 | List selectByCategoryIds(@Param("categoryIds") List categoryIds); 32 | 33 | int getTotalCategories(PageQueryUtil pageUtil); 34 | 35 | int deleteBatch(Integer[] ids); 36 | } 37 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/fonts/editormd-logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Generated by IcoMoon 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/androidstudio.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 24 Fev 2015 3 | Author: Pedro Oliveira 4 | */ 5 | 6 | .hljs { 7 | color: #a9b7c6; 8 | background: #282b2e; 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | } 13 | 14 | .hljs-number, 15 | .hljs-literal, 16 | .hljs-symbol, 17 | .hljs-bullet { 18 | color: #6897BB; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-deletion { 24 | color: #cc7832; 25 | } 26 | 27 | .hljs-variable, 28 | .hljs-template-variable, 29 | .hljs-link { 30 | color: #629755; 31 | } 32 | 33 | .hljs-comment, 34 | .hljs-quote { 35 | color: #808080; 36 | } 37 | 38 | .hljs-meta { 39 | color: #bbb529; 40 | } 41 | 42 | .hljs-string, 43 | .hljs-attribute, 44 | .hljs-addition { 45 | color: #6A8759; 46 | } 47 | 48 | .hljs-section, 49 | .hljs-title, 50 | .hljs-type { 51 | color: #ffc66d; 52 | } 53 | 54 | .hljs-name, 55 | .hljs-selector-id, 56 | .hljs-selector-class { 57 | color: #e8bf6a; 58 | } 59 | 60 | .hljs-emphasis { 61 | font-style: italic; 62 | } 63 | 64 | .hljs-strong { 65 | font-weight: bold; 66 | } 67 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dark style from softwaremaniacs.org (c) Ivan Sagalaev 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #444; 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal, 17 | .hljs-section, 18 | .hljs-link { 19 | color: white; 20 | } 21 | 22 | .hljs, 23 | .hljs-subst { 24 | color: #ddd; 25 | } 26 | 27 | .hljs-string, 28 | .hljs-title, 29 | .hljs-name, 30 | .hljs-type, 31 | .hljs-attribute, 32 | .hljs-symbol, 33 | .hljs-bullet, 34 | .hljs-built_in, 35 | .hljs-addition, 36 | .hljs-variable, 37 | .hljs-template-tag, 38 | .hljs-template-variable { 39 | color: #d88; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-deletion, 45 | .hljs-meta { 46 | color: #777; 47 | } 48 | 49 | .hljs-keyword, 50 | .hljs-selector-tag, 51 | .hljs-literal, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-doctag, 55 | .hljs-type, 56 | .hljs-name, 57 | .hljs-strong { 58 | font-weight: bold; 59 | } 60 | 61 | .hljs-emphasis { 62 | font-style: italic; 63 | } 64 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/util/MarkDownUtil.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.util; 2 | 3 | import org.commonmark.Extension; 4 | import org.commonmark.ext.gfm.tables.TablesExtension; 5 | import org.commonmark.node.Node; 6 | import org.commonmark.parser.Parser; 7 | import org.commonmark.renderer.html.HtmlRenderer; 8 | import org.springframework.util.StringUtils; 9 | 10 | import java.util.Arrays; 11 | import java.util.List; 12 | 13 | /** 14 | * markdown工具类 15 | * 16 | * @author vigilr 17 | * @since 2021/02/25 18 | */ 19 | public class MarkDownUtil { 20 | /** 21 | * 转换md格式为html 22 | */ 23 | public static String mdToHtml(String markdownString) { 24 | if (StringUtils.isEmpty(markdownString)) { 25 | return ""; 26 | } 27 | List extensions = Arrays.asList(TablesExtension.create()); 28 | Parser parser = Parser.builder().extensions(extensions).build(); 29 | Node document = parser.parse(markdownString); 30 | HtmlRenderer renderer = HtmlRenderer.builder().extensions(extensions).build(); 31 | String content = renderer.render(document); 32 | return content; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/sk.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/sk",[],function(){var e={2:function(e){return e?"dva":"dve"},3:function(){return"tri"},4:function(){return"štyri"}};return{inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím, zadajte o jeden znak menej":n>=2&&n<=4?"Prosím, zadajte o "+e[n](!0)+" znaky menej":"Prosím, zadajte o "+n+" znakov menej"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím, zadajte ešte jeden znak":n<=4?"Prosím, zadajte ešte ďalšie "+e[n](!0)+" znaky":"Prosím, zadajte ešte ďalších "+n+" znakov"},loadingMore:function(){return"Loading more results…"},maximumSelected:function(t){return t.maximum==1?"Môžete zvoliť len jednu položku":t.maximum>=2&&t.maximum<=4?"Môžete zvoliť najviac "+e[t.maximum](!1)+" položky":"Môžete zvoliť najviac "+t.maximum+" položiek"},noResults:function(){return"Nenašli sa žiadne položky"},searching:function(){return"Vyhľadávanie…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/codepen-embed.css: -------------------------------------------------------------------------------- 1 | /* 2 | codepen.io Embed Theme 3 | Author: Justin Perry 4 | Original theme - https://github.com/chriskempson/tomorrow-theme 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222; 12 | color: #fff; 13 | } 14 | 15 | .hljs-comment, 16 | .hljs-quote { 17 | color: #777; 18 | } 19 | 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-tag, 23 | .hljs-regexp, 24 | .hljs-meta, 25 | .hljs-number, 26 | .hljs-built_in, 27 | .hljs-builtin-name, 28 | .hljs-literal, 29 | .hljs-params, 30 | .hljs-symbol, 31 | .hljs-bullet, 32 | .hljs-link, 33 | .hljs-deletion { 34 | color: #ab875d; 35 | } 36 | 37 | .hljs-section, 38 | .hljs-title, 39 | .hljs-name, 40 | .hljs-selector-id, 41 | .hljs-selector-class, 42 | .hljs-type, 43 | .hljs-attribute { 44 | color: #9b869b; 45 | } 46 | 47 | .hljs-string, 48 | .hljs-keyword, 49 | .hljs-selector-tag, 50 | .hljs-addition { 51 | color: #8f9c6c; 52 | } 53 | 54 | .hljs-emphasis { 55 | font-style: italic; 56 | } 57 | 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/highlight/styles/brown-paper.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Brown Paper style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background:#b7a68e url(./brown-papersq.png); 12 | } 13 | 14 | .hljs-keyword, 15 | .hljs-selector-tag, 16 | .hljs-literal { 17 | color:#005599; 18 | font-weight:bold; 19 | } 20 | 21 | .hljs, 22 | .hljs-subst { 23 | color: #363c69; 24 | } 25 | 26 | .hljs-string, 27 | .hljs-title, 28 | .hljs-section, 29 | .hljs-type, 30 | .hljs-attribute, 31 | .hljs-symbol, 32 | .hljs-bullet, 33 | .hljs-built_in, 34 | .hljs-addition, 35 | .hljs-variable, 36 | .hljs-template-tag, 37 | .hljs-template-variable, 38 | .hljs-link, 39 | .hljs-name { 40 | color: #2c009f; 41 | } 42 | 43 | .hljs-comment, 44 | .hljs-quote, 45 | .hljs-meta, 46 | .hljs-deletion { 47 | color: #802022; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-literal, 53 | .hljs-doctag, 54 | .hljs-title, 55 | .hljs-section, 56 | .hljs-type, 57 | .hljs-name, 58 | .hljs-strong { 59 | font-weight: bold; 60 | } 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/examples/php/upload_callback.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 34 | 35 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/select2/i18n/cs.js: -------------------------------------------------------------------------------- 1 | /*! Select2 4.0.0 | https://github.com/select2/select2/blob/master/LICENSE.md */ 2 | 3 | (function(){if(jQuery&&jQuery.fn&&jQuery.fn.select2&&jQuery.fn.select2.amd)var e=jQuery.fn.select2.amd;return e.define("select2/i18n/cs",[],function(){function e(e,t){switch(e){case 2:return t?"dva":"dvě";case 3:return"tři";case 4:return"čtyři"}return""}return{errorLoading:function(){return"Výsledky nemohly být načteny."},inputTooLong:function(t){var n=t.input.length-t.maximum;return n==1?"Prosím zadejte o jeden znak méně":n<=4?"Prosím zadejte o "+e(n,!0)+" znaky méně":"Prosím zadejte o "+n+" znaků méně"},inputTooShort:function(t){var n=t.minimum-t.input.length;return n==1?"Prosím zadejte ještě jeden znak":n<=4?"Prosím zadejte ještě další "+e(n,!0)+" znaky":"Prosím zadejte ještě dalších "+n+" znaků"},loadingMore:function(){return"Načítají se další výsledky…"},maximumSelected:function(t){var n=t.maximum;return n==1?"Můžete zvolit jen jednu položku":n<=4?"Můžete zvolit maximálně "+e(n,!1)+" položky":"Můžete zvolit maximálně "+n+" položek"},noResults:function(){return"Nenalezeny žádné položky"},searching:function(){return"Vyhledávání…"}}}),{define:e.define,require:e.require}})(); -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/vs.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Visual Studio-like style based on original C# coloring by Jason Diamond 4 | 5 | */ 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: white; 11 | color: black; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-quote, 16 | .hljs-variable { 17 | color: #008000; 18 | } 19 | 20 | .hljs-keyword, 21 | .hljs-selector-tag, 22 | .hljs-built_in, 23 | .hljs-name, 24 | .hljs-tag { 25 | color: #00f; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-title, 30 | .hljs-section, 31 | .hljs-attribute, 32 | .hljs-literal, 33 | .hljs-template-tag, 34 | .hljs-template-variable, 35 | .hljs-type, 36 | .hljs-addition { 37 | color: #a31515; 38 | } 39 | 40 | .hljs-deletion, 41 | .hljs-selector-attr, 42 | .hljs-selector-pseudo, 43 | .hljs-meta { 44 | color: #2b91af; 45 | } 46 | 47 | .hljs-doctag { 48 | color: #808080; 49 | } 50 | 51 | .hljs-attr { 52 | color: #f00; 53 | } 54 | 55 | .hljs-symbol, 56 | .hljs-bullet, 57 | .hljs-link { 58 | color: #00b0e8; 59 | } 60 | 61 | 62 | .hljs-emphasis { 63 | font-style: italic; 64 | } 65 | 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/config/MyBlogWebMvcConfigurer.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.config; 2 | 3 | import com.hbu.myblog.interceptor.AdminLoginInterceptor; 4 | import org.springframework.beans.factory.annotation.Autowired; 5 | import org.springframework.context.annotation.Configuration; 6 | import org.springframework.web.servlet.config.annotation.InterceptorRegistry; 7 | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; 8 | 9 | /** 10 | * 实现 WebMvcConfigurer 接口 11 | * 12 | * @author vigilr 13 | * @since 2021/02/25 14 | */ 15 | @Configuration 16 | public class MyBlogWebMvcConfigurer implements WebMvcConfigurer { 17 | @Autowired 18 | private AdminLoginInterceptor adminLoginInterceptor; 19 | 20 | /** 21 | * 添加一个拦截器,拦截以 /admin 为前缀的url路径 22 | * 23 | * @param registry 拦截器 24 | */ 25 | @Override 26 | public void addInterceptors(InterceptorRegistry registry) { 27 | registry.addInterceptor(adminLoginInterceptor).addPathPatterns("/admin/**") 28 | .excludePathPatterns("/admin/login") 29 | .excludePathPatterns("/admin/dist/**") 30 | .excludePathPatterns("/admin/plugins/**"); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/resources/static/admin/plugins/editormd/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/java/com/hbu/myblog/util/PageResult.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.util; 2 | 3 | import lombok.Data; 4 | 5 | import java.io.Serializable; 6 | import java.util.List; 7 | 8 | /** 9 | * @author vigilr 10 | * @since 2021/02/24 11 | */ 12 | @Data 13 | public class PageResult implements Serializable { 14 | 15 | /** 16 | * 总记录数 17 | */ 18 | private int totalCount; 19 | 20 | /** 21 | * 每页记录数 22 | */ 23 | private int pageSize; 24 | 25 | /** 26 | * 总页数 27 | */ 28 | private int totalPage; 29 | 30 | /** 31 | * 当前页数 32 | */ 33 | private int currPage; 34 | 35 | /** 36 | * 列表数据 37 | */ 38 | private List list; 39 | 40 | /** 41 | * 分页 42 | * 43 | * @param list 列表数据 44 | * @param totalCount 总记录数 45 | * @param pageSize 每页记录数 46 | * @param currPage 当前页数 47 | */ 48 | public PageResult(List list, int totalCount, int pageSize, int currPage) { 49 | this.list = list; 50 | this.totalCount = totalCount; 51 | this.pageSize = pageSize; 52 | this.currPage = currPage; 53 | this.totalPage = (int) Math.ceil((double) totalCount / pageSize); 54 | } 55 | 56 | } 57 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/far.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | FAR Style (c) MajestiC 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #000080; 12 | } 13 | 14 | .hljs, 15 | .hljs-subst { 16 | color: #0ff; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-attribute, 21 | .hljs-symbol, 22 | .hljs-bullet, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-template-tag, 26 | .hljs-template-variable, 27 | .hljs-addition { 28 | color: #ff0; 29 | } 30 | 31 | .hljs-keyword, 32 | .hljs-selector-tag, 33 | .hljs-section, 34 | .hljs-type, 35 | .hljs-name, 36 | .hljs-selector-id, 37 | .hljs-selector-class, 38 | .hljs-variable { 39 | color: #fff; 40 | } 41 | 42 | .hljs-comment, 43 | .hljs-quote, 44 | .hljs-doctag, 45 | .hljs-deletion { 46 | color: #888; 47 | } 48 | 49 | .hljs-number, 50 | .hljs-regexp, 51 | .hljs-literal, 52 | .hljs-link { 53 | color: #0f0; 54 | } 55 | 56 | .hljs-meta { 57 | color: #008080; 58 | } 59 | 60 | .hljs-keyword, 61 | .hljs-selector-tag, 62 | .hljs-title, 63 | .hljs-section, 64 | .hljs-name, 65 | .hljs-strong { 66 | font-weight: bold; 67 | } 68 | 69 | .hljs-emphasis { 70 | font-style: italic; 71 | } 72 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/arta.css: -------------------------------------------------------------------------------- 1 | /* 2 | Date: 17.V.2011 3 | Author: pumbur 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | overflow-x: auto; 9 | padding: 0.5em; 10 | background: #222; 11 | } 12 | 13 | .hljs, 14 | .hljs-subst { 15 | color: #aaa; 16 | } 17 | 18 | .hljs-section { 19 | color: #fff; 20 | } 21 | 22 | .hljs-comment, 23 | .hljs-quote, 24 | .hljs-meta { 25 | color: #444; 26 | } 27 | 28 | .hljs-string, 29 | .hljs-symbol, 30 | .hljs-bullet, 31 | .hljs-regexp { 32 | color: #ffcc33; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-addition { 37 | color: #00cc66; 38 | } 39 | 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-literal, 43 | .hljs-type, 44 | .hljs-template-variable, 45 | .hljs-attribute, 46 | .hljs-link { 47 | color: #32aaee; 48 | } 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-name, 53 | .hljs-selector-id, 54 | .hljs-selector-class { 55 | color: #6644aa; 56 | } 57 | 58 | .hljs-title, 59 | .hljs-variable, 60 | .hljs-deletion, 61 | .hljs-template-tag { 62 | color: #bb1166; 63 | } 64 | 65 | .hljs-section, 66 | .hljs-doctag, 67 | .hljs-strong { 68 | font-weight: bold; 69 | } 70 | 71 | .hljs-emphasis { 72 | font-style: italic; 73 | } 74 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/ir-black.css: -------------------------------------------------------------------------------- 1 | /* 2 | IR_Black style (c) Vasily Mikhailitchenko 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #000; 10 | color: #f8f8f8; 11 | } 12 | 13 | .hljs-comment, 14 | .hljs-quote, 15 | .hljs-meta { 16 | color: #7c7c7c; 17 | } 18 | 19 | .hljs-keyword, 20 | .hljs-selector-tag, 21 | .hljs-tag, 22 | .hljs-name { 23 | color: #96cbfe; 24 | } 25 | 26 | .hljs-attribute, 27 | .hljs-selector-id { 28 | color: #ffffb6; 29 | } 30 | 31 | .hljs-string, 32 | .hljs-selector-attr, 33 | .hljs-selector-pseudo, 34 | .hljs-addition { 35 | color: #a8ff60; 36 | } 37 | 38 | .hljs-subst { 39 | color: #daefa3; 40 | } 41 | 42 | .hljs-regexp, 43 | .hljs-link { 44 | color: #e9c062; 45 | } 46 | 47 | .hljs-title, 48 | .hljs-section, 49 | .hljs-type, 50 | .hljs-doctag { 51 | color: #ffffb6; 52 | } 53 | 54 | .hljs-symbol, 55 | .hljs-bullet, 56 | .hljs-variable, 57 | .hljs-template-variable, 58 | .hljs-literal { 59 | color: #c6c5fe; 60 | } 61 | 62 | .hljs-number, 63 | .hljs-deletion { 64 | color:#ff73fd; 65 | } 66 | 67 | .hljs-emphasis { 68 | font-style: italic; 69 | } 70 | 71 | .hljs-strong { 72 | font-weight: bold; 73 | } 74 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/magula.css: -------------------------------------------------------------------------------- 1 | /* 2 | Description: Magula style for highligh.js 3 | Author: Ruslan Keba 4 | Website: http://rukeba.com/ 5 | Version: 1.0 6 | Date: 2009-01-03 7 | Music: Aphex Twin / Xtal 8 | */ 9 | 10 | .hljs { 11 | display: block; 12 | overflow-x: auto; 13 | padding: 0.5em; 14 | background-color: #f4f4f4; 15 | } 16 | 17 | .hljs, 18 | .hljs-subst { 19 | color: black; 20 | } 21 | 22 | .hljs-string, 23 | .hljs-title, 24 | .hljs-symbol, 25 | .hljs-bullet, 26 | .hljs-attribute, 27 | .hljs-addition, 28 | .hljs-variable, 29 | .hljs-template-tag, 30 | .hljs-template-variable { 31 | color: #050; 32 | } 33 | 34 | .hljs-comment, 35 | .hljs-quote { 36 | color: #777; 37 | } 38 | 39 | .hljs-number, 40 | .hljs-regexp, 41 | .hljs-literal, 42 | .hljs-type, 43 | .hljs-link { 44 | color: #800; 45 | } 46 | 47 | .hljs-deletion, 48 | .hljs-meta { 49 | color: #00e; 50 | } 51 | 52 | .hljs-keyword, 53 | .hljs-selector-tag, 54 | .hljs-doctag, 55 | .hljs-title, 56 | .hljs-section, 57 | .hljs-built_in, 58 | .hljs-tag, 59 | .hljs-name { 60 | font-weight: bold; 61 | color: navy; 62 | } 63 | 64 | .hljs-emphasis { 65 | font-style: italic; 66 | } 67 | 68 | .hljs-strong { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/color-brewer.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Colorbrewer theme 4 | Original: https://github.com/mbostock/colorbrewer-theme (c) Mike Bostock 5 | Ported by Fabrício Tavares de Oliveira 6 | 7 | */ 8 | 9 | .hljs { 10 | display: block; 11 | overflow-x: auto; 12 | padding: 0.5em; 13 | background: #fff; 14 | } 15 | 16 | .hljs, 17 | .hljs-subst { 18 | color: #000; 19 | } 20 | 21 | .hljs-string, 22 | .hljs-meta, 23 | .hljs-symbol, 24 | .hljs-template-tag, 25 | .hljs-template-variable, 26 | .hljs-addition { 27 | color: #756bb1; 28 | } 29 | 30 | .hljs-comment, 31 | .hljs-quote { 32 | color: #636363; 33 | } 34 | 35 | .hljs-number, 36 | .hljs-regexp, 37 | .hljs-literal, 38 | .hljs-bullet, 39 | .hljs-link { 40 | color: #31a354; 41 | } 42 | 43 | .hljs-deletion, 44 | .hljs-variable { 45 | color: #88f; 46 | } 47 | 48 | 49 | 50 | .hljs-keyword, 51 | .hljs-selector-tag, 52 | .hljs-title, 53 | .hljs-section, 54 | .hljs-built_in, 55 | .hljs-doctag, 56 | .hljs-type, 57 | .hljs-tag, 58 | .hljs-name, 59 | .hljs-selector-id, 60 | .hljs-selector-class, 61 | .hljs-strong { 62 | color: #3182bd; 63 | } 64 | 65 | .hljs-emphasis { 66 | font-style: italic; 67 | } 68 | 69 | .hljs-attribute { 70 | color: #e6550d; 71 | } 72 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/dictionary/dictionary.css: -------------------------------------------------------------------------------- 1 | /*生成博客目录的CSS*/ 2 | #uprightsideBar { 3 | font-size: 18px; 4 | font-family: 'Monaco', Microsoft Yahei, 宋体, sans-serif; 5 | text-align: left; 6 | position: fixed; /*将div的位置固定到距离top:50px,left:0px的位置,这样div就会处在最左边的位置,距离顶部50px*/ 7 | top: 15%; 8 | right: 0px; 9 | width: auto; 10 | height: auto; 11 | } 12 | 13 | #sideBarTab { 14 | float: right; 15 | width: 50px; 16 | border: 1px solid #e5e5e5; 17 | border-right: none; 18 | text-align: center; 19 | background: #ffffff; 20 | } 21 | 22 | #sideBarContents { 23 | font-size: 14px; 24 | float: left; 25 | overflow: auto; 26 | overflow-x: hidden; 27 | !important; 28 | width: 200px; 29 | min-height: 108px; 30 | max-height: 460px; 31 | border: 1px solid #e5e5e5; 32 | border-right: none; 33 | background: #ffffff; 34 | } 35 | 36 | #sideBarContents dl { 37 | margin: 0; 38 | padding: 0; 39 | } 40 | 41 | #sideBarContents dt { 42 | margin-top: 5px; 43 | margin-left: 5px; 44 | } 45 | 46 | #sideBarContents dd, dt { 47 | cursor: pointer; 48 | } 49 | 50 | #sideBarContents dd:hover, dt:hover { 51 | color: #428bca; 52 | } 53 | 54 | #sideBarContents dd { 55 | margin-left: 20px; 56 | } -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/highlight/styles/github-gist.css: -------------------------------------------------------------------------------- 1 | /** 2 | * GitHub Gist Theme 3 | * Author : Louis Barranqueiro - https://github.com/LouisBarranqueiro 4 | */ 5 | 6 | .hljs { 7 | display: block; 8 | background: white; 9 | padding: 0.5em; 10 | color: #333333; 11 | overflow-x: auto; 12 | } 13 | 14 | .hljs-comment, 15 | .hljs-meta { 16 | color: #969896; 17 | } 18 | 19 | .hljs-string, 20 | .hljs-variable, 21 | .hljs-template-variable, 22 | .hljs-strong, 23 | .hljs-emphasis, 24 | .hljs-quote { 25 | color: #df5000; 26 | } 27 | 28 | .hljs-keyword, 29 | .hljs-selector-tag, 30 | .hljs-type { 31 | color: #a71d5d; 32 | } 33 | 34 | .hljs-literal, 35 | .hljs-symbol, 36 | .hljs-bullet, 37 | .hljs-attribute { 38 | color: #0086b3; 39 | } 40 | 41 | .hljs-section, 42 | .hljs-name { 43 | color: #63a35c; 44 | } 45 | 46 | .hljs-tag { 47 | color: #333333; 48 | } 49 | 50 | .hljs-title, 51 | .hljs-attr, 52 | .hljs-selector-id, 53 | .hljs-selector-class, 54 | .hljs-selector-attr, 55 | .hljs-selector-pseudo { 56 | color: #795da3; 57 | } 58 | 59 | .hljs-addition { 60 | color: #55a532; 61 | background-color: #eaffea; 62 | } 63 | 64 | .hljs-deletion { 65 | color: #bd2c00; 66 | background-color: #ffecec; 67 | } 68 | 69 | .hljs-link { 70 | text-decoration: underline; 71 | } 72 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/monokai.css: -------------------------------------------------------------------------------- 1 | /* 2 | Monokai style - ported by Luigi Maselli - http://grigio.org 3 | */ 4 | 5 | .hljs { 6 | display: block; 7 | overflow-x: auto; 8 | padding: 0.5em; 9 | background: #272822; color: #ddd; 10 | } 11 | 12 | .hljs-tag, 13 | .hljs-keyword, 14 | .hljs-selector-tag, 15 | .hljs-literal, 16 | .hljs-strong, 17 | .hljs-name { 18 | color: #f92672; 19 | } 20 | 21 | .hljs-code { 22 | color: #66d9ef; 23 | } 24 | 25 | .hljs-class .hljs-title { 26 | color: white; 27 | } 28 | 29 | .hljs-attribute, 30 | .hljs-symbol, 31 | .hljs-regexp, 32 | .hljs-link { 33 | color: #bf79db; 34 | } 35 | 36 | .hljs-string, 37 | .hljs-bullet, 38 | .hljs-subst, 39 | .hljs-title, 40 | .hljs-section, 41 | .hljs-emphasis, 42 | .hljs-type, 43 | .hljs-built_in, 44 | .hljs-builtin-name, 45 | .hljs-selector-attr, 46 | .hljs-selector-pseudo, 47 | .hljs-addition, 48 | .hljs-variable, 49 | .hljs-template-tag, 50 | .hljs-template-variable { 51 | color: #a6e22e; 52 | } 53 | 54 | .hljs-comment, 55 | .hljs-quote, 56 | .hljs-deletion, 57 | .hljs-meta { 58 | color: #75715e; 59 | } 60 | 61 | .hljs-keyword, 62 | .hljs-selector-tag, 63 | .hljs-literal, 64 | .hljs-doctag, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-type, 68 | .hljs-selector-id { 69 | font-weight: bold; 70 | } 71 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/mapper/BlogMapper.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.mapper; 2 | 3 | import com.hbu.myblog.entity.Blog; 4 | import com.hbu.myblog.util.PageQueryUtil; 5 | import org.apache.ibatis.annotations.Param; 6 | 7 | import java.util.List; 8 | 9 | /** 10 | * @author vigilr 11 | * @since 2021/02/24 12 | */ 13 | 14 | public interface BlogMapper { 15 | int deleteByPrimaryKey(Long blogId); 16 | 17 | int insert(Blog record); 18 | 19 | int insertSelective(Blog record); 20 | 21 | Blog selectByPrimaryKey(Long blogId); 22 | 23 | int updateByPrimaryKeySelective(Blog record); 24 | 25 | int updateByPrimaryKeyWithBLOBs(Blog record); 26 | 27 | int updateByPrimaryKey(Blog record); 28 | 29 | List findBlogList(PageQueryUtil pageUtil); 30 | 31 | List findBlogListByType(@Param("type") int type, @Param("limit") int limit); 32 | 33 | int getTotalBlogs(PageQueryUtil pageUtil); 34 | 35 | int deleteBatch(Integer[] ids); 36 | 37 | List getBlogsPageByTagId(PageQueryUtil pageUtil); 38 | 39 | int getTotalBlogsByTagId(PageQueryUtil pageUtil); 40 | 41 | Blog selectBySubUrl(String subUrl); 42 | 43 | int updateBlogCategorys(@Param("categoryName") String categoryName, @Param("categoryId") Integer categoryId, @Param("ids") Integer[] ids); 44 | 45 | } 46 | 47 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/darcula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Darcula color scheme from the JetBrains family of IDEs 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #2b2b2b; 13 | } 14 | 15 | .hljs { 16 | color: #bababa; 17 | } 18 | 19 | .hljs-strong, 20 | .hljs-emphasis { 21 | color: #a8a8a2; 22 | } 23 | 24 | .hljs-bullet, 25 | .hljs-quote, 26 | .hljs-link, 27 | .hljs-number, 28 | .hljs-regexp, 29 | .hljs-literal { 30 | color: #6896ba; 31 | } 32 | 33 | .hljs-code, 34 | .hljs-selector-class { 35 | color: #a6e22e; 36 | } 37 | 38 | .hljs-emphasis { 39 | font-style: italic; 40 | } 41 | 42 | .hljs-keyword, 43 | .hljs-selector-tag, 44 | .hljs-section, 45 | .hljs-attribute, 46 | .hljs-name, 47 | .hljs-variable { 48 | color: #cb7832; 49 | } 50 | 51 | .hljs-params { 52 | color: #b9b9b9; 53 | } 54 | 55 | .hljs-string { 56 | color: #6a8759; 57 | } 58 | 59 | .hljs-subst, 60 | .hljs-type, 61 | .hljs-built_in, 62 | .hljs-builtin-name, 63 | .hljs-symbol, 64 | .hljs-selector-id, 65 | .hljs-selector-attr, 66 | .hljs-selector-pseudo, 67 | .hljs-template-tag, 68 | .hljs-template-variable, 69 | .hljs-addition { 70 | color: #e0c46c; 71 | } 72 | 73 | .hljs-comment, 74 | .hljs-deletion, 75 | .hljs-meta { 76 | color: #7f7f7f; 77 | } 78 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/gml.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | GML Theme - Meseta 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 0.5em; 11 | background: #222222; 12 | color: #C0C0C0; 13 | } 14 | 15 | .hljs-keywords { 16 | color: #FFB871; 17 | font-weight: bold; 18 | } 19 | 20 | .hljs-built_in { 21 | color: #FFB871; 22 | } 23 | 24 | .hljs-literal { 25 | color: #FF8080; 26 | } 27 | 28 | .hljs-symbol { 29 | color: #58E55A; 30 | } 31 | 32 | .hljs-comment { 33 | color: #5B995B; 34 | } 35 | 36 | .hljs-string { 37 | color: #FFFF00; 38 | } 39 | 40 | .hljs-number { 41 | color: #FF8080; 42 | } 43 | 44 | .hljs-attribute, 45 | .hljs-selector-tag, 46 | .hljs-doctag, 47 | .hljs-name, 48 | .hljs-bullet, 49 | .hljs-code, 50 | .hljs-addition, 51 | .hljs-regexp, 52 | .hljs-variable, 53 | .hljs-template-variable, 54 | .hljs-link, 55 | .hljs-selector-attr, 56 | .hljs-selector-pseudo, 57 | .hljs-type, 58 | .hljs-selector-id, 59 | .hljs-selector-class, 60 | .hljs-quote, 61 | .hljs-template-tag, 62 | .hljs-deletion, 63 | .hljs-title, 64 | .hljs-section, 65 | .hljs-function, 66 | .hljs-meta-keyword, 67 | .hljs-meta, 68 | .hljs-subst { 69 | color: #C0C0C0; 70 | } 71 | 72 | .hljs-emphasis { 73 | font-style: italic; 74 | } 75 | 76 | .hljs-strong { 77 | font-weight: bold; 78 | } 79 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/highlight/styles/tomorrow.css: -------------------------------------------------------------------------------- 1 | /* http://jmblog.github.com/color-themes-for-google-code-highlightjs */ 2 | 3 | /* Tomorrow Comment */ 4 | .hljs-comment, 5 | .hljs-quote { 6 | color: #8e908c; 7 | } 8 | 9 | /* Tomorrow Red */ 10 | .hljs-variable, 11 | .hljs-template-variable, 12 | .hljs-tag, 13 | .hljs-name, 14 | .hljs-selector-id, 15 | .hljs-selector-class, 16 | .hljs-regexp, 17 | .hljs-deletion { 18 | color: #c82829; 19 | } 20 | 21 | /* Tomorrow Orange */ 22 | .hljs-number, 23 | .hljs-built_in, 24 | .hljs-builtin-name, 25 | .hljs-literal, 26 | .hljs-type, 27 | .hljs-params, 28 | .hljs-meta, 29 | .hljs-link { 30 | color: #f5871f; 31 | } 32 | 33 | /* Tomorrow Yellow */ 34 | .hljs-attribute { 35 | color: #eab700; 36 | } 37 | 38 | /* Tomorrow Green */ 39 | .hljs-string, 40 | .hljs-symbol, 41 | .hljs-bullet, 42 | .hljs-addition { 43 | color: #718c00; 44 | } 45 | 46 | /* Tomorrow Blue */ 47 | .hljs-title, 48 | .hljs-section { 49 | color: #4271ae; 50 | } 51 | 52 | /* Tomorrow Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #8959a8; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: white; 62 | color: #4d4d4c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/zenburn.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Zenburn style from voldmar.ru (c) Vladimir Epifanov 4 | based on dark.css by Ivan Sagalaev 5 | 6 | */ 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #3f3f3f; 13 | color: #dcdcdc; 14 | } 15 | 16 | .hljs-keyword, 17 | .hljs-selector-tag, 18 | .hljs-tag { 19 | color: #e3ceab; 20 | } 21 | 22 | .hljs-template-tag { 23 | color: #dcdcdc; 24 | } 25 | 26 | .hljs-number { 27 | color: #8cd0d3; 28 | } 29 | 30 | .hljs-variable, 31 | .hljs-template-variable, 32 | .hljs-attribute { 33 | color: #efdcbc; 34 | } 35 | 36 | .hljs-literal { 37 | color: #efefaf; 38 | } 39 | 40 | .hljs-subst { 41 | color: #8f8f8f; 42 | } 43 | 44 | .hljs-title, 45 | .hljs-name, 46 | .hljs-selector-id, 47 | .hljs-selector-class, 48 | .hljs-section, 49 | .hljs-type { 50 | color: #efef8f; 51 | } 52 | 53 | .hljs-symbol, 54 | .hljs-bullet, 55 | .hljs-link { 56 | color: #dca3a3; 57 | } 58 | 59 | .hljs-deletion, 60 | .hljs-string, 61 | .hljs-built_in, 62 | .hljs-builtin-name { 63 | color: #cc9393; 64 | } 65 | 66 | .hljs-addition, 67 | .hljs-comment, 68 | .hljs-quote, 69 | .hljs-meta { 70 | color: #7f9f7f; 71 | } 72 | 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | 78 | .hljs-strong { 79 | font-weight: bold; 80 | } 81 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/config/KaptchaConfig.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.config; 2 | 3 | import com.google.code.kaptcha.impl.DefaultKaptcha; 4 | import com.google.code.kaptcha.util.Config; 5 | import org.springframework.context.annotation.Bean; 6 | import org.springframework.stereotype.Component; 7 | 8 | import java.util.Properties; 9 | 10 | /** 11 | * 将验证码组件注入spring容器中 12 | * 13 | * @author vigilr 14 | * @since 2021/02/25 15 | */ 16 | @Component 17 | public class KaptchaConfig { 18 | /** 19 | * 获取验证码 20 | * 21 | * @return com.google.code.kaptcha.impl.DefaultKaptcha 22 | */ 23 | @Bean 24 | public DefaultKaptcha getDefaultKaptcha() { 25 | DefaultKaptcha defaultKaptcha = new DefaultKaptcha(); 26 | Properties properties = new Properties(); 27 | properties.put("kaptcha.border", "no"); 28 | properties.put("kaptcha.textproducer.font.color", "black"); 29 | properties.put("kaptcha.image.width", "150"); 30 | properties.put("kaptcha.image.height", "40"); 31 | properties.put("kaptcha.textproducer.font.size", "30"); 32 | properties.put("kaptcha.session.key", "verifyCode"); 33 | properties.put("kaptcha.textproducer.char.space", "5"); 34 | Config config = new Config(properties); 35 | defaultKaptcha.setConfig(config); 36 | 37 | return defaultKaptcha; 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/school-book.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | School Book style from goldblog.com.ua (c) Zaripov Yura 4 | 5 | */ 6 | 7 | .hljs { 8 | display: block; 9 | overflow-x: auto; 10 | padding: 15px 0.5em 0.5em 30px; 11 | font-size: 11px; 12 | line-height:16px; 13 | } 14 | 15 | pre{ 16 | background:#f6f6ae url(./school-book.png); 17 | border-top: solid 2px #d2e8b9; 18 | border-bottom: solid 1px #d2e8b9; 19 | } 20 | 21 | .hljs-keyword, 22 | .hljs-selector-tag, 23 | .hljs-literal { 24 | color:#005599; 25 | font-weight:bold; 26 | } 27 | 28 | .hljs, 29 | .hljs-subst { 30 | color: #3e5915; 31 | } 32 | 33 | .hljs-string, 34 | .hljs-title, 35 | .hljs-section, 36 | .hljs-type, 37 | .hljs-symbol, 38 | .hljs-bullet, 39 | .hljs-attribute, 40 | .hljs-built_in, 41 | .hljs-builtin-name, 42 | .hljs-addition, 43 | .hljs-variable, 44 | .hljs-template-tag, 45 | .hljs-template-variable, 46 | .hljs-link { 47 | color: #2c009f; 48 | } 49 | 50 | .hljs-comment, 51 | .hljs-quote, 52 | .hljs-deletion, 53 | .hljs-meta { 54 | color: #e60415; 55 | } 56 | 57 | .hljs-keyword, 58 | .hljs-selector-tag, 59 | .hljs-literal, 60 | .hljs-doctag, 61 | .hljs-title, 62 | .hljs-section, 63 | .hljs-type, 64 | .hljs-name, 65 | .hljs-selector-id, 66 | .hljs-strong { 67 | font-weight: bold; 68 | } 69 | 70 | .hljs-emphasis { 71 | font-style: italic; 72 | } 73 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/ocean.css: -------------------------------------------------------------------------------- 1 | /* Ocean Dark Theme */ 2 | /* https://github.com/gavsiu */ 3 | /* Original theme - https://github.com/chriskempson/base16 */ 4 | 5 | /* Ocean Comment */ 6 | .hljs-comment, 7 | .hljs-quote { 8 | color: #65737e; 9 | } 10 | 11 | /* Ocean Red */ 12 | .hljs-variable, 13 | .hljs-template-variable, 14 | .hljs-tag, 15 | .hljs-name, 16 | .hljs-selector-id, 17 | .hljs-selector-class, 18 | .hljs-regexp, 19 | .hljs-deletion { 20 | color: #bf616a; 21 | } 22 | 23 | /* Ocean Orange */ 24 | .hljs-number, 25 | .hljs-built_in, 26 | .hljs-builtin-name, 27 | .hljs-literal, 28 | .hljs-type, 29 | .hljs-params, 30 | .hljs-meta, 31 | .hljs-link { 32 | color: #d08770; 33 | } 34 | 35 | /* Ocean Yellow */ 36 | .hljs-attribute { 37 | color: #ebcb8b; 38 | } 39 | 40 | /* Ocean Green */ 41 | .hljs-string, 42 | .hljs-symbol, 43 | .hljs-bullet, 44 | .hljs-addition { 45 | color: #a3be8c; 46 | } 47 | 48 | /* Ocean Blue */ 49 | .hljs-title, 50 | .hljs-section { 51 | color: #8fa1b3; 52 | } 53 | 54 | /* Ocean Purple */ 55 | .hljs-keyword, 56 | .hljs-selector-tag { 57 | color: #b48ead; 58 | } 59 | 60 | .hljs { 61 | display: block; 62 | overflow-x: auto; 63 | background: #2b303b; 64 | color: #c0c5ce; 65 | padding: 0.5em; 66 | } 67 | 68 | .hljs-emphasis { 69 | font-style: italic; 70 | } 71 | 72 | .hljs-strong { 73 | font-weight: bold; 74 | } 75 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/paraiso-dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (dark) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #8d8687; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #2f1e2e; 62 | color: #a39e9b; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/paraiso-light.css: -------------------------------------------------------------------------------- 1 | /* 2 | Paraíso (light) 3 | Created by Jan T. Sott (http://github.com/idleberg) 4 | Inspired by the art of Rubens LP (http://www.rubenslp.com.br) 5 | */ 6 | 7 | /* Paraíso Comment */ 8 | .hljs-comment, 9 | .hljs-quote { 10 | color: #776e71; 11 | } 12 | 13 | /* Paraíso Red */ 14 | .hljs-variable, 15 | .hljs-template-variable, 16 | .hljs-tag, 17 | .hljs-name, 18 | .hljs-selector-id, 19 | .hljs-selector-class, 20 | .hljs-regexp, 21 | .hljs-link, 22 | .hljs-meta { 23 | color: #ef6155; 24 | } 25 | 26 | /* Paraíso Orange */ 27 | .hljs-number, 28 | .hljs-built_in, 29 | .hljs-builtin-name, 30 | .hljs-literal, 31 | .hljs-type, 32 | .hljs-params, 33 | .hljs-deletion { 34 | color: #f99b15; 35 | } 36 | 37 | /* Paraíso Yellow */ 38 | .hljs-title, 39 | .hljs-section, 40 | .hljs-attribute { 41 | color: #fec418; 42 | } 43 | 44 | /* Paraíso Green */ 45 | .hljs-string, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition { 49 | color: #48b685; 50 | } 51 | 52 | /* Paraíso Purple */ 53 | .hljs-keyword, 54 | .hljs-selector-tag { 55 | color: #815ba4; 56 | } 57 | 58 | .hljs { 59 | display: block; 60 | overflow-x: auto; 61 | background: #e7e9db; 62 | color: #4f424c; 63 | padding: 0.5em; 64 | } 65 | 66 | .hljs-emphasis { 67 | font-style: italic; 68 | } 69 | 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | -------------------------------------------------------------------------------- /src/main/java/com/hbu/myblog/service/CommentService.java: -------------------------------------------------------------------------------- 1 | package com.hbu.myblog.service; 2 | 3 | import com.hbu.myblog.entity.BlogComment; 4 | import com.hbu.myblog.util.PageQueryUtil; 5 | import com.hbu.myblog.util.PageResult; 6 | 7 | /** 8 | * @author vigilr 9 | * @since 2021/02/24 10 | */ 11 | public interface CommentService { 12 | /** 13 | * 添加评论 14 | * 15 | * @param blogComment 16 | * @return 17 | */ 18 | Boolean addComment(BlogComment blogComment); 19 | 20 | /** 21 | * 后台管理系统中评论分页功能 22 | * 23 | * @param pageUtil 24 | * @return 25 | */ 26 | PageResult getCommentsPage(PageQueryUtil pageUtil); 27 | 28 | int getTotalComments(); 29 | 30 | /** 31 | * 批量审核 32 | * 33 | * @param ids 34 | * @return 35 | */ 36 | Boolean checkDone(Integer[] ids); 37 | 38 | /** 39 | * 批量删除 40 | * 41 | * @param ids 42 | * @return 43 | */ 44 | Boolean deleteBatch(Integer[] ids); 45 | 46 | /** 47 | * 添加回复 48 | * 49 | * @param commentId 50 | * @param replyBody 51 | * @return 52 | */ 53 | Boolean reply(Long commentId, String replyBody); 54 | 55 | /** 56 | * 根据文章id和分页参数获取文章的评论列表 57 | * 58 | * @param blogId 59 | * @param page 60 | * @return 61 | */ 62 | PageResult getCommentPageByBlogIdAndPageNum(Long blogId, int page); 63 | } 64 | -------------------------------------------------------------------------------- /src/main/resources/static/admin/plugins/editormd/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/resources/static/blog/plugins/highlight/styles/dracula.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Dracula Theme v1.2.0 4 | 5 | https://github.com/zenorocha/dracula-theme 6 | 7 | Copyright 2015, All rights reserved 8 | 9 | Code licensed under the MIT license 10 | http://zenorocha.mit-license.org 11 | 12 | @author Éverton Ribeiro 13 | @author Zeno Rocha 14 | 15 | */ 16 | 17 | .hljs { 18 | display: block; 19 | overflow-x: auto; 20 | padding: 0.5em; 21 | background: #282a36; 22 | } 23 | 24 | .hljs-keyword, 25 | .hljs-selector-tag, 26 | .hljs-literal, 27 | .hljs-section, 28 | .hljs-link { 29 | color: #8be9fd; 30 | } 31 | 32 | .hljs-function .hljs-keyword { 33 | color: #ff79c6; 34 | } 35 | 36 | .hljs, 37 | .hljs-subst { 38 | color: #f8f8f2; 39 | } 40 | 41 | .hljs-string, 42 | .hljs-title, 43 | .hljs-name, 44 | .hljs-type, 45 | .hljs-attribute, 46 | .hljs-symbol, 47 | .hljs-bullet, 48 | .hljs-addition, 49 | .hljs-variable, 50 | .hljs-template-tag, 51 | .hljs-template-variable { 52 | color: #f1fa8c; 53 | } 54 | 55 | .hljs-comment, 56 | .hljs-quote, 57 | .hljs-deletion, 58 | .hljs-meta { 59 | color: #6272a4; 60 | } 61 | 62 | .hljs-keyword, 63 | .hljs-selector-tag, 64 | .hljs-literal, 65 | .hljs-title, 66 | .hljs-section, 67 | .hljs-doctag, 68 | .hljs-type, 69 | .hljs-name, 70 | .hljs-strong { 71 | font-weight: bold; 72 | } 73 | 74 | .hljs-emphasis { 75 | font-style: italic; 76 | } 77 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/qtcreator_dark.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator dark color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #000000; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #aaaaaa; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #a8a8a2; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #ff55ff; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #aaaaff; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #ffff55; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #ff5555; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #8888ff; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #ff55ff; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #55ffff; 83 | } 84 | -------------------------------------------------------------------------------- /src/main/resources/static/blog/plugins/highlight/styles/qtcreator_light.css: -------------------------------------------------------------------------------- 1 | /* 2 | 3 | Qt Creator light color scheme 4 | 5 | */ 6 | 7 | 8 | .hljs { 9 | display: block; 10 | overflow-x: auto; 11 | padding: 0.5em; 12 | background: #ffffff; 13 | } 14 | 15 | .hljs, 16 | .hljs-subst, 17 | .hljs-tag, 18 | .hljs-title { 19 | color: #000000; 20 | } 21 | 22 | .hljs-strong, 23 | .hljs-emphasis { 24 | color: #000000; 25 | } 26 | 27 | .hljs-bullet, 28 | .hljs-quote, 29 | .hljs-number, 30 | .hljs-regexp, 31 | .hljs-literal { 32 | color: #000080; 33 | } 34 | 35 | .hljs-code 36 | .hljs-selector-class { 37 | color: #800080; 38 | } 39 | 40 | .hljs-emphasis, 41 | .hljs-stronge, 42 | .hljs-type { 43 | font-style: italic; 44 | } 45 | 46 | .hljs-keyword, 47 | .hljs-selector-tag, 48 | .hljs-function, 49 | .hljs-section, 50 | .hljs-symbol, 51 | .hljs-name { 52 | color: #808000; 53 | } 54 | 55 | .hljs-attribute { 56 | color: #800000; 57 | } 58 | 59 | .hljs-variable, 60 | .hljs-params, 61 | .hljs-class .hljs-title { 62 | color: #0055AF; 63 | } 64 | 65 | .hljs-string, 66 | .hljs-selector-id, 67 | .hljs-selector-attr, 68 | .hljs-selector-pseudo, 69 | .hljs-type, 70 | .hljs-built_in, 71 | .hljs-builtin-name, 72 | .hljs-template-tag, 73 | .hljs-template-variable, 74 | .hljs-addition, 75 | .hljs-link { 76 | color: #008000; 77 | } 78 | 79 | .hljs-comment, 80 | .hljs-meta, 81 | .hljs-deletion { 82 | color: #008000; 83 | } 84 | --------------------------------------------------------------------------------