Obsidian 官方文档参考
标签
软件/Obsidian
软件/Obsidian/插件
开发/前端
字数
507 字
阅读时间
3 分钟
关于 main.ts
- 使用
require('obsidian')导入任何黑曜石 API。 - 使用
require('fs')或require('electron')导入 NodeJS 或 Electron API。 - 必须使用
export default class导出一个扩展Plugin的默认类 - 必须使用诸如
Rollup、Webpack或其他 JavaScript/TypeScript 打包工具,将所有的外部依赖关系捆绑到这个文件中。
黑曜石 App 架构
该应用程序被组织成几个主要模块。
- App,全局对象,拥有其他一切。你可以在你的插件中通过
this.app访问它。App 接口提供了以下接口的访问器。 - Vault,让你与保险库中的文件和文件夹互动的接口。
- Workspace,让你与屏幕上的面板互动的接口。
- MetadataCache,包含每个markdown文件的缓存元数据的界面,包括标题、链接、嵌入、标签和块。
同时,继承了 Plugin 类之后,可以使用下面的函数:
- 使用
this.addRibbonIcon添加一个侧边栏图标。 - 使用
this.addStatusBarItem添加一个状态栏(底部)元素。 - 使用
this.addCommand添加一个全局命令,可以选择一个默认的热键。 - 使用
this.addSettingTab添加一个插件设置标签。 - 使用
this.registerView注册一种新的视图。 - 使用
this.loadData和this.saveData来保存和加载插件数据。
对于从任何事件接口注册事件,如 App 和 Workspace,请使用 this.registerEvent,它将在你的插件卸载时自动分离你的事件处理程序。:
this.registerEvent(app.on('event-name', callback));如果需要为那些在插件卸载后依然需要存在于页面上的元素注册 DOM 事件,如window或document事件,请使用this.registerDomEvent:
this.registerDomEvent(element, 'click', callback);如果需要使用setInterval,请使用this.registerInterval。
this.registerInterval(setInterval(callback, 1000));obsidianmd/obsidian-sample-plugin
第三方插件 - Obsidian 中文帮助 - Obsidian Publish
Obsidian Plugin Development - Alexis Rondeau - Obsidian Publish
絢香猫