思源笔记社区正在搭建中,现邀您共建
SiYuan Community is under construction. Join us to co-build.
原贴地址:https://ld246.com/article/1723732790981
作者:F 酱
npm install siyuan❓ 为什么是 svelte,而不是更加常见的例如 react 框架? React 的流行主要源自其先发地位和优秀的生态环境;但是在插件开发的场景下,前端库的生态如何、组件库是否够多带来的影响并不大 svelte 足够轻量级、性能足够高;而 React 这类基于 vdom 的框架 ,往往打包结果偏大,并不适合插件开发这种小型项目 svelte 的开发和上手成本最低

import { Plugin } from 'siyuan';
class MyPlugin extends Plugin {
onload() {
//插件的入口函数,一个 minimum 的插件至少要包含 onload 的实现, 最常用
//onload 可以被声明为一个 async 函数
}
onLayoutReady() {
//布局加载完成的时候,会自动调用这个函数
}
onunload() {
//当插件被禁用的时候,会自动调用这个函数
}
uninstall() {
//当插件被卸载的时候,会自动调用这个函数
}
}eventBus 对象。class Plugin {
eventBus: EventBus;
}plugin.eventBus.on('some event', callback func),为插件注册一个总线事件的回调函数,让插件在思源的特定时刻执行一些特别的功能,例如:import { Plugin } from 'siyuan';
class MyPlugin extends Plugin {
cbBound: this.cb.bind(this);
cb({ detail} ) {
console.log('刚刚打开了一个新的文档!');
}
onload() {
this.eventBus.on('loaded-protyle-dynamic', this.cbBound);
}
onunload() {
this.eventBus.off('loaded-protyle-dynamic', this.cbBound);
}
}