实例介绍
【实例简介】JPress,一个使用 Java 开发的建站神器v5.0.7
JPress,一个使用 Java 开发的建站神器,目前已经有许多网站使用JPress进行驱动, 在 Docker 上运行. 在阿里云(或腾讯云)一键通过 80 端口安装运行. 通过 Eclipse 或者 Idea 等开发工具运行.
【实例截图】
【核心代码】
.
├── JPress,一个使用 Java 开发的建站神器_jpress-v5.0.7.zip
├── jpress-v5.0.7
│ ├── Dockerfile
│ ├── Dockerfile.build
│ ├── LICENSE
│ ├── README.md
│ ├── changes.txt
│ ├── codegen
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ └── codegen
│ │ ├── AddonGenerator.java
│ │ ├── CodeGenKit.java
│ │ ├── ModuleGenerator.java
│ │ ├── SystemGenerator.java
│ │ ├── Tester.java
│ │ ├── generator
│ │ │ ├── AddonUIGenerator.java
│ │ │ ├── BaseModelGenerator.java
│ │ │ ├── BaseOptionsModelGenerator.java
│ │ │ ├── BaseSortModelGenerator.java
│ │ │ ├── BaseSortOptionsModelGenerator.java
│ │ │ ├── ModelGenerator.java
│ │ │ ├── ModuleUIGenerator.java
│ │ │ ├── ServiceApiGenerator.java
│ │ │ └── ServiceProviderGenerator.java
│ │ └── templates
│ │ ├── base_model_template.jf
│ │ ├── base_options_model_template.jf
│ │ ├── base_sort_model_template.jf
│ │ ├── base_sort_options_model_template.jf
│ │ ├── model_template.jf
│ │ ├── module_listener_template.jf
│ │ ├── pom_model_template.jf
│ │ ├── pom_module_template.jf
│ │ ├── pom_service_provider_template.jf
│ │ ├── pom_service_template.jf
│ │ ├── pom_web_template.jf
│ │ ├── service_provider_template.jf
│ │ ├── service_template.jf
│ │ ├── ui_controller_template.jf
│ │ ├── ui_controller_template_for_addon.jf
│ │ ├── ui_edit_template.jf
│ │ ├── ui_list_template.jf
│ │ └── ui_listener_template.jf
│ ├── doc
│ │ ├── assets
│ │ │ └── images
│ │ │ └── commons
│ │ │ ├── screenshot.png
│ │ │ └── wechat-group.png
│ │ ├── deploy.sh
│ │ ├── development
│ │ │ ├── addon
│ │ │ │ ├── codegen.md
│ │ │ │ ├── faq.md
│ │ │ │ ├── helloworld.md
│ │ │ │ ├── install.md
│ │ │ │ ├── resource.md
│ │ │ │ ├── start.md
│ │ │ │ ├── upgrade.md
│ │ │ │ └── wechat.md
│ │ │ ├── api
│ │ │ │ ├── api_article.md
│ │ │ │ ├── api_article_category.md
│ │ │ │ ├── api_article_comment.md
│ │ │ │ ├── api_job.md
│ │ │ │ ├── api_job_category.md
│ │ │ │ ├── api_option.md
│ │ │ │ ├── api_page.md
│ │ │ │ ├── api_product.md
│ │ │ │ ├── api_product_category.md
│ │ │ │ ├── api_product_comment.md
│ │ │ │ ├── api_user.md
│ │ │ │ └── api_wechat_mp.md
│ │ │ ├── idea_environment_config.md
│ │ │ ├── image
│ │ │ │ ├── module
│ │ │ │ │ ├── module_1.png
│ │ │ │ │ ├── module_10.png
│ │ │ │ │ ├── module_11.png
│ │ │ │ │ ├── module_12.png
│ │ │ │ │ ├── module_13.png
│ │ │ │ │ ├── module_14.png
│ │ │ │ │ ├── module_15.png
│ │ │ │ │ ├── module_16.png
│ │ │ │ │ ├── module_17.png
│ │ │ │ │ ├── module_18.png
│ │ │ │ │ ├── module_19.png
│ │ │ │ │ ├── module_2.png
│ │ │ │ │ ├── module_20.png
│ │ │ │ │ ├── module_21.png
│ │ │ │ │ ├── module_22.png
│ │ │ │ │ ├── module_23.png
│ │ │ │ │ ├── module_24.png
│ │ │ │ │ ├── module_25.png
│ │ │ │ │ ├── module_26.png
│ │ │ │ │ ├── module_27.png
│ │ │ │ │ ├── module_3.png
│ │ │ │ │ ├── module_4.png
│ │ │ │ │ ├── module_5.png
│ │ │ │ │ ├── module_6.png
│ │ │ │ │ ├── module_7.png
│ │ │ │ │ ├── module_8.png
│ │ │ │ │ └── module_9.png
│ │ │ │ └── template
│ │ │ │ ├── template_1.png
│ │ │ │ ├── template_10.png
│ │ │ │ ├── template_11.png
│ │ │ │ ├── template_12.png
│ │ │ │ ├── template_13.png
│ │ │ │ ├── template_14.png
│ │ │ │ ├── template_15.png
│ │ │ │ ├── template_16.png
│ │ │ │ ├── template_17.png
│ │ │ │ ├── template_18.png
│ │ │ │ ├── template_19.png
│ │ │ │ ├── template_2.png
│ │ │ │ ├── template_20.png
│ │ │ │ ├── template_21.png
│ │ │ │ ├── template_22.png
│ │ │ │ ├── template_23.png
│ │ │ │ ├── template_24.png
│ │ │ │ ├── template_25.png
│ │ │ │ ├── template_26.png
│ │ │ │ ├── template_27.png
│ │ │ │ ├── template_28.png
│ │ │ │ ├── template_29.png
│ │ │ │ ├── template_3.png
│ │ │ │ ├── template_30.png
│ │ │ │ ├── template_4.png
│ │ │ │ ├── template_5.png
│ │ │ │ ├── template_6.png
│ │ │ │ ├── template_7.png
│ │ │ │ ├── template_8.png
│ │ │ │ ├── template_9.png
│ │ │ │ └── template_block_image.png
│ │ │ ├── jdk_config.md
│ │ │ ├── jpress_compile_with_run.md
│ │ │ ├── jpress_download_source.md
│ │ │ ├── jpress_open_compiler.md
│ │ │ ├── maven_config.md
│ │ │ ├── module
│ │ │ │ ├── admin_menu_setting.md
│ │ │ │ ├── moduleGenerator.md
│ │ │ │ ├── module_import_compiler.md
│ │ │ │ ├── note.md
│ │ │ │ ├── panel_setting.md
│ │ │ │ ├── structure.md
│ │ │ │ ├── table_design.md
│ │ │ │ └── toolkit.md
│ │ │ ├── readme.md
│ │ │ └── template
│ │ │ ├── template_block.md
│ │ │ ├── template_command.md
│ │ │ ├── template_directory.md
│ │ │ ├── template_global_method.md
│ │ │ ├── template_global_variable.md
│ │ │ ├── template_grammar.md
│ │ │ ├── template_introduce.md
│ │ │ └── template_setting.md
│ │ ├── manual
│ │ │ ├── addon.md
│ │ │ ├── admin-doc
│ │ │ │ ├── article.jpg
│ │ │ │ ├── article2.png
│ │ │ │ ├── article3.jpg
│ │ │ │ ├── article4.jpg
│ │ │ │ ├── article5.png
│ │ │ │ ├── article6.jpg
│ │ │ │ ├── article7.jpg
│ │ │ │ ├── attachment.jpg
│ │ │ │ ├── attachment2.jpg
│ │ │ │ ├── attachment3.jpg
│ │ │ │ ├── category.png
│ │ │ │ ├── code.png
│ │ │ │ ├── coupons.png
│ │ │ │ ├── coupons2.png
│ │ │ │ ├── filter.png
│ │ │ │ ├── goods.png
│ │ │ │ ├── job.png
│ │ │ │ ├── job1.png
│ │ │ │ ├── job2.png
│ │ │ │ ├── job3.png
│ │ │ │ ├── menu.png
│ │ │ │ ├── notice.png
│ │ │ │ ├── notice2.png
│ │ │ │ ├── page.jpg
│ │ │ │ ├── page.png
│ │ │ │ ├── pay.png
│ │ │ │ ├── plugin.jpg
│ │ │ │ ├── reply.png
│ │ │ │ ├── screenshot.png
│ │ │ │ ├── seo1.png
│ │ │ │ ├── seo2.png
│ │ │ │ ├── seo3.png
│ │ │ │ ├── setting.jpg
│ │ │ │ ├── setting1.jpg
│ │ │ │ ├── setting2.jpg
│ │ │ │ ├── setting3.jpg
│ │ │ │ ├── setting4.jpg
│ │ │ │ ├── setting5.jpg
│ │ │ │ ├── setting6.jpg
│ │ │ │ ├── setting7.jpg
│ │ │ │ ├── shop.jpg
│ │ │ │ ├── shop2.jpg
│ │ │ │ ├── template.png
│ │ │ │ ├── template1.jpg
│ │ │ │ ├── template2.jpg
│ │ │ │ ├── template2.png
│ │ │ │ ├── template3.jpg
│ │ │ │ ├── tools.jpg
│ │ │ │ ├── user.jpg
│ │ │ │ ├── user2.jpg
│ │ │ │ ├── user3.jpg
│ │ │ │ ├── user4.jpg
│ │ │ │ ├── watermark.png
│ │ │ │ ├── wechat.png
│ │ │ │ ├── wechat1.jpg
│ │ │ │ ├── wechat2.jpg
│ │ │ │ ├── wechat3.jpg
│ │ │ │ ├── wechat4.jpg
│ │ │ │ ├── wechat5.jpg
│ │ │ │ └── wp.png
│ │ │ ├── article.md
│ │ │ ├── attachment.md
│ │ │ ├── bt_config.md
│ │ │ ├── bt_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_20.png
│ │ │ │ ├── img_21.png
│ │ │ │ ├── img_22.png
│ │ │ │ ├── img_23.png
│ │ │ │ ├── img_24.png
│ │ │ │ ├── img_25.png
│ │ │ │ ├── img_26.png
│ │ │ │ ├── img_27.png
│ │ │ │ ├── img_28.png
│ │ │ │ ├── img_29.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_30.png
│ │ │ │ ├── img_31.png
│ │ │ │ ├── img_32.png
│ │ │ │ ├── img_33.png
│ │ │ │ ├── img_34.png
│ │ │ │ ├── img_35.png
│ │ │ │ ├── img_36.png
│ │ │ │ ├── img_37.png
│ │ │ │ ├── img_38.png
│ │ │ │ ├── img_39.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_40.png
│ │ │ │ ├── img_41.png
│ │ │ │ ├── img_42.png
│ │ │ │ ├── img_43.png
│ │ │ │ ├── img_44.png
│ │ │ │ ├── img_45.png
│ │ │ │ ├── img_46.png
│ │ │ │ ├── img_47.png
│ │ │ │ ├── img_48.png
│ │ │ │ ├── img_49.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_50.png
│ │ │ │ ├── img_51.png
│ │ │ │ ├── img_52.png
│ │ │ │ ├── img_53.png
│ │ │ │ ├── img_54.png
│ │ │ │ ├── img_55.png
│ │ │ │ ├── img_56.png
│ │ │ │ ├── img_57.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── ces_bt_config.md
│ │ │ ├── docker_config.md
│ │ │ ├── docker_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── eclipse
│ │ │ │ ├── eclipse_1.png
│ │ │ │ ├── eclipse_2.png
│ │ │ │ ├── eclipse_3.png
│ │ │ │ ├── eclipse_4.png
│ │ │ │ └── eclipse_5.png
│ │ │ ├── faq.md
│ │ │ ├── idea
│ │ │ │ ├── idea_1.png
│ │ │ │ ├── idea_2.png
│ │ │ │ ├── idea_3.png
│ │ │ │ ├── idea_4.png
│ │ │ │ └── idea_5.png
│ │ │ ├── idea_environment_config.md
│ │ │ ├── install_docker.md
│ │ │ ├── install_oneclick.md
│ │ │ ├── jdk_config.md
│ │ │ ├── jdk_image
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── jdk_1.png
│ │ │ │ ├── jdk_10.png
│ │ │ │ ├── jdk_11.png
│ │ │ │ ├── jdk_12.png
│ │ │ │ ├── jdk_2.png
│ │ │ │ ├── jdk_3.png
│ │ │ │ ├── jdk_4.png
│ │ │ │ ├── jdk_5.png
│ │ │ │ ├── jdk_6.png
│ │ │ │ ├── jdk_7.png
│ │ │ │ ├── jdk_8.png
│ │ │ │ └── jdk_9.png
│ │ │ ├── job.md
│ │ │ ├── jpress
│ │ │ │ ├── jpress_1.png
│ │ │ │ ├── jpress_10.png
│ │ │ │ ├── jpress_11.png
│ │ │ │ ├── jpress_12.png
│ │ │ │ ├── jpress_13.png
│ │ │ │ ├── jpress_14.png
│ │ │ │ ├── jpress_15.png
│ │ │ │ ├── jpress_16.png
│ │ │ │ ├── jpress_17.png
│ │ │ │ ├── jpress_18.png
│ │ │ │ ├── jpress_2.png
│ │ │ │ ├── jpress_3.png
│ │ │ │ ├── jpress_4.png
│ │ │ │ ├── jpress_5.png
│ │ │ │ ├── jpress_6.png
│ │ │ │ ├── jpress_7.png
│ │ │ │ ├── jpress_8.png
│ │ │ │ └── jpress_9.png
│ │ │ ├── jpress_compile_with_run.md
│ │ │ ├── jpress_download_source.md
│ │ │ ├── jpress_open_compiler.md
│ │ │ ├── kits.md
│ │ │ ├── linux-tomcat-deploy.md
│ │ │ ├── linux_config.md
│ │ │ ├── linux_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_11111.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── linux_tomcat_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_20.png
│ │ │ │ ├── img_21.png
│ │ │ │ ├── img_22.png
│ │ │ │ ├── img_23.png
│ │ │ │ ├── img_24.png
│ │ │ │ ├── img_25.png
│ │ │ │ ├── img_26.png
│ │ │ │ ├── img_27.png
│ │ │ │ ├── img_28.png
│ │ │ │ ├── img_29.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_30.png
│ │ │ │ ├── img_31.png
│ │ │ │ ├── img_32.png
│ │ │ │ ├── img_33.png
│ │ │ │ ├── img_34.png
│ │ │ │ ├── img_35.png
│ │ │ │ ├── img_36.png
│ │ │ │ ├── img_37.png
│ │ │ │ ├── img_38.png
│ │ │ │ ├── img_39.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_40.png
│ │ │ │ ├── img_41.png
│ │ │ │ ├── img_42.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── linux_undertow_deploy.md
│ │ │ ├── linux_undertow_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_20.png
│ │ │ │ ├── img_21.png
│ │ │ │ ├── img_22.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── maven_config.md
│ │ │ ├── maven_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── mysql_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_20.png
│ │ │ │ ├── img_21.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── page.md
│ │ │ ├── product.md
│ │ │ ├── project_transfer.md
│ │ │ ├── project_transfer_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ └── img_5.png
│ │ │ ├── project_upgrade
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ └── img_8.png
│ │ │ ├── project_upgrade.md
│ │ │ ├── readme.md
│ │ │ ├── setting.md
│ │ │ ├── start.md
│ │ │ ├── template.md
│ │ │ ├── tomcat_config.md
│ │ │ ├── tomcat_img
│ │ │ │ ├── img.png
│ │ │ │ ├── img_1.png
│ │ │ │ ├── img_10.png
│ │ │ │ ├── img_11.png
│ │ │ │ ├── img_12.png
│ │ │ │ ├── img_13.png
│ │ │ │ ├── img_14.png
│ │ │ │ ├── img_15.png
│ │ │ │ ├── img_16.png
│ │ │ │ ├── img_17.png
│ │ │ │ ├── img_18.png
│ │ │ │ ├── img_19.png
│ │ │ │ ├── img_2.png
│ │ │ │ ├── img_20.png
│ │ │ │ ├── img_21.png
│ │ │ │ ├── img_22.png
│ │ │ │ ├── img_23.png
│ │ │ │ ├── img_24.png
│ │ │ │ ├── img_25.png
│ │ │ │ ├── img_26.png
│ │ │ │ ├── img_27.png
│ │ │ │ ├── img_28.png
│ │ │ │ ├── img_3.png
│ │ │ │ ├── img_4.png
│ │ │ │ ├── img_5.png
│ │ │ │ ├── img_6.png
│ │ │ │ ├── img_7.png
│ │ │ │ ├── img_8.png
│ │ │ │ └── img_9.png
│ │ │ ├── user.md
│ │ │ ├── wechat.md
│ │ │ ├── windows-tomcat-deploy.md
│ │ │ ├── windows_undertow_deploy.md
│ │ │ └── windows_undertow_img
│ │ │ ├── img.png
│ │ │ ├── img_1.png
│ │ │ ├── img_10.png
│ │ │ ├── img_11.png
│ │ │ ├── img_12.png
│ │ │ ├── img_13.png
│ │ │ ├── img_14.png
│ │ │ ├── img_15.png
│ │ │ ├── img_2.png
│ │ │ ├── img_3.png
│ │ │ ├── img_4.png
│ │ │ ├── img_5.png
│ │ │ ├── img_6.png
│ │ │ ├── img_7.png
│ │ │ ├── img_8.png
│ │ │ └── img_9.png
│ │ ├── package.json
│ │ └── readme.md
│ ├── docker
│ │ ├── Dockerfile.base
│ │ ├── build-base.sh
│ │ ├── docker-compose-dev.yml
│ │ ├── docker-compose-nginx.yml
│ │ ├── files
│ │ │ ├── jboot.properties
│ │ │ ├── jpress.sh
│ │ │ ├── settings.xml
│ │ │ └── wqy-zenhei.ttc
│ │ ├── nginx
│ │ │ └── nginx.conf
│ │ └── push-base.sh
│ ├── docker-build.sh
│ ├── docker-compose.yml
│ ├── install.sh
│ ├── jpress-addons
│ │ ├── jpress-addon-helloworld
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── addon
│ │ │ │ └── helloworld
│ │ │ │ ├── HelloWorldAddon.java
│ │ │ │ ├── HelloWorldAddonController.java
│ │ │ │ ├── HelloWorldAddonHandler.java
│ │ │ │ ├── HelloWorldAddonInterceptor.java
│ │ │ │ └── HelloWorldUpgrader.java
│ │ │ ├── resources
│ │ │ │ ├── addon.txt
│ │ │ │ └── config.txt
│ │ │ └── webapp
│ │ │ └── helloworld
│ │ │ └── index.html
│ │ ├── jpress-addon-message
│ │ │ ├── LICENSE
│ │ │ ├── README.md
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── addon
│ │ │ │ └── message
│ │ │ │ ├── Codegen.java
│ │ │ │ ├── MessageAddon.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── MessageController.java
│ │ │ │ │ └── _MessageController.java
│ │ │ │ ├── directive
│ │ │ │ │ └── MessageListDirective.java
│ │ │ │ ├── model
│ │ │ │ │ ├── JpressAddonMessage.java
│ │ │ │ │ └── base
│ │ │ │ │ └── BaseJpressAddonMessage.java
│ │ │ │ └── service
│ │ │ │ ├── JpressAddonMessageService.java
│ │ │ │ └── provider
│ │ │ │ └── JpressAddonMessageServiceProvider.java
│ │ │ ├── resources
│ │ │ │ ├── addon.txt
│ │ │ │ ├── changelog.txt
│ │ │ │ ├── readme.txt
│ │ │ │ └── sql
│ │ │ │ ├── install.sql
│ │ │ │ └── uninstall.sql
│ │ │ └── webapp
│ │ │ └── views
│ │ │ ├── jpress_addon_message_edit.html
│ │ │ └── jpress_addon_message_list.html
│ │ └── pom.xml
│ ├── jpress-commons
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ ├── JPressActiveKit.java
│ │ ├── JPressConfig.java
│ │ ├── JPressConsts.java
│ │ ├── JPressMenuConfig.java
│ │ ├── JPressOptions.java
│ │ ├── SiteContext.java
│ │ ├── base
│ │ │ ├── BaseOptionsModel.java
│ │ │ ├── BaseSortModel.java
│ │ │ └── BaseSortOptionsModel.java
│ │ └── commons
│ │ ├── CacheObject.java
│ │ ├── Rets.java
│ │ ├── UserAgentUtil.java
│ │ ├── aliyun
│ │ │ ├── AliyunLiveUtil.java
│ │ │ ├── AliyunVideoUtil.java
│ │ │ └── CloudVideoInfo.java
│ │ ├── authcode
│ │ │ ├── AuthCode.java
│ │ │ └── AuthCodeKit.java
│ │ ├── bean
│ │ │ └── RenderList.java
│ │ ├── directive
│ │ │ └── StringSplitDirective.java
│ │ ├── email
│ │ │ ├── AliyunEmailSender.java
│ │ │ ├── Email.java
│ │ │ ├── EmailKit.java
│ │ │ ├── EmailSender.java
│ │ │ └── SimpleEmailSender.java
│ │ ├── layer
│ │ │ ├── SortKit.java
│ │ │ └── SortModel.java
│ │ ├── qcloud
│ │ │ ├── QCloudApiUtil.java
│ │ │ ├── QCloudLiveUtil.java
│ │ │ ├── QCloudVideoUtil.java
│ │ │ └── Signature.java
│ │ ├── service
│ │ │ ├── JPressServiceBase.java
│ │ │ └── SiteModelProxy.java
│ │ ├── sms
│ │ │ ├── AliyunSmsSender.java
│ │ │ ├── NonSmsSender.java
│ │ │ ├── QCloudSmsSender.java
│ │ │ ├── SmsKit.java
│ │ │ ├── SmsMessage.java
│ │ │ ├── SmsSender.java
│ │ │ └── SmsSenderFactory.java
│ │ ├── url
│ │ │ ├── CommonsFlatUrlProcesser.java
│ │ │ ├── FlatUrlHandler.java
│ │ │ └── FlatUrlProcesser.java
│ │ ├── utils
│ │ │ ├── AliyunOssUtils.java
│ │ │ ├── AttachmentUtils.java
│ │ │ ├── CloudWordFilterUtil.java
│ │ │ ├── CommonsUtils.java
│ │ │ ├── HttpProxy.java
│ │ │ ├── ImageUtils.java
│ │ │ ├── JsoupUtils.java
│ │ │ ├── MarkdownUtils.java
│ │ │ ├── SessionUtils.java
│ │ │ ├── SignUtils.java
│ │ │ ├── SqlUtils.java
│ │ │ └── UrlUtils.java
│ │ └── wordsfilter
│ │ ├── WordFilterUtil.java
│ │ └── algorithm
│ │ ├── BCConvert.java
│ │ ├── DFAConfig.java
│ │ ├── DFAFilter.java
│ │ ├── DFAMatch.java
│ │ └── DFANode.java
│ ├── jpress-core
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ ├── JPressCoreInitializer.java
│ │ ├── core
│ │ │ ├── addon
│ │ │ │ ├── Addon.java
│ │ │ │ ├── AddonBase.java
│ │ │ │ ├── AddonClassLoader.java
│ │ │ │ ├── AddonInfo.java
│ │ │ │ ├── AddonManager.java
│ │ │ │ ├── AddonNotifier.java
│ │ │ │ ├── AddonUpgrader.java
│ │ │ │ ├── AddonUtil.java
│ │ │ │ ├── annotation
│ │ │ │ │ └── GlobalInterceptor.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── AddonControllerManager.java
│ │ │ │ │ └── AddonControllerProcesser.java
│ │ │ │ ├── handler
│ │ │ │ │ ├── AddonHandlerManager.java
│ │ │ │ │ └── AddonHandlerProcesser.java
│ │ │ │ ├── interceptor
│ │ │ │ │ ├── AddonInterceptorManager.java
│ │ │ │ │ └── AddonInterceptorProcesser.java
│ │ │ │ └── template
│ │ │ │ └── AddonTemplateEnv.java
│ │ │ ├── annotation
│ │ │ │ ├── AdminPermission.java
│ │ │ │ └── NeedUserLogined.java
│ │ │ ├── attachment
│ │ │ │ └── AttachmentDownloader.java
│ │ │ ├── bsformbuilder
│ │ │ │ ├── BsFormComponent.java
│ │ │ │ ├── BsFormDatasource.java
│ │ │ │ ├── BsFormManager.java
│ │ │ │ ├── BsFormOption.java
│ │ │ │ ├── BsFromComponentData.java
│ │ │ │ └── DataBase.java
│ │ │ ├── install
│ │ │ │ ├── Consts.java
│ │ │ │ ├── DbExecuter.java
│ │ │ │ ├── InstallHandler.java
│ │ │ │ ├── InstallManager.java
│ │ │ │ └── Installer.java
│ │ │ ├── menu
│ │ │ │ ├── MenuArrayList.java
│ │ │ │ ├── MenuGroup.java
│ │ │ │ ├── MenuItem.java
│ │ │ │ ├── MenuManager.java
│ │ │ │ └── annotation
│ │ │ │ ├── AdminMenu.java
│ │ │ │ └── UCenterMenu.java
│ │ │ ├── module
│ │ │ │ ├── ModuleBase.java
│ │ │ │ ├── ModuleListener.java
│ │ │ │ └── ModuleManager.java
│ │ │ ├── site
│ │ │ │ └── SiteManager.java
│ │ │ ├── support
│ │ │ │ └── smartfield
│ │ │ │ ├── SmartField.java
│ │ │ │ ├── SmartFieldRender.java
│ │ │ │ ├── SmartFieldRenderFactory.java
│ │ │ │ └── renders
│ │ │ │ ├── CheckboxRender.java
│ │ │ │ ├── DateRender.java
│ │ │ │ ├── DatetimeRender.java
│ │ │ │ ├── FileRender.java
│ │ │ │ ├── ImageRender.java
│ │ │ │ ├── InputRender.java
│ │ │ │ ├── RadioRender.java
│ │ │ │ ├── RenderKit.java
│ │ │ │ ├── SelectRender.java
│ │ │ │ ├── SwitchRender.java
│ │ │ │ └── TextareaRender.java
│ │ │ ├── template
│ │ │ │ ├── BlockContainerComponent.java
│ │ │ │ ├── BlockContainerDef.java
│ │ │ │ ├── BlockFunctions.java
│ │ │ │ ├── BlockManager.java
│ │ │ │ ├── HtmlBlock.java
│ │ │ │ ├── HtmlBlockOptionDef.java
│ │ │ │ ├── Template.java
│ │ │ │ ├── TemplateManager.java
│ │ │ │ ├── TemplateStyle.java
│ │ │ │ ├── TemplateUtil.java
│ │ │ │ └── directive
│ │ │ │ ├── BlockContainerDirective.java
│ │ │ │ └── BlockOptionDirective.java
│ │ │ └── wechat
│ │ │ ├── WechatAddon.java
│ │ │ ├── WechatAddonConfig.java
│ │ │ ├── WechatAddonInfo.java
│ │ │ └── WechatAddonManager.java
│ │ └── web
│ │ ├── base
│ │ │ ├── AdminControllerBase.java
│ │ │ ├── ApiControllerBase.java
│ │ │ ├── ControllerBase.java
│ │ │ ├── TemplateControllerBase.java
│ │ │ ├── UcenterControllerBase.java
│ │ │ └── UserControllerBase.java
│ │ ├── directive
│ │ │ ├── CheckedIfDirective.java
│ │ │ ├── HasAddonDirective.java
│ │ │ ├── MaxLengthDirective.java
│ │ │ ├── ParaDirective.java
│ │ │ ├── SelectedIfDirective.java
│ │ │ └── UnescapeDirective.java
│ │ ├── functions
│ │ │ └── JPressCoreFunctions.java
│ │ ├── handler
│ │ │ ├── AttachmentHandlerKit.java
│ │ │ ├── JPressHandler.java
│ │ │ └── SiteHandler.java
│ │ ├── interceptor
│ │ │ ├── AdminInterceptor.java
│ │ │ ├── ApiInterceptor.java
│ │ │ ├── CSRFInterceptor.java
│ │ │ ├── JPressInterceptor.java
│ │ │ ├── PermissionInterceptor.java
│ │ │ ├── TemplateInterceptor.java
│ │ │ ├── UTMInterceptor.java
│ │ │ ├── UserCenterInterceptor.java
│ │ │ ├── UserInterceptor.java
│ │ │ ├── UserMustLoginedInterceptor.java
│ │ │ └── WechatInterceptor.java
│ │ ├── render
│ │ │ ├── GlobalErrorRender.java
│ │ │ ├── JPressRedirectRender.java
│ │ │ ├── JPressRenderFactory.java
│ │ │ └── TemplateRender.java
│ │ ├── seoping
│ │ │ ├── BaiduPinger.java
│ │ │ ├── BaiduSeoProcesser.java
│ │ │ ├── GooglePinger.java
│ │ │ ├── PingData.java
│ │ │ ├── Pinger.java
│ │ │ ├── SeoManager.java
│ │ │ └── Util.java
│ │ └── sitemap
│ │ ├── Sitemap.java
│ │ ├── SitemapController.java
│ │ ├── SitemapHandler.java
│ │ ├── SitemapManager.java
│ │ ├── SitemapProvider.java
│ │ └── SitemapUtil.java
│ ├── jpress-model
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ └── model
│ │ ├── Attachment.java
│ │ ├── AttachmentCategory.java
│ │ ├── AttachmentVideo.java
│ │ ├── AttachmentVideoCategory.java
│ │ ├── Menu.java
│ │ ├── Option.java
│ │ ├── Permission.java
│ │ ├── Role.java
│ │ ├── SiteInfo.java
│ │ ├── TemplateBlockOption.java
│ │ ├── User.java
│ │ ├── UserOpenid.java
│ │ ├── UserTag.java
│ │ ├── Utm.java
│ │ ├── WechatMenu.java
│ │ ├── WechatReply.java
│ │ └── base
│ │ ├── BaseAttachment.java
│ │ ├── BaseAttachmentCategory.java
│ │ ├── BaseAttachmentVideo.java
│ │ ├── BaseAttachmentVideoCategory.java
│ │ ├── BaseMenu.java
│ │ ├── BaseOption.java
│ │ ├── BasePermission.java
│ │ ├── BaseRole.java
│ │ ├── BaseSiteInfo.java
│ │ ├── BaseTemplateBlockOption.java
│ │ ├── BaseUser.java
│ │ ├── BaseUserOpenid.java
│ │ ├── BaseUserTag.java
│ │ ├── BaseUtm.java
│ │ ├── BaseWechatMenu.java
│ │ └── BaseWechatReply.java
│ ├── jpress-service
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ └── service
│ │ ├── AttachmentCategoryService.java
│ │ ├── AttachmentService.java
│ │ ├── AttachmentVideoCategoryService.java
│ │ ├── AttachmentVideoService.java
│ │ ├── MenuService.java
│ │ ├── OptionService.java
│ │ ├── PermissionService.java
│ │ ├── RoleService.java
│ │ ├── SiteInfoService.java
│ │ ├── TemplateBlockOptionService.java
│ │ ├── UserOpenidService.java
│ │ ├── UserService.java
│ │ ├── UserTagService.java
│ │ ├── UtmService.java
│ │ ├── WechatMenuService.java
│ │ └── WechatReplyService.java
│ ├── jpress-service-provider
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── java
│ │ └── io
│ │ └── jpress
│ │ └── service
│ │ ├── ServiceInitializer.java
│ │ ├── provider
│ │ │ ├── AttachmentCategoryServiceProvider.java
│ │ │ ├── AttachmentServiceProvider.java
│ │ │ ├── AttachmentVideoCategoryServiceProvider.java
│ │ │ ├── AttachmentVideoServiceProvider.java
│ │ │ ├── MenuServiceProvider.java
│ │ │ ├── OptionServiceProvider.java
│ │ │ ├── PermissionServiceProvider.java
│ │ │ ├── RoleServiceProvider.java
│ │ │ ├── SiteInfoServiceProvider.java
│ │ │ ├── TemplateBlockOptionServiceProvider.java
│ │ │ ├── UserOpenidServiceProvider.java
│ │ │ ├── UserServiceProvider.java
│ │ │ ├── UserTagServiceProvider.java
│ │ │ ├── UtmServiceProvider.java
│ │ │ ├── WechatMenuServiceProvider.java
│ │ │ └── WechatReplyServiceProvider.java
│ │ └── task
│ │ └── UtmBatchSaveTask.java
│ ├── jpress-template
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ └── webapp
│ │ └── templates
│ │ ├── BonHumeur
│ │ │ ├── article.html
│ │ │ ├── artlist.html
│ │ │ ├── bootstrap
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ │ └── bootstrap.min.css
│ │ │ │ └── js
│ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ └── bootstrap.min.js
│ │ │ ├── css
│ │ │ │ └── bh-css.css
│ │ │ ├── error.html
│ │ │ ├── header.html
│ │ │ ├── highlight
│ │ │ │ ├── highlight.pack.js
│ │ │ │ └── styles
│ │ │ │ └── railscasts.css
│ │ │ ├── img
│ │ │ │ ├── avatar.png
│ │ │ │ ├── blog-image.jpg
│ │ │ │ ├── list-image.jpg
│ │ │ │ └── sidebar-image.jpg
│ │ │ ├── index.html
│ │ │ ├── job.html
│ │ │ ├── job_apply.html
│ │ │ ├── jobemail.html
│ │ │ ├── joblist.html
│ │ │ ├── layout.html
│ │ │ ├── page.html
│ │ │ ├── pagelist.html
│ │ │ ├── product.html
│ │ │ ├── prolist.html
│ │ │ ├── screenshot.png
│ │ │ ├── setting.html
│ │ │ └── template.properties
│ │ ├── JPressPortal
│ │ │ ├── article.html
│ │ │ ├── artlist.html
│ │ │ ├── block_customer.html
│ │ │ ├── bootstrap
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ │ └── bootstrap.min.css
│ │ │ │ └── js
│ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ └── bootstrap.min.js
│ │ │ ├── css
│ │ │ │ └── bl-css.css
│ │ │ ├── highlight
│ │ │ │ ├── highlight.pack.js
│ │ │ │ └── styles
│ │ │ │ └── railscasts.css
│ │ │ ├── img
│ │ │ │ ├── about-banner.png
│ │ │ │ ├── avatar.png
│ │ │ │ ├── blog-image.jpg
│ │ │ │ ├── default-img.jpg
│ │ │ │ ├── jpress-banner.png
│ │ │ │ ├── portrait.jpg
│ │ │ │ ├── product-b.jpg
│ │ │ │ ├── product-k.jpg
│ │ │ │ ├── product-m.jpg
│ │ │ │ ├── product-o.jpg
│ │ │ │ ├── product-q.jpg
│ │ │ │ ├── product-w.jpg
│ │ │ │ └── product1.jpg
│ │ │ ├── index.html
│ │ │ ├── job.html
│ │ │ ├── job_apply.html
│ │ │ ├── jobemail.html
│ │ │ ├── joblist.html
│ │ │ ├── layout.html
│ │ │ ├── page.html
│ │ │ ├── page_leftbar.html
│ │ │ ├── pagelist.html
│ │ │ ├── product.html
│ │ │ ├── prolist.html
│ │ │ ├── screenshot.png
│ │ │ ├── setting.html
│ │ │ └── template.properties
│ │ ├── calmlog
│ │ │ ├── _rightbar.html
│ │ │ ├── article.html
│ │ │ ├── artlist.html
│ │ │ ├── artsearch.html
│ │ │ ├── block_newarticles.html
│ │ │ ├── block_search.html
│ │ │ ├── block_slides.html
│ │ │ ├── block_tags.html
│ │ │ ├── block_wechat.html
│ │ │ ├── bootstrap
│ │ │ │ ├── css
│ │ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ │ └── bootstrap.min.css
│ │ │ │ └── js
│ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ └── bootstrap.min.js
│ │ │ ├── css
│ │ │ │ └── cl-css.css
│ │ │ ├── highlight
│ │ │ │ ├── highlight.pack.js
│ │ │ │ └── styles
│ │ │ │ └── railscasts.css
│ │ │ ├── img
│ │ │ │ ├── avatar.png
│ │ │ │ ├── code.jpg
│ │ │ │ ├── default-img.jpg
│ │ │ │ ├── default-img.png
│ │ │ │ ├── logo.jpg
│ │ │ │ └── portrait.png
│ │ │ ├── index.html
│ │ │ ├── job.html
│ │ │ ├── job_apply.html
│ │ │ ├── jobemail.html
│ │ │ ├── joblist.html
│ │ │ ├── layout.html
│ │ │ ├── page.html
│ │ │ ├── page_rightbar.html
│ │ │ ├── pagelist.html
│ │ │ ├── product.html
│ │ │ ├── prolist.html
│ │ │ ├── screenshot.png
│ │ │ ├── setting.html
│ │ │ └── template.properties
│ │ └── lightlog
│ │ ├── article.html
│ │ ├── artlist.html
│ │ ├── bootstrap
│ │ │ ├── css
│ │ │ │ ├── bootstrap-grid.min.css
│ │ │ │ ├── bootstrap-reboot.min.css
│ │ │ │ └── bootstrap.min.css
│ │ │ └── js
│ │ │ ├── bootstrap.bundle.min.js
│ │ │ └── bootstrap.min.js
│ │ ├── css
│ │ │ └── ll-css.css
│ │ ├── highlight
│ │ │ ├── highlight.pack.js
│ │ │ └── styles
│ │ │ └── railscasts.css
│ │ ├── img
│ │ │ ├── 11.jpeg
│ │ │ ├── 22.jpg
│ │ │ ├── avatar.png
│ │ │ ├── default-img.jpg
│ │ │ └── icon-portrait.png
│ │ ├── index.html
│ │ ├── job.html
│ │ ├── job_apply.html
│ │ ├── jobemail.html
│ │ ├── joblist.html
│ │ ├── layout.html
│ │ ├── page.html
│ │ ├── pagelist.html
│ │ ├── product.html
│ │ ├── prolist.html
│ │ ├── screenshot.png
│ │ ├── setting.html
│ │ └── template.properties
│ ├── jpress-web
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── web
│ │ │ │ ├── OptionInitializer.java
│ │ │ │ ├── WebInitializer.java
│ │ │ │ ├── admin
│ │ │ │ │ ├── _AddonController.java
│ │ │ │ │ ├── _AdminController.java
│ │ │ │ │ ├── _AttachmentController.java
│ │ │ │ │ ├── _AttachmentVideoController.java
│ │ │ │ │ ├── _OptionController.java
│ │ │ │ │ ├── _PermissionController.java
│ │ │ │ │ ├── _PreviewController.java
│ │ │ │ │ ├── _SettingController.java
│ │ │ │ │ ├── _SiteController.java
│ │ │ │ │ ├── _TemplateBlockController.java
│ │ │ │ │ ├── _TemplateController.java
│ │ │ │ │ ├── _UserController.java
│ │ │ │ │ ├── _UserInfoController.java
│ │ │ │ │ ├── _UserRoleController.java
│ │ │ │ │ ├── _WechatController.java
│ │ │ │ │ ├── directive
│ │ │ │ │ │ └── _PaginateDirective.java
│ │ │ │ │ └── kits
│ │ │ │ │ └── PermissionKits.java
│ │ │ │ ├── api
│ │ │ │ │ ├── BaseWechatDecryptController.java
│ │ │ │ │ ├── OptionApiController.java
│ │ │ │ │ ├── UserApiController.java
│ │ │ │ │ ├── WechatMiniProgramApiController.java
│ │ │ │ │ ├── WechatMiniProgramApiInterceptor.java
│ │ │ │ │ └── html2wxml
│ │ │ │ │ ├── Html2WxmlController.java
│ │ │ │ │ ├── HtmlToJson.java
│ │ │ │ │ └── Params.java
│ │ │ │ ├── commons
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── AttachmentController.java
│ │ │ │ │ │ ├── CKEditor5Controller.java
│ │ │ │ │ │ ├── CKEditorController.java
│ │ │ │ │ │ ├── CaptchaController.java
│ │ │ │ │ │ ├── ChangeEditorController.java
│ │ │ │ │ │ ├── EmailActivateController.java
│ │ │ │ │ │ ├── SelectUserController.java
│ │ │ │ │ │ ├── SendEmailCodeController.java
│ │ │ │ │ │ ├── SendSmsCodeController.java
│ │ │ │ │ │ ├── VditorController.java
│ │ │ │ │ │ └── VideoController.java
│ │ │ │ │ ├── email
│ │ │ │ │ │ ├── AdminMessageSender.java
│ │ │ │ │ │ └── EmailSender.java
│ │ │ │ │ ├── modelfilter
│ │ │ │ │ │ └── JPressModelFilter.java
│ │ │ │ │ └── textfilter
│ │ │ │ │ ├── TextFilter.java
│ │ │ │ │ ├── TextFilterManager.java
│ │ │ │ │ └── impl
│ │ │ │ │ ├── AliyunTextFilter.java
│ │ │ │ │ ├── TmsTextFilter.java
│ │ │ │ │ ├── UltrapowerTextFilter.java
│ │ │ │ │ └── XiaohuaerAITextFilter.java
│ │ │ │ ├── cpatcha
│ │ │ │ │ ├── CaptchaCache.java
│ │ │ │ │ ├── CaptchaConfig.java
│ │ │ │ │ └── CaptchaController.java
│ │ │ │ ├── directive
│ │ │ │ │ ├── AnyRoleDirective.java
│ │ │ │ │ ├── EditorContentDirective.java
│ │ │ │ │ ├── HasPermissionDirective.java
│ │ │ │ │ ├── OptionDirective.java
│ │ │ │ │ ├── RoleDirective.java
│ │ │ │ │ └── UseTagsDirective.java
│ │ │ │ ├── front
│ │ │ │ │ ├── IndexController.java
│ │ │ │ │ ├── UserCenterController.java
│ │ │ │ │ └── UserController.java
│ │ │ │ ├── functions
│ │ │ │ │ └── PermissionFunctions.java
│ │ │ │ ├── install
│ │ │ │ │ ├── InstallController.java
│ │ │ │ │ ├── InstallInterceptor.java
│ │ │ │ │ └── InstallUtil.java
│ │ │ │ └── wechat
│ │ │ │ ├── GetOpenIdAddon.java
│ │ │ │ ├── HelloWechatAddon.java
│ │ │ │ ├── WechatAuthorizationController.java
│ │ │ │ ├── WechatMsgNotifyController.java
│ │ │ │ └── WechatMsgUtil.java
│ │ │ ├── resources
│ │ │ │ └── META-INF
│ │ │ │ └── services
│ │ │ │ └── com.anji.captcha.service.CaptchaCacheService
│ │ │ └── webapp
│ │ │ ├── WEB-INF
│ │ │ │ ├── install
│ │ │ │ │ ├── sqls
│ │ │ │ │ │ ├── install.sql
│ │ │ │ │ │ └── v3_upgrade.sql
│ │ │ │ │ └── views
│ │ │ │ │ ├── error.html
│ │ │ │ │ ├── layout.html
│ │ │ │ │ ├── step1.html
│ │ │ │ │ ├── step2.html
│ │ │ │ │ ├── step3.html
│ │ │ │ │ ├── step3_notinit.html
│ │ │ │ │ └── step3_upgrade.html
│ │ │ │ ├── other
│ │ │ │ │ └── sys_sensitive_words.txt
│ │ │ │ └── views
│ │ │ │ ├── admin
│ │ │ │ │ ├── _layout
│ │ │ │ │ │ ├── _errpage.html
│ │ │ │ │ │ ├── _footer.html
│ │ │ │ │ │ ├── _header.html
│ │ │ │ │ │ ├── _layer.html
│ │ │ │ │ │ ├── _layout.html
│ │ │ │ │ │ ├── _left_menu.html
│ │ │ │ │ │ └── _paginate.html
│ │ │ │ │ ├── addon
│ │ │ │ │ │ ├── changelog.html
│ │ │ │ │ │ ├── install.html
│ │ │ │ │ │ ├── list.html
│ │ │ │ │ │ ├── readme.html
│ │ │ │ │ │ └── upgrade.html
│ │ │ │ │ ├── attachment
│ │ │ │ │ │ ├── browse.html
│ │ │ │ │ │ ├── category_list.html
│ │ │ │ │ │ ├── detail.html
│ │ │ │ │ │ ├── list.html
│ │ │ │ │ │ ├── root.html
│ │ │ │ │ │ ├── setting.html
│ │ │ │ │ │ ├── upload.html
│ │ │ │ │ │ ├── video_add.html
│ │ │ │ │ │ ├── video_category_list.html
│ │ │ │ │ │ ├── video_list.html
│ │ │ │ │ │ └── vod_browse.html
│ │ │ │ │ ├── error
│ │ │ │ │ │ └── nopermission.html
│ │ │ │ │ ├── index.html
│ │ │ │ │ ├── login.html
│ │ │ │ │ ├── preview
│ │ │ │ │ │ └── preview.html
│ │ │ │ │ ├── setting
│ │ │ │ │ │ ├── api.html
│ │ │ │ │ │ ├── app.html
│ │ │ │ │ │ ├── base.html
│ │ │ │ │ │ ├── cdn.html
│ │ │ │ │ │ ├── connection.html
│ │ │ │ │ │ ├── filter.html
│ │ │ │ │ │ ├── icons.html
│ │ │ │ │ │ ├── reg.html
│ │ │ │ │ │ ├── seo.html
│ │ │ │ │ │ └── tools.html
│ │ │ │ │ ├── site
│ │ │ │ │ │ ├── site_edit.html
│ │ │ │ │ │ ├── site_lang.html
│ │ │ │ │ │ └── site_list.html
│ │ │ │ │ ├── template
│ │ │ │ │ │ ├── block_design.html
│ │ │ │ │ │ ├── blocks
│ │ │ │ │ │ │ ├── div.html
│ │ │ │ │ │ │ ├── grid.html
│ │ │ │ │ │ │ ├── image.html
│ │ │ │ │ │ │ ├── sgrid.html
│ │ │ │ │ │ │ ├── text.html
│ │ │ │ │ │ │ └── video.html
│ │ │ │ │ │ ├── edit.html
│ │ │ │ │ │ ├── install.html
│ │ │ │ │ │ ├── list.html
│ │ │ │ │ │ ├── menu.html
│ │ │ │ │ │ └── setting.html
│ │ │ │ │ ├── user
│ │ │ │ │ │ ├── _user_detail_layout.html
│ │ │ │ │ │ ├── _user_msg_layout.html
│ │ │ │ │ │ ├── commons_select_user.html
│ │ │ │ │ │ ├── detail.html
│ │ │ │ │ │ ├── detail_avatar.html
│ │ │ │ │ │ ├── detail_communication.html
│ │ │ │ │ │ ├── detail_other.html
│ │ │ │ │ │ ├── detail_pwd.html
│ │ │ │ │ │ ├── detail_role.html
│ │ │ │ │ │ ├── detail_signature.html
│ │ │ │ │ │ ├── detail_tag.html
│ │ │ │ │ │ ├── detail_utm.html
│ │ │ │ │ │ ├── edit.html
│ │ │ │ │ │ ├── list.html
│ │ │ │ │ │ ├── me.html
│ │ │ │ │ │ ├── msg_email.html
│ │ │ │ │ │ ├── msg_sms.html
│ │ │ │ │ │ ├── msg_wechat.html
│ │ │ │ │ │ ├── permission.html
│ │ │ │ │ │ ├── role.html
│ │ │ │ │ │ ├── role_edit.html
│ │ │ │ │ │ ├── role_permissions.html
│ │ │ │ │ │ ├── tag_list.html
│ │ │ │ │ │ └── user_permissions.html
│ │ │ │ │ └── wechat
│ │ │ │ │ ├── addons.html
│ │ │ │ │ ├── menu.html
│ │ │ │ │ ├── miniprogram.html
│ │ │ │ │ ├── reply_base.html
│ │ │ │ │ ├── reply_list.html
│ │ │ │ │ ├── reply_write.html
│ │ │ │ │ └── setting_base.html
│ │ │ │ ├── commons
│ │ │ │ │ └── error
│ │ │ │ │ ├── 404.html
│ │ │ │ │ └── 500.html
│ │ │ │ ├── front
│ │ │ │ │ └── defaultMenu.html
│ │ │ │ └── ucenter
│ │ │ │ ├── _layout
│ │ │ │ │ ├── _footer.html
│ │ │ │ │ ├── _header.html
│ │ │ │ │ ├── _layout.html
│ │ │ │ │ ├── _layout_noleft.html
│ │ │ │ │ ├── _left_menu.html
│ │ │ │ │ └── _paginate.html
│ │ │ │ ├── avatar.html
│ │ │ │ ├── bind.html
│ │ │ │ ├── index.html
│ │ │ │ ├── info.html
│ │ │ │ ├── pwd.html
│ │ │ │ ├── send_link_to_user.html
│ │ │ │ ├── signature.html
│ │ │ │ ├── user_activate.html
│ │ │ │ ├── user_emailactivate.html
│ │ │ │ ├── user_login.html
│ │ │ │ ├── user_phone_register.html
│ │ │ │ ├── user_register.html
│ │ │ │ ├── user_reset_password.html
│ │ │ │ └── user_retrieve_password.html
│ │ │ └── static
│ │ │ ├── admin
│ │ │ │ ├── css
│ │ │ │ │ ├── block.css
│ │ │ │ │ ├── jpressadmin.css
│ │ │ │ │ └── preview.css
│ │ │ │ └── js
│ │ │ │ ├── jpressadmin.js
│ │ │ │ └── jpressutils.js
│ │ │ ├── adminlte
│ │ │ │ ├── css
│ │ │ │ │ └── adminlte.min.css
│ │ │ │ └── js
│ │ │ │ └── adminlte.min.js
│ │ │ ├── commons
│ │ │ │ └── img
│ │ │ │ ├── avatar.png
│ │ │ │ ├── bg.png
│ │ │ │ ├── choose-image-btn.png
│ │ │ │ ├── icon.png
│ │ │ │ ├── ipad-landscape.png
│ │ │ │ ├── ipad.png
│ │ │ │ ├── iphone-landscape.png
│ │ │ │ ├── iphone.png
│ │ │ │ ├── login-img.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── nothumbnail.jpg
│ │ │ │ ├── novideo.jpg
│ │ │ │ └── suffix
│ │ │ │ ├── audio.png
│ │ │ │ ├── doc.png
│ │ │ │ ├── exe.png
│ │ │ │ ├── pdf.png
│ │ │ │ ├── ppt.png
│ │ │ │ ├── rar.png
│ │ │ │ ├── txt.png
│ │ │ │ ├── unknow.png
│ │ │ │ ├── video.png
│ │ │ │ ├── xls.png
│ │ │ │ └── zip.png
│ │ │ ├── components
│ │ │ │ ├── ace
│ │ │ │ │ ├── ace.js
│ │ │ │ │ ├── mode-css.js
│ │ │ │ │ ├── mode-html.js
│ │ │ │ │ ├── mode-javascript.js
│ │ │ │ │ ├── mode-xml.js
│ │ │ │ │ └── theme-eclipse.js
│ │ │ │ ├── air-datepicker
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── datepicker.min.css
│ │ │ │ │ └── js
│ │ │ │ │ ├── datepicker.min.js
│ │ │ │ │ └── i18n
│ │ │ │ │ ├── datepicker.en.js
│ │ │ │ │ └── datepicker.zh.js
│ │ │ │ ├── aj-captcha
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── verify.css
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── iconfont.eot
│ │ │ │ │ │ ├── iconfont.svg
│ │ │ │ │ │ ├── iconfont.ttf
│ │ │ │ │ │ └── iconfont.woff
│ │ │ │ │ ├── images
│ │ │ │ │ │ └── default.jpg
│ │ │ │ │ └── js
│ │ │ │ │ ├── ase.js
│ │ │ │ │ ├── browser.js
│ │ │ │ │ ├── crypto-js.js
│ │ │ │ │ ├── jquery.min.js
│ │ │ │ │ ├── polyfill.min.js
│ │ │ │ │ └── verify.js
│ │ │ │ ├── aliyun-upload-sdk
│ │ │ │ │ ├── aliyun-upload-sdk-1.5.2.min.js
│ │ │ │ │ └── lib
│ │ │ │ │ ├── aliyun-oss-sdk-6.13.0.min.js
│ │ │ │ │ └── es6-promise.min.js
│ │ │ │ ├── bootstrap
│ │ │ │ │ └── js
│ │ │ │ │ ├── bootstrap.bundle.min.js
│ │ │ │ │ └── bootstrap.min.js
│ │ │ │ ├── bootstrap-icons
│ │ │ │ │ ├── bootstrap-icons.css
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── bootstrap-icons.woff
│ │ │ │ │ │ └── bootstrap-icons.woff2
│ │ │ │ │ └── index.html
│ │ │ │ ├── bootstrap-slider
│ │ │ │ │ ├── bootstrap-slider.js
│ │ │ │ │ ├── bootstrap-slider.min.js
│ │ │ │ │ └── css
│ │ │ │ │ ├── bootstrap-slider.css
│ │ │ │ │ └── bootstrap-slider.min.css
│ │ │ │ ├── bs-form-builder
│ │ │ │ │ ├── bs-form-builder-components.js
│ │ │ │ │ ├── bs-form-builder-components.min.js
│ │ │ │ │ ├── bs-form-builder.all.min.js
│ │ │ │ │ ├── bs-form-builder.css
│ │ │ │ │ ├── bs-form-builder.js
│ │ │ │ │ ├── bs-form-builder.min.css
│ │ │ │ │ └── bs-form-builder.min.js
│ │ │ │ ├── ckeditor5
│ │ │ │ │ ├── change.txt
│ │ │ │ │ ├── ck-content.css
│ │ │ │ │ └── ckeditor.js
│ │ │ │ ├── clipboard
│ │ │ │ │ └── clipboard.min.js
│ │ │ │ ├── distpicker
│ │ │ │ │ ├── distpicker.common.js
│ │ │ │ │ ├── distpicker.esm.js
│ │ │ │ │ └── distpicker.min.js
│ │ │ │ ├── echarts
│ │ │ │ │ └── js
│ │ │ │ │ └── echarts.js
│ │ │ │ ├── editable
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── bootstrap-editable.css
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── clear.png
│ │ │ │ │ │ └── loading.gif
│ │ │ │ │ └── js
│ │ │ │ │ └── bootstrap-editable.min.js
│ │ │ │ ├── fastclick
│ │ │ │ │ └── fastclick.js
│ │ │ │ ├── fasty
│ │ │ │ │ └── fasty.min.js
│ │ │ │ ├── fontawesome-free
│ │ │ │ │ ├── css
│ │ │ │ │ │ └── all.min.css
│ │ │ │ │ ├── fonts
│ │ │ │ │ │ ├── FontAwesome.otf
│ │ │ │ │ │ ├── fontawesome-webfont.eot
│ │ │ │ │ │ ├── fontawesome-webfont.svg
│ │ │ │ │ │ ├── fontawesome-webfont.ttf
│ │ │ │ │ │ ├── fontawesome-webfont.woff
│ │ │ │ │ │ └── fontawesome-webfont.woff2
│ │ │ │ │ └── webfonts
│ │ │ │ │ ├── fa-brands-400.eot
│ │ │ │ │ ├── fa-brands-400.svg
│ │ │ │ │ ├── fa-brands-400.ttf
│ │ │ │ │ ├── fa-brands-400.woff
│ │ │ │ │ ├── fa-brands-400.woff2
│ │ │ │ │ ├── fa-regular-400.eot
│ │ │ │ │ ├── fa-regular-400.svg
│ │ │ │ │ ├── fa-regular-400.ttf
│ │ │ │ │ ├── fa-regular-400.woff
│ │ │ │ │ ├── fa-regular-400.woff2
│ │ │ │ │ ├── fa-solid-900.eot
│ │ │ │ │ ├── fa-solid-900.svg
│ │ │ │ │ ├── fa-solid-900.ttf
│ │ │ │ │ ├── fa-solid-900.woff
│ │ │ │ │ └── fa-solid-900.woff2
│ │ │ │ ├── highlight
│ │ │ │ │ ├── LICENSE
│ │ │ │ │ ├── highlight.pack.js
│ │ │ │ │ └── styles
│ │ │ │ │ ├── agate.css
│ │ │ │ │ ├── androidstudio.css
│ │ │ │ │ ├── arduino-light.css
│ │ │ │ │ ├── arta.css
│ │ │ │ │ ├── ascetic.css
│ │ │ │ │ ├── atelier-cave-dark.css
│ │ │ │ │ ├── atelier-cave-light.css
│ │ │ │ │ ├── atelier-dune-dark.css
│ │ │ │ │ ├── atelier-dune-light.css
│ │ │ │ │ ├── atelier-estuary-dark.css
│ │ │ │ │ ├── atelier-estuary-light.css
│ │ │ │ │ ├── atelier-forest-dark.css
│ │ │ │ │ ├── atelier-forest-light.css
│ │ │ │ │ ├── atelier-heath-dark.css
│ │ │ │ │ ├── atelier-heath-light.css
│ │ │ │ │ ├── atelier-lakeside-dark.css
│ │ │ │ │ ├── atelier-lakeside-light.css
│ │ │ │ │ ├── atelier-plateau-dark.css
│ │ │ │ │ ├── atelier-plateau-light.css
│ │ │ │ │ ├── atelier-savanna-dark.css
│ │ │ │ │ ├── atelier-savanna-light.css
│ │ │ │ │ ├── atelier-seaside-dark.css
│ │ │ │ │ ├── atelier-seaside-light.css
│ │ │ │ │ ├── atelier-sulphurpool-dark.css
│ │ │ │ │ ├── atelier-sulphurpool-light.css
│ │ │ │ │ ├── atom-one-dark.css
│ │ │ │ │ ├── atom-one-light.css
│ │ │ │ │ ├── brown-paper.css
│ │ │ │ │ ├── brown-papersq.png
│ │ │ │ │ ├── codepen-embed.css
│ │ │ │ │ ├── color-brewer.css
│ │ │ │ │ ├── darcula.css
│ │ │ │ │ ├── dark.css
│ │ │ │ │ ├── darkula.css
│ │ │ │ │ ├── default.css
│ │ │ │ │ ├── docco.css
│ │ │ │ │ ├── dracula.css
│ │ │ │ │ ├── far.css
│ │ │ │ │ ├── foundation.css
│ │ │ │ │ ├── github-gist.css
│ │ │ │ │ ├── github.css
│ │ │ │ │ ├── googlecode.css
│ │ │ │ │ ├── grayscale.css
│ │ │ │ │ ├── gruvbox-dark.css
│ │ │ │ │ ├── gruvbox-light.css
│ │ │ │ │ ├── hopscotch.css
│ │ │ │ │ ├── hybrid.css
│ │ │ │ │ ├── idea.css
│ │ │ │ │ ├── ir-black.css
│ │ │ │ │ ├── kimbie.dark.css
│ │ │ │ │ ├── kimbie.light.css
│ │ │ │ │ ├── magula.css
│ │ │ │ │ ├── mono-blue.css
│ │ │ │ │ ├── monokai-sublime.css
│ │ │ │ │ ├── monokai.css
│ │ │ │ │ ├── obsidian.css
│ │ │ │ │ ├── ocean.css
│ │ │ │ │ ├── paraiso-dark.css
│ │ │ │ │ ├── paraiso-light.css
│ │ │ │ │ ├── pojoaque.css
│ │ │ │ │ ├── pojoaque.jpg
│ │ │ │ │ ├── purebasic.css
│ │ │ │ │ ├── qtcreator_dark.css
│ │ │ │ │ ├── qtcreator_light.css
│ │ │ │ │ ├── railscasts.css
│ │ │ │ │ ├── rainbow.css
│ │ │ │ │ ├── routeros.css
│ │ │ │ │ ├── school-book.css
│ │ │ │ │ ├── school-book.png
│ │ │ │ │ ├── solarized-dark.css
│ │ │ │ │ ├── solarized-light.css
│ │ │ │ │ ├── sunburst.css
│ │ │ │ │ ├── tomorrow-night-blue.css
│ │ │ │ │ ├── tomorrow-night-bright.css
│ │ │ │ │ ├── tomorrow-night-eighties.css
│ │ │ │ │ ├── tomorrow-night.css
│ │ │ │ │ ├── tomorrow.css
│ │ │ │ │ ├── vs.css
│ │ │ │ │ ├── vs2015.css
│ │ │ │ │ ├── xcode.css
│ │ │ │ │ ├── xt256.css
│ │ │ │ │ └── zenburn.css
│ │ │ │ ├── html5shiv
│ │ │ │ │ └── html5shiv-printshiv.min.js
│ │ │ │ ├── jcrop
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── Jcrop.gif
│ │ │ │ │ │ └── jquery.jcrop.min.css
│ │ │ │ │ └── js
│ │ │ │ │ └── jquery.jcrop.min.js
│ │ │ │ ├── jquery
│ │ │ │ │ ├── jquery.form.min.js
│ │ │ │ │ └── jquery.min.js
│ │ │ │ ├── jquery-file-upload
│ │ │ │ │ ├── LICENSE.txt
│ │ │ │ │ ├── cors
│ │ │ │ │ │ └── result.html
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── jquery-ui-demo-ie8.css
│ │ │ │ │ │ ├── jquery-ui-demo.css
│ │ │ │ │ │ ├── jquery.fileupload-noscript.css
│ │ │ │ │ │ ├── jquery.fileupload-ui-noscript.css
│ │ │ │ │ │ ├── jquery.fileupload-ui.css
│ │ │ │ │ │ ├── jquery.fileupload.css
│ │ │ │ │ │ └── style.css
│ │ │ │ │ ├── img
│ │ │ │ │ │ ├── loading.gif
│ │ │ │ │ │ └── progressbar.gif
│ │ │ │ │ └── js
│ │ │ │ │ ├── app.js
│ │ │ │ │ ├── cors
│ │ │ │ │ │ ├── jquery.postmessage-transport.js
│ │ │ │ │ │ └── jquery.xdr-transport.js
│ │ │ │ │ ├── jquery.fileupload-angular.js
│ │ │ │ │ ├── jquery.fileupload-audio.js
│ │ │ │ │ ├── jquery.fileupload-image.js
│ │ │ │ │ ├── jquery.fileupload-jquery-ui.js
│ │ │ │ │ ├── jquery.fileupload-process.js
│ │ │ │ │ ├── jquery.fileupload-ui.js
│ │ │ │ │ ├── jquery.fileupload-validate.js
│ │ │ │ │ ├── jquery.fileupload-video.js
│ │ │ │ │ ├── jquery.fileupload.js
│ │ │ │ │ ├── jquery.iframe-transport.js
│ │ │ │ │ ├── main.js
│ │ │ │ │ └── vendor
│ │ │ │ │ └── jquery.ui.widget.js
│ │ │ │ ├── jquery-validation
│ │ │ │ │ ├── additional-methods.min.js
│ │ │ │ │ ├── jquery.validate.min.js
│ │ │ │ │ └── localization
│ │ │ │ │ └── messages_zh.min.js
│ │ │ │ ├── layer
│ │ │ │ │ ├── layer.js
│ │ │ │ │ ├── mobile
│ │ │ │ │ │ ├── layer.js
│ │ │ │ │ │ └── need
│ │ │ │ │ │ └── layer.css
│ │ │ │ │ └── theme
│ │ │ │ │ ├── default
│ │ │ │ │ │ ├── icon-ext.png
│ │ │ │ │ │ ├── icon.png
│ │ │ │ │ │ ├── layer.css
│ │ │ │ │ │ ├── loading-0.gif
│ │ │ │ │ │ ├── loading-1.gif
│ │ │ │ │ │ └── loading-2.gif
│ │ │ │ │ └── jpress
│ │ │ │ │ └── style.css
│ │ │ │ ├── qcloud-upload-sdk
│ │ │ │ │ ├── player
│ │ │ │ │ │ ├── TcPlayer-2.4.1.js
│ │ │ │ │ │ ├── css
│ │ │ │ │ │ │ └── tcplayer.min.css
│ │ │ │ │ │ ├── hls.min.0.13.2m.js
│ │ │ │ │ │ └── tcplayer.v4.2.1.min.js
│ │ │ │ │ ├── uploader.js
│ │ │ │ │ └── vod-js-sdk-v6.js
│ │ │ │ ├── respond
│ │ │ │ │ └── respond.min.js
│ │ │ │ ├── selectize
│ │ │ │ │ ├── css
│ │ │ │ │ │ ├── selectize.bootstrap4.css
│ │ │ │ │ │ └── selectize.css
│ │ │ │ │ └── selectize.min.js
│ │ │ │ ├── sortable
│ │ │ │ │ └── sortable.min.js
│ │ │ │ ├── sweetalert2
│ │ │ │ │ ├── sweetalert2.all.min.js
│ │ │ │ │ ├── sweetalert2.min.css
│ │ │ │ │ └── sweetalert2.min.js
│ │ │ │ ├── sweetalert2-theme-bootstrap-4
│ │ │ │ │ └── bootstrap-4.min.css
│ │ │ │ ├── swiper
│ │ │ │ │ ├── swiper.min.css
│ │ │ │ │ └── swiper.min.js
│ │ │ │ ├── switchery
│ │ │ │ │ ├── switchery.min.css
│ │ │ │ │ └── switchery.min.js
│ │ │ │ ├── toastr
│ │ │ │ │ ├── toastr.min.css
│ │ │ │ │ └── toastr.min.js
│ │ │ │ └── vditor
│ │ │ │ └── dist
│ │ │ │ ├── css
│ │ │ │ │ └── content-theme
│ │ │ │ │ ├── ant-design.css
│ │ │ │ │ ├── dark.css
│ │ │ │ │ ├── light.css
│ │ │ │ │ └── wechat.css
│ │ │ │ ├── images
│ │ │ │ │ ├── emoji
│ │ │ │ │ │ ├── b3log.png
│ │ │ │ │ │ ├── chainbook.png
│ │ │ │ │ │ ├── doge.png
│ │ │ │ │ │ ├── hacpai.png
│ │ │ │ │ │ ├── huaji.gif
│ │ │ │ │ │ ├── latke.png
│ │ │ │ │ │ ├── lute.png
│ │ │ │ │ │ ├── octocat.png
│ │ │ │ │ │ ├── pipe.png
│ │ │ │ │ │ ├── solo.png
│ │ │ │ │ │ ├── sym.png
│ │ │ │ │ │ ├── trollface.png
│ │ │ │ │ │ ├── vditor.png
│ │ │ │ │ │ ├── wide.png
│ │ │ │ │ │ └── wulian.png
│ │ │ │ │ ├── img-loading.svg
│ │ │ │ │ └── logo.png
│ │ │ │ ├── index.css
│ │ │ │ ├── index.min.js
│ │ │ │ ├── js
│ │ │ │ │ ├── abcjs
│ │ │ │ │ │ └── abcjs_basic.min.js
│ │ │ │ │ ├── echarts
│ │ │ │ │ │ └── echarts.min.js
│ │ │ │ │ ├── flowchart.js
│ │ │ │ │ │ └── flowchart.min.js
│ │ │ │ │ ├── graphviz
│ │ │ │ │ │ ├── full.render.js
│ │ │ │ │ │ └── viz.js
│ │ │ │ │ ├── highlight.js
│ │ │ │ │ │ ├── highlight.pack.js
│ │ │ │ │ │ ├── solidity.min.js
│ │ │ │ │ │ ├── styles
│ │ │ │ │ │ │ ├── abap.css
│ │ │ │ │ │ │ ├── algol.css
│ │ │ │ │ │ │ ├── algol_nu.css
│ │ │ │ │ │ │ ├── ant-design.css
│ │ │ │ │ │ │ ├── arduino.css
│ │ │ │ │ │ │ ├── autumn.css
│ │ │ │ │ │ │ ├── borland.css
│ │ │ │ │ │ │ ├── bw.css
│ │ │ │ │ │ │ ├── colorful.css
│ │ │ │ │ │ │ ├── dracula.css
│ │ │ │ │ │ │ ├── emacs.css
│ │ │ │ │ │ │ ├── friendly.css
│ │ │ │ │ │ │ ├── fruity.css
│ │ │ │ │ │ │ ├── github.css
│ │ │ │ │ │ │ ├── igor.css
│ │ │ │ │ │ │ ├── lovelace.css
│ │ │ │ │ │ │ ├── manni.css
│ │ │ │ │ │ │ ├── monokai.css
│ │ │ │ │ │ │ ├── monokailight.css
│ │ │ │ │ │ │ ├── murphy.css
│ │ │ │ │ │ │ ├── native.css
│ │ │ │ │ │ │ ├── paraiso-dark.css
│ │ │ │ │ │ │ ├── paraiso-light.css
│ │ │ │ │ │ │ ├── pastie.css
│ │ │ │ │ │ │ ├── perldoc.css
│ │ │ │ │ │ │ ├── pygments.css
│ │ │ │ │ │ │ ├── rainbow_dash.css
│ │ │ │ │ │ │ ├── rrt.css
│ │ │ │ │ │ │ ├── solarized-dark.css
│ │ │ │ │ │ │ ├── solarized-dark256.css
│ │ │ │ │ │ │ ├── solarized-light.css
│ │ │ │ │ │ │ ├── swapoff.css
│ │ │ │ │ │ │ ├── tango.css
│ │ │ │ │ │ │ ├── trac.css
│ │ │ │ │ │ │ ├── vim.css
│ │ │ │ │ │ │ ├── vs.css
│ │ │ │ │ │ │ └── xcode.css
│ │ │ │ │ │ └── yul.min.js
│ │ │ │ │ ├── i18n
│ │ │ │ │ │ ├── en_US.js
│ │ │ │ │ │ ├── ja_JP.js
│ │ │ │ │ │ ├── ko_KR.js
│ │ │ │ │ │ ├── ru_RU.js
│ │ │ │ │ │ ├── zh_CN.js
│ │ │ │ │ │ └── zh_TW.js
│ │ │ │ │ ├── icons
│ │ │ │ │ │ ├── ant.js
│ │ │ │ │ │ └── material.js
│ │ │ │ │ ├── katex
│ │ │ │ │ │ ├── fonts
│ │ │ │ │ │ │ ├── KaTeX_AMS-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_AMS-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_AMS-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Bold.ttf
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Bold.woff
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Bold.woff2
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Caligraphic-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Bold.ttf
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Bold.woff
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Bold.woff2
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Fraktur-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Main-Bold.ttf
│ │ │ │ │ │ │ ├── KaTeX_Main-Bold.woff
│ │ │ │ │ │ │ ├── KaTeX_Main-Bold.woff2
│ │ │ │ │ │ │ ├── KaTeX_Main-BoldItalic.ttf
│ │ │ │ │ │ │ ├── KaTeX_Main-BoldItalic.woff
│ │ │ │ │ │ │ ├── KaTeX_Main-BoldItalic.woff2
│ │ │ │ │ │ │ ├── KaTeX_Main-Italic.ttf
│ │ │ │ │ │ │ ├── KaTeX_Main-Italic.woff
│ │ │ │ │ │ │ ├── KaTeX_Main-Italic.woff2
│ │ │ │ │ │ │ ├── KaTeX_Main-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Main-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Main-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Math-BoldItalic.ttf
│ │ │ │ │ │ │ ├── KaTeX_Math-BoldItalic.woff
│ │ │ │ │ │ │ ├── KaTeX_Math-BoldItalic.woff2
│ │ │ │ │ │ │ ├── KaTeX_Math-Italic.ttf
│ │ │ │ │ │ │ ├── KaTeX_Math-Italic.woff
│ │ │ │ │ │ │ ├── KaTeX_Math-Italic.woff2
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Bold.ttf
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Bold.woff
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Bold.woff2
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Italic.ttf
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Italic.woff
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Italic.woff2
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_SansSerif-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Script-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Script-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Script-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Size1-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Size1-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Size1-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Size2-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Size2-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Size2-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Size3-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Size3-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Size3-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Size4-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Size4-Regular.woff
│ │ │ │ │ │ │ ├── KaTeX_Size4-Regular.woff2
│ │ │ │ │ │ │ ├── KaTeX_Typewriter-Regular.ttf
│ │ │ │ │ │ │ ├── KaTeX_Typewriter-Regular.woff
│ │ │ │ │ │ │ └── KaTeX_Typewriter-Regular.woff2
│ │ │ │ │ │ ├── katex.min.css
│ │ │ │ │ │ ├── katex.min.js
│ │ │ │ │ │ └── mhchem.min.js
│ │ │ │ │ ├── lute
│ │ │ │ │ │ └── lute.min.js
│ │ │ │ │ ├── mathjax
│ │ │ │ │ │ ├── LICENSE
│ │ │ │ │ │ ├── a11y
│ │ │ │ │ │ │ ├── assistive-mml.js
│ │ │ │ │ │ │ ├── complexity.js
│ │ │ │ │ │ │ ├── explorer.js
│ │ │ │ │ │ │ └── semantic-enrich.js
│ │ │ │ │ │ ├── input
│ │ │ │ │ │ │ ├── asciimath.js
│ │ │ │ │ │ │ ├── mml
│ │ │ │ │ │ │ │ └── entities.js
│ │ │ │ │ │ │ ├── mml.js
│ │ │ │ │ │ │ ├── tex
│ │ │ │ │ │ │ │ └── extensions
│ │ │ │ │ │ │ │ ├── action.js
│ │ │ │ │ │ │ │ ├── all-packages.js
│ │ │ │ │ │ │ │ ├── ams.js
│ │ │ │ │ │ │ │ ├── amscd.js
│ │ │ │ │ │ │ │ ├── autoload.js
│ │ │ │ │ │ │ │ ├── bbox.js
│ │ │ │ │ │ │ │ ├── boldsymbol.js
│ │ │ │ │ │ │ │ ├── braket.js
│ │ │ │ │ │ │ │ ├── bussproofs.js
│ │ │ │ │ │ │ │ ├── cancel.js
│ │ │ │ │ │ │ │ ├── color.js
│ │ │ │ │ │ │ │ ├── colorV2.js
│ │ │ │ │ │ │ │ ├── configMacros.js
│ │ │ │ │ │ │ │ ├── enclose.js
│ │ │ │ │ │ │ │ ├── extpfeil.js
│ │ │ │ │ │ │ │ ├── html.js
│ │ │ │ │ │ │ │ ├── mhchem.js
│ │ │ │ │ │ │ │ ├── newcommand.js
│ │ │ │ │ │ │ │ ├── noerrors.js
│ │ │ │ │ │ │ │ ├── noundefined.js
│ │ │ │ │ │ │ │ ├── physics.js
│ │ │ │ │ │ │ │ ├── require.js
│ │ │ │ │ │ │ │ ├── tagFormat.js
│ │ │ │ │ │ │ │ ├── textmacros.js
│ │ │ │ │ │ │ │ ├── unicode.js
│ │ │ │ │ │ │ │ └── verb.js
│ │ │ │ │ │ │ ├── tex-base.js
│ │ │ │ │ │ │ ├── tex-full.js
│ │ │ │ │ │ │ └── tex.js
│ │ │ │ │ │ ├── sre
│ │ │ │ │ │ │ ├── mathmaps
│ │ │ │ │ │ │ │ ├── de.js
│ │ │ │ │ │ │ │ ├── en.js
│ │ │ │ │ │ │ │ ├── es.js
│ │ │ │ │ │ │ │ ├── fr.js
│ │ │ │ │ │ │ │ ├── mathmaps_ie.js
│ │ │ │ │ │ │ │ └── nemeth.js
│ │ │ │ │ │ │ ├── sre-node.js
│ │ │ │ │ │ │ └── sre_browser.js
│ │ │ │ │ │ └── tex-svg-full.js
│ │ │ │ │ ├── mermaid
│ │ │ │ │ │ └── mermaid.min.js
│ │ │ │ │ └── plantuml
│ │ │ │ │ └── plantuml-encoder.min.js
│ │ │ │ └── method.min.js
│ │ │ └── front
│ │ │ ├── jpressfront.css
│ │ │ └── jpressfront.js
│ │ └── test
│ │ └── java
│ │ ├── UserPwdGenerate.java
│ │ └── io
│ │ └── jpress
│ │ └── web
│ │ └── api
│ │ ├── BaseApiControllerTest.java
│ │ ├── OptionApiControllerTest.java
│ │ └── UserApiControllerTest.java
│ ├── module-article
│ │ ├── module-article-model
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── model
│ │ │ ├── Article.java
│ │ │ ├── ArticleCategory.java
│ │ │ ├── ArticleComment.java
│ │ │ └── base
│ │ │ ├── BaseArticle.java
│ │ │ ├── BaseArticleCategory.java
│ │ │ └── BaseArticleComment.java
│ │ ├── module-article-search
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── service
│ │ │ └── search
│ │ │ └── ArticleSearcher.java
│ │ ├── module-article-search-db
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── searcher
│ │ │ └── DbSearcher.java
│ │ ├── module-article-search-es
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── search
│ │ │ └── ElasticSearcher.java
│ │ ├── module-article-search-lucene
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── searcher
│ │ │ └── LuceneSearcher.java
│ │ ├── module-article-search-opensearch
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── search
│ │ │ ├── Action.java
│ │ │ └── AliyunOpenSearcher.java
│ │ ├── module-article-service
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── service
│ │ │ ├── ArticleCategoryService.java
│ │ │ ├── ArticleCommentService.java
│ │ │ └── ArticleService.java
│ │ ├── module-article-service-provider
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── service
│ │ │ ├── ProviderModuleIniter.java
│ │ │ ├── provider
│ │ │ │ ├── ArticleCategoryServiceProvider.java
│ │ │ │ ├── ArticleCommentServiceProvider.java
│ │ │ │ └── ArticleServiceProvider.java
│ │ │ ├── search
│ │ │ │ ├── ArticleSearchEngineIndexRebuildTask.java
│ │ │ │ ├── ArticleSearcherFactory.java
│ │ │ │ └── NoneSearcher.java
│ │ │ ├── sitemap
│ │ │ │ ├── ArticleCategorySitemapProvider.java
│ │ │ │ ├── ArticleSitemapProvider.java
│ │ │ │ ├── ArticleTagSitemapProvider.java
│ │ │ │ └── Util.java
│ │ │ └── task
│ │ │ ├── ArticleCommentReplyCountUpdateTask.java
│ │ │ ├── ArticleCommentsCountUpdateTask.java
│ │ │ └── ArticleViewsCountUpdateTask.java
│ │ ├── module-article-web
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ ├── main
│ │ │ │ ├── java
│ │ │ │ │ └── io
│ │ │ │ │ └── jpress
│ │ │ │ │ └── module
│ │ │ │ │ └── article
│ │ │ │ │ ├── ArticleFields.java
│ │ │ │ │ ├── ArticleFlatUrlProcesser.java
│ │ │ │ │ ├── ArticleModuleInitializer.java
│ │ │ │ │ ├── controller
│ │ │ │ │ │ ├── admin
│ │ │ │ │ │ │ ├── _ArticleCommentController.java
│ │ │ │ │ │ │ ├── _ArticleController.java
│ │ │ │ │ │ │ ├── _MarkdownImport.java
│ │ │ │ │ │ │ ├── _PreviewArticleController.java
│ │ │ │ │ │ │ ├── _WechatArticleImport.java
│ │ │ │ │ │ │ └── _WordpressImport.java
│ │ │ │ │ │ ├── api
│ │ │ │ │ │ │ ├── ArticleApiController.java
│ │ │ │ │ │ │ ├── ArticleCategoryApiController.java
│ │ │ │ │ │ │ └── ArticleCommentApiController.java
│ │ │ │ │ │ ├── front
│ │ │ │ │ │ │ ├── ArticleCategoryController.java
│ │ │ │ │ │ │ ├── ArticleController.java
│ │ │ │ │ │ │ ├── ArticleSearchController.java
│ │ │ │ │ │ │ ├── ArticleTagController.java
│ │ │ │ │ │ │ └── ArticlesController.java
│ │ │ │ │ │ └── ucenter
│ │ │ │ │ │ └── ArticleUCenterController.java
│ │ │ │ │ ├── directive
│ │ │ │ │ │ ├── ArticleCategoriesDirective.java
│ │ │ │ │ │ ├── ArticleCrumbDirective.java
│ │ │ │ │ │ ├── ArticleDirective.java
│ │ │ │ │ │ ├── ArticlePageDirective.java
│ │ │ │ │ │ ├── ArticleSearchPageDirective.java
│ │ │ │ │ │ ├── ArticlesDirective.java
│ │ │ │ │ │ ├── CategoriesDirective.java
│ │ │ │ │ │ ├── CategoryArticlesDirective.java
│ │ │ │ │ │ ├── CommentPageDirective.java
│ │ │ │ │ │ ├── CommentsDirective.java
│ │ │ │ │ │ ├── NextArticleDirective.java
│ │ │ │ │ │ ├── PreviousArticleDirective.java
│ │ │ │ │ │ ├── RelevantArticlesDirective.java
│ │ │ │ │ │ ├── TagArticlesDirective.java
│ │ │ │ │ │ ├── TagsDirective.java
│ │ │ │ │ │ └── UserArticlesDirective.java
│ │ │ │ │ ├── interceptor
│ │ │ │ │ │ └── ArticleInterceptor.java
│ │ │ │ │ ├── kit
│ │ │ │ │ │ ├── ArticleNotifyKit.java
│ │ │ │ │ │ ├── markdown
│ │ │ │ │ │ │ └── MarkdownParser.java
│ │ │ │ │ │ └── wordpress
│ │ │ │ │ │ └── WordPressXmlParser.java
│ │ │ │ │ └── wechat
│ │ │ │ │ └── ArticleDetailWechatAddon.java
│ │ │ │ └── webapp
│ │ │ │ └── WEB-INF
│ │ │ │ └── views
│ │ │ │ ├── admin
│ │ │ │ │ └── article
│ │ │ │ │ ├── _dashboard_box.html
│ │ │ │ │ ├── _tools_box.html
│ │ │ │ │ ├── article_list.html
│ │ │ │ │ ├── article_write.html
│ │ │ │ │ ├── article_write_v4.html
│ │ │ │ │ ├── category_list.html
│ │ │ │ │ ├── comment_edit.html
│ │ │ │ │ ├── comment_list.html
│ │ │ │ │ ├── comment_reply.html
│ │ │ │ │ ├── markdown.html
│ │ │ │ │ ├── setting.html
│ │ │ │ │ ├── tag_list.html
│ │ │ │ │ ├── wechat.html
│ │ │ │ │ └── wordpress.html
│ │ │ │ ├── commons
│ │ │ │ │ └── article
│ │ │ │ │ ├── defaultArticleCommentItem.html
│ │ │ │ │ └── defaultArticleCommentPage.html
│ │ │ │ └── ucenter
│ │ │ │ └── article
│ │ │ │ └── comment_list.html
│ │ │ └── test
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── article
│ │ │ └── controller
│ │ │ └── api
│ │ │ ├── ArticleApiControllerTest.java
│ │ │ ├── BaseApiControllerTest.java
│ │ │ └── mock
│ │ │ ├── ArticleCategoryServiceMock.java
│ │ │ └── ArticleServiceMock.java
│ │ └── pom.xml
│ ├── module-form
│ │ ├── module-form-model
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── form
│ │ │ └── model
│ │ │ ├── EChartsItem.java
│ │ │ ├── FieldInfo.java
│ │ │ ├── FormDatasource.java
│ │ │ ├── FormDatasourceItem.java
│ │ │ ├── FormInfo.java
│ │ │ └── base
│ │ │ ├── BaseFormDatasource.java
│ │ │ ├── BaseFormDatasourceItem.java
│ │ │ └── BaseFormInfo.java
│ │ ├── module-form-service
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── form
│ │ │ └── service
│ │ │ ├── FormDataService.java
│ │ │ ├── FormDatasourceItemService.java
│ │ │ ├── FormDatasourceService.java
│ │ │ └── FormInfoService.java
│ │ ├── module-form-service-provider
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── form
│ │ │ └── service
│ │ │ └── provider
│ │ │ ├── FormDataServiceProvider.java
│ │ │ ├── FormDatasourceItemServiceProvider.java
│ │ │ ├── FormDatasourceServiceProvider.java
│ │ │ └── FormInfoServiceProvider.java
│ │ ├── module-form-web
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── module
│ │ │ │ └── form
│ │ │ │ ├── FormManager.java
│ │ │ │ ├── FormModuleInitializer.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── admin
│ │ │ │ │ │ ├── _FormDataController.java
│ │ │ │ │ │ ├── _FormDatasourceController.java
│ │ │ │ │ │ ├── _FormDatasourceItemController.java
│ │ │ │ │ │ ├── _FormDesignController.java
│ │ │ │ │ │ └── _FormInfoController.java
│ │ │ │ │ └── front
│ │ │ │ │ └── FormController.java
│ │ │ │ └── directive
│ │ │ │ └── FormInfoDirective.java
│ │ │ └── webapp
│ │ │ └── WEB-INF
│ │ │ └── views
│ │ │ ├── admin
│ │ │ │ └── form
│ │ │ │ ├── _dashboard_box.html
│ │ │ │ ├── components
│ │ │ │ │ ├── blockquote.html
│ │ │ │ │ ├── checkbox.html
│ │ │ │ │ ├── date.html
│ │ │ │ │ ├── datetime.html
│ │ │ │ │ ├── div.html
│ │ │ │ │ ├── file-upload.html
│ │ │ │ │ ├── grid.html
│ │ │ │ │ ├── image-upload.html
│ │ │ │ │ ├── input.html
│ │ │ │ │ ├── radio.html
│ │ │ │ │ ├── range.html
│ │ │ │ │ ├── select.html
│ │ │ │ │ ├── sgrid.html
│ │ │ │ │ ├── subtraction.html
│ │ │ │ │ ├── switch.html
│ │ │ │ │ ├── textarea.html
│ │ │ │ │ ├── time.html
│ │ │ │ │ └── tips.html
│ │ │ │ ├── form_browse.html
│ │ │ │ ├── form_data_charts.html
│ │ │ │ ├── form_data_detail.html
│ │ │ │ ├── form_data_excel.html
│ │ │ │ ├── form_data_list.html
│ │ │ │ ├── form_datasource_edit.html
│ │ │ │ ├── form_datasource_item_edit.html
│ │ │ │ ├── form_datasource_item_list.html
│ │ │ │ ├── form_datasource_list.html
│ │ │ │ ├── form_design.html
│ │ │ │ ├── form_info_edit.html
│ │ │ │ └── form_info_list.html
│ │ │ └── front
│ │ │ └── form
│ │ │ ├── form_insert.html
│ │ │ └── form_submit.html
│ │ └── pom.xml
│ ├── module-job
│ │ ├── module-job-model
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── job
│ │ │ └── model
│ │ │ ├── Job.java
│ │ │ ├── JobApply.java
│ │ │ ├── JobCategory.java
│ │ │ └── base
│ │ │ ├── BaseJob.java
│ │ │ ├── BaseJobApply.java
│ │ │ └── BaseJobCategory.java
│ │ ├── module-job-service
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── job
│ │ │ └── service
│ │ │ ├── JobApplyService.java
│ │ │ ├── JobCategoryService.java
│ │ │ └── JobService.java
│ │ ├── module-job-service-provider
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── job
│ │ │ └── service
│ │ │ └── provider
│ │ │ ├── JobApplyServiceProvider.java
│ │ │ ├── JobCategoryServiceProvider.java
│ │ │ └── JobServiceProvider.java
│ │ ├── module-job-web
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── module
│ │ │ │ └── job
│ │ │ │ ├── JobModuleInitializer.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── _JobController.java
│ │ │ │ │ ├── api
│ │ │ │ │ │ ├── JobApiController.java
│ │ │ │ │ │ └── JobCategoryApiController.java
│ │ │ │ │ └── front
│ │ │ │ │ ├── JobApplyController.java
│ │ │ │ │ ├── JobDetailController.java
│ │ │ │ │ └── JobListController.java
│ │ │ │ └── directive
│ │ │ │ ├── JobAddressDirective.java
│ │ │ │ ├── JobCategoryDirective.java
│ │ │ │ ├── JobDirective.java
│ │ │ │ ├── JobPageDirective.java
│ │ │ │ └── JobsDirective.java
│ │ │ └── webapp
│ │ │ └── WEB-INF
│ │ │ └── views
│ │ │ └── admin
│ │ │ └── job
│ │ │ ├── _dashboard_box.html
│ │ │ ├── job_apply_detail.html
│ │ │ ├── job_apply_list.html
│ │ │ ├── job_category_list.html
│ │ │ ├── job_edit.html
│ │ │ ├── job_list.html
│ │ │ └── job_setting.html
│ │ └── pom.xml
│ ├── module-page
│ │ ├── module-page-model
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── page
│ │ │ └── model
│ │ │ ├── SinglePage.java
│ │ │ ├── SinglePageCategory.java
│ │ │ ├── SinglePageComment.java
│ │ │ └── base
│ │ │ ├── BaseSinglePage.java
│ │ │ ├── BaseSinglePageCategory.java
│ │ │ └── BaseSinglePageComment.java
│ │ ├── module-page-service
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── page
│ │ │ └── service
│ │ │ ├── SinglePageCategoryService.java
│ │ │ ├── SinglePageCommentService.java
│ │ │ └── SinglePageService.java
│ │ ├── module-page-service-provider
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── page
│ │ │ └── service
│ │ │ └── provider
│ │ │ ├── PageProviderModuleIniter.java
│ │ │ ├── PageViewsCountUpdateTask.java
│ │ │ ├── SinglePageCategoryServiceProvider.java
│ │ │ ├── SinglePageCommentServiceProvider.java
│ │ │ └── SinglePageServiceProvider.java
│ │ ├── module-page-web
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── module
│ │ │ │ └── page
│ │ │ │ ├── PageModuleInitializer.java
│ │ │ │ ├── PageNotifyKit.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── PageApiController.java
│ │ │ │ │ ├── PageController.java
│ │ │ │ │ ├── _PageCommentController.java
│ │ │ │ │ ├── _PageController.java
│ │ │ │ │ └── _PreviewPageController.java
│ │ │ │ ├── directive
│ │ │ │ │ ├── PageCommentPageDirective.java
│ │ │ │ │ ├── PageDirective.java
│ │ │ │ │ ├── PageListDirective.java
│ │ │ │ │ └── PagesDirective.java
│ │ │ │ └── sitemap
│ │ │ │ ├── PageSitemapProvider.java
│ │ │ │ └── Util.java
│ │ │ └── webapp
│ │ │ └── WEB-INF
│ │ │ └── views
│ │ │ ├── admin
│ │ │ │ └── page
│ │ │ │ ├── _dashboard_box.html
│ │ │ │ ├── comment_edit.html
│ │ │ │ ├── comment_list.html
│ │ │ │ ├── comment_reply.html
│ │ │ │ ├── page_category_list.html
│ │ │ │ ├── page_list.html
│ │ │ │ ├── page_write.html
│ │ │ │ └── setting.html
│ │ │ └── commons
│ │ │ └── page
│ │ │ ├── defaultPageCommentItem.html
│ │ │ └── defaultPageCommentPage.html
│ │ └── pom.xml
│ ├── module-product
│ │ ├── module-product-model
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── model
│ │ │ ├── Product.java
│ │ │ ├── ProductCategory.java
│ │ │ ├── ProductComment.java
│ │ │ ├── ProductImage.java
│ │ │ └── base
│ │ │ ├── BaseProduct.java
│ │ │ ├── BaseProductCategory.java
│ │ │ ├── BaseProductComment.java
│ │ │ └── BaseProductImage.java
│ │ ├── module-product-search
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── service
│ │ │ └── search
│ │ │ └── ProductSearcher.java
│ │ ├── module-product-search-db
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── searcher
│ │ │ └── DbSearcher.java
│ │ ├── module-product-search-es
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── search
│ │ │ └── ElasticSearcher.java
│ │ ├── module-product-search-lucene
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── searcher
│ │ │ └── LuceneSearcher.java
│ │ ├── module-product-search-opensearch
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── search
│ │ │ ├── Action.java
│ │ │ └── AliyunOpenSearcher.java
│ │ ├── module-product-service
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── service
│ │ │ ├── ProductCategoryService.java
│ │ │ ├── ProductCommentService.java
│ │ │ ├── ProductImageService.java
│ │ │ └── ProductService.java
│ │ ├── module-product-service-provider
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ └── java
│ │ │ └── io
│ │ │ └── jpress
│ │ │ └── module
│ │ │ └── product
│ │ │ └── service
│ │ │ ├── ProviderModuleIniter.java
│ │ │ ├── provider
│ │ │ │ ├── ProductCategoryServiceProvider.java
│ │ │ │ ├── ProductCommentServiceProvider.java
│ │ │ │ ├── ProductImageServiceProvider.java
│ │ │ │ └── ProductServiceProvider.java
│ │ │ ├── search
│ │ │ │ ├── NoneSearcher.java
│ │ │ │ ├── ProductSearchEngineIndexRebuildTask.java
│ │ │ │ └── ProductSearcherFactory.java
│ │ │ └── task
│ │ │ ├── ProductCommentReplyCountUpdateTask.java
│ │ │ ├── ProductCommentsCountUpdateTask.java
│ │ │ └── ProductViewsCountUpdateTask.java
│ │ ├── module-product-web
│ │ │ ├── pom.xml
│ │ │ └── src
│ │ │ └── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ └── module
│ │ │ │ └── product
│ │ │ │ ├── ProductFields.java
│ │ │ │ ├── ProductFlatUrlProcesser.java
│ │ │ │ ├── ProductModuleInitializer.java
│ │ │ │ ├── ProductNotifyKit.java
│ │ │ │ ├── controller
│ │ │ │ │ ├── admin
│ │ │ │ │ │ ├── _PreviewProductController.java
│ │ │ │ │ │ ├── _ProductCategoryController.java
│ │ │ │ │ │ ├── _ProductCommentController.java
│ │ │ │ │ │ ├── _ProductController.java
│ │ │ │ │ │ └── _ProductTagController.java
│ │ │ │ │ ├── api
│ │ │ │ │ │ ├── ProductApiController.java
│ │ │ │ │ │ ├── ProductCategoryApiController.java
│ │ │ │ │ │ └── ProductCommentApiController.java
│ │ │ │ │ ├── front
│ │ │ │ │ │ ├── ProductCategoryController.java
│ │ │ │ │ │ ├── ProductController.java
│ │ │ │ │ │ ├── ProductSearchController.java
│ │ │ │ │ │ ├── ProductTagController.java
│ │ │ │ │ │ └── ProductsController.java
│ │ │ │ │ └── ucenter
│ │ │ │ │ └── ProductUCenterController.java
│ │ │ │ ├── directive
│ │ │ │ │ ├── AllProductCategoriesDirective.java
│ │ │ │ │ ├── CategoryProductsDirective.java
│ │ │ │ │ ├── NextProductDirective.java
│ │ │ │ │ ├── PreviousProductDirective.java
│ │ │ │ │ ├── ProductCategoriesDirective.java
│ │ │ │ │ ├── ProductCommentPageDirective.java
│ │ │ │ │ ├── ProductDirective.java
│ │ │ │ │ ├── ProductPageDirective.java
│ │ │ │ │ ├── ProductSearchPageDirective.java
│ │ │ │ │ ├── ProductTagsDirective.java
│ │ │ │ │ ├── ProductsDirective.java
│ │ │ │ │ └── RelevantProductsDirective.java
│ │ │ │ ├── interceptor
│ │ │ │ │ └── ProductValidate.java
│ │ │ │ └── sitemap
│ │ │ │ ├── ProductCategorySitemapProvider.java
│ │ │ │ ├── ProductSitemapProvider.java
│ │ │ │ ├── ProductTagSitemapProvider.java
│ │ │ │ └── Util.java
│ │ │ └── webapp
│ │ │ └── WEB-INF
│ │ │ └── views
│ │ │ ├── admin
│ │ │ │ └── product
│ │ │ │ ├── _dashboard_box.html
│ │ │ │ ├── comment_edit.html
│ │ │ │ ├── comment_list.html
│ │ │ │ ├── comment_reply.html
│ │ │ │ ├── product_category_list.html
│ │ │ │ ├── product_edit.html
│ │ │ │ ├── product_list.html
│ │ │ │ ├── product_tag_list.html
│ │ │ │ └── setting.html
│ │ │ ├── commons
│ │ │ │ └── product
│ │ │ │ ├── defaultProductCommentItem.html
│ │ │ │ ├── defaultProductCommentPage.html
│ │ │ │ └── defaultProductHeader.html
│ │ │ └── ucenter
│ │ │ └── product
│ │ │ └── comment_list.html
│ │ └── pom.xml
│ ├── pom.xml
│ ├── starter
│ │ ├── jpress-start.bat
│ │ ├── jpress-stop.bat
│ │ ├── jpress.bat
│ │ ├── jpress.sh
│ │ ├── package.xml
│ │ ├── pom.xml
│ │ └── src
│ │ ├── main
│ │ │ ├── java
│ │ │ │ └── io
│ │ │ │ └── jpress
│ │ │ │ ├── ApiDocGenerator.java
│ │ │ │ ├── ApiJsonConfigGenerator.java
│ │ │ │ ├── Starter.java
│ │ │ │ └── modulegen
│ │ │ │ ├── ArticleModuleGenerator.java
│ │ │ │ ├── FormModuleGenerator.java
│ │ │ │ ├── JobModuleGenerator.java
│ │ │ │ ├── PageModuleGenerator.java
│ │ │ │ └── ProductModuleGenerator.java
│ │ │ ├── resources
│ │ │ │ ├── api-mock.json
│ │ │ │ ├── api-remarks.json
│ │ │ │ ├── jboot-simple.properties
│ │ │ │ ├── log4j2.xml
│ │ │ │ └── undertow.txt
│ │ │ └── webapp
│ │ │ └── robots.txt
│ │ └── test
│ │ └── java
│ │ └── JavaTester.java
│ ├── starter-tomcat
│ │ ├── pom.xml
│ │ └── src
│ │ └── main
│ │ ├── resources
│ │ │ ├── jboot-simple.properties
│ │ │ ├── jboot-system.properties
│ │ │ └── log4j2.xml
│ │ └── webapp
│ │ ├── WEB-INF
│ │ │ └── web.xml
│ │ └── robots.txt
│ └── upgrade.sh
└── 说明.htm
736 directories, 1959 files
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论