我目前按左边的新建按钮后,会新建看板到主目录
我在设置里设置了这个但对于新建位置没有任何帮助
想请教一下各位大佬有办法让看板每次都设置新建在我001-Daily Kanban文件夹里面吗?谢谢求教
Kanban 设置界面里的这个 “存放位置” (可以看这条设置的描述), 是指 “看板卡片的右上角 ‘三个点’ 的图标” → “从卡片新建笔记” , 会把这个新笔记存哪
至于 Kanban 文件 (其实就是一个 markdown 笔记) 的存放位置, 我试了下它是遵守 Ob 自家设置的 “新建笔记存放位置”
可以用quickadd方式实现。
quickadd插件中新建宏
在刚才新建的宏右侧,点击设置按钮
在弹出的对话框,点击新建按钮(注意左侧的下拉框不要选择,只有编辑时才需要选择)
接下来,在弹窗的对话框中,点配置按钮
在接下来的对话框中,1输入关键词,2选择创建新看板,3添加,4添加后的结果
接下来,1点击延迟时间按钮 2添加后的结果
在obsidian仓库中新建js文件,比如:js_code/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)
}
回到刚才的quickadd宏配置,1选择刚才新建的js脚本,2添加该脚本,3添加后的结果
关闭宏配置对话框,回到步骤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主界面。
下面是使用方法
回到obsidian,ctrl+p
打开obsidian命令面板,输入qkan
,即看到刚才新建的宏命令,点击执行即可。以后新建看板,直接通过这个命令新建即可。
也可以通过Commander插件,把刚才的宏命令添加到左侧的Ribbon等处,然后把官方默认的新建看板按钮隐藏即可。
完毕。
runjs插件版
```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));
```
打开runjs配置,按下图设置好配置
这时就可以在obsidian命令面板中,通过RunJS: New Kanban
命令执行了,如下
设置Ribbon,请参考楼上步骤11。
想请教一下runjs版本里面,第二张图的command是如何打开的呢?
很好的方法,但我更希望就是只修改kanban 的md文件位置,不想修改全部新建md的位置。
请问一下,我跟着您的详细步骤一步步进行,最后出现这样的报错信息,是不是前面我哪里做错了
想请教一下runjs版本里面,第二张图的command是如何打开的呢?
这是obsidian的命令面板 ctrl+p
打开,然后输入你想查找的命令关键词,参考quickadd方式步骤10
我跟着您的详细步骤一步步进行,最后出现这样的报错信息,是不是前面我哪里做错了
我已经找到了原因,请重新看上面的步骤,已经做了修改,主要是之前步骤2中的点亮闪电按钮,必须等所有配置都设置好后,才能点亮,所以,现在我把它放到了最后,即步骤9处,这可能是quickadd的bug吧。
另外,提醒下,Commander插件隐藏图标时会隐藏同名的图标,所以,你的Ribbon图标名,最好和kanban自带的Ribbon图标名不同。这里说的图标名,就是鼠标移上去的提示文字。
其实之前的quickadd之所以复杂,是因为之前没发现有newKanban api,那么知道了newKanban api后,quickadd版本可简化为:
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));
}
实在感谢,前面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包裹即可。
太感谢了,刚入坑obsidian能遇到您这么耐心细致的解答,体验拉满了。
现在还在摸索。加上最近ob更新了,本来用的blue topaz彩虹文件夹,发现更新后彩虹文件夹的效果失效了。以及不习惯的设置和仓库的位置(从上面跑到下面了)
以及我想问一下大佬,我之后可能去留学,在notion,flowus,ob里面最终还是选择了本地离线的ob。所以希望请教一下ob还有哪些功能或插件,比较适合学生课堂做笔记,写日记,写总结,以及做周计划和Todo List的?
这就仁者见仁智者见智了,很难说哪种更适合,每个人的体验和需求不同。
笔记管理不是我擅长的,我一般尽量用最简单的方式,除非有必要,建议论坛或搜索引擎搜搜看或新帖寻找高手推荐。
插件市场一些下载排名靠前的插件往往是比较受欢迎的,建议优先选择。
我主要用 Periodic Notes,tasks,kanban,tamplater,dataview,quickadd,commander这些,没有太复杂需求。
Periodic Notes 这个日记,周记,季度,年度都可以方便的创建。
这里有一些插件清单简单介绍供参考
periodic notes很好用,不会和日记冲突,提供多种记录。tasks我去摸索一下。
最后还是十分感谢奆佬的详细解释!!
不客气哈,我和你一样,也是新手,也是边使用边摸索中,回复问题的同时,也是学习和探索的过程。论坛里写详细点,也方便以后自己查找。
另外,推荐研究下官方的白板和第三方插件Excalidraw,在做画图和知识整理时非常有用。