gitextract_r_we8a7l/ ├── .gitattributes ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ └── feature_request.md │ └── dependabot.yml ├── .gitignore ├── Dockerfile ├── LICENSE.txt ├── README.md ├── README_CN.md ├── blog.sql ├── docker-compose.yml ├── nginx.conf ├── pom.xml └── src/ ├── main/ │ ├── java/ │ │ └── com/ │ │ └── blog/ │ │ ├── BlogApplication.java │ │ ├── aspect/ │ │ │ └── LogAspect.java │ │ ├── config/ │ │ │ ├── RedisConfig.java │ │ │ ├── RedisKey.java │ │ │ ├── SettingsConfig.java │ │ │ └── WebMvcConfig.java │ │ ├── controller/ │ │ │ ├── SitemapController.java │ │ │ ├── admin/ │ │ │ │ ├── AIController.java │ │ │ │ ├── AdminController.java │ │ │ │ ├── BlogController.java │ │ │ │ ├── FriendLinkController.java │ │ │ │ ├── SettingsController.java │ │ │ │ ├── TagController.java │ │ │ │ └── TypeController.java │ │ │ ├── blog/ │ │ │ │ ├── AboutShowController.java │ │ │ │ ├── ArchiveShowController.java │ │ │ │ ├── FriendLinkControllerShow.java │ │ │ │ ├── IndexController.java │ │ │ │ ├── MessageController.java │ │ │ │ ├── TagShowController.java │ │ │ │ └── TypeShowController.java │ │ │ └── common/ │ │ │ └── ControllerExceptionHandler.java │ │ ├── dao/ │ │ │ ├── BlogDao.java │ │ │ ├── FriendLinkDao.java │ │ │ ├── MessageDao.java │ │ │ ├── TagDao.java │ │ │ ├── TypeDao.java │ │ │ └── UserDao.java │ │ ├── entity/ │ │ │ ├── Blog.java │ │ │ ├── BlogAndTag.java │ │ │ ├── FriendLink.java │ │ │ ├── Message.java │ │ │ ├── Tag.java │ │ │ ├── Type.java │ │ │ └── User.java │ │ ├── enums/ │ │ │ └── BlogStatus.java │ │ ├── exception/ │ │ │ ├── BusinessException.java │ │ │ ├── GlobalExceptionHandler.java │ │ │ └── NotFoundException.java │ │ ├── interceptor/ │ │ │ └── LoginInterceptor.java │ │ ├── pojo/ │ │ │ ├── RequestLog.java │ │ │ └── WebhookMessage.java │ │ ├── scheduled/ │ │ │ └── Refresh.java │ │ ├── service/ │ │ │ ├── AIService.java │ │ │ ├── BlogService.java │ │ │ ├── FriendLinkService.java │ │ │ ├── MessageService.java │ │ │ ├── RedisService.java │ │ │ ├── SitemapService.java │ │ │ ├── SmartSearchService.java │ │ │ ├── TagService.java │ │ │ ├── TypeService.java │ │ │ ├── UserService.java │ │ │ └── impl/ │ │ │ ├── BlogServiceImpl.java │ │ │ ├── FriendLinkServiceImpl.java │ │ │ ├── MessageServiceImpl.java │ │ │ ├── RedisServiceImpl.java │ │ │ ├── TagServiceImpl.java │ │ │ ├── TypeServiceImpl.java │ │ │ └── UserServiceImpl.java │ │ └── util/ │ │ ├── CommonResult.java │ │ ├── MD5Utils.java │ │ ├── MarkdownUtils.java │ │ ├── PasswordUtils.java │ │ ├── PropertiesUtil.java │ │ ├── RedisUtil.java │ │ ├── SEOUtils.java │ │ └── WxChatbotClient.java │ └── resources/ │ ├── application-dev.yml │ ├── application-pro.yml │ ├── application.yml │ ├── mapper/ │ │ ├── BlogDao.xml │ │ ├── FriendLinkDao.xml │ │ ├── MessageDao.xml │ │ ├── TagDao.xml │ │ ├── TypeDao.xml │ │ └── UserDao.xml │ ├── messages.properties │ ├── static/ │ │ ├── backend/ │ │ │ ├── css/ │ │ │ │ └── style.css │ │ │ ├── icons/ │ │ │ │ ├── avasta/ │ │ │ │ │ └── css/ │ │ │ │ │ └── style.css │ │ │ │ ├── bootstrap-icons/ │ │ │ │ │ └── font/ │ │ │ │ │ └── bootstrap-icons.css │ │ │ │ ├── flaticon/ │ │ │ │ │ └── flaticon.css │ │ │ │ ├── flaticon_1/ │ │ │ │ │ └── flaticon_1.css │ │ │ │ ├── icomoon/ │ │ │ │ │ └── icomoon.css │ │ │ │ ├── simple-line-icons/ │ │ │ │ │ └── css/ │ │ │ │ │ └── simple-line-icons.css │ │ │ │ └── themify-icons/ │ │ │ │ └── css/ │ │ │ │ └── themify-icons.css │ │ │ ├── js/ │ │ │ │ ├── dashboard/ │ │ │ │ │ ├── coin-details.js │ │ │ │ │ ├── dashboard-1.js │ │ │ │ │ ├── market-capital.js │ │ │ │ │ ├── my-wallet.js │ │ │ │ │ └── portofolio.js │ │ │ │ ├── demo.js │ │ │ │ ├── deznav-init.js │ │ │ │ ├── fullcalendar-init.js │ │ │ │ ├── plugins-init/ │ │ │ │ │ ├── bs-daterange-picker-init.js │ │ │ │ │ ├── chartist-init.js │ │ │ │ │ ├── chartjs-init.js │ │ │ │ │ ├── clock-picker-init.js │ │ │ │ │ ├── datatables.init.js │ │ │ │ │ ├── flot-init.js │ │ │ │ │ ├── fullcalendar-init.js │ │ │ │ │ ├── jquery-asColorPicker.init.js │ │ │ │ │ ├── jquery.validate-init.js │ │ │ │ │ ├── jqvmap-init.js │ │ │ │ │ ├── material-date-picker-init.js │ │ │ │ │ ├── morris-init.js │ │ │ │ │ ├── nestable-init.js │ │ │ │ │ ├── nouislider-init.js │ │ │ │ │ ├── pickadate-init.js │ │ │ │ │ ├── piety-init.js │ │ │ │ │ ├── select2-init.js │ │ │ │ │ ├── sparkline-init.js │ │ │ │ │ ├── sweetalert.init.js │ │ │ │ │ ├── toastr-init.js │ │ │ │ │ └── widgets-script-init.js │ │ │ │ └── styleSwitcher.js │ │ │ └── vendor/ │ │ │ ├── jquery-nice-select/ │ │ │ │ └── css/ │ │ │ │ └── nice-select.css │ │ │ ├── owl-carousel/ │ │ │ │ ├── owl.carousel.css │ │ │ │ └── owl.carousel.js │ │ │ └── perfect-scrollbar/ │ │ │ └── css/ │ │ │ └── perfect-scrollbar.css │ │ ├── css/ │ │ │ ├── animate.css │ │ │ ├── dark-mode.css │ │ │ ├── donate.css │ │ │ ├── font.css │ │ │ ├── foreBlog.css │ │ │ ├── friend.css │ │ │ ├── themes/ │ │ │ │ └── default/ │ │ │ │ └── assets/ │ │ │ │ └── fonts/ │ │ │ │ └── icons.otf │ │ │ ├── timeline.css │ │ │ └── typo.css │ │ ├── js/ │ │ │ ├── article.js │ │ │ ├── canvas-ribbon.js │ │ │ ├── category.js │ │ │ ├── error.js │ │ │ ├── foreBlog.js │ │ │ ├── home.js │ │ │ ├── jquery.js │ │ │ ├── tags.js │ │ │ ├── theme.js │ │ │ └── whatwg-fetch@2.0.3_fetch.js │ │ └── lib/ │ │ ├── editormd/ │ │ │ ├── css/ │ │ │ │ ├── editormd.css │ │ │ │ ├── editormd.logo.css │ │ │ │ └── editormd.preview.css │ │ │ ├── editormd.js │ │ │ ├── fonts/ │ │ │ │ └── FontAwesome.otf │ │ │ ├── languages/ │ │ │ │ ├── en.js │ │ │ │ └── zh-tw.js │ │ │ ├── lib/ │ │ │ │ └── codemirror/ │ │ │ │ ├── AUTHORS │ │ │ │ ├── LICENSE │ │ │ │ ├── README.md │ │ │ │ ├── addon/ │ │ │ │ │ ├── comment/ │ │ │ │ │ │ ├── comment.js │ │ │ │ │ │ └── continuecomment.js │ │ │ │ │ ├── dialog/ │ │ │ │ │ │ ├── dialog.css │ │ │ │ │ │ └── dialog.js │ │ │ │ │ ├── display/ │ │ │ │ │ │ ├── fullscreen.css │ │ │ │ │ │ ├── fullscreen.js │ │ │ │ │ │ ├── panel.js │ │ │ │ │ │ ├── placeholder.js │ │ │ │ │ │ └── rulers.js │ │ │ │ │ ├── edit/ │ │ │ │ │ │ ├── closebrackets.js │ │ │ │ │ │ ├── closetag.js │ │ │ │ │ │ ├── continuelist.js │ │ │ │ │ │ ├── matchbrackets.js │ │ │ │ │ │ ├── matchtags.js │ │ │ │ │ │ └── trailingspace.js │ │ │ │ │ ├── fold/ │ │ │ │ │ │ ├── brace-fold.js │ │ │ │ │ │ ├── comment-fold.js │ │ │ │ │ │ ├── foldcode.js │ │ │ │ │ │ ├── foldgutter.css │ │ │ │ │ │ ├── foldgutter.js │ │ │ │ │ │ ├── indent-fold.js │ │ │ │ │ │ ├── markdown-fold.js │ │ │ │ │ │ └── xml-fold.js │ │ │ │ │ ├── hint/ │ │ │ │ │ │ ├── anyword-hint.js │ │ │ │ │ │ ├── css-hint.js │ │ │ │ │ │ ├── html-hint.js │ │ │ │ │ │ ├── javascript-hint.js │ │ │ │ │ │ ├── show-hint.css │ │ │ │ │ │ ├── show-hint.js │ │ │ │ │ │ ├── sql-hint.js │ │ │ │ │ │ └── xml-hint.js │ │ │ │ │ ├── lint/ │ │ │ │ │ │ ├── coffeescript-lint.js │ │ │ │ │ │ ├── css-lint.js │ │ │ │ │ │ ├── javascript-lint.js │ │ │ │ │ │ ├── json-lint.js │ │ │ │ │ │ ├── lint.css │ │ │ │ │ │ ├── lint.js │ │ │ │ │ │ └── yaml-lint.js │ │ │ │ │ ├── merge/ │ │ │ │ │ │ ├── merge.css │ │ │ │ │ │ └── merge.js │ │ │ │ │ ├── mode/ │ │ │ │ │ │ ├── loadmode.js │ │ │ │ │ │ ├── multiplex.js │ │ │ │ │ │ ├── multiplex_test.js │ │ │ │ │ │ ├── overlay.js │ │ │ │ │ │ └── simple.js │ │ │ │ │ ├── runmode/ │ │ │ │ │ │ ├── colorize.js │ │ │ │ │ │ ├── runmode-standalone.js │ │ │ │ │ │ ├── runmode.js │ │ │ │ │ │ └── runmode.node.js │ │ │ │ │ ├── scroll/ │ │ │ │ │ │ ├── annotatescrollbar.js │ │ │ │ │ │ ├── scrollpastend.js │ │ │ │ │ │ ├── simplescrollbars.css │ │ │ │ │ │ └── simplescrollbars.js │ │ │ │ │ ├── search/ │ │ │ │ │ │ ├── match-highlighter.js │ │ │ │ │ │ ├── matchesonscrollbar.css │ │ │ │ │ │ ├── matchesonscrollbar.js │ │ │ │ │ │ ├── search.js │ │ │ │ │ │ └── searchcursor.js │ │ │ │ │ ├── selection/ │ │ │ │ │ │ ├── active-line.js │ │ │ │ │ │ ├── mark-selection.js │ │ │ │ │ │ └── selection-pointer.js │ │ │ │ │ ├── tern/ │ │ │ │ │ │ ├── tern.css │ │ │ │ │ │ ├── tern.js │ │ │ │ │ │ └── worker.js │ │ │ │ │ └── wrap/ │ │ │ │ │ └── hardwrap.js │ │ │ │ ├── bower.json │ │ │ │ ├── lib/ │ │ │ │ │ ├── codemirror.css │ │ │ │ │ └── codemirror.js │ │ │ │ ├── mode/ │ │ │ │ │ ├── apl/ │ │ │ │ │ │ ├── apl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── asterisk/ │ │ │ │ │ │ ├── asterisk.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── clike/ │ │ │ │ │ │ ├── clike.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scala.html │ │ │ │ │ ├── clojure/ │ │ │ │ │ │ ├── clojure.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cobol/ │ │ │ │ │ │ ├── cobol.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── coffeescript/ │ │ │ │ │ │ ├── coffeescript.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── commonlisp/ │ │ │ │ │ │ ├── commonlisp.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── css/ │ │ │ │ │ │ ├── css.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── less.html │ │ │ │ │ │ ├── less_test.js │ │ │ │ │ │ ├── scss.html │ │ │ │ │ │ ├── scss_test.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── cypher/ │ │ │ │ │ │ ├── cypher.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── d/ │ │ │ │ │ │ ├── d.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dart/ │ │ │ │ │ │ ├── dart.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── diff/ │ │ │ │ │ │ ├── diff.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── django/ │ │ │ │ │ │ ├── django.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dockerfile/ │ │ │ │ │ │ ├── dockerfile.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dtd/ │ │ │ │ │ │ ├── dtd.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dylan/ │ │ │ │ │ │ ├── dylan.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ebnf/ │ │ │ │ │ │ ├── ebnf.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── ecl/ │ │ │ │ │ │ ├── ecl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── eiffel/ │ │ │ │ │ │ ├── eiffel.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── erlang/ │ │ │ │ │ │ ├── erlang.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── forth/ │ │ │ │ │ │ ├── forth.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── fortran/ │ │ │ │ │ │ ├── fortran.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gas/ │ │ │ │ │ │ ├── gas.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── gfm/ │ │ │ │ │ │ ├── gfm.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── gherkin/ │ │ │ │ │ │ ├── gherkin.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── go/ │ │ │ │ │ │ ├── go.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── groovy/ │ │ │ │ │ │ ├── groovy.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── haml/ │ │ │ │ │ │ ├── haml.js │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── haskell/ │ │ │ │ │ │ ├── haskell.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── haxe/ │ │ │ │ │ │ ├── haxe.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlembedded/ │ │ │ │ │ │ ├── htmlembedded.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── htmlmixed/ │ │ │ │ │ │ ├── htmlmixed.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── http/ │ │ │ │ │ │ ├── http.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── idl/ │ │ │ │ │ │ ├── idl.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── index.html │ │ │ │ │ ├── jade/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jade.js │ │ │ │ │ ├── javascript/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── javascript.js │ │ │ │ │ │ ├── json-ld.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── typescript.html │ │ │ │ │ ├── jinja2/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── jinja2.js │ │ │ │ │ ├── julia/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── julia.js │ │ │ │ │ ├── kotlin/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── kotlin.js │ │ │ │ │ ├── livescript/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── livescript.js │ │ │ │ │ ├── lua/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── lua.js │ │ │ │ │ ├── markdown/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── markdown.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── meta.js │ │ │ │ │ ├── mirc/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mirc.js │ │ │ │ │ ├── mllike/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── mllike.js │ │ │ │ │ ├── modelica/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── modelica.js │ │ │ │ │ ├── nginx/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── nginx.js │ │ │ │ │ ├── ntriples/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── ntriples.js │ │ │ │ │ ├── octave/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── octave.js │ │ │ │ │ ├── pascal/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pascal.js │ │ │ │ │ ├── pegjs/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pegjs.js │ │ │ │ │ ├── perl/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── perl.js │ │ │ │ │ ├── php/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── php.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── pig/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pig.js │ │ │ │ │ ├── properties/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── properties.js │ │ │ │ │ ├── puppet/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── puppet.js │ │ │ │ │ ├── python/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── python.js │ │ │ │ │ ├── q/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── q.js │ │ │ │ │ ├── r/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── r.js │ │ │ │ │ ├── rpm/ │ │ │ │ │ │ ├── changes/ │ │ │ │ │ │ │ └── index.html │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rpm.js │ │ │ │ │ ├── rst/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rst.js │ │ │ │ │ ├── ruby/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── ruby.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── rust/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── rust.js │ │ │ │ │ ├── sass/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sass.js │ │ │ │ │ ├── scheme/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── scheme.js │ │ │ │ │ ├── shell/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── shell.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── sieve/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sieve.js │ │ │ │ │ ├── slim/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── slim.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── smalltalk/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smalltalk.js │ │ │ │ │ ├── smarty/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smarty.js │ │ │ │ │ ├── smartymixed/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── smartymixed.js │ │ │ │ │ ├── solr/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── solr.js │ │ │ │ │ ├── soy/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── soy.js │ │ │ │ │ ├── sparql/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sparql.js │ │ │ │ │ ├── spreadsheet/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── spreadsheet.js │ │ │ │ │ ├── sql/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sql.js │ │ │ │ │ ├── stex/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── stex.js │ │ │ │ │ │ └── test.js │ │ │ │ │ ├── stylus/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── stylus.js │ │ │ │ │ ├── tcl/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tcl.js │ │ │ │ │ ├── textile/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── textile.js │ │ │ │ │ ├── tiddlywiki/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiddlywiki.css │ │ │ │ │ │ └── tiddlywiki.js │ │ │ │ │ ├── tiki/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── tiki.css │ │ │ │ │ │ └── tiki.js │ │ │ │ │ ├── toml/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── toml.js │ │ │ │ │ ├── tornado/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── tornado.js │ │ │ │ │ ├── turtle/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── turtle.js │ │ │ │ │ ├── vb/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vb.js │ │ │ │ │ ├── vbscript/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── vbscript.js │ │ │ │ │ ├── velocity/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── velocity.js │ │ │ │ │ ├── verilog/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── verilog.js │ │ │ │ │ ├── xml/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xml.js │ │ │ │ │ ├── xquery/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── test.js │ │ │ │ │ │ └── xquery.js │ │ │ │ │ ├── yaml/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── yaml.js │ │ │ │ │ └── z80/ │ │ │ │ │ ├── index.html │ │ │ │ │ └── z80.js │ │ │ │ └── theme/ │ │ │ │ ├── 3024-day.css │ │ │ │ ├── 3024-night.css │ │ │ │ ├── ambiance-mobile.css │ │ │ │ ├── ambiance.css │ │ │ │ ├── base16-dark.css │ │ │ │ ├── base16-light.css │ │ │ │ ├── blackboard.css │ │ │ │ ├── cobalt.css │ │ │ │ ├── colorforth.css │ │ │ │ ├── eclipse.css │ │ │ │ ├── elegant.css │ │ │ │ ├── erlang-dark.css │ │ │ │ ├── lesser-dark.css │ │ │ │ ├── mbo.css │ │ │ │ ├── mdn-like.css │ │ │ │ ├── midnight.css │ │ │ │ ├── monokai.css │ │ │ │ ├── neat.css │ │ │ │ ├── neo.css │ │ │ │ ├── night.css │ │ │ │ ├── paraiso-dark.css │ │ │ │ ├── paraiso-light.css │ │ │ │ ├── pastel-on-dark.css │ │ │ │ ├── rubyblue.css │ │ │ │ ├── solarized.css │ │ │ │ ├── the-matrix.css │ │ │ │ ├── tomorrow-night-bright.css │ │ │ │ ├── tomorrow-night-eighties.css │ │ │ │ ├── twilight.css │ │ │ │ ├── vibrant-ink.css │ │ │ │ ├── xq-dark.css │ │ │ │ ├── xq-light.css │ │ │ │ └── zenburn.css │ │ │ └── plugins/ │ │ │ ├── code-block-dialog/ │ │ │ │ └── code-block-dialog.js │ │ │ ├── emoji-dialog/ │ │ │ │ ├── emoji-dialog.js │ │ │ │ └── emoji.json │ │ │ ├── goto-line-dialog/ │ │ │ │ └── goto-line-dialog.js │ │ │ ├── help-dialog/ │ │ │ │ ├── help-dialog.js │ │ │ │ └── help.md │ │ │ ├── html-entities-dialog/ │ │ │ │ ├── html-entities-dialog.js │ │ │ │ └── html-entities.json │ │ │ ├── image-dialog/ │ │ │ │ └── image-dialog.js │ │ │ ├── link-dialog/ │ │ │ │ └── link-dialog.js │ │ │ ├── plugin-template.js │ │ │ ├── preformatted-text-dialog/ │ │ │ │ └── preformatted-text-dialog.js │ │ │ ├── reference-link-dialog/ │ │ │ │ └── reference-link-dialog.js │ │ │ ├── table-dialog/ │ │ │ │ └── table-dialog.js │ │ │ └── test-plugin/ │ │ │ └── test-plugin.js │ │ ├── prism/ │ │ │ ├── prism.css │ │ │ └── prism.js │ │ └── tocbot/ │ │ ├── tocbot.css │ │ └── tocbot.js │ └── templates/ │ ├── about.html │ ├── admin/ │ │ ├── ai-assistant.html │ │ ├── blogs-input.html │ │ ├── blogs.html │ │ ├── fragments/ │ │ │ ├── footer.html │ │ │ ├── header.html │ │ │ └── sidebar.html │ │ ├── friendLinks-input.html │ │ ├── friendLinks.html │ │ ├── index.html │ │ ├── login.html │ │ ├── settings.html │ │ ├── tags-input.html │ │ ├── tags.html │ │ ├── types-input.html │ │ ├── types.html │ │ ├── users-input.html │ │ └── users.html │ ├── blog.html │ ├── error/ │ │ ├── 404.html │ │ ├── 500.html │ │ └── error.html │ ├── fragments/ │ │ ├── footer.html │ │ └── header.html │ ├── friends.html │ ├── index.html │ ├── message.html │ ├── search.html │ ├── tags.html │ ├── time.html │ └── types.html └── test/ └── java/ └── com/ └── blog/ ├── BlogApplicationTests.java ├── service/ │ ├── AIServiceTest.java │ └── SitemapServiceTest.java └── util/ ├── PasswordUtilsTest.java └── SEOUtilsTest.java