JPress est un remplacement Java de WordPress, développé 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 le Java de WordPress. Il est naturellement intégré à la plateforme publique WeChat, intégrant 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 uniquement. Seuls les joueurs WordPress expérimentés peuvent comprendre la relation subtile qui existe à 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é.
En termes de fonctionnalité
Prend 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 un site 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).
Sur WeChat
Prend 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.
En termes de technologie
Utilisant fièrement JFinal comme noyau, JPress bénéficie également de l'architecture flexible de JFinal. Dans le système open source du framework JFinal, JPress se soucie de la mise en œuvre de chaque ligne de logique et prête attention à la qualité de chaque ligne de code. Elle devrait faire partie des meilleures pratiques de JFinal, elle 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, admin lte, 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 suivantes
1. 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-java-5.1.36.jar, slf4j-api-1.7.7.jar , slf4j-log4j12-1.7.7.jar, jetty-server-8.1.8.jar Parmi ces 14 packages jar, jetty-server-8.1.8.jar n'est pas nécessaire 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 l'accord open source LGPL le plus souple, qui n'est pas au même niveau que les produits « open source » nationaux qui utilisent des accords privés.
journal des modifications jpress v4.2.0
Nouveau : ajout d'un commutateur de code de vérification en arrière-plan pour faciliter les tests automatisés dans certains scénarios
Nouveau : prend en charge les produits de publication à 0 yuan. Lorsque le montant du paiement est de 0, le paiement direct est réussi. Merci à @AlienJunX.
Nouveau : La fonction de personnalisation du répertoire d'installation du plug-in facilite l'installation du plug-in et le plug-in est toujours disponible lors de la compilation et de l'effacement du répertoire cible.
Optimisation : Améliorez le module article et ajoutez la fonction de collecte, merci @ la souris qui fait mourir de peur le chat
Optimisation : la configuration du système en option permet de transmettre des données vides pour effacer la configuration.
Optimisation : ajustez la taille par défaut des pièces jointes pour le téléchargement. La taille par défaut des images est de 10 Mo et la taille par défaut des autres fichiers est de 100 Mo.
Optimisation : mettez à niveau Jboot, Log4j2 jusqu'à ce que cela
Correction : le problème selon lequel les mots-clés illégaux personnalisés en arrière-plan ne sont pas valides
Correctif : la suppression de l'option via l'API peut ne pas prendre effet à temps
Correctif : le plug-in dépend de fichiers JAR externes, ce qui peut entraîner le problème de l'impossibilité d'être installé dans certains cas.
Correction : une erreur 500 se produit après le retour réussi du paiement WeChat H5 à la page, merci @AlienJunX
Correctif : lorsqu'une pièce jointe est insérée dans un article et qu'une erreur de fichier joint est trop volumineux se produit, aucune invite ne s'affiche sur la page.
Corrigé : l'image de l'éditeur CKEditor ne peut pas être collée et téléchargée