Appearance
事件
Obsidian中的许多接口允许您订阅整个应用程序中的事件,例如,用户对文件进行更改。
每当插件卸载时,都需要分离已注册的事件处理程序。最安全方法是使用 registerEvent() 方法。
ts
import { Plugin } from "obsidian";
export default class ExamplePlugin extends Plugin {
async onload() {
this.registerEvent(this.app.vault.on('create', () => {
console.log('a new file has entered the arena')
}));
}
}
定时事件
如果要重复调用具有固定延迟的函数,请将 window.setInterval()
函数与 registerInterval() 方法一起使用。
以下示例在状态栏中显示当前时间,每秒更新一次:
ts
import { moment, Plugin } from "obsidian";
export default class ExamplePlugin extends Plugin {
statusBar: HTMLElement;
async onload() {
this.statusBar = this.addStatusBarItem();
this.updateStatusBar();
this.registerInterval(
window.setInterval(() => this.updateStatusBar(), 1000)
);
}
updateStatusBar() {
this.statusBar.setText(moment().format("H:mm:ss"));
}
}
[!tip] 日期和时间
Moment 是一个流行的 JavaScript 库,用于处理日期和时间。Obsidian内部使用 Moment,因此您无需自行安装。您可以改为从 Obsidian API 导入它:
ts
import { moment } from "obsidian";