DataviewJS 的提取与汇总

嗨!想要请教一下,我参考了 使用 Dataview 读取文件中所有标题 - 经验分享 - Obsidian 中文论坛 这篇帖子,想要用 DVJS 做一个可跳转的目录。

目前做出来的:

const fs = require('fs');
const path = require('path');
const viewBox = dv.el("div","",{cls:"card"});

// viewBox.appendChild(dv.el("div", `#### 目录`));

[...
    fs.readFileSync(path.join(app.vault.adapter.basePath, dv.current().file.path), 'utf8')
    .matchAll(/^(#+ .*$)/gm)
]
    .map(group => group[1])
    .forEach(text => {
		let spaces = "—".repeat(text.match(/#/gm).length-1);
		let tabs = "";
		let title = text.replace(/#/g, '');
		let content = `${tabs}[[#${title}|${spaces}${title}]]`;
		viewBox.appendChild(dv.el("div", content));
});

碰到一个难点是——如你所见,我的 tabs 是空的。
本来是希望做成列表这样的形式,但是 Tab 会导致它变成「代码块」(缩进文本被 MD 识别成代码),只是空格的话,空格又会完全显示不出来。

我如果想要这样的效果:
image

[[#展示用内容]]
- [[#这是标题]]
	- [[#这是小标题]]
- [[#这是另一个标题]]

应该怎么做呢?