【已解决】如何动态获取笔记中所有高亮的文字?

遇到的问题

希望能够在笔记中展示当前笔记中所有高亮的内容,即被==包裹的内容。希望是能够像dataview查询一样动态获取并展示的,最好还能点击跳转到高亮的地方。

目前已知的有Extract highlight插件能够获取当前文件中所有高亮的地方并放到剪切板中,但这不是动态查询实时更新的,而且也没法跳转。

我在想dataview js能不能实现这个需求,但我不懂 JS,希望有大佬能解答一下~

1 个赞

谢谢推荐!
我还在用没入门的正则来筛选。。(={2}.*?={2})

谢谢,很好的想法,我试一下

【已解决】

```query
/==.*?==/
```

这样会查询出整个库的高亮 :joy: 我希望只查看当前文件的高亮。
谢谢啦 :grinning:,我已经有解决方案了

老哥,粗体呢怎么实现,=改*错的,不会了

同样的方法让chatgpt写了一个js用于筛选粗体部分,代码如下

// 定义一个函数,接受一个markdown字符串作为参数
function extractBold(markdown) {
  // 定义一个空数组,用来存放粗体部分
  let bolds = [];
  // 定义一个正则表达式,匹配被 ** 包裹的部分
  let regex = /\*\*(.+?)\*\*/g;
  // 定义一个变量,用来存放正则表达式的匹配结果
  let match;
  // 使用循环,遍历所有的匹配结果
  while (match = regex.exec(markdown)) {
    // 把匹配结果中的第一个捕获组(也就是粗体部分)添加到数组中
    bolds.push(match[1]);
  }
  // 返回数组
  return bolds.filter(p => p.trim() !== '');
}

// 在一个列表中显示粗体部分
dv.list(extractBold(await app.vault.readRaw(dv.current().file.path)));

自测可用

2 个赞