构建插件

插件让您可以使用属于自己的特性来拓展Obsidian,创造一种自定义的笔记体验。

在这个指南里,您可以从源码中编译一个范例插件并加载到Obsidian中。

您将学会

在完成这个指南后,您将可以:

前提条件

为完成本指南,您需要:

在开始之前

当开发插件时,一个失误就可能会导致您的仓库出现意外。为防止数据丢失,创建一个空仓库.

第1步:下载范例插件

在这一步中,你会下载一个范例插件plugins 文件夹到你的仓库中的.obsidian 文件夹中,以便Obsidian可以找到它。

在指南中要用到的范例插件也可以在GitHub 仓库中找到。

  1. 打开一个终端窗口并将项目目录更改到 plugins 文件夹下面

    cd path/to/vault
    mkdir .obsidian/plugins
    cd .obsidian/plugins
    
  2. 使用Git将范例插件克隆下来

    git clone https://github.com/obsidianmd/obsidian-sample-plugin.git
    

GitHub模板仓库

范例插件仓库是一个GitHub模板仓库,这意味着你可以用范例插件创建自己的仓库。想要了解更多,参考用模板创建一个仓库

记得克隆范例仓库时,使用你自己的仓库URL

第2步:构建插件

在这一步骤,你会编译插件让Obsidian可以加载它

  1. 定位到插件目录

    cd obsidian-sample-plugin
    
  2. 安装依赖

    npm install
    
  3. 编译源码。下方的命令确保运行在终端并在修改源码时重构插件

    npm run dev
    

注意现在插件文件夹中有了个 main.js,其中包含编译完成版本的插件

第3步:开启插件

想要在Obsidian中加载插件,首先要开启它

  1. 在Obsidian中打开Settings
  2. 在侧边栏,选择Community plugins
  3. 选择开启社区插件
  4. 已安装的插件下,选择旁边的切换按钮,开启the Sample Plugin

现在你已经可以使用Obsidian中的插件了。下一步,我们将对插件做出一些改变。

第4步:更新插件加载清单

在这一步骤,你将会通过重命名来更新插件加载清单,manifest.json。加载清单中包含了与你的插件相关的信息,比如名字和描述。

  1. 在你的代码编辑器中打开manifest.json
  2. 将 id 改为一个特殊的标识符, 比如 "hello-world"
  3. 将 name 修改为一个便于理解的, 比如 "Hello world"
  4. 重启Obsidian把新的改动加载到插件加载清单。

回到已安装的插件并注意,插件的名称已经更新,证明你的改动生效了

无论何时你改动了manifest.json,记得重启Obsidian。

第5步:更新源码

为了让用户与你的插件交互,添加一个标签图标,当用户选择插件时表示问候。

  1. 在你的代码编辑器中打开 main.ts 。

  2. 将插件的类从MyPlugin重命名为HelloWorldPlugin

  3. 从 obsidian 包中导入Import Notice 。

    import { Notice, Plugin } from "obsidian";
    
  4. 在 onload() 方法中,添加如下代码:

    this.addRibbonIcon('dice', 'Greet', () => {
      new Notice('Hello, world!');
    });
    
  5. 命令面板,选择重载app而不保存以重新加载插件。

现在你可以在Obsidian窗口的左侧边栏看到一个骰子图标,选择它在右上角会显示一条信息。

记住,在改动了源码后,需要重载你的插件。可以通过在社区插件面板关闭再开启的方式,或像这步骤中的第5部分那样,使用命令面板。

热重载

安装Hot-Reload插件以便在开发中自动重载插件。

小结

在这个指南中,你已经通过TypeScript API构建了第一个Obsidian插件。你已经会调整插件并重载以实现Obsidian的内部改动。

LINKS TO THIS PAGE 链接到此页面

Home

Use Svelte in your plugin