Discourse Linkify 谷歌表格

该插件允许从 Google 表格中获取 linkify 主题组件的数据。目前,您需要安装该主题组件的 此分支,但未来可能会有解决方案,让您能够直接使用原始主题组件配合此插件。


设置

步骤:

  1. 在 Google Cloud 上创建一个服务账号:Create service accounts  |  Identity and Access Management (IAM)  |  Google Cloud Documentation
    Google 将触发下载一个 JSON 文件。请妥善保管其内容。

  2. 创建一个 Google 表格,并将其与服务账号的电子邮件地址共享。

  3. 将以下行粘贴到您应用的 app.yml 文件中 env 部分的底部:

     GOOGLE_ACCOUNT_TYPE: 'service_account'
     GOOGLE_CLIENT_ID: 'client-id-from-json-file'
     GOOGLE_CLIENT_EMAIL: "service-account-email-address"
     GOOGLE_PRIVATE_KEY:  详见下文说明
    
  • 如何设置 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/ 后面的长字符串即为电子表格 ID。

linkify_google_sheet_name:您可以在一个 Excel 文件中包含多个工作表,例如 Sheet1Sheet2 等。此处填写工作表名称。

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 个赞