Перейти до вмісту

Sanity

Sanity - це безголова CMS (система керування контентом), розроблена для гнучкості та компонованості. Вона використовує структурований контент, дозволяючи бізнесу повторно використовувати вміст на різних каналах. Її компонований підхід допомагає організаціям з’єднуватися з сторонніми технологіями, джерелами даних та фронтенд-фреймворками.

Перед налаштуванням

Перед налаштуванням інтеграції переконайтеся, що у вас є доступ до проекту Sanity.

  1. Відвідайте Sanity.io і створіть новий проект або використовуйте існуючий.
  2. Знайдіть свій ID проекту, який можна знайти під назвою вашого проекту на панелі управління Sanity.
  3. Згенеруйте API токен (або використовуйте існуючий). Ви можете створити новий токен на вкладці API вашого проекту Sanity. Додаток потребує дозволів Editor для доступу до всіх функцій. Після генерації скопіюйте токен для подальшого використання.

API_token.png

Підключення до Sanity

  1. Перейдіть до розділу Apps і знайдіть додаток Sanity (ви можете використати пошук).
  2. Натисніть Add Connection.
  3. Назвіть ваше підключення для майбутнього посилання (наприклад, ‘Моя Організація’).
  4. Введіть ID проекту у відповідне поле.
  5. Введіть ваш API токен у відповідне поле.
  6. Натисніть Authorize connection.
  7. Підтвердіть, що підключення встановлено і статус показує Connected.

Connection

Actions

  • Search content: Пошук контенту в певному наборі даних. Якщо набір даних не вказано, за замовчуванням використовується набір даних виробництва.
  • Get content: Отримання об’єкта контенту з певного набору даних за його ідентифікатором.
  • Get content as HTML: Отримання локалізованих полів контенту у вигляді HTML-файлу.
  • Update content from HTML: Оновлення локалізованих полів контенту за допомогою HTML-файлу.
  • Create content: Створення об’єкта контенту на основі його типу та параметрів.
  • Delete content: Видалення об’єкта контенту з набору даних за його ідентифікатором.

Конвертація HTML

Зверніть увагу, що цей додаток наразі працює з sanity-plugin-internationalized-array. Це означає, що додаток підтримує лише поля типів ‘internationalizedArrayStringValue’ або ‘internationalizedArray’. Він не буде працювати або оновлювати контент зі звичайним типом рядка. Підтримуються лише ці типи полів.

Ось приклад підтримуваних полів:

defineField({
name: 'firstName',
description: 'Test description',
type: 'internationalizedArrayString',
}),
defineField({
name: 'lastName',
type: 'internationalizedArrayString',
}),
defineField({
name: 'experience',
type: 'internationalizedArrayString'
})

У майбутньому ми плануємо підтримувати додаткові плагіни локалізації, такі як document-internationalization plugin, який працює на рівні документа.

Якщо вам потрібно перекладати звичайні типи контенту (наприклад, рядки або багаті текстові блоки), будь ласка, зв’яжіться з нами, і ми розглянемо рішення.

Events

Налаштування вебхуків

Щоб увімкнути вебхуки, перейдіть на сторінку вашого проекту в Sanity.io. Виберіть вкладку API і натисніть Create new webhook. Назвіть вебхук (наприклад, Blackbird), додайте опис і введіть наступну URL-адресу: https://bridge.blackbird.io/api/webhooks/sanity. Виберіть дії з документами, які викликатимуть вебхук (ми рекомендуємо вибрати всі: create, update, delete). Залиште інші налаштування за замовчуванням. Натисніть Save. Ви повинні побачити щось подібне:

webhook_configuration

Список подій

  • On content created: Спрацьовує, коли створюється новий контент.
  • On content updated: Спрацьовує, коли оновлюється існуючий контент.

Якщо ви використовуєте подію On content updated, пам’ятайте про потенційну можливість нескінченного циклу. Якщо ваш робочий процес викликає цю подію і під час дії оновлює контент, це може знову викликати цю подію. Щоб уникнути цього, ви можете використовувати два додаткові параметри фільтрації:

  1. Trigger if all language fields are not present: Якщо увімкнено, подія буде активована лише якщо вказана “Translation language” відсутня в контенті.
  2. Translation language: Застосовується лише якщо увімкнено перший фільтр. Встановіть мову перекладу, на яку ви хочете орієнтуватися. Подія буде активована лише якщо всі поля локалізації для цієї мови відсутні в контенті.

Обмеження

  • У Sanity локалізація доступна через плагін, що означає, що користувач створюватиме власні моделі контенту, пишучи код (включаючи локалі). Оскільки це плагін, він не надає жодних API-кінцевих точок для прямого отримання локалей або іншої інформації з плагіна.
plugins: [
structureTool(),
visionTool(),
internationalizedArray({
languages: [
{id: 'en', title: 'English'},
{id: 'fr', title: 'French'}
],
defaultLanguages: ['en'],
fieldTypes: ['string', 'artist']
})
]

Зворотній зв’язок

Ви хочете використовувати цей додаток або у вас є відгуки щодо нашої реалізації? Зв’яжіться з нами через усталені канали або створіть issue.