Skip to content

Latest commit

 

History

History
125 lines (104 loc) · 4.27 KB

README_zh_CN.md

File metadata and controls

125 lines (104 loc) · 4.27 KB

English

思源笔记插件示例

开始

  • 通过 Use this template 按钮将该库文件复制到你自己的库中,请注意库名必须和插件名称一致
  • 将你的库克隆到本地开发文件夹中,为了方便可以直接将开发文件夹放置在 {工作空间}/data/plugins/
  • 安装 NodeJSpnpm,然后在开发文件夹下执行 pnpm i
  • 执行 pnpm run dev 进行实时编译
  • 在思源中打开集市并在下载选项卡中启用插件

开发

国际化

国际化方面我们主要考虑的是支持多语言,具体需要完成以下工作:

  • 插件自身的元信息,比如插件描述和自述文件
    • plugin.json 中的 descriptionreadme 字段,以及对应的 README*.md 文件
  • 插件中使用的文本,比如按钮文字和提示信息
    • src/i18n/*.json 语言配置文件
    • 代码中使用 this.i18.key 获取文本
  • 最后在 plugin.json 中的 i18n 字段中声明该插件支持的语言

建议插件至少支持英文和简体中文,这样可以方便更多人使用。

plugin.json

{
  "name": "plugin-sample",
  "author": "Vanessa",
  "url": "https://github.com/siyuan-note/plugin-sample",
  "version": "0.0.1",
  "displayName": {
    "default": "Plugin Sample",
    "zh_CN": "插件示例"
  },
  "description": {
    "default": "This is a plugin sample",
    "zh_CN": "这是一个插件示例"
  },
  "readme": {
    "default": "README.md",
    "zh_CN": "README_zh_CN.md"
  },
  "i18n": [
    "en_US",
    "zh_CN"
  ],
  "funding": {
    "openCollective": "b3log",
    "patreon": "",
    "github": "",
    "custom": [
      "https://ld246.com/sponsor"
    ]
  }
}
  • name:插件名称,必须和库名一致,且全局唯一(集市中不能有重名插件)
  • author:插件作者名
  • url:插件仓库地址
  • version:插件版本号,建议遵循 semver 规范
  • displayName:模板显示名称,主要用于模板集市列表中显示,支持多语言
    • default:默认语言,必须存在
    • zh_CNen_US 等其他语言:可选,建议至少提供中文和英文
  • description:插件描述,主要用于插件集市列表中显示,支持多语言
    • default:默认语言,必须存在
    • zh_CNen_US 等其他语言:可选,建议至少提供中文和英文
  • readme:自述文件名,主要用于插件集市详情页中显示,支持多语言
    • default:默认语言,必须存在
    • zh_CNen_US 等其他语言:可选,建议至少提供中文和英文
  • i18n:插件支持的语言列表
  • funding:插件赞助信息
    • openCollective:Open Collective 名称
    • patreon:Patreon 名称
    • github:GitHub 登录名
    • custom:自定义赞助链接列表

打包

无论使用何种方式编译打包,我们最终需要生成一个 package.zip,它至少包含如下文件:

  • icon.png
  • index.js
  • plugin.json
  • preview.png
  • README*.md
  • index.css (optional)
  • i18n/* (optional)

上架集市

如果是第一次发布版本,还需要创建一个 PR 到 Community Bazaar 社区集市仓库,修改该库的 plugins.json。该文件是所有社区插件库的索引,格式为:

{
  "repos": [
    "username/reponame"
  ]
}

PR 被合并以后集市会通过 GitHub Actions 自动更新索引并部署。后续发布新版本插件时只需要按照上述步骤创建新的发布即可,不需要再 PR 社区集市仓库。

正常情况下,社区集市仓库每隔 1 小时会自动更新索引并部署,可在 https://github.com/siyuan-note/bazaar/actions 查看部署状态。