Автор: Ондржей Яношик, Мартин Чапек

NOTUM Technologies является официальным партнером Strapi и агентством по разработке программного обеспечения на заказ в Чешской Республике. Наша специализация — разработка веб-приложений и мобильных приложений. Мы предоставляем наш сервис как для стартапов, так и для корпоративных клиентов в более чем 10 странах, а наши приложения используют более 5 000 000 пользователей каждый месяц.

🚀 О плагине

strapi-plugin-content-versioning позволяет:

  • Иметь несколько черновых версий одной сущности ✅
  • Ведите историю всех изменений (с путешествиями во времени) ✅
  • Иметь разные опубликованные и черновые данные ✅

Почему мы его построили?

Мы очень любим STRAPI (как вы могли догадаться), но одной вещи, которой нам не хватало в различных проектах, было управление версиями контента — особенно возможность иметь разные версии черновика и опубликованных данных и вести историю всех данных.

Этот плагин мы разработали во время разработки нового сайта на базе Strapi v4 для чешской страховой компании Direct. С разрешения клиента мы выпустили его как плагин с открытым исходным кодом и собираемся продолжить его разработку. 🎉

Как это работает под капотом?

Наш плагин вдохновлен функцией Strapi Content Internationalization (i18n). Плагин i18n работает так же на низком уровне при создании локализованных версий. Поэтому мы создали специальный идентификатор соответствующих версий, который группирует все версии одной и той же записи, а также создает связь между записями.

Поскольку мы можем использовать возможности системы Черновик и публикация, ваши контроллеры должны работать без дополнительного кодирования или изменений. Большим подспорьем в создании нашего плагина является новый Plugin API, который полезен при работе с основным кодом Strapi без необходимости перезаписи файлов.

Весь плагин состоит из 3 основных частей:

  1. Пользовательский контроллер, который управляет сохранением и созданием новых версий.
  2. ПО промежуточного слоя, которое фильтрует только релевантные версии в списке.
  3. Компоненты, размещенные на боковой панели, вводятся в «информационную зону».

Что дальше на дорожной карте?

Учитывая тот факт, что мы интенсивно сотрудничаем со Strapi, мы будем обновлять проект на основе запросов функций от нашего клиента и сообщества. Далее появятся следующие функции:

✨ Установка одной командой ✨ Расширение функциональности также для отдельных типов ✨ Автосохранение ✨ Обновление текущей версии без создания нового элемента истории ✨ Режим автоматического предварительного просмотра для получения черновой записи

Но сначала мы хотели бы выпустить стабильную версию. Плагин непросто выпустить, и мы ожидаем много крайних случаев в различных вариантах использования.

Как другие могут внести свой вклад

Мы будем рады услышать ваши отзывы! Пожалуйста, используйте GitHub Issues для запросов функций/отчетов об ошибках и вопросов. Кроме того, вы можете внести свой вклад в проект!

Установите сейчас

npm install @notum-cz/strapi-plugin-content-versioning