JPress — Java-альтернатива Wordpress, разработанная с использованием JFinal. Поддерживает практически все функции, аналогичные WordPress, такие как шаблоны, плагины и т. д. В то же время, что касается шаблонов, JPress выдвигает концепцию «шаблон как модель», которая позволяет производителям шаблонов гибко создавать бизнес-модели, удаляет сложные функции, такие как виджеты, и является более гибкой и лаконичной, чем WordPress, с точки зрения изготовление шаблонов и плагинов.
Однако JPress не является Java-версией WordPress. Он естественным образом интегрирован с общедоступной платформой WeChat и объединяет многие внутренние облачные платформы, платформы отправки SMS и электронной почты. Исходная концепция «шаблона как модели» недоступна в WordPress и недоступна. только опытные игроки. Только игроки в WordPress могут понять тонкие взаимоотношения внутри. В то же время в будущем будет добавлена функция синхронизации статей WeChat, общедоступной платформы QQ, Toutiao, Yidian и других новых медиа, что сделает ее более внутренней и локализованной.
JPress с точки зрения функциональностиПоддерживает пользовательские модели, которые определяются с помощью шаблонов, а не фоновых функций. В то же время содержимое модели поддерживает пользовательские категории. Например, модель статьи поддерживает темы, категории, теги и другие категории.
Поддерживает несколько движков шаблонов. 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).
JPress в WeChatПоддержка настроек меню WeChat.
Поддерживает автоматические ответы, добавление ключевых слов и содержания ответа.
Поддерживает ответы по умолчанию, в том числе: когда пользователь обращает внимание, при входе в многопользовательскую службу, при выходе из многопользовательской службы, при отправке изображений, при отправке голоса, при отправке видео, при отправке местоположения, при отправке соединения, когда пользователь сканирует QR-код с параметрами, когда пользователь встряхивается.
Все автоматические ответы или ответы по умолчанию поддерживают функцию «расширенного ответа», например ответ на статью, ответ на URL-адрес... Расширенные ответы — это специальные ответы, встроенные в JPress, но они полностью настраиваются, и будут доступны дополнительные «расширенные ответы». добавлена в будущем Функция.
Автоматический ответ или ответ по умолчанию поддерживает ответ подключаемого модуля и вызывает подключаемый модуль JPress для завершения ответа.
Поддерживает поиск статей. При ответе на ключевые слова будут возвращены статьи, соответствующие ключевым словам.
В будущем будут поддерживаться практические функции, такие как синхронизация статей или импорт WeChat.
JPress о технической сторонеИспользуя JFinal в качестве своего ядра, JPress также извлекает выгоду из гибкой архитектуры JFinal. В системе с открытым исходным кодом JFinalframework JPress заботится о реализации каждой строки логики и уделяет внимание качеству каждой строки кода. Это должно быть одним из лучших практик JFinal, поэтому его также следует обязательно прочитать. каждый JFinaler.
Используйте Freemarker и Timeleaf в качестве шаблонизаторов. Уникальный кеш, встроенный в JPress, делает скорость рендеринга пользовательского интерфейса независимой от механизма шаблонов.
Tinymce используется в качестве визуального редактора, а simplemde — в качестве редактора уценки. Их можно свободно переключать в фоновом режиме.
Плагин пользовательского интерфейса для загрузки файлов и изображений использует Fine-Uploader.
Во внешнем интерфейсе JPress использует jquery, bootstrap, adminlte, 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- 14 jar-пакетов: java-5.1.36.jar, slf4j-api-1.7.7.jar, slf4j-log4j12-1.7.7.jar, jetty-server-8.1.8.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 с открытым исходным кодом, которая не находится на том же уровне, что и отечественные продукты с «открытым исходным кодом», использующие частные лицензии.
Журнал обновлений jpressv4.0.9:
Новое: Добавлена функция загрузки видео в редакторы статей.
Новое: добавлен API html2wxml и документация к нему.
Оптимизация: обновление статей, продуктов, API страниц и документации.
Оптимизация: Улучшите API, связанные с продуктами, корзинами покупок и купонами.
Исправлено: заголовок редактора статьи и выделение жирным шрифтом недействительны.
Исправлено: после импорта JPress в eclipse полученный путь к ресурсу в некоторых случаях был неправильным.
Исправление: Menu.isUrlEquals может быть неправильно определен во вторичном каталоге.
Исправлено: пользователи мини-программы не могут получить информацию о параметрах, если они не вошли в систему, а информация подсказки неверна.
Исправлено: после отключения кода подтверждения поле ввода кода подтверждения фонового входа не отображается.
Отображение страницы JPress