嗨!想要请教一下,我参考了 使用 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 识别成代码),只是空格的话,空格又会完全显示不出来。
我如果想要这样的效果:
[[#展示用内容]]
- [[#这是标题]]
- [[#这是小标题]]
- [[#这是另一个标题]]
应该怎么做呢?