JPress 0.4.0 发布了... 此版本更加稳定、快速。可以非常放心用来做任何类型的网站,JPress在我的网站上已经稳定运行 3个多月不出任何问题...用来二次开发也是极度的方便好用,提供强大的元数据功能,可以非常简单二次开发任何类型的网站(是的,任何类型)。
同时,有诸多小伙伴提供了非常好看、好用的JPress模板。
随便放出几个小伙伴们共享出来的模板,(并不是本人设计和开发哦,不过在用html的基础上,做一套jpress模板也就10分钟。JPress的模板制作视频教程:http://www.yangfuhai.com/post/22.html )
不多说了,JPress 0.4.0 更新内容如下:
add:jp.contents标签添加upperId属性的支持。
add:添加后台标签、分类等的连接功能。
add:添加阿里大于发送log,更好的检查短信发送状态。
add:添加后台静态资源排除CDN配置的功能,防止由于CDN的问题导致后台无法登陆的问题
add:添加ActionCache的开启和关闭配置
add:添加可以独立支撑手机模板和微信模板的支持(可以让手机访问和微信访问和PC访问,同一个URL渲染不同的模板)
add:添加是否来之手机浏览器和微信浏览器的判断,方便二次开发。
add:给jp.contentPage标签添加containChild属性的支持。用于查询子类数据。
add:添加TaxonomyQuery查询的缓存功能。
add:jp.taxonomys标签添加asTree属性的支持。
add:添加后台二级菜单可以添加到指定位置的API
add:给jp.contents标签添加upperSlug属性的支持,方便查询某类别下面的子类的文章已经孙子类的文章;
add:添加OPTION_SELECTED 和 METADATA_SELECTED 两个自定义模板方法。
add:添加读取content的UserObject和TaxonomyObject的功能;
add:添加content和taxonomy的部分查询的缓存功能,增强性能;
add:添加content的object关联对象的读取支持。
add:添加编辑模板时对css和js编辑的支持。
add:模板自定义方法 METADATA_CHECK 添加可以传值的方法。
add:添加获取分类和tag自定义属性的支持。
add:增强contentQuery的查询功能,方便二次开发。
add:增强Controller的getParaToBigInteger方法,更加方便使用和二次开发。
add:新增GlobleInterceptor,方便全局设置。
add:添加分类设置自定义类别的支持,优化内容读取代码。
add:添加了菜单自定义图标的支持。
add:添加 自定义 分类的后台模板功能;
add:添加模板的自定义用户列表和编辑列表的支持;
add:添加METADATA_CHECKED模板的自定义方法
add:增强附件的查询功能,方便二次开发。
增强:对jpress-web进行拆分,方便前后台单独部署。
增强:缓存功能,清晰化缓存颗粒度,提高性能。
增强:修改Query的DAO由private为protected,方便二次开发。
增强:简化自定义内容列表和编辑页面的功能;
增强:attachment表新增type、flag、order_number、lat、lng这5个字段,方便社交应用的二次开发。0.3.0不更新数据库字段不受影响,但建议更新。
fix:删除错误的 java 注释信息;
fix:修复列表css样式;
fix:修复当标签过长导致文章标题被压缩不好看的css样式问题;
fix:修复由于缓存原因导致二级目录或子元素被重复添加的bug;
fix:修复 重构jpress-web后,导致某些maven版本无法编译通过的bug;
fix:修复后台禁用CDN后,导致前台CDN功能失效的bug;
fix:修复发送邮件时,字符串替换可能导致空指针异常的而发送失败的问题;
fix:修复Content和Taxonomy的列表缓存清除错误的bug;
fix:修复由于ehcache自身bug导致getKeys读取不到数据,而无法清除缓存的问题;
fix:修复用户中心获取用户信息出错的问题;
fix:修复ehcache存储时,可能出错的问题;
fix:修复当bigInteger为0时,无法查询的bug;
fix:修复“页面”在二级目录下路径错误的bug;
fix:修复系统设置有文件上传时,可能导致文件上传不成功的bug;
fix:修复菜单高亮启用缓存后高亮出错的问题;
fix:修复后台添加用户时freemarker标签出错的bug;
fix:修复删除数据时,可能导致缓存没被删除的bug;
fix:修复模板编辑列表显示不只是显示模板文件,还显示多余的图片的bug;
fix:修复代码生成器生成的代码导入包路径错误的问题;
fix:修复taxonomy指定模板在windows下无法使用的问题;
fix:修复后台样式选择出现选择taxonomy样式的bug;
fix:修复根据content_id查询attachment无效的bug;
fix:修复菜单的icon和是否高亮样式冲突的bug;
fix:修改getPagerNumbere()方法为getPagerNumber(),英文单词拼写错误;
fix:修复后台保存用户信息是没有验证数据库的邮件和手机号码唯一性可能而可能出错的问题;
fix:修复后台选择附件功能可能造成的URL错误的问题;
代码提交详情可查看:http://git.oschina.net/fuhai/jpress/commits/master
JPress演示地址:http://www.yangfuhai.com ,同时目前已经有很多企业和个人在用,相关的演示地址也会陆续的在增加。
JPress简介
JPress,一个wordpress的java代替版本,使用JFinal开发。支持类似wordpress的几乎所有功能,比如:模板,插件等。同时在模板上,JPress提出了“模板即模型”的概念,方便模板制作人灵活制作业务模型,移除了widget等繁杂功能,同时在模板和插件制作上比wordpress更加灵活简洁。
但是,JPress又不是wordpress的java版本,它天生融合了微信公众平台,整合了国内众多云平台、短信发送、邮件发送平台,独创的“模板即模型”概念是wordpress所不具备的,只有资深的wordpress玩家才能体会里面的微妙关系。同时后续会添加微信文章同步,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开源协议,同时与国内的那些采用了私有协议的“开源”产品并不是一个级别的。
最后来几张截图
备注:第二套模板(the3)还不完善,如果要做网站请使用第一套模板 或者 自行设计一套模板。