Discourse Linkify Google Sheets

Плагин позволяет получать данные компонента темы linkify из Google Таблиц. На данный момент вам нужно установить этот форк компонента темы, но в будущем может появиться решение, позволяющее использовать оригинальный компонент темы вместе с этим плагином.


Настройка

Шаги:

  1. Создайте сервисный аккаунт в Google Cloud: Create service accounts  |  Identity and Access Management (IAM)  |  Google Cloud Documentation
    Google инициирует загрузку JSON-файла. Сохраните его содержимое в надежном месте.

  2. Создайте Google Таблицу и предоставьте доступ к ней по адресу электронной почты сервисного аккаунта.

  3. Вставьте следующие строки в конец раздела env в вашем файле app.yml:

     GOOGLE_ACCOUNT_TYPE: 'service_account'
     GOOGLE_CLIENT_ID: 'client-id-from-json-file'
     GOOGLE_CLIENT_EMAIL: "service-account-email-address"
     GOOGLE_PRIVATE_KEY:  instructions below
    
  • Как настроить параметр GOOGLE_PRIVATE_KEY?

    • Скопируйте ключ из JSON-файла в текстовый редактор.
    • Используйте функцию «Найти и заменить», заменив \n на \\n.
    • Скопируйте результат и вставьте его в app.yml перед GOOGLE_PRIVATE_KEY,
      заключив в одинарные кавычки ' '.
  1. Теперь выполните обычные шаги установки плагина.

  2. Установите этот форк компонента темы Linkify.


Настройки плагина

linkify_google_sheet_id: При открытии Google Таблицы в браузере длинная строка после https://docs.google.com/spreadsheets/d/ является идентификатором таблицы.

linkify_google_sheet_name: В одном файле Excel может быть несколько листов, например Sheet1, Sheet2 и т. д. Укажите здесь название нужного листа.

linkify_google_sheet_cell_range: Столбцы, из которых будут браться данные для linkify. По умолчанию используются первые два столбца. Вы можете изменить это значение. Вот руководство по диапазонам ячеек: Google Sheets API Overview  |  Google for Developers


:page_facing_up: Получить код

:raising_hand_woman: Запросить функцию

:bug: Сообщить об ошибке

Потерялись?

Спасибо за спонсирование плагина @jrgong

7 лайков

@sam
С этим я также предлагаю метод plugin-api, который позволяет аккуратно подключаться к источнику данных таких компонентов темы и заменять его.

Например:

// при использовании
let data = useDataSource('linkify-data');
// плагины, компоненты темы могут делать что-то вроде этого

setDataSource('linkify-data', customDataObject);

Идея в том, что другой компонент темы может вызвать setDataSource с другим объектом.
Это позволит заменять источник данных таких компонентов без внесения изменений в код.
Что думаете?

4 лайка

Великолепно! Ещё раз спасибо за отличную работу и реализацию @fzngagan

2 лайка