社区插件
提交插件
了解如何为 Sidefy 构建、测试并提交社区插件。
开发指南
插件开发指南
使用 JavaScript 与 Sidefy 完整 API 为 Sidefy 创建强大插件。
核心函数结构
function fetchEvents(config) {
// Your plugin logic here
return events; // Return events array
}每个 Sidefy 插件必须实现 fetchEvents 函数,接受 config 参数并返回 events 数组。
事件对象格式
{
title: "Event Title",
startDate: "2024-01-01T10:00:00Z",
endDate: "2024-01-01T11:00:00Z",
color: "#3B82F6",
isAllDay: false,
isPointInTime: false,
notes: "Optional description",
icon: "https://example.com/icon.png",
href: "https://example.com",
imageURL: "https://example.com/image.jpg"
}必填字段
title— 事件标题(字符串)startDate— 开始时间,ISO8601 格式endDate— 结束时间,ISO8601 格式(isPointInTime 为 true 时可省略)color— 十六进制颜色值isAllDay— 是否全天事件(布尔值)isPointInTime— 是否瞬时事件(布尔值)
可选字段
notes— 事件描述(字符串)icon— 图标 URL(字符串)href— 点击链接(支持 http://、https://、popup://)imageURL— 图片 URL(字符串)
可用 API
可用 API
在插件中通过 sidefy 对象访问强大功能。
HTTP 请求
sidefy.http.get(url) sidefy.http.post(url, data)本地存储
sidefy.storage.get(key) sidefy.storage.set(key, value) sidefy.storage.clear()上限 1MB
日期处理
sidefy.date.parse(dateString) sidefy.date.format(date, format)AI 功能
sidefy.ai.chat(prompt)网页抓取
sidefy.crawler(url)使用 Jina Reader API 提取网页内容。返回 {success, title, url, content, description}
弹窗构建
sidefy.popup.build(title, content)为事件 href 字段构建 popup:// 协议 URL,在弹窗中显示自定义内容
应用信息
sidefy.app.language()返回当前语言代码:'zh'、'en'、'ja'、'ko'、'de'、'es'、'fr'、'pt'、'ru'
国际化
sidefy.i18n(translations)根据用户语言设置自动选择文案,提供更好的体验:
const greeting = sidefy.i18n({
"zh": "你好,世界!",
"en": "Hello, World!",
"ja": "こんにちは、世界!",
"ko": "안녕하세요, 세계!",
"de": "Hallo, Welt!",
"es": "¡Hola, Mundo!",
"fr": "Bonjour, le monde!",
"pt": "Olá, Mundo!",
"ru": "Привет, мир!"
});
return [{
title: greeting,
startDate: sidefy.date.format(Date.now())
}];- 优先返回当前应用语言的翻译
- 当前语言不可用时回退到英文("en")
- 英文也不可用时返回第一个可用值
提交流程
导出与提交流程
按以下步骤将插件提交到社区仓库。
步骤 1
开发插件
使用 fetchEvents 函数与可用 API 创建插件,充分测试以确保兼容性。
在 Sidefy 中测试:使用 Sidefy 内置插件编辑器在应用内编写并测试插件代码。在插件管理界面可编辑代码、实时查看事件输出并调试,确保与 Sidefy 兼容。
步骤 2
准备文档
撰写清晰文档,说明插件功能、要求与使用方法。
从 Sidefy 导出:使用插件导出按钮,将 info.json 与 main.js 导出到以插件命名的目录。生成标准插件结构,便于分发与提交到社区仓库。
步骤 3
提交到 GitHub
向 sidefy-plugins 仓库创建 Pull Request,包含插件代码与文档。
// Directory name, also the unique plugin ID for the client
your-plugin-name/
├── main.js # Plugin code
├── info.json # Plugin basic information
└── README.md # Documentation步骤 4
审核与合并
团队将审核插件的质量、安全性与兼容性,通过后合并到仓库。
常见问题
常见问题
关于插件开发与提交的常见问题。
插件可以使用哪些编程语言?
插件使用 JavaScript,在沙箱环境中运行。可使用现代 JavaScript 特性与提供的 sidefy API。
审核需要多久?
审核通常需要 1–3 个工作日。我们会全面测试每个插件的质量、安全性与兼容性。
提交后可以更新插件吗?
可以,随时通过相同的 GitHub Pull Request 流程提交更新。