首页/新闻资讯/正文详情

思源笔记插件开发从零到上线:20 分钟跑通本地环境并让第一个插件加载成功

发布时间:2026/9/24 13:34:58 来源:云帆数科 栏目:资讯中心
思源笔记插件开发从零到上线:20 分钟跑通本地环境并让第一个插件加载成功
思源笔记插件开发从零到上线20 分钟跑通本地环境并让第一个插件加载成功【免费下载链接】siyuanAn open-source, privacy-first, self-hosted knowledge workspace where humans and AI agents work together 开源、隐私优先、自托管的知识工作空间让人与智能体在此协作项目地址: https://gitcode.com/GitHub_Trending/si/siyuan思源笔记是一款开源、隐私优先、自托管的知识工作空间其插件系统允许任何人给它扩展命令、图标与自定义块。这篇思源笔记插件开发与入门教程带你走通按目标选钩子、搭建本地环境、写出最小可加载插件、排查插件加载报错最后把插件发布到集市。 先定目标想做什么就挂哪个注册点写代码前先想清楚要给思源加什么能力对应到Plugin基类的哪个钩子就一目了然想实现的效果注册点基类属性最终出现位置提供快捷键操作commands命令面板顶栏加一个图标按钮topBarIcons编辑器顶栏独立配置页setting设置面板自定义内容块customBlockRenders与protyleSlash正文渲染与斜杠菜单这些属性都是基类里预声明好的容器onload()里往里塞条目即可前端会自动把它们挂到对应界面位置。基类定义在 app/src/plugin/index.ts读一遍它比查散落的文档更快建立整体感。 十分钟搭建本地开发环境需要 Node pnpm 工具链版本以 app/package.json 中packageManager字段为准pnpm11.12.0。三条命令搞定git clone https://gitcode.com/GitHub_Trending/si/siyuan cd siyuan/app pnpm install pnpm run dev pnpm run start第一条启动 webpack 开发模式第二条拉起 Electron 窗口。第一次跑通后先别急着写代码去界面上找两个入口设置面板里的插件列表以及命令面板——后面验证自己的插件就靠这两处。 写出能加载的最小插件一个插件就是工作区plugins/目录下的一个文件夹目录职责在 docs/WORKSPACE.zh-CN.md 有说明plugin.json是身份声明index.js是入口脚本index.css可选放样式。最小plugin.json只留三个字段{ name: hello-siyuan, version: 1.0.0, displayName: Hello SiYuan }入口脚本的三个要点类要继承Plugin、类必须default导出、初始化逻辑全部放进onload()。加载机制其实就是一条能一口气读完的链路文件夹 → 内核解析 plugin.json、读取 JS/CSS → 前端沙箱执行入口并实例化 → 调用onload()并把图标、命令、设置页挂上界面。前端加载器在 app/src/plugin/loader.ts它同时负责 CSS 注入与出错日志内核侧的启停接口在 kernel/api/petal.go进阶时再看。 插件加载报错怎么查加载器把每类失败都打成了明确的控制台日志。记住一个原则先看浏览器控制台而不是主进程日志基本能直接定位插件出现在列表却显示不可用这是最隐蔽的静默失败。多半是plugin.json里的minAppVersion高于当前版本或disabledInPublish在发布站模式把它禁用了。修法核对版本号把兼容性要求降到真实依赖的最低版本。日志出现has no export入口没有可用导出。确认export default导出的是插件类本身。日志出现does not extends Plugin导出的类没继承基类。给类声明补上extends Plugin。日志出现run error或onload error前者是入口 JS 执行阶段就抛异常多为语法错误或依赖没打进 bundle后者说明onload()内部报错。排查 onload 时在第一行打一条日志先确认执行进了函数再二分定位。把插件发布到社区集市两个自查字段功能验证通过后下一步是分发。集市的安装、更新、卸载逻辑集中在 kernel/bazaar/ 目录发布前建议通读一遍install.go和package.go确认包结构与字段解析规则。发布前重点自查两处version已递增且minAppVersion与插件实际依赖的最低版本一致displayName、description填写完整集市要求的字段没有缺失。接下来可以做的四件事打开 docs/API.zh-CN.md挑通过 Markdown 创建文档这一个接口在onload()里调通验证内核 API 链路给topBarIcons加一个图标、给commands加一条命令一次覆盖两个注册点在app/目录执行pnpm run lint保持代码风格与仓库一致想加斜杠命令时往protyleSlash推一条配置在编辑器里输入/查看效果。【免费下载链接】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),仅供参考

相关推荐

wandb 中的 OpenTelemetry-Go:从信号状态、版本兼容到 OTLP 导出实战
wandb 中的 OpenTelemetry-Go:从信号状态、版本兼容到 OTLP 导出实战

机器学习深度学习数据可视化可观测性 【免费下载链接】wandb The AI developer platform. Use Weights & Biases to train and fine-tune models, and manage models from experimentation to production. 项目地址: https://gitcode.com/gh_mirrors/wa/wandb 点… · 2026/9/24 13:34:58

hLife | 冠状病毒“劫持”高尔基体来源的COPI囊泡以形成复制细胞器
hLife | 冠状病毒“劫持”高尔基体来源的COPI囊泡以形成复制细胞器

冠状病毒感染后,会重塑细胞内膜系统以形成双膜囊泡(double-membrane vesicle,DMV)作为病毒RNA合成的平台。内质网被认为是DMV形成的主要膜来源;同时,本团队前期的研究表明,冠状病毒nsp6蛋白可通… · 2026/9/24 13:34:51

ECU 上电后第一条指令从哪里开始?Reset Vector、BootROM 与 Startup 入口
ECU 上电后第一条指令从哪里开始?Reset Vector、BootROM 与 Startup 入口

AUTOSAR 工程编译完成以后,我们最终会得到 ELF、HEX 或 S19 文件,再通过调试器把程序烧进 ECU。 程序烧进去之后,给 ECU 上电,很多人下意识会认为 CPU 接下来执行的是: int main(void) {... }实际上,main() 已经是启动流程中比较靠后的一个位置。 在进入 main() 之前,… · 2026/9/24 13:34:44

django CMS 4.1.4 发布说明与升级指南:安全修复、兼容性矩阵与源码级修复解析
django CMS 4.1.4 发布说明与升级指南:安全修复、兼容性矩阵与源码级修复解析

django CMS 4.1.4 发布说明与升级指南:安全修复、兼容性矩阵与源码级修复解析 【免费下载链接】django-cms The easy-to-use and developer-friendly enterprise CMS powered by Django 项目地址: https://gitcode.com/gh_mirrors/dj/django-cms django CMS… · 2026/9/24 13:59:43

PHPStan 错误详解:property.finalPrivateHook —— private 属性钩子为何不能声明为 final
PHPStan 错误详解:property.finalPrivateHook —— private 属性钩子为何不能声明为 final

开发工具代码质量静态分析 【免费下载链接】phpstan PHP Static Analysis Tool - discover bugs in your code without running it! 项目地址: https://gitcode.com/gh_mirrors/ph/phpstan 点击查看 免费下载 导读 property.finalPrivateHook 是 PHPStan 在分析 P… · 2026/9/24 13:59:43

计算机单片机毕设实战-基于 STM32 的环境传感采集与本地 + 远程联动控制系统设计 基于 STM32 的室内空气监测阈值配置与声光预警系统设计(010309)
计算机单片机毕设实战-基于 STM32 的环境传感采集与本地 + 远程联动控制系统设计 基于 STM32 的室内空气监测阈值配置与声光预警系统设计(010309)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️… · 2026/9/24 13:59:37

拆解 ROCm 文档仓库:官方文档站背后的 3 条数据流水线与 changelog 自动化
拆解 ROCm 文档仓库:官方文档站背后的 3 条数据流水线与 changelog 自动化

拆解 ROCm 文档仓库:官方文档站背后的 3 条数据流水线与 changelog 自动化 【免费下载链接】legacy-rocm-build AMD ROCm™ Software - GitHub Home 项目地址: https://gitcode.com/GitHub_Trending/ro/legacy-rocm-build 导读 这个仓库是 ROCm 文档站&… · 2026/9/24 13:59:25

Apache Pulsar 与 Spark Streaming 集成实战:基于 SparkStreamingPulsarReceiver 构建实时流处理应用
Apache Pulsar 与 Spark Streaming 集成实战:基于 SparkStreamingPulsarReceiver 构建实时流处理应用

消息队列后端流处理 【免费下载链接】pulsar Apache Pulsar - distributed pub-sub messaging system 项目地址: https://gitcode.com/gh_mirrors/pulsar28/pulsar 点击查看 免费下载 导读 本文围绕 Apache Pulsar 官方文档中关于 Spark Streaming 适配器的核心内… · 2026/9/24 13:59:25

IGBT选型实战指南:从工况分析到参数计算与验证
IGBT选型实战指南:从工况分析到参数计算与验证

/* 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 13:59:25

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码