思源笔记社区正在搭建中,现邀您共建
SiYuan Community is under construction. Join us to co-build.
class Plugin| Property | Type | Description |
|---|---|---|
eventBus | EventBus | EventBus 对象,可以通过调用它的 on 方法来接受思源的事件 |
i18n | IObject | Object 对象,结构同在 i18n 目录下的 json 文件。 |
data | any | |
name | string | |
app | App | 包含 plugins 和 appId 两个属性,plugins是当前所有已运行插件的实例,appId 为部分函数需要传入的参数 |
commands | ICommandOption[] | |
setting | Setting |
onloadonload(): void;// https://github.com/siyuan-note/siyuan/blob/master/app/src/plugin/loader.ts
try {
await plugin.onload();
}
catch (e) {
console.error(`plugin ${item.name} onload error:`, e);
}onunloadonunload(): void;onLayoutReadyonLayoutReady(): void;addTopBaraddTopBar(options: {
icon: string,
title: string,
callback: (event: MouseEvent) => void,
position?: "right" | "left"
}): HTMLElement;icon:图标,可以是一个定义好的 Symbol 标识符,也可以是一个 svg htmltitle:图标文本,当鼠标悬浮到图标上的时候会显示对应 title 的 tooltipcallback: 鼠标点击的回调函数position: 图标显示在顶栏的左侧还是右侧addStatusBaraddStatusBar(options: {
element: HTMLElement,
position?: "right" | "left"
}): HTMLElement;openSettingopenSetting(): void;loadDataloadData(storageName: string): Promise<any>;saveDatasaveData(storageName: string, content: any): Promise<void>;removeDataremoveData(storageName: string): Promise<any>;addIconsaddIcons(svg: string): void;addTabaddTab(options: {
type: string,
destroy?: () => void,
resize?: () => void,
update?: () => void,
init: () => void
}): () => IModel;addDockaddDock(options: {
config: IPluginDockTab,
data: any,
type: string,
destroy?: () => void,
resize?: () => void,
update?: () => void,
init: () => void
}): { config: IPluginDockTab, model: IModel };addCommandaddCommand(options: ICommandOption): void;addFloatLayeraddFloatLayer(options: {
ids: string[],
defIds?: string[],
x?: number,
y?: number,
targetElement?: HTMLElement
}): void;