JPress 0.3.0 发布,WordPress 的 Java 代替版

JPress直接由0.2.7跳到了0.3.0,主要原因是继续了大量的重构,已经content表和user表新增了许多字段(新增字段详情可在readme.md里查看)。此版本相对之前的版本更加稳定,新增了许多二次开发的API,模板制作以及二次开发也极度简单好用。

不多说,以下是更新细节:

add:增加元数据读取可以是上传的文件的功能;
add:添加TaxonomyTag标签,方便读取Taxonomy信息;
add:添加NextContent标签和PreviousContent标签,方便在文章详情页面显;
add:添加findListByModuleAndObjectId方法,方便二次开发;
add:增加模板渲染的命中文件调试输出,方便调试;
add:添加更多排序字段的支持;
add:添加 module 的 iconClass 配置的支持;
add:添加针对某个slug的内容样式的支持(即:不同的分类,详情使用不同的模板);
add:添加内容列表页自定义排序规则的支持;
add:添加taxonomy的内容列表可以根据元数据排序的支持;
add:给分类taxonomy添加过滤型URL和选择型URL的支持;
add:添加对TaxonomysTag的根据parentId查找分类的支持;
add:添加消息的取消注册功能;
add:修改content render before的钩子为可拦截型钩子;
add:给用户添加元数据读取的支持;
add:添加全局标签使用的相关文档内容;
add:新增搜索功能的不同模型搜索不同模板的功能;
add:MenuManger添加删除菜单接口,方便后台菜单设置;
add:添加模板的自定义后台内容编辑模板和内容列表模板功能的支持;

优化:移除文章详情controller的用户查询功能,直接由content读取用户信息;
优化:增强元数据读取功能;
优化:修改登录用户在attribute中的key为大写USER;
优化:简化后台的设置逻辑功能;
优化:修改JPress的标签规则:所以顶级标签全部添加jp.前缀,例如<@jp.content></@jp.content>;所有取数据的相关的标签改写为大写,比如${option(‘xx‘)}修改为${OPTION(‘xx’)};
优化:修改 commentPageTag 为 commentPage ,模板制作人需修改下标签名称;
优化:ehcache的缓存文件位置为WebRoot/.ehcache
优化:简化元数据的读取和更新操作;
优化:重构是搜索引擎,默认添加 SearcherActionListener 异步监听内容的变动,通知搜索引擎;
优化:重构模板管理相关模块,使之更加简单好用,逻辑更加清晰明了;
优化:重构元数据的插入和更新功能,使之更加简单易用
优化:重构插件机制,编写插件更加方便简单;
优化:重构消息发送和监听模块,使之更加简单和好用;
优化:调整后台内容编辑的UI后台,使之更加简洁。

fix:修复maven运行tomcat时,get请求可能会出现乱码问题的bug;
fix:修复文档列表读取的错误;
fix:修复搜索功能可能造成的XSS漏洞的问题;
fix:修复搜索分页出错的问题;
fix:修复标签调整后,后台无法编辑的问题;
fix:修复Druid数据库连接信息无需登录也可以查看其页面的bug;
fix:修复编辑文章时,粘贴的图片自动上传后,不带设置的水印的问题;
fix:修复粘贴的图片上传后,在tomcat二级目录下图片路径不正确的问题;
fix:修复contentPageTag只有module时,出现的分页错误的bug;
fix:修复jblog模板的关闭评论还显示评论框的bug;
fix:修复jblog模板的打赏设置关闭无效的bug;
fix:修复后台的附件详情弹出页面的标题错误的bug;
fix:修复编写文章时,选中的样式重新编辑时不正确的bug。
fix:修复后台user.phone字段错误的问题
fix:修复menuTag的分类页子模块无法显示高亮的问题

代码提交详情可查看:http://git.oschina.net/fuhai/jpress/commits/master

JPress演示地址:http://www.yangfuhai.com ,同时目前已经有很多企业和个人在用,相关的演示地址也会陆续的在增加。

JPress简介

JPress,一个wordpress的java代替版本,使用JFinal开发。支持类似wordpress的几乎所有功能(腾云科技ty300.com),比如:模板,插件等。同时在模板上,JPress提出了“模板即模型”的概念,方便模板制作人灵活制作业务模型,移除了widget等繁杂功能,同时在模板和插件制作上比wordpress更加灵活简洁。

但是,JPress又不是wordpress的java版本,它天生融合了微信公众平台,整合了国内众多云平台、短信发送、邮件发送平台,独创的“模板即模型”概念是wordpress所不具备的,只有资深的wordpress玩家才能体会里面的微妙关系(基础教程qkxue.net)。同时后续会添加微信文章同步,QQ公众平台,今日头条,一点资讯等新媒体的文章同步功能,更加国产和本地化。

JPress有以下特点

1.轻。
轻到只有8张数据表,却能实现wordpress的几乎所有功能。依赖的jar包也极度轻,目前只有cos-26Dec2008.jar、druid-1.0.16.jar、ehcache-2.7.5.jar、fastjson-1.2.7.jar、freemarker-2.3.23.jar、javax.mail.jar、jfinal-2.2-bin-with-src.jar、jfinal-weixin-1.7-bin-with-src.jar、jsoup-1.8.3.jar、log4j-1.2.17.jar、mysql-connector-java-5.1.36.jar、slf4j-api-1.7.7.jar、slf4j-log4j12-1.7.7.jar、jetty-server-8.1.8.jar 这14个jar包,而且其中jetty-server-8.1.8.jar 不是必须的,只用于方便调试。
包括jar包在内的整个项目在20MB左右。

2. 快。
无论多么复杂的页面,JPress响应几乎在10毫秒内,同时JPress支持阿里云,七牛,又拍云等CDN作为加速,支持分布式部署等功能,就算是香港的服务器,只能用“飞快”来形容。

3. 灵活。
JPress提出的“模板即模型”的概念,模板制作人可以用JPress来做博客,新闻系统,论坛,问答社区,商城…加上其灵活的插件功能,几乎可以用来做任何类型的网站。

4. 国产。
因为国产,所以更符合国人需求。JPress天生融合了微信公众号,JPress内置了 阿里大鱼 的短信发送功能,支持了QQ邮箱,163邮箱等作为邮件发送服务器,后续会增加微信模板消息发送通知用户等更加符合国人需求的功能。

在功能方面

支持自定义模型,自定义模型通过模板来定义,而不是后台功能。同时模型内容支持自定义类别,比如文章模型支持专题、分类、标签等类别。
多模板引擎,默认使用Freemarker,模板制作者可以使用其他引擎比如thymeleaf来渲染,同时支持后台在线编辑模板(目前暂时只支持freemarker引擎)。
支持多数据库类型,可以配置不同的数据库(目前暂只支持mysql)。
支持多编辑器,后台可视化编辑和markdown编辑自由切换,默认支持在线图片编辑和代码高亮等功能。
支持插件化,几行代码就可以完成一个插件的开发,git.oschina.net和github上已经有插件的helloworld实例。
支持自定义URL,网站内容URL风格自定义。
API支持,方便APP或其他第三方调用数据。
国际化支持,使用JPress轻松制作任何语言的网站。
极简的SEO功能,可以为每篇文章、每个分类、每个标签单独设置SEO,支持sitemap输出。
用户注册支持邮件和短信验证,目前短信服务商暂时只支持阿里大鱼。
支持CDN设置,包括七牛,阿里云,又拍云等。
上传图片支持水印设置,同时上传图片自动剪切成为模板需要的多种图片尺寸,保证图片显示不会拉伸。
用户登录支持第三方登录,支持QQ、微信、微博、开源中国、github、Facebook、twitter、linkedin(目前只完成QQ、微信、微博、开源中国、github的登陆)。
在微信方面

支持微信菜单设置。
支持自动回复,添加关键字和回复内容。
支持默认回复,包括:用户关注时、进入多客服时、退出多客服时、发送图片时、发送语音时、发送视频时、发送位置时、发送连接时、用户扫描了带参数的二维码时、用户摇一摇时。
所有的自动回复或默认回复支持“高级回复”功能,比如回复一篇文章,回复一个网址…高级回复是由JPress内置开发的特殊回复,但完全可配置,今后会增加更多的“高级回复”功能。
自动回复或默认回复支持插件回复,调用JPress插件完成回复。
支持文章搜索,回复关键字即可返回关键字匹配文章。
未来会支持文章同步或微信导入等实用功能。
在技术方面

自豪的采用了JFinal作为核心,JPress也是得益于JFinal灵活的架构。在JFinal framework开源体系里,JPress关心每行逻辑的实现,重视每行代码质量,应该属于JFinal的最佳实践,所以也应该是每个JFinaler 必读的项目。
使用Freemarker和thymeleaf作为模板引擎。JPress内置的独创缓存,使得的UI渲染速度已经和模板引擎无关。
使用了tinymce做可视化编辑器,使用simplemde做markdown编辑器。两者可以后台自由切换。
文件和图片上传的UI插件使用了fine-uploader。
在前端上,JPress使用了jquery,bootstrap,admin lte,font-awesome,x-editable,fastclick,toastr,tag-editor,pace,layer等。
在安全方面,尽管我个人做了非常多的努力,已经在XSS,CSRF,SQL注入,Cookie安全等方面做了很多的工作,但是还是需要更多的人来一起挖掘和完善,安全是一个永恒的话题。(但是对于新手朋友来说,这些安全应该都是值得去学习和了解的,不是吗?)
支持分布式部署,JPress重写了HttpSession,使用ehcache实现了session的功能,同时在项目中大量依赖于cookie,在分布式架构上毫无压力。
最最重要的的是

JPress使用了比wordpress更宽松的LGPL开源协议,同时与国内的那些采用了私有协议的“开源”产品并不是一个级别的。

时间: 2024-10-18 08:32:30

JPress 0.3.0 发布,WordPress 的 Java 代替版的相关文章

RxJava 2.0.0-RC1 发布,支持 Java 6

RxJava 2.0.0-RC1 发布了,RxJava 是 ReactiveX 在 Java 上的实现,有Groovy, Clojure, Scala 和 JRuby 版本的实现. 该版本为了更高的性能和更低的开销已经完全重写,依然支持 Java 6,点击查看提交记录以及发布说明: https://github.com/ReactiveX/RxJava/commits/1.x https://github.com/ReactiveX/RxJava/releases/tag/v2.0.0-RC1

Atitit..jdk&#160;java&#160;各版本新特性&#160;1.0&#160;1.1&#160;1.2&#160;1.3&#160;1.4&#160;1.5(5.0)&#160;1.6(6.0)&#160;7.0&#160;8.0&#160;9.0&#160;attilax&#160;大总结

Atitit..jdk java 各版本新特性 1.0 1.1 1.2 1.3 1.4 1.5(5.0) 1.6(6.0) 7.0 8.0 9.0 attilax 大总结 1.1. Java的编年史2 1.2. Java版本:JDK 1.02 1.3. Java版本:JDK 1.13 1.4. Java版本:JDK 1.2 (Java 2)4 1.4.1. 1999年5 1.4.2. 2000年5 1.5. Java版本:JDK 1.35 1.5.1. 2001年6 1.5.2. 2002年7

开源搜索引擎Iveely 0.7.0发布,不一样,那就让他不一样!

2012年08月05日,Iveely Search Engine 0.1.0发布,今天,怀着对于未来的追求,终于,0.7.0如期和大家见面了,7个版本,历时2年4个月,感谢大家的支持,感谢我不离不弃的战友魏琪,奋斗到深夜,放弃了周末的社交,就为0.7.0如期而至:感谢Bogdan P Sliwowski先生,您的支持,让我们的激情和梦想靠得越来越近.下载安装编译部署,请参考Github,Web访问的时候,请确定您的浏览器支持WebSocket. 概  要 此次的版本,最大的技术改变是将纯C#迁移

Fundebug后端Java异常监控插件更新至0.2.0,支持Spring及Maven

摘要: 0.2.0支持监控Spring应用,并且支持使用Maven接入插件,请大家及时更新. 支持监控Spring应用 1. pom.xml配置fundebug-spring依赖 <dependency> <groupId>com.fundebug</groupId> <artifactId>fundebug-spring</artifactId> <version>0.2.0</version> </depende

BlockLang 0.3.0 发布啦

BlockLang 官网:https://blocklang.com Block Lang 0.3.0 引入一个新概念:组件市场. 拼装软件时使用的零部件统称为组件.所有组件在组件市场中统一管理,包括 Block Lang 的内置组件. 组件市场包含三个子概念: 组件 - 是项目的最小组成单位,是业务无关.高内聚的一类通用功能: API 仓库 - 是一个 git 仓库,存储一组相关组件的接口规范: 组件仓库 - 是一个 git 仓库,存储一组相关组件的实现代码. API 仓库与组件仓库的关系:

[转]Ubuntu Tweak 0.8.7 发布:支持 Ubuntu 14.04

原文网址:http://www.oschina.net/news/51054/ubuntu-tweak-0-8-7 这是我开发 Ubuntu Tweak 七年以来第一次没在 Ubuntu 正式发布之前同步更新,作为开发者兼维护者,这个工作还是得完成.于是,支持 Ubuntu 14.04 的 Ubuntu Tweak 正式来了. Ubuntu Tweak 除了正式增加 Ubuntu 14.04 的支持以外,还带来一些小改进 这些改进是: 增加对 Unity Launcher 点击图标最小化 App

CrossApp 0.1.8 发布,跨平台移动应用开发引擎

CrossApp alpha 0.1.8 更新内容: 1.添加CANavigationController左右button的定制 2.CATextField添加win32输入功能 3.添加CANavigationController 替换当前CAViewController的功能 4.修复触摸分发系统在可滑动容器上快速点击按钮无法触发按钮事件的bug 6.修复在win32由于触摸事件造成的偶尔崩溃的bug 5.优化CASegmentedControl 6.优化CANavigationBar在竖屏

CrossApp 0.1.6 发布,跨平台移动应用开发引擎

CrossApp alpha 0.1.5 更新内容: 1. 添加CASlider: 滑动条 在此特别鸣谢 9秒ID为juguanhui的 美女程序员,为我们提供了优质的控件源码. 2. 添加CASegmentedControl: 分段选项器 在此特别鸣谢 9秒ID为juguanhui的 美女程序员,为我们提供了优质的控件源码. 3. 触摸事件分发规则优化,添加CAResponder类 经过此次优化,触摸事件分发更加智能,使开发过程变得简单容易. 4. CATextField功能补全: 添加输入框

CrossApp alpha 0.1.10 发布,跨平台移动应用开发引擎

CrossApp alpha 0.1.10 更新内容: 1.CAImageView优化 优化CAImageView,并修改之前在CAImageView添加子视图显示不正确的bug,现在可随意添加子视图给CAImageView. 2.删除ccColor3B,并添加CAColor4B 删除之前的ccColor3B,以前所有用到ccColor3B的地方统统被CAColor4B替换,增加透明度属性. (介于此改动对之前已经基于本引擎的项目带来无法编译的问题,请大家谅解,在这里向大家说声抱歉) 3.删除O