PKMer_通过Dataviewjs制作一个带数据面板的任务筛选框-丝滑到飞起

任务管理对每个人来说都是必不可少的,然而,每个人的需求和习惯却各不相同。你可能会见到各种不同的插件、时间线和日历视图,但是否真的能满足你的实际需求?

我曾经尝试过许多流行的任务管理工具,但总感觉不能完全符合我的要求。或许我的需求比较特别,我只想简单统计、快速筛选,以迅速得出结果。


这是一个从 https://pkmer.cn/pkmer-docs/10-obsidian/obsidian%e7%a4%be%e5%8c%ba%e6%8f%92%e4%bb%b6/dataview/dataview%e7%a4%be%e5%8c%ba%e5%ae%9e%e8%b7%b5%e7%bb%8f%e9%aa%8c/%e9%80%9a%e8%bf%87dataviewjs%e5%88%b6%e4%bd%9c%e4%b8%80%e4%b8%aa%e5%b8%a6%e6%95%b0%e6%8d%ae%e9%9d%a2%e6%9d%bf%e7%9a%84%e4%bb%bb%e5%8a%a1%e7%ad%9b%e9%80%89%e6%a1%86 下的原始话题分离的讨论话题
1 个赞

任务框相关代码.zip (34.0 KB)

挺实用的。提个小小的建议,能否让用户设置默认的查询范围(即默认只查询指定路径下的任务)。因为库比较大,查到的默认结果中,很多不是想要的

你在代码 里面,搜索,我留下入口 了的;let PathSearch = “” ; // 这个暂时不用哈,感觉 不太用得着 ,但是放这儿 ; 在这个引号里面,可以用 减号排除不要的;比如不想含有 日期 的; ,就 -日记 -模板 ,可以多个排除的哈,完全 不是问题,你打开 view.js,进去 加,进去 改;

1 个赞

我想默认分组,但在这个地方修改,貌似不生效,能指点下么?

let SwitchGroup = “false”;,这个地方设定了默认值是不分组,如果想默认是分组,改成true; createSelectField([“不分组”, “按 File 分组”], “不分组”); 这一处,控制 下拉框的那儿;,把括号外面的,不分组,改成 “按File分组”,这样下拉的地方 也变成了默认分组了哈;一共是2处控制 ;

1 个赞

关于「 原理 :这个路径写它,是说语法在这个路径下面,去寻找 view.css view.js 这 2 个文件,所以要改,不改用什么查 ;」
刚才试了一下,发现如果这里只写文件名,完全不写路径,也是能查询到的。

(async () => {
    await dv.view("02_查询语法文件及css",);
})();

这样的话用户直接粘贴代码就行,不用各自改路径了。

我有其他的view.js,还有view.css,所以还是分开好一些哈

特意写一个不存在的名字你会发现,dv 的检索其实是按照 xx.js 或者 xx/view.js 两套规则去检索的,所以针对文件夹的形式也可以识别。

不过总之都行啦~ 只是提供个新发现

发现UP不是程序员,能做出这样的功能真的很棒了:+1:。对于很多人想要对文件夹排查文件夹的功能,我提供一个简单方案:
第一步:在dv.view函数添加入参。
例如 await dv.view("xxxx",{query: '-"90-Extras"'}); 中的{query: '-"90-Extras"'})
第二步:在view.js中添加参数
这个步骤,也是分为2个步骤
第一步: 将let { query } = input; 添加到文件最顶部
第二步: 找到 dv.pages() 改为 dv.pages(${query})
看到这里大家可以发现,这里就是dataviewjs的文件筛选功能。所以dv.pages可以接收什么参数,query就可以写成什么

感谢,修改代码后用上了

请问如何指定目录,比如目录A、目录B、目录C,但排出目录B\目录d,这样该怎么设置呀?谢谢!