Skip to content

Commit 53e01de

Browse files
author
王一帆
committed
优化DataviewJS查询语句
1 parent c23e6f2 commit 53e01de

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

src/reader/dataview-reader.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { App, Notice, TAbstractFile } from "obsidian";
1+
import { App, Notice } from "obsidian";
22
import { Action } from "src/action/action";
33
import { Readable } from "./readable";
44
import { getAPI } from "obsidian-dataview";
@@ -26,9 +26,24 @@ export class DataviewReader implements Readable {
2626

2727
let idx = this.queryStr.indexOf(".pages(");
2828
if (idx > 0) {
29-
let tmpStr = this.queryStr.substring(idx + 8);
29+
// DataviewJS
30+
let tmpStr = this.queryStr.substring(idx + 7);
3031
let tmpIdx = tmpStr.indexOf(")");
31-
tmpStr = tmpStr.substring(0, tmpIdx - 1);
32+
tmpStr = tmpStr.substring(0, tmpIdx);
33+
if (tmpStr.indexOf("'") >= 0 || tmpStr.indexOf("\"") >= 0) {
34+
// pages()方法中的参数是字符串,直接处理
35+
tmpStr = tmpStr.substring(1, tmpStr.length - 1);
36+
} else {
37+
// pages()方法中的参数是变量,根据变量查找字符串
38+
let nTmpStr = this.queryStr.substring(0, idx);
39+
idx = nTmpStr.indexOf(tmpStr);
40+
tmpStr = nTmpStr.substring(idx + tmpStr.length);
41+
idx = tmpStr.indexOf("'");
42+
tmpStr = tmpStr.substring(idx + 1);
43+
idx = tmpStr.indexOf("'");
44+
tmpStr = tmpStr.substring(0, idx);
45+
}
46+
3247
try {
3348
let resArr = api.pages(tmpStr);
3449
resArr.values.forEach((it: { file: { path: string; }; }) => {

0 commit comments

Comments
 (0)