Снова напоминаем: при возникновении проблем, пожалуйста, создайте issue, не комментируйте в этой ветке.
NKeditor — это проект, основанный на Kindeditor и разработанный с целью улучшения его функциональности. Kindeditor — это открытый исходный код онлайн-редактора, который отличается лёгкостью, но при этом обладает мощными функциями. Его объём кода меньше, чем у популярного UEditor от Baidu, примерно вдвое. К сожалению, Kindeditor не обновлялся уже 4 года.
В связи с потребностями бизнеса мы разработали NKeditor на основе Kindeditor. Основные изменения включают:
- Улучшение стиля редактора и диалоговых окон, что сделало интерфейс более привлекательным.
- Переписывание плагинов для загрузки изображений и массовой загрузки, использование HTML5 для замены Flash, реализация предварительного просмотра загружаемых изображений и оптимизация пользовательского опыта.
- Исправление известных ошибок, таких как проблемы с получением содержимого при отправке через AJAX.
- Добавление функций, подобных эскизам.
Мы ещё раз благодарим разработчиков Kindeditor за предоставление такого замечательного онлайн-редактора. Это позволяет нам продолжать вносить свой вклад на основе их работы.
О версии
NKeditor использует последнюю версию Kindeditor v4.1.11 в качестве основы. Поэтому первая стабильная версия NKeditor называется v4.2.0. Все последующие версии основаны на v4.2.0.
Онлайн-демонстрация
http://d.r9it.com/nkeditor/
Установка и сборка
- Установите npm глобально с помощью команды «npm install -g grunt-cli».
- Перейдите в корневой каталог NKeditor и выполните команду «npm install».
- Скомпилируйте проект с помощью команды «grunt».
- Если вы хотите создать пакет, выполните команду «grunt zip», которая упакует все связанные файлы редактора в папку dist. После распаковки вы получите чистый редактор. Просто перейдите в index.html для предварительного просмотра.
Интеграция с Java
Я также интегрировал NKeditor в свой другой проект Spring-Boot с открытым исходным кодом, доступный по ссылке https://gitee.com/blackfox/spring-boot-demo. Этот проект представляет собой демонстрацию использования Spring-Boot в сочетании с фреймворком AmazeUI для создания базовой структуры бэкенда. Он также включает в себя Mapper3, плагин для разбивки на страницы и реализацию управления доступом на основе ролей (RBAC) с использованием Shiro. Проект можно быстро настроить и использовать в качестве полноценной системы управления бэкендом.
Чтобы начать работу с проектом, клонируйте его, импортируйте базу данных и измените конфигурацию базы данных в файле application.yml. Затем просто запустите проект и войдите в систему для тестирования. Однако стоит отметить, что текущая реализация поддерживает только загрузку файлов в Qiniu (七牛云), а не собственные функции загрузки.
Использование
- Плагин для массовой загрузки изображений зависит от jQuery версии 1.7 или выше. jQuery необходимо вручную включить, так как редактор не включает его по умолчанию, чтобы избежать замедления загрузки из-за ненужных библиотек скриптов.
- Реализация загрузки файлов поддерживает традиционные методы PHP и загрузку изображений в Qiniu. Рекомендуется использовать Qiniu из-за простоты и бесплатности (корпоративные версии платные). В демоверсии используется моё личное пространство, и при тестировании несколькими пользователями скорость загрузки и параллелизм могут быть ограничены. Если возникают проблемы со скоростью, рассмотрите возможность использования собственного пространства Qiniu или локальной загрузки.
- Для использования Qiniu SDK требуется Composer для сборки, поэтому после перехода в каталог php/qiniu выполните команду composer install.
- Демоверсия предоставляет доступ к моему личному пространству Qiniu исключительно для тестирования. Не рекомендуется загружать контент, нарушающий законы и нормы этики, поскольку он может быть неприемлемым.
- Бэкенд-код для загрузки и управления файлами является лишь демонстрацией и не обеспечивает безопасность. Пожалуйста, используйте его с осторожностью и в качестве справочного материала.
Обновления NKeditor
Версия 5.0.4:
- Исправлена ошибка в предварительном просмотре кода.
- Добавлен японский языковой пакет.
Версия 5.0.3:
- Убраны функции поиска и захвата изображений.
- Улучшена поддержка кода и добавлены вспомогательные функции редактирования.
- Добавлена функция вставки цитат с поддержкой вставки цитат.
- Исправлены ошибки в списке файлов сервера Qiniu и улучшено управление.
- Обновлён внешний вид таблицы с использованием стилей Bootstrap.
- Улучшен предварительный просмотр контента с поддержкой подсветки кода и возможностью добавления пользовательских CSS и JavaScript в режиме предварительного просмотра.
- Исправлена проблема с неудачной загрузкой эскизов в IE.
Версия 5.0.2:
- Исправлены проблемы с расположением значков в выпадающих меню.
- Решена проблема с поиском относительных путей, упомянутая @mean2015, путём обновления кода.
- Переработаны API для универсальных функций загрузки изображений и списков, оптимизированы алгоритмы хранения и списка изображений, исправлены ошибки, упомянутые @快乐的langYa.
Версия 5.0.1:
- В ответ на отзывы пользователей о том, что новый скин выглядит некрасиво, внесены исправления, включая изменение размера и расстояния между значками, что делает редактор менее тесным. Изменён стиль, а значки адаптированы из «wysiwyg-editor», что значительно улучшает внешний вид.
- Удалены некоторые необычные цветовые схемы, восстановлены и сохранены оригинальные скины. Пользователи, предпочитающие оригинальный скин, могут активировать его, установив themeType:"default".
- Интегрирована демонстрация Java.
- Исправлено несколько известных проблем.
Версия 5.0.0:
Большое обновление версии с использованием SASS для переписывания всего кода CSS, упрощения обслуживания и предоставления пяти вариантов скинов на выбор. Также исправлено множество ошибок.
- Исправлена проблема, когда переключение на исходный код и возврат приводили к исчезновению значков, благодаря обратной связи от пользователя «吴小华» на платформе Open Source China.
- Исправлена проблема #IFA3P, связанная с всплывающими окнами и языковыми пакетами, путём добавления нового параметра options dialogOffset для настройки положения всплывающих окон. По умолчанию установлено значение 0 для центрирования.
- Отвечая на настойчивые запросы сообщества, добавлена новая цветовая схема с использованием SVG для значков, обеспечивая высокое качество отображения в IE, хотя оно уступает SVG (что является обязательным требованием).
- Новый параметр tableBorderColor позволяет настраивать цвет границ таблиц по умолчанию. Значение по умолчанию — #cccccc.
Версия 4.2.2:
- Исправлена ошибка, из-за которой всплывающее окно для массовой загрузки файлов располагалось вне видимой области при наличии полосы прокрутки.
- Во всплывающие окна добавлены эффекты анимации CSS3.
- Оптимизированы методы loadStyle() и loadScript(), добавлены механизмы кэширования для предотвращения повторной загрузки одинаковых ресурсов CSS и JS.
- Проект упрощён путём объединения похожих CSS и JS, повторного использования кода и сокращения количества загружаемых ресурсов.
- Исправлена проблема в псевдостатических PHP-фреймворках, где загрузка JS с относительными путями приводила к сбоям в работе.
Версия 4.2.1:
- Изменён способ загрузки языковых пакетов, теперь по умолчанию загружается китайский пакет без необходимости ручной загрузки через скрипт. Теперь достаточно включить один файл NKeditor-all-min.js.
- Ресурсы оптимизированы путём сжатия больших плагинов JS и CSS и загрузки минифицированных статических ресурсов.
- Добавлен плагин YY Graft для онлайн-рисования, позволяющий добавлять эскизы с удовольствием.
- Класс изображений переписан для поддержки загрузки изображений в формате base64.
Версия 4.2.0 (соответствует исходной версии Kindeditor):
- Стиль редактора и всплывающих диалогов улучшен для повышения удобства использования.
- Плагины для загрузки изображений и массовых загрузок переписаны, используя HTML5 вместо Flash, предоставляя предварительный просмотр загружаемых изображений и улучшая взаимодействие с пользователем.
- Поддержка Qiniu Cloud включена и упакована в инструмент загрузки.
- Известные проблемы, такие как невозможность получения содержимого при отправке через AJAX, были решены.
Комментарии ( 0 )