Discourse Linkify Google Sheets

O plugin permite buscar os dados do componente de tema linkify a partir de uma planilha do Google. Por enquanto, você precisará instalar este fork do componente de tema, mas pode haver uma solução no futuro para que você possa usar o componente de tema oficial com este plugin.


Configuração

Passos:

  1. Crie uma conta de serviço no Google Cloud: Create service accounts  |  Identity and Access Management (IAM)  |  Google Cloud Documentation
    O Google iniciará o download de um arquivo JSON. Armazene seu conteúdo com segurança.

  2. Crie uma planilha do Google e compartilhe-a com o endereço de e-mail da conta de serviço.

  3. Cole as seguintes linhas no final da seção env no seu arquivo app.yml:

     GOOGLE_ACCOUNT_TYPE: 'service_account'
     GOOGLE_CLIENT_ID: 'client-id-do-arquivo-json'
     GOOGLE_CLIENT_EMAIL: "endereco-de-e-mail-da-conta-de-servico"
     GOOGLE_PRIVATE_KEY: instruções abaixo
    
  • Como configurar o parâmetro GOOGLE_PRIVATE_KEY?

    • Cole a chave do arquivo JSON em um editor de código.
    • Use a função de encontrar e substituir para trocar \n por \\n.
    • Copie o resultado e cole no app.yml na frente de GOOGLE_PRIVATE_KEY,
      envolvendo-o entre aspas simples ' '.
  1. Agora, siga os passos normais para instalar o plugin.

  2. Instale este fork do componente de tema Linkify.


Configurações do Plugin

linkify_google_sheet_id: Quando você abre a planilha do Google no navegador, a longa sequência de caracteres após https://docs.google.com/spreadsheets/d/ é o ID da planilha.

linkify_google_sheet_name: Você pode ter várias planilhas em um arquivo Excel, ou seja, Sheet1, Sheet2, etc. O nome dessa planilha deve ser inserido aqui.

linkify_google_sheet_cell_range: As colunas das quais buscar os dados de linkificação. Por padrão, são as duas primeiras colunas. Você pode alterar esse valor. Aqui está um guia sobre como funcionam os intervalos de células: Google Sheets API Overview  |  Google for Developers


:page_facing_up: Obter o código

:raising_hand_woman: Solicitar uma funcionalidade

:bug: Reportar um erro

Perdido?

Obrigado por patrocinar o plugin @jrgong

7 curtidas

@sam
Com isso, também estou propondo um método plugin-api que permite conectar-se e substituir a fonte de dados desses componentes de tema de forma limpa.

ex.

// ao usar
let data = useDataSource('linkify-data');
// plugins, componentes de tema podem fazer algo assim

setDataSource('linkify-data', customDataObject);

A ideia aqui é que algum outro componente de tema possa usar setDataSource para outro objeto.
Isso permitiria substituir a fonte de dados desses componentes sem alterar nada no código.
O que acham?

4 curtidas

Adorei! Obrigado novamente pelo excelente trabalho e implementação @fzngagan

2 curtidas