「QuickAdd」指定目录下的漫游笔记

指定目录下的漫游笔记

准备工作

  • Templater 插件
  • QuickAdd 插件
  • "世上无难事,只要肯放弃"的良好心态

安装

  1. 将下方 js 代码保存到你的 Templater脚本目录 请将"产出", "卡片"改为你自己的目录地址
module.exports = random
let quickAddApi;
let folders = ["产出", "卡片"]

async function random (params) {
    ({quickAddApi} = params) 
    let notes = app.fileManager.vault.fileMap[folders[Math.floor(Math.random() * folders.length)]].children
    let note = notes[Math.floor(Math.random() * notes.length)].path
    await app.workspace.activeLeaf.openFile( await app.vault.getAbstractFileByPath(note) );
}

命名推荐为: folderRandom.js

  1. 创建一个新的 QuickAdd 宏 命名建议 folderRandom 添加之前保存的 js 函数

  2. 添加一个 Capture 设置如下:

    所用文本: {{MACRO:folderRandom::random}}

  3. 尽情享用吧

祝你生活愉快

2 个赞

对插件不够熟练,操作不来 :upside_down_face:,感谢分享

分享一个能实现类似功能的ob插件smart random note

用Quickadd比较极客,如果不太熟悉,可以用已有插件

就是群友觉得 smart random 无法实现自己的需求, 才请我写的这个脚本

哦哦。我以为是他不知道这插件,才请你帮忙写的。你把quickadd用得出神入化了。

你好,我在使用你的脚本的过程中发现,使用 quickadd 命令会在文件管理器中打开文件目录,而不是在 obsidian 的新标签页打开,以下是我的相关设置。

    let note = notes[Math.floor(Math.random() * notes.length)].path;
    
    while (! note.endsWith(".md")){
        note = notes[Math.floor(Math.random() * notes.length)].path;
    }

判断一下不是md文件就继续,就可以跳过文件夹了。