JPress — это Java-замена WordPress, разработанная с использованием JFinal. Поддерживает практически все функции, аналогичные WordPress, такие как шаблоны, плагины и т. д. В то же время, что касается шаблонов, JPress выдвигает концепцию «шаблон как модель», которая позволяет производителям шаблонов гибко создавать бизнес-модели, удаляет сложные функции, такие как виджеты, и является более гибкой и лаконичной, чем WordPress, с точки зрения изготовление шаблонов и плагинов.
Однако JPress не является Java-версией WordPress. Он естественным образом интегрирован с общедоступной платформой WeChat, объединяя многие внутренние облачные платформы, платформы отправки SMS и электронной почты. Исходная концепция «шаблона как модели» недоступна только в WordPress. Только опытные игроки WordPress могут понять тонкие взаимоотношения внутри. В то же время в будущем будет добавлена функция синхронизации статей WeChat, общедоступной платформы QQ, Toutiao, Yidian и других новых медиа, что сделает ее более внутренней и локализованной.
С точки зрения функциональности
Поддерживает пользовательские модели, которые определяются с помощью шаблонов, а не фоновых функций. В то же время содержимое модели поддерживает пользовательские категории. Например, модель статьи поддерживает темы, категории, теги и другие категории.
Поддерживает несколько движков шаблонов. Freemarker используется по умолчанию. Создатели шаблонов могут использовать для рендеринга другие движки, такие как тимелеаф. Он также поддерживает онлайн-редактирование шаблонов в фоновом режиме (в настоящее время поддерживается только движок freemarker).
Поддерживает несколько типов баз данных и может настраивать разные базы данных (в настоящее время поддерживается только MySQL).
Поддерживает несколько редакторов, свободное переключение между фоновым визуальным редактированием и редактированием уценки, а также поддерживает такие функции, как онлайн-редактирование изображений и подсветку кода по умолчанию.
Он поддерживает плагин, и вы можете завершить его разработку с помощью всего лишь нескольких строк кода. Экземпляры плагина helloworld уже есть на git.oschina.net и github.
Поддерживает пользовательские URL-адреса и настройку стиля URL-адресов содержимого веб-сайта.
Поддержка API позволяет приложению или другим третьим лицам вызывать данные.
Поддержка интернационализации: используйте JPress для легкого создания веб-сайта на любом языке.
Минималистичная функция SEO: вы можете настроить SEO отдельно для каждой статьи, каждой категории и каждого тега, а также поддерживать вывод карты сайта.
Регистрация пользователя поддерживает проверку электронной почты и SMS. В настоящее время поставщики услуг SMS поддерживают только Alibaba Dayu.
Поддерживает настройки CDN, включая Qiniu, Alibaba Cloud, Youpai Cloud и т. д.
Загруженные изображения поддерживают настройки водяных знаков, а загруженные изображения автоматически обрезаются до различных размеров, требуемых шаблоном, чтобы гарантировать, что изображение не будет растянуто.
Вход пользователя поддерживает вход третьих лиц и поддерживает QQ, WeChat, Weibo, Open Source China, Github, Facebook, Twitter и LinkedIn (в настоящее время завершен только вход в QQ, WeChat, Weibo, Open Source China и Github).
В WeChat
Поддержка настроек меню WeChat.
Поддерживает автоматические ответы, добавление ключевых слов и содержания ответа.
Поддерживает ответы по умолчанию, в том числе: когда пользователь обращает внимание, при входе в многопользовательскую службу, при выходе из многопользовательской службы, при отправке изображений, при отправке голоса, при отправке видео, при отправке местоположения, при отправке соединения, когда пользователь сканирует QR-код с параметрами, когда пользователь встряхивается.
Все автоматические ответы или ответы по умолчанию поддерживают функцию «расширенного ответа», например ответ на статью, ответ на URL-адрес... Расширенные ответы — это специальные ответы, встроенные в JPress, но они полностью настраиваются, и будут доступны дополнительные «расширенные ответы». добавлена в будущем Функция.
Автоматический ответ или ответ по умолчанию поддерживает ответ подключаемого модуля и вызывает подключаемый модуль JPress для завершения ответа.
Поддерживает поиск статей. При ответе на ключевые слова будут возвращены статьи, соответствующие ключевым словам.
В будущем будут поддерживаться практические функции, такие как синхронизация статей или импорт WeChat.
С точки зрения технологии
Используя JFinal в качестве своего ядра, JPress также извлекает выгоду из гибкой архитектуры JFinal. В системе с открытым исходным кодом JFinal Framework JPress заботится о реализации каждой строки логики и уделяет внимание качеству каждой строки кода. Это должно быть одним из лучших практик JFinal, поэтому его также следует обязательно прочитать. для каждого JFinaler.
Используйте Freemarker и Timeleaf в качестве шаблонизаторов. Уникальный кеш, встроенный в JPress, делает скорость рендеринга пользовательского интерфейса независимой от механизма шаблонов.
Tinymce используется в качестве визуального редактора, а simplemde — в качестве редактора уценки. Их можно свободно переключать в фоновом режиме.
Плагин пользовательского интерфейса для загрузки файлов и изображений использует Fine-Uploader.
Во внешнем интерфейсе JPress использует jquery, bootstrap, admin lte, font-awesome, x-editable, fastclick, toastr, tag-editor, темп, слой и т. д.
Что касается безопасности, хотя я лично приложил много усилий и проделал большую работу в области XSS, CSRF, SQL-инъекций, безопасности файлов cookie и т. д., все еще нужно больше людей, чтобы вместе копать и улучшать. Безопасность — это вечность. . тема. (Но начинающим друзьям стоит изучить и понять эту безопасность, не так ли?)
Для поддержки распределенного развертывания JPress переписывает HttpSession и использует ehcache для реализации функции сеанса. В то же время проект в значительной степени опирается на файлы cookie, поэтому нагрузка на распределенную архитектуру не оказывается.
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, занимает около 20 МБ.
2. Быстро.
Независимо от того, насколько сложна страница, JPress отвечает почти за 10 миллисекунд. В то же время JPress поддерживает Alibaba Cloud, Qiniu, Youpaiyun и другие CDN в качестве ускорения, а также поддерживает распределенное развертывание и другие функции, даже если это сервер в Гонконге. Конг, для описания его можно использовать только со словом «быстро».
3. Гибкий.
JPress предлагает концепцию «шаблон как модель». Производители шаблонов могут использовать JPress для создания блогов, новостных систем, форумов, сообществ вопросов и ответов, торговых центров... плюс его гибкая функция плагина позволяет создавать практически любые типы. веб-сайта.
4. Внутренний.
Поскольку он сделан в Китае, он больше соответствует потребностям китайцев. JPress естественным образом интегрирован с общедоступной учетной записью WeChat. JPress имеет встроенную функцию отправки SMS Alibaba Big Fish и поддерживает почтовый ящик QQ, почтовый ящик 163 и т. д. в качестве серверов отправки почты. В будущем пользователи будут отправлять шаблонные сообщения и уведомления WeChat. будут добавлены и другие функции, которые больше соответствуют потребностям китайцев.
Самое главное это
JPress использует самое свободное соглашение с открытым исходным кодом LGPL, которое не находится на том же уровне, что и отечественные продукты с «открытым исходным кодом», в которых используются частные соглашения.
журнал изменений jpress v4.2.0
Новое: добавлен переключатель кода фоновой проверки для облегчения автоматического тестирования в определенных сценариях.
Новое: поддержка публикации продуктов стоимостью 0 юаней. Когда сумма платежа равна 0, прямой платеж проходит успешно благодаря @AlienJunX.
Новое: функция настройки каталога установки плагина упрощает установку плагина, и плагин по-прежнему доступен при компиляции и очистке целевого каталога.
Оптимизация: Улучшите модуль статей и добавьте функцию сбора, спасибо @ мышь, которая пугает кота до смерти
Оптимизация: конфигурация дополнительной системы позволяет передавать пустые данные для очистки конфигурации.
Оптимизация: настройка размера вложения по умолчанию для загрузки. Размер изображений по умолчанию составляет 10 МБ, а размер по умолчанию для других файлов — 100 МБ.
Оптимизация: обновите Jboot, Log4j2 до этого
Исправлено: проблема с недопустимыми ключевыми словами, настроенными в фоновом режиме.
Исправлено: удаление опции через API может не вступить в силу вовремя.
Исправлено: плагин зависит от внешних jar-файлов, что в некоторых случаях может привести к невозможности установки.
Исправлено: ошибка 500 возникает после успешного возврата платежа WeChat H5 на страницу, спасибо @AlienJunX.
Исправление: если в статью вставлено вложение и файл вложения слишком велик, на странице не появляется подсказка.
Исправлено: изображение редактора CKEditor невозможно вставить и загрузить.