思源笔记插件开发完整路线从本地跑通到集市发布【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan思源笔记是一款开源、隐私优先、自托管的知识工作空间人与 AI 智能体在其中协作。它的扩展入口就是插件系统内部代号 petal一个插件只是工作区plugins/目录下的一个文件夹。本文带你走通跑起来、改得动、发出去三关完成后你会得到一个能本地联调、能改代码、能提交集市发布的可用插件。第一关 · 跑起来最小运行命令与启动验证前置条件只有一个Node 加 pnpm。pnpm 版本别凭感觉选以 app/package.json 中packageManager字段声明的pnpm11.12.0为准装错版本装依赖时会反复踩坑。git clone https://gitcode.com/GitHub_Trending/si/siyuan cd app pnpm install pnpm run devpnpm run dev只负责 webpack 开发态构建窗口不会自己弹出来。再开一个终端在app/目录执行pnpm run start拉起 Electron 主程序。跑通后第一个可验证的信号设置页里的插件标签能打开且渲染进程控制台没有以plugin开头的红色报错——此时把你自己写的插件文件夹丢进当前工作区plugins/目录重启后应出现在插件列表里。工作区里plugins/等保留目录的约定在 docs/WORKSPACE.zh-CN.md 中有完整定义目录放错位置是新手最高频的失败原因。排错速查五种加载失败报错对照加载器把常见坑都打成了带插件名的控制台日志按关键词对号入座即可日志关键词原因处理run error入口 JS 在沙箱执行时抛异常检查语法确认依赖全部打进了 bundle 而不是运行时才requirehas no export模块没有导出任何内容用default导出插件类而不是导出零散函数does not extends Plugin导出类未继承基类类先extends Plugin再导出onload error入口能加载但onload()内部抛错看堆栈定位初始化逻辑里的具体行onLayoutReady error布局就绪回调里出错检查图标挂载、DOM 操作等与布局相关的代码看日志时优先打开渲染进程窗口Electron 里 F12的控制台上面这些报错全部出自前端加载器主进程日志只有进程级信息排查插件问题基本用不上。第二关 · 改得动先读清主链路再动代码主链路五个节点一句话走完插件文件夹放进工作区plugins/目录这是唯一的安装位置内核按目录逐个读取plugin.json解析版本与兼容性kernel/bazaar/plugin.go 的ParseInstalledPlugin前端向/api/petal/loadPetals发起请求拿到插件清单加载器用window.eval包成require/module/exports沙箱执行入口 JS导出类通过校验后实例化依次调用onload()和kernel.init()afterLoadPlugin把顶栏图标、状态栏图标、dock 面板挂到界面对应位置。改代码前把这三个入口各读一遍app/src/plugin/index.tsPlugin基类本体。topBarIcons、statusBarIcons、commands、setting、protyleSlash、customBlockRenders这些注册点全在这里声明读它才知道一个插件能往思源笔记里挂哪些东西app/src/plugin/loader.ts加载器全流程——执行、导出校验、onload调用、CSS 注入。上面排错表里的每个日志关键词都产自这个文件排障时它就是答案之书docs/API.zh-CN.mdHTTP API 手册。/api/filetree/createDocWithMd建文档、/api/block/insertBlock插块这类能力插件内通过siyuan命名空间或直接发请求都能调。第三关 · 发出去包结构自查与两个进阶方向集市的安装、更新、卸载逻辑集中在kernel/bazaar/目录字段标准以 kernel/bazaar/package.go 中Package结构体为准。提交集市前逐项核对解析规则version、displayName、description必填后两者是按语种索引的表key 为default、zh_CN这类语种码不是单一字符串minAppVersion高于当前应用版本时直接拒装这是已安装却显示不可用的头号原因backends、frontends缺失时按全平台支持处理而kernels为空则表示内核侧插件不会启动disabledInPublish为 true 时发布站模式下插件被禁用。两个值得深入的进阶方向HTTP API 深对接API 手册里的接口同样面向外部程序剪藏类扩展就是纯 HTTP 调内核你的插件可以直接复用这条通道做批量文档操作自定义块与斜杠命令基类预留了customBlockRenders和protyleSlash两个钩子做自定义块渲染或编辑器斜杠菜单时直接注册到这两个数组上无需碰内核。收尾 · 行动清单在插件onload()里调用createDocWithMd接口创建一篇文档以新文档出现在工作区为验证点确认 HTTP 通道打通写最小plugin.json只留name、version、displayName放进工作区plugins/目录后重启验证插件列表出现且控制台无run error加一个顶栏图标和一条命令分别覆盖topBarIcons与commands两个注册点验证图标显示在顶栏、命令可从命令面板触发在app/目录执行pnpm run lint验证输出无风格违规保证代码与仓库规范一致对照kernel/bazaar/package.go的Package结构体逐字段自查打包产物确认minAppVersion、frontends、kernels与目标环境全部匹配后再提交集市。【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
企业数字化 ERP 产品动态
相关推荐
lnav 主题系统完全指南:内置主题切换与自定义 UI 主题定义 开发工具日志分析CLI 【免费下载链接】lnav Log file navigator 项目地址: https://gitcode.com/gh_mirrors/ln/lnav 点击查看 免费下载 lnav 是一个日志文件导航器,从 v0.9.0 起,它的用户界面支持通过**主题(Theme)*… · 2026/9/24 13:48:49
shadcn-vue 面积图组件 AreaChart 使用指南:从 API 配置到自定义 Tooltip 实战 UI组件前端 【免费下载链接】shadcn-vue Vue port of shadcn-ui 项目地址: https://gitcode.com/gh_mirrors/sh/shadcn-vue 点击查看 免费下载 本文围绕 shadcn-vue 仓库中图表体系(deprecated/www 目录下基于 Unovis 构建的 Charts 模块)里… · 2026/9/24 13:48:49
2 个参数、5 级目标:把 Home Assistant SmartTub 主过滤循环调到低电价时段的完整指南 2 个参数、5 级目标:把 Home Assistant SmartTub 主过滤循环调到低电价时段的完整指南 【免费下载链接】home-assistant.io :blue_book: Home Assistant User documentation 项目地址: https://gitcode.com/GitHub_Trending/ho/home-assistant.io
这个月的电… · 2026/9/24 13:48:49
5G全网观察:协议栈、组网布线、行业落地与终端排障实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:26:02
5分钟搞定BT聚合器部署:Jackett跨平台自动化脚本全解析 5分钟搞定BT聚合器部署:Jackett跨平台自动化脚本全解析
你是否还在为多Tracker管理烦恼?频繁切换网站、重复搜索资源、手动复制磁力链接?Jackett作为开源BT聚合器,能将数十个Tracker站点统一为标准化API接口,让Sonarr… · 2026/9/24 14:25:56
Obsidian任务管理插件TaskNexus:从安装配置到查询语法与多设备同步实战 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:25:56
微带线到SIW过渡结构设计:三种方案对比与Ka波段优化 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 14:25:49
突破设备限制:Jackett多终端API响应式设计全解析 突破设备限制:Jackett多终端API响应式设计全解析
你是否曾在手机上管理下载任务时遭遇界面错乱?在平板上配置 tracker 时遇到功能缺失?本文将揭示 Jackett 如何通过底层 API 设计实现跨设备无缝体验,无需复杂前端适配即可让你的下… · 2026/9/24 14:25:49
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程 简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13
1D-CNN时间序列建模实战:从Conv1d原理到工业落地 简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26
柔软的L:汉语语流中被忽视的舌肌张力控制 1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44