JPress 0.2.3 發布,WordPress 的 Java 代替版

2021-01-10 開源中國

JPress 0.2.3 版本發布了,此版本主要是修復bug,增強穩定性,同時完善module,非常方便的二次開發。

細節如下:

add:修改後臺菜單為動態添加,方便二次開發。後臺的菜單固定不變?二次開發在自己的module添加或修改吧…
add:消息接口添加權重功能,可以配置每個監聽器的權重,監聽器被調用的順序來之於權重的設置;
add:tags標籤和taxonomys標籤添加排序功能,默認為時間排序;
add:添加jp_taxonomys標籤 ;
add:後臺添加 直接回復 用戶評論功能;
add:jblog模板添加回複評論功能;
add:評論列表添加直達前臺文章的url功能;

fix:修復後臺編輯文章的時候,元數據無法加載顯示的bug;
fix:修復計數器超過一個小時後獲取數據為0的bug;
fix:修復listener的排序使用了jdk1.8的導致在jdk1.6,1.7無法使用問題;
fix:修復sitemap生成的時候沒有配置域名出現null的問題和時間格式化錯誤的問題;
fix:重構jpress-web和jpress-web-core模塊,使之更加合理;
fix:刪除重構後多餘的「垃圾」文件;
fix:把微信模塊和攔截器模塊移動到jpress-web-core核心模塊,方便二次開發調用;
fix:修復手機普通下分頁導航無法顯示的問題;
fix:修復根據tag查詢content列表的時候出現欄位不存在的bug;
fix:優化代碼,刪除contentUrl的freemarker自定義函數;
fix:修復發布、修改文章、修改評論等細節樣式,使之更加自然;
fix:修復修改評論內容時,評論所屬的文章標題無法顯示的bug;

更新詳情可查看: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使用了最寬鬆的LGPL開源協議,和國內的那些採用了私有協議的「開源」產品並不是一個級別的。

最後來幾張截圖

備註:第二套模板(the3)還不完善,如果要做網站請使用第一套模板 或者 自行設計一套模板。

相關焦點

  • Java 通用代碼生成器光 1.5.0 Kama( 頓悟)發布嘗鮮版 8,支持克隆...
    Java通用代碼生成器光1.5.0 Kama(頓悟)發布嘗鮮版8,支持克隆動詞,即將進入Beta測試Java通用代碼生成器光1.5.0 Kama
  • Java 通用代碼生成器光 1.5.0 Kama (頓悟)發布 Beta8 版,精細測試...
    Java 通用代碼生成器光 1.5.0 Kama(頓悟)發布 Beta8版,精細測試,即將發布候選版光1.5.0  Kama(頓悟)已發布 Beta8
  • Wit 2.0.0-beta 發布,Java 模板引擎(原 Webit Script)
    Febit Wit (原 Webit Script )是一個 Java 平臺下的模板引擎,語法類似 JavaScript,支持自定義函數,全局變量,Lambda 表達式,核心模塊輕巧(2.0.0
  • Java 通用代碼生成器光 1.5.0 Kama (頓悟)發布 候選版 2,文檔更新...
    並基於光1.5.0的代碼編寫《開發者手冊》(《黑客手冊》)。《開發者手冊》正在編寫之中,已可在本站福建處下載,持續更新中。https://gitee.com/jerryshensjf/LightSBMEU/attach_files研發進展 正在研發1.5版,1.0將不發正式版,直接發布1.5的正式版 1.5的呀發代號是Kama(頓悟) 1.5版支持Oracle 1.5版將Json Controller的名字從Facade改為
  • 我的世界:java版與基巖版,相差兩歲的哥弟倆,有多少不同特性?
    2009年,notch著手開發Minecraft的java版本。2011年,mojang工作室開發了Minecraft移動版,又稱攜帶版,最後被統稱為基巖版。從開發時間來講,java版與基巖版算是一對相差2歲的兄弟倆。由於版本不同,帶來了很多遊戲特性的差異。
  • 聊聊java中NIO的2.0版本AIO
    在2011年7月28日,jdk1.7被正式發布。他的一個最大的亮點就是將原來的NIO類庫生成到了NIO2.0,也被叫做AIO。這篇文章將通過案例對AIO進行一個講解。一、IO的演進在jdk1.4之前,java中的IO類庫實在是超級原始,很多我們現在熟知的概念都還沒有出現,比如說管道、緩衝區等等。
  • 我的世界java版和基巖版不為人知的秘密
    我的世界可以分為三個版本:java版、基巖版、教育版。而某種意義上來說,教育版屬於基巖版的一種,所以暫且討論Java版和基巖版。先說java版,它使用java語言進行開發,主要運行的平臺是電腦,例如windows、macos,java版mc需要依賴啟動器,如mojiang的官方啟動器,或者大家熟知的第三方啟動器hmcl那電腦版等於java版嗎?No!基巖版也可以在電腦上運行,例如在微軟商店購買的 Minecraft for Windows 10就是基巖版的Mc。
  • JAVA8——JAVA成長之路
    2.1 Lambda表達式與Functional接口Lambda表達式(也稱為閉包)是整個Java 8發行版中最受期待的在Java語言層面上的改變,Lambda允許把函數作為一個方法的參數(函數作為參數傳遞進方法中),或者把代碼看成數據:函數式程式設計師對這一概念非常熟悉。
  • jBeanBox 4.0.0 發布,微形 Java IOC/AOP 工具
    jBeanBox用於Java6及以上環境,主頁:https://gitee.com/drinkjava2/jBeanBox下表是jBeanBox與Spring、Guice在功能上的一個對比表,紅字部分為本次更新新增的內容:
  • Java 13 新特性全面解讀
    作者 l Hollis本文經授權轉載自Hollis(ID:hollischuang)2017年8月,JCP執行委員會提出將Java的發布頻率改為每六個月一次,新的發布周期嚴格遵循時間點,將在每年的3月份和9月份發布。
  • 虛擬主機 支持java嗎
    虛擬主機 支持java嗎?虛擬主機支持java的,但java需要專屬環境、硬體支持,不像其他語言,如ASP、PHP等,很多情況下,可以共享環境、硬體等。所以,提供java環境的虛擬主機比較少,只有少部分服務商,比如西部數碼。
  • Wit 2.3.0-beta 發布,Java 模板引擎
    <dependency>    <groupId>org.febit.wit</groupId>    <artifactId>wit-core</artifactId>    <version>2.3.0-beta</version></dependency>
  • 我的世界:如果java版消失,任何語言都變得蒼白,開始大面積退遊
    本期內容我的世界java版和基巖版相比,後者的玩家更多一些,之所以會這樣,原因在於手機端的遊戲方式更加方便。正因為如此,所以有些基巖版玩家覺得,java版應該退出遊戲更新,以後的新玩法只有在基巖版中才會出現。對於這種看法,演說家不敢苟同。每次在尋找一些遺蹟的時候,我們避免不了要跑很遠的地方,以至於在這個過程中,會遇到一些看起來還不錯的村莊和哨塔。
  • 我的世界:java版和基巖版你更看好哪個?未來的發展,誰會更好
    我的世界這款遊戲,目前是分成了2個版本,一種是最開始編寫不斷更新的java版本,另一種就是被微軟收購之後,重新編寫的基巖版,也就是C++版本,而這兩種版本都有不少人在玩。而問題來了,java版本和基巖版,在未來肯定是要掙出一個高下的,因為2款遊戲不同的開發需求不一樣,不可能同時兼顧,那麼java版和基巖版的MC,你更看好哪一個呢?今天就來聊一聊這個話題。
  • JFinal 3.0 發布,重新定義模板引擎
    例如 Freemarker、Velocity 是基於 javacc 做的二次開發,其他 java 模板引擎多數也是基於 ANTLR、jflex、javacc 生成後的代碼做的二次開發全部自己動手寫代碼而不是二次開發的 java 模板引擎極為少見,國內較為知名的僅見 HTTL。
  • 零基礎學習初識Java筆記
    1、安裝JDK 1.8 64位的版本(特別重要 最新版是1.8)安裝 點下一步 最後點關閉64位的作業系統可以安裝64位的和32位的軟體32位的作業系統只能安裝32位的軟體2、配置環境變量java -version 檢測jdk版本的開發java:1.新建文本文檔2.編寫java代碼3.更改文件後綴名為 .java4.按Windows+R
  • 《我的世界》基巖版光追開始測試,java版玩家表示不滿!
    本期內容往期內容說到過,我的世界Win10版又名為「基巖版」,本來以為優勢已被java版佔據,但最近光追的測試,使得我的世界基巖版又回到了大眾的視野之中。對此我的世界java版中的玩家表示不滿,覺得有點兒不公平。
  • WordPress最新riproV6.1.0主題去授權破解版
    2020-03-08劉軒採用riproV6.1.0進行特別美化及優化的項目:美化側邊欄增加網站快訊及資源統計後臺禁止加載谷歌字體WordPress搜索結果排除所有頁面、自定義分類Version V6.1.02020-03-04
  • 2020學習Java必看的3本書籍
    《深入理解Java虛擬機》這是一部從工作原理和工程實踐兩個維度深入剖析JVM的著作,是計算機領域公認的經典,繁體版在臺灣也頗受歡迎。全書以實戰為導向,通過大量與實際生產環境相結合的案例分析和展示了解決各種Java技術難題的方案和技巧。2.
  • Java中Arrays的3種用法(toString、binarySearch、copyOf)
    使用時導包:import java.util.Arrays3, 4, 5, 6, 7, 8, 9}; for (int i = 0; i < arr.length; i++) { System.out.print(arr[i] + " "); } System.out.println(); }}