【已解决】如何保持搜索查找结果高亮

更新:我把自己的需求融合到一个插件里了,欢迎围观 240812 更新


原帖:借助 Dynamic Highlights 插件变通解决。

基本配置参 单插件+CSS 管理连续空格
QuickAdd JS & Templater JS 简介及相互修改“QuickAdd Capture 加载内部代码”。

插件配置名称:T1。启用正则。

CSS 代码:

.T1 {text-decoration: underline dashed red;}
js quickadd 代码,点击展开
const { basePath, fs } = app.vault.adapter
, getFC = file=> app.metadataCache.getFileCache(file)
, DH = fun=> {
  const id = 'obsidian-dynamic-highlights'
  , path = `${basePath}/.obsidian/plugins/${id}/data.json`
  fs.readFile(path, 'utf8', (err, data)=> {
    if (err) throw err
    const obj = JSON.parse(data); fun(obj)
    const now = JSON.stringify(obj, null, 2)
    fs.writeFile(path, now, 'utf8', err=> { if (err) throw err })
    app.plugins.disablePlugin(id); app.plugins.enablePlugin(id)
  })
}
, { file, editor } = app.workspace.getActiveFileView()
, str = getFC(file).frontmatter?.query.join('|') || editor.getSelection()
, cls = 'T1'
DH(obj=> {
  if (obj.staticHighlighter.queries[cls].query == '[]' && !str) return
  obj.staticHighlighter.queries[cls].query = str || '[]'
})

检测划选内容或属性类型为列表、键名为 query 的 YAML 值。

2 个赞