JPress , une alternative Java à WordPress, développée avec JFinal. Prend en charge presque toutes les fonctions similaires à WordPress, telles que les modèles, les plug-ins, etc. Dans le même temps, en termes de modèles, JPress met en avant le concept de « modèle en tant que modèle », qui permet aux producteurs de modèles de créer de manière flexible des modèles commerciaux, supprime les fonctions compliquées telles que les widgets et est plus flexible et concis que WordPress en termes de production de modèles et de plug-ins.
Cependant, JPress n'est pas la version Java de WordPress. Il est naturellement intégré à la plateforme publique WeChat et intègre de nombreuses plateformes cloud nationales, d'envoi de SMS et d'envoi d'e-mails. Le concept original de « modèle comme modèle » n'est pas disponible dans WordPress, et seuls les joueurs expérimentés seuls peuvent comprendre la relation subtile à l'intérieur. Dans le même temps, la fonction de synchronisation des articles de WeChat, la plate-forme publique QQ, Toutiao, Yidian et d'autres nouveaux médias seront ajoutées à l'avenir, le rendant plus national et localisé.
JPress en termes de fonctionnalitésPrend en charge les modèles personnalisés, qui sont définis via des modèles plutôt que des fonctions d'arrière-plan. Dans le même temps, le contenu du modèle prend en charge les catégories personnalisées. Par exemple, le modèle d'article prend en charge les sujets, les catégories, les balises et d'autres catégories.
Prend en charge plusieurs moteurs de modèles. Freemarker est utilisé par défaut. Les créateurs de modèles peuvent utiliser d'autres moteurs tels que thymeleaf pour le rendu. Il prend également en charge l'édition en ligne des modèles en arrière-plan (actuellement, seul le moteur freemarker est pris en charge).
Prend en charge plusieurs types de bases de données et peut configurer différentes bases de données (actuellement, seul MySQL est pris en charge).
Prend en charge plusieurs éditeurs, la commutation libre entre l'édition visuelle en arrière-plan et l'édition de démarques, et prend en charge des fonctions telles que l'édition d'images en ligne et la mise en évidence du code par défaut.
Il prend en charge le plug-in et vous pouvez terminer le développement d'un plug-in avec seulement quelques lignes de code. Il existe déjà des instances helloworld du plug-in sur git.oschina.net et github.
Prend en charge les URL personnalisées et la personnalisation du style d'URL du contenu du site Web.
La prise en charge de l'API permet à l'APP ou à d'autres tiers d'appeler des données.
Prise en charge de l'internationalisation, utilisez JPress pour créer facilement des sites Web dans n'importe quelle langue.
Fonction de référencement minimaliste, vous pouvez définir le référencement séparément pour chaque article, chaque catégorie et chaque balise, et prendre en charge la sortie du plan du site.
L'enregistrement des utilisateurs prend en charge la vérification des e-mails et des SMS. Actuellement, les fournisseurs de services SMS ne prennent en charge qu'Alibaba Dayu.
Prend en charge les paramètres CDN, notamment Qiniu, Alibaba Cloud, Youpai Cloud, etc.
Les images téléchargées prennent en charge les paramètres de filigrane et les images téléchargées sont automatiquement découpées en différentes tailles d'image requises par le modèle pour garantir que l'affichage de l'image ne sera pas étiré.
La connexion utilisateur prend en charge la connexion tierce et prend en charge QQ, WeChat, Weibo, Open Source China, Github, Facebook, Twitter et LinkedIn (actuellement, seule la connexion à QQ, WeChat, Weibo, Open Source China et Github est effectuée).
JAppuyez sur WeChatPrend en charge les paramètres du menu WeChat.
Prend en charge les réponses automatiques, l'ajout de mots-clés et le contenu des réponses.
Prend en charge les réponses par défaut, notamment : lorsque l'utilisateur est attentif, lors de l'entrée dans le service multi-client, lors de la sortie du service multi-client, lors de l'envoi d'images, lors de l'envoi de voix, lors de l'envoi de vidéo, lors de l'envoi d'un emplacement, lors de l'envoi d'une connexion, lorsque l'utilisateur scanne le code QR avec les paramètres, lorsque l'utilisateur secoue.
Toutes les réponses automatiques ou réponses par défaut prennent en charge la fonction "réponse avancée", comme répondre à un article, répondre à une URL... Les réponses avancées sont des réponses spéciales intégrées à JPress, mais sont entièrement configurables, et davantage de "réponses avancées" seront ajouté dans la future fonction.
La réponse automatique ou la réponse par défaut prend en charge la réponse du plug-in et appelle le plug-in JPress pour compléter la réponse.
Prend en charge la recherche d'articles. Répondre aux mots-clés renverra les articles correspondants.
À l'avenir, des fonctions pratiques telles que la synchronisation d'articles ou l'importation WeChat seront prises en charge.
JAppuyez sur le côté techniqueUtilisant fièrement JFinal comme noyau, JPress bénéficie également de l'architecture flexible de JFinal. Dans le système open source JFinalframework, JPress se soucie de la mise en œuvre de chaque ligne de logique et prête attention à la qualité de chaque ligne de code. Cela devrait faire partie des meilleures pratiques de JFinal, ce devrait donc également être un élément incontournable pour. chaque JFinaler.
Utilisez Freemarker et thymeleaf comme moteurs de modèles. Le cache unique intégré à JPress rend la vitesse de rendu de l'interface utilisateur indépendante du moteur de modèles.
Tinymce est utilisé comme éditeur visuel et simplemde est utilisé comme éditeur de démarques. Les deux peuvent être commutés librement en arrière-plan.
Le plug-in d'interface utilisateur pour le téléchargement de fichiers et d'images utilise fine-uploader.
Sur le front-end, JPress utilise jquery, bootstrap, adminlte, font-awesome, x-editable, fastclick, toastr, tag-editor, rythme, layer, etc.
En termes de sécurité, même si j'ai personnellement fait beaucoup d'efforts et fait beaucoup de travail sur XSS, CSRF, injection SQL, sécurité des cookies, etc., il faut encore plus de personnes pour creuser et améliorer ensemble. La sécurité est une éternité. . sujet. (Mais pour les amis novices, ces sécurités devraient valoir la peine d’être apprises et comprises, n’est-ce pas ?)
Pour prendre en charge le déploiement distribué, JPress réécrit HttpSession et utilise ehcache pour implémenter la fonction de session. Dans le même temps, le projet s'appuie fortement sur les cookies, il n'y a donc aucune pression sur l'architecture distribuée.
JPress a les fonctionnalités suivantes1. Lumière.
Il est aussi léger que seulement 8 tables de données, mais il peut réaliser presque toutes les fonctions de WordPress. Les packages jar dépendants sont également extrêmement légers. Actuellement, il n'existe que cos-26Dec2008.jar, druid-1.0.16.jar, ehcache-2.7.5.jar, fastjson-1.2.7.jar, freemarker-2.3.23. jar et 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- 14 packages jar : java-5.1.36.jar, slf4j-api-1.7.7.jar, slf4j-log4j12-1.7.7.jar, jetty-server-8.1.8.jar, parmi lesquels jetty -server-8.1 .8.jar n'est pas obligatoire et n'est utilisé que pour faciliter le débogage.
L'ensemble du projet, y compris le package jar, fait environ 20 Mo.
2. Rapide.
Quelle que soit la complexité de la page, JPress répond en près de 10 millisecondes. En même temps, JPress prend en charge Alibaba Cloud, Qiniu, Youpaiyun et d'autres CDN comme accélération, et prend en charge le déploiement distribué et d'autres fonctions même s'il s'agit d'un serveur à Hong. Kong, il ne peut être utilisé qu'avec "rapide" pour décrire.
3. Flexible.
JPress propose le concept de « modèle comme modèle ». Les producteurs de modèles peuvent utiliser JPress pour créer des blogs, des systèmes d'actualités, des forums, des communautés de questions-réponses, des centres commerciaux... et sa fonction de plug-in flexible, il peut être utilisé pour créer presque n'importe quel type. du site Web.
4. Domestique.
Parce qu’il est fabriqué en Chine, il répond davantage aux besoins du peuple chinois. JPress est naturellement intégré au compte public WeChat. JPress intègre la fonction d'envoi de SMS d'Alibaba Big Fish et prend en charge la boîte aux lettres QQ, la boîte aux lettres 163, etc. en tant que serveurs d'envoi de courrier. À l'avenir, les utilisateurs d'envoi de messages et de notifications de modèles WeChat le feront. être ajoutées, et d'autres fonctions plus adaptées aux besoins du peuple chinois.
La chose la plus importante est
JPress utilise la licence open source LGPL la plus souple, qui n'est pas au même niveau que les produits « open source » nationaux qui utilisent des licences privées.
Journal de mise à jour jpressv4.0.9 :
Nouveau : Ajout de la fonction de téléchargement de vidéos vers les éditeurs d'articles
Nouveau : Ajout de l'API html2wxml et de sa documentation
Optimisation : mettre à jour les articles, les produits, les API des pages et la documentation
Optimisation : améliorez les API liées aux produits, aux paniers d'achat et aux coupons
Correction : le titre et les caractères gras de l'éditeur d'article ne sont pas valides.
Correctif : après l'importation de JPress dans Eclipse, le chemin de ressource obtenu était erroné dans certains cas.
Réparation : Menu.isUrlEquals peut être mal déterminé dans le répertoire secondaire
Correctif : les utilisateurs du mini-programme ne peuvent pas obtenir d'informations sur les options lorsqu'ils ne sont pas connectés et les informations d'invite sont incorrectes.
Correctif : après avoir désactivé le code de vérification, la zone de saisie du code de vérification de connexion en arrière-plan ne s'affiche pas.
JAppuyez sur l'affichage de la page