kanban看板的新建位置怎么修改

我目前按左边的新建按钮后,会新建看板到主目录


我在设置里设置了这个但对于新建位置没有任何帮助

想请教一下各位大佬有办法让看板每次都设置新建在我001-Daily Kanban文件夹里面吗?谢谢求教

Kanban 设置界面里的这个 “存放位置” (可以看这条设置的描述), 是指 “看板卡片的右上角 ‘三个点’ 的图标” → “从卡片新建笔记” , 会把这个新笔记存哪


至于 Kanban 文件 (其实就是一个 markdown 笔记) 的存放位置, 我试了下它是遵守 Ob 自家设置的 “新建笔记存放位置”

1 个赞

可以用quickadd方式实现。

  1. quickadd插件中新建宏

  2. 在刚才新建的宏右侧,点击设置按钮

  3. 在弹出的对话框,点击新建按钮(注意左侧的下拉框不要选择,只有编辑时才需要选择)

  4. 接下来,在弹窗的对话框中,点配置按钮

  5. 在接下来的对话框中,1输入关键词,2选择创建新看板,3添加,4添加后的结果

  6. 接下来,1点击延迟时间按钮 2添加后的结果

  7. 在obsidian仓库中新建js文件,比如:js_code/move_file.js,然后在move_file.js中输入以下代码

查看move_file.js 点这里 👈
// 【注意】别忘了修改targetFolder变量的值为你的文件夹名字
module.exports = async (params) => {
    // 将要移动到的文件夹,👇 把这里修改成你自己的文件夹名字
    const targetFolder = "kanban";
    const newKBFile = app.workspace.activeLeaf.view.file;
    const targetFile = app.vault.getAvailablePath(targetFolder.replace(/\/$/,"") + "/" + newKBFile.basename, newKBFile.extension);
    app.fileManager.renameFile(newKBFile, targetFile)
}
  1. 回到刚才的quickadd宏配置,1选择刚才新建的js脚本,2添加该脚本,3添加后的结果

  2. 关闭宏配置对话框,回到步骤1这里,把这个闪电按钮点亮,即可把该宏添加到命令面板

注意,步骤9这里必须在前面先配置好后,再点亮闪电按钮,不然会报错(plugin:quickadd:17806 QuickAdd: (ERROR) No commands in the selected macro. Did you select a macro for 'New kanban'?),这可能是quickadd的bug吧

至此,quickadd宏配置,设置完毕,关闭设置对话框回到obsidian主界面。

下面是使用方法

  1. 回到obsidian,ctrl+p打开obsidian命令面板,输入qkan,即看到刚才新建的宏命令,点击执行即可。以后新建看板,直接通过这个命令新建即可。

  2. 也可以通过Commander插件,把刚才的宏命令添加到左侧的Ribbon等处,然后把官方默认的新建看板按钮隐藏即可。



    image

完毕。

1 个赞

runjs插件版

  1. 新建runjs脚本文件,比如,runjs/newKanban.md,然后在newKanban.md中输入以下代码
```js RunJS="New Kanban"
// 这个变量名的值改成你自己的👇文件夹名
const newKanbanFolder = "kanban";
const kanbanPlugin = app.plugins.plugins["obsidian-kanban"];
if(!kanbanPlugin) {
	new Notice("请先启用看板插件");
	return;
}
kanbanPlugin.newKanban(app.vault.getFolderByPath(newKanbanFolder));
```
  1. 打开runjs配置,按下图设置好配置

  2. 这时就可以在obsidian命令面板中,通过RunJS: New Kanban命令执行了,如下

  3. 设置Ribbon,请参考楼上步骤11。

想请教一下runjs版本里面,第二张图的command是如何打开的呢?

很好的方法,但我更希望就是只修改kanban 的md文件位置,不想修改全部新建md的位置。

1 个赞

请问一下,我跟着您的详细步骤一步步进行,最后出现这样的报错信息,是不是前面我哪里做错了
image

想请教一下runjs版本里面,第二张图的command是如何打开的呢?

这是obsidian的命令面板 ctrl+p 打开,然后输入你想查找的命令关键词,参考quickadd方式步骤10

我跟着您的详细步骤一步步进行,最后出现这样的报错信息,是不是前面我哪里做错了

我已经找到了原因,请重新看上面的步骤,已经做了修改,主要是之前步骤2中的点亮闪电按钮,必须等所有配置都设置好后,才能点亮,所以,现在我把它放到了最后,即步骤9处,这可能是quickadd的bug吧。

另外,提醒下,Commander插件隐藏图标时会隐藏同名的图标,所以,你的Ribbon图标名,最好和kanban自带的Ribbon图标名不同。这里说的图标名,就是鼠标移上去的提示文字。

其实之前的quickadd之所以复杂,是因为之前没发现有newKanban api,那么知道了newKanban api后,quickadd版本可简化为:

  1. 新建js文件,比如js_code/new_kanban.js,输入
module.exports = async (params) => {
    // 这个变量名的值改成你自己的👇文件夹名
    const newKanbanFolder = "kanban";
    const kanbanPlugin = app.plugins.plugins["obsidian-kanban"];
    if(!kanbanPlugin) {
        new Notice("请先启用看板插件");
        return;
    }
    kanbanPlugin.newKanban(app.vault.getFolderByPath(newKanbanFolder));
}
  1. 配置 quickadd 宏


(注意: 点亮闪电按钮这一步必须放到最后,不然会报错,参考楼上解释)

  1. 效果如下

实在感谢,前面quickadd的问题已经解决了,也能够成功在指定文件目录下新建kanban了,那我可不可以设置让他自动类似日记那样,用YYYY-MM-DD的方式命名?是设置模板属性嘛?

你是想创建的新看板以YYYY-MM-DD命名吗?

这样的话,如果使用的是3楼quickadd方式实现,可以把targetFile 变量后面的newKBFile.basename改为moment().format("YYYY-MM-DD")即可。

如果使用的是4楼的runjs版或10楼的quickadd简洁版,官方默认的newKanban函数是无法实现的,为此我更改了官方默认的创建看板函数, 然后,把4楼或10楼的这行代码

kanbanPlugin.newKanban(app.vault.getFolderByPath(newKanbanFolder));

替换为

async function newKanban(folder="我的看板", fileName='未命名看板') {
  let targetFolder = folder
    ? folder
    : app.fileManager.getNewFileParent(app.workspace.getActiveFile()?.path || '');
  targetFolder = typeof targetFolder === 'string' ? app.vault.getFolderByPath(targetFolder) : targetFolder;
  try {
    const kanban = await app.fileManager.createNewMarkdownFile(
      targetFolder,
      fileName
    );

    const frontmatterKey = 'kanban-plugin';
    const basicFrontmatter = ['---', '', `${frontmatterKey}: board`, '', '---', '', ''].join(
      '\n'
    );
    const kanbanViewType = 'kanban';
    await app.vault.modify(kanban, basicFrontmatter);
    await app.workspace.getLeaf().setViewState({
      type: kanbanViewType,
      state: { file: kanban.path },
    });
  } catch (e) {
    console.error('Error creating kanban board:', e);
  }
}
// 这个参数的值改成👇 你自己的文件夹名即可
newKanban("你的看板文件夹名", moment().format("YYYY-MM-DD"));

即可。


另外,正如你所说的,确实可以通过quickadd的模板方式实现,但自动打开无法显示为看板模式,如果想要以看板模式打开,还得js脚本,那就没必要多此一举了。

但如果你创建后不需要自动打开,确实可以用模板方式。

比如

模板方式有个优点,就是看板可以初始化一些数据到里面,甚至自动生成数据,如果有这方面的需求,倒是可以通过quickadd的宏,先用模板创建文件,再用js打开文件。

比如

// open_kanban.js 文件代码
module.exports = async (params) => {
    await app.workspace.getLeaf().setViewState({
        type: 'kanban',
        // 这个DataviewAPI.pagePaths的kanban改成👇 你自己的文件夹名即可
        state: { file: DataviewAPI.pagePaths(`"kanban"`).sort(p=>p.ctime, 'desc').limit(1)[0] },
    });
}

这里的第3项,open_kanban也可以改成Capture方式,免去新建js脚本的麻烦,如下

但,这种方式,需要在1处随便选择个模板,不会对这个模板产生任何影响,建议新建个空模板,专门用于这种情况,然后开启2按钮,在3处输入代码即可。3处的代码即上面的代码去掉module.exports包裹即可。

1 个赞

太感谢了,刚入坑obsidian能遇到您这么耐心细致的解答,体验拉满了。

现在还在摸索。加上最近ob更新了,本来用的blue topaz彩虹文件夹,发现更新后彩虹文件夹的效果失效了。以及不习惯的设置和仓库的位置(从上面跑到下面了)

以及我想问一下大佬,我之后可能去留学,在notion,flowus,ob里面最终还是选择了本地离线的ob。所以希望请教一下ob还有哪些功能或插件,比较适合学生课堂做笔记,写日记,写总结,以及做周计划和Todo List的?

这就仁者见仁智者见智了,很难说哪种更适合,每个人的体验和需求不同。

笔记管理不是我擅长的,我一般尽量用最简单的方式,除非有必要,建议论坛或搜索引擎搜搜看或新帖寻找高手推荐。

插件市场一些下载排名靠前的插件往往是比较受欢迎的,建议优先选择。

我主要用 Periodic Notes,tasks,kanban,tamplater,dataview,quickadd,commander这些,没有太复杂需求。

Periodic Notes 这个日记,周记,季度,年度都可以方便的创建。

这里有一些插件清单简单介绍供参考

periodic notes很好用,不会和日记冲突,提供多种记录。tasks我去摸索一下。

最后还是十分感谢奆佬的详细解释!! :smiley: :smiling_face_with_three_hearts:

不客气哈,我和你一样,也是新手,也是边使用边摸索中,回复问题的同时,也是学习和探索的过程。论坛里写详细点,也方便以后自己查找。 :grinning:

另外,推荐研究下官方的白板和第三方插件Excalidraw,在做画图和知识整理时非常有用。

1 个赞