Obsidian插件实现

Obsidian插件是用什么语言编写的 ,如何写一个简单的Obsidian插件?

Obsidian插件是用JavaScript编写的。下面是一个简单的Obsidian插件的示例:

  1. 创建一个新文件夹,命名为"my-plugin"(你可以使用任何你喜欢的文件夹名称)。

  2. 在该文件夹中创建一个名为"main.js"的文件。

  3. 在main.js中添加以下代码:

module.exports = {
    onload: function() {
        console.log('Hello from my plugin!');
    },
    onunload: function() {
        console.log('Goodbye from my plugin!');
    }
};
  1. 创建一个名为"manifest.json"的文件,并添加以下内容:

{
  "id": "my-plugin",
  "name": "My Plugin",
  "version": "0.1.0",
  "description": "A simple Obsidian plugin.",
  "author": "Your Name",
  "main": "./main.js"
}
  1. 打开Obsidian应用程序,在设置中启用开发者模式。

  2. 在Obsidian侧边栏中找到“Community plugins”选项并点击。

  3. 点击“开发人员设置”按钮,然后点击“加载插件”按钮。

  4. 在弹出的对话框中选择你所创建的插件文件夹(即"my-plugin")。

  5. 插件将被加载并执行,在控制台中应该会打印出"Hello from my plugin!"。

  6. 每次你在main.js中进行更改之后,都需要重新加载插件才能看到更新。

这只是一个简单的示例,你可以根据自己的需求在main.js中编写更复杂的逻辑。你还可以在manifest.json中定义其他属性,如图标、依赖项等。要了解更多关于Obsidian插件开发的详细信息,请参阅官方文档。

写一个Obsidian的Hello World的插件

要编写一个Obsidian的Hello World插件,你需要按照以下步骤进行操作:

  1. 创建一个新的文件夹,作为插件项目的根目录。

  2. 在该文件夹中创建一个名为main.js的JavaScript文件,作为插件的入口点。

  3. main.js中编写以下代码:

module.exports = {
    activate: function() {
        console.log("Hello World!");
    }
}
  1. 在根目录中创建一个名为manifest.json的JSON文件,用于描述插件的元数据信息。在该文件中编写以下代码:

{
    "id": "hello-world",
    "name": "Hello World",
    "version": "1.0.0",
    "description": "A Hello World plugin for Obsidian.",
    "author": "Your Name",
    "main": "./main.js"
}
  1. 打开Obsidian,在设置中启用开发者模式。然后点击“开发者工具”菜单。

  2. 在开发者工具中,点击“加载插件”按钮,并选择插件项目根目录。

  3. 插件将被加载,并在控制台输出“Hello World!”。

这样就成功创建了一个简单的Hello World插件。你可以根据自己的需求进一步扩展和定制该插件。

如何看Obsidian的控制台,还有插件输出的调试信息?

要查看Obsidian的控制台,可以按下键盘上的Ctrl + Shift + I,这将打开开发者工具。然后,点击面板上的"Console"选项卡,你就可以看到控制台输出的信息了。

如果你使用的是插件,并且希望查看插件输出的调试信息,可以在控制台中输入以下命令:

app.plugins.enableDevMode()

这将启用插件的开发者模式,并显示插件输出的更多详细信息。然后,你就可以在控制台中查看插件输出的调试信息了。

请注意,如果你遇到任何问题或错误,请将相关的调试信息包含在报告中,以便开发人员更好地理解并解决问题。

在实行Obsidian插件的时候,显示下面的话是什么意思?app.js:1 Plugin failure: candylab-plugin TypeError: l is not a constructor

为什么,如何解决这个问题

这个错误通常表示在加载Obsidian插件时出现了问题。具体来说,这个错误说明了在加载插件"candylab-plugin"时发生了一个类型错误,其中l不是一个构造函数。

要解决这个问题,你可以尝试以下几步:

  1. 更新插件:检查是否有可用的更新版本,如果有,请尝试更新插件以查看是否能够解决该问题。

  2. 插件兼容性:确保插件与当前版本的Obsidian兼容。某些插件可能不支持最新的Obsidian版本,因此你可以尝试禁用该插件或寻找其他替代方案。

  3. 重新安装插件:有时,重新安装插件可以修复加载问题。通过在Obsidian中禁用并重新启用该插件来尝试重新安装它。

  4. 寻求帮助:如果上述步骤都无法解决问题,你可以考虑向插件开发者寻求帮助。在Obsidian论坛或相关的社区中提问,并提供更详细的错误信息和步骤,以便其他人能够更好地帮助你解决问题。

请注意,这只是一些常见的解决步骤,并不能保证对所有情况都有效。具体问题可能需要进一步调查和定位才能找到最佳解决方案。

https://luhaifeng666.github.io/obsidian-plugin-docs-zh/zh2.0/events.html

:写一个.ts语言实现的obsidian插件

下面是一个简单的 TypeScript 语言实现的 Obsidian 插件示例:

import { Plugin, MarkdownView, EditorPosition } from 'obsidian';

export default class MyPlugin extends Plugin {
    async onload() {
        console.log('My plugin loaded');

        // 注册一个命令,用于在当前光标位置插入文本
        this.addCommand({
            id: 'insert-text',
            name: 'Insert Text',
            callback: () => {
                const activeView = this.app.workspace.getActiveViewOfType(MarkdownView);
                if (activeView) {
                    const editor = activeView.editor;
                    const cursor = editor.getCursor();
                    editor.replaceRange('Hello, World!', cursor);
                }
            }
        });

        // 在文档加载完成后执行一些操作
        this.registerEvent(this.app.workspace.on('markdown:file-open', (file) => {
            console.log(`Markdown file opened: ${file.path}`);
        }));
    }

    onunload() {
        console.log('My plugin unloaded');
    }
}

这个示例插件实现了两个功能:

  1. 注册了一个命令 insert-text,当执行该命令时,在当前光标位置插入文本 “Hello, World!”。

  2. 在文档加载完成后打印日志信息。

要使用这个插件,你需要在 Obsidian 的插件设置中启用开发者模式,并将该 TypeScript 文件放置在你的插件目录下。然后重新加载 Obsidian 插件即可使用。

https://forum-zh.obsidian.md/t/topic/19904

https://github.com/thmed/obsidian-vue-sample-plugin/tree/main