“新任务”启动器按钮

在这个例子中,我们将通过在启动栏) 中添加一个按钮来自动创建一个新任务并打开它,从而扩展任务管理器展示(Trilium 默认附带)的功能。

创建备注

  1. 首先,使用 JS 前端语言创建一个新的 code note 类型。

  2. 属性定义标签。#run=frontendStartup

脚本内容

复制粘贴以下脚本:

api.addButtonToToolbar({
    title: "New task",
    icon: "task",
    shortcut: "alt+n",
    action: async () => {
        const taskNoteId = await api.runOnBackend(() => {
            const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
            const resp = api.createTextNote(todoRootNote.noteId, "New task", "")           
            return resp.note.noteId;
        });

        await api.waitUntilSynced();
        await api.activateNewNote(taskNoteId);
    }
});

测试功能

由于我们将脚本设置为在启动时运行,因此我们需要做的就是刷新应用程序

了解脚本的工作原理

 

api.addButtonToToolbar({
    title: "New task",
    icon: "task",
    shortcut: "alt+n",
    action: async () => {
        // [...]
    }
});

这使用前端 API 在启动栏中创建一个图标,方法是指定:

  • 标题

  • 相应的框图标(不带前缀)。bx-

  • (可选)为其分配的键盘快捷键。

  • 该作,将在按下按钮时执行。

 

const taskNoteId = await api.runOnBackend(() => {
    // Shown below.           
    return resp.note.noteId;
});
  • 这部分代码实际上是在服务器(后端)上执行的,而不是在客户端(即浏览器)上执行的。

    • 原因是创建笔记是服务器的责任。

  • 在这里我们还可以看到,可以返回服务器执行的结果并在客户端中读取它们 ()。taskNoteId

 

const todoRootNote = api.getNoteWithLabel("taskTodoRoot");
  • 在这里,我们识别带有标签的笔记。这就是任务管你那里尼奇展示如何知道将所有不同任务放置在何处。#taskTodoRoot

  • 通常,如果无法识别此类笔记,则可能会返回一个值,但错误处理超出了本示例的范围。null

 

const resp = api.createTextNote(todoRootNote.noteId, "New task", "")
  • 我们在待办事项根笔记(第一个参数)中创建一个新的子笔记,标题为“新任务”(第二个参数),默认情况下没有内容(第三个参数)。

 

await api.waitUntilSynced();
  • 回到客户端,由于我们在服务器上创建了一个新笔记,我们现在需要等待更改反映在客户端中。

 

await api.activateNewNote(taskNoteId);
  • 由于我们知道新创建的笔记的 ID,因此我们现在要做的就是向用户显示此笔记。

“您的支持是我持续分享的动力”

微信收款码
微信
支付宝收款码
支付宝

目录关闭