obsidian社区插件
用 QuickAdd 实现跳转到指定标题
插件ID:%E7%94%A8quickadd%E5%AE%9E%E7%8E%B0%E8%B7%B3%E8%BD%AC%E5%88%B0%E6%8C%87%E5%AE%9A%E6%A0%87%E9%A2%98
%E7%94%A8quickadd%E5%AE%9E%E7%8E%B0%E8%B7%B3%E8%BD%AC%E5%88%B0%E6%8C%87%E5%AE%9A%E6%A0%87%E9%A2%98
%E7%94%A8quickadd%E5%AE%9E%E7%8E%B0%E8%B7%B3%E8%BD%AC%E5%88%B0%E6%8C%87%E5%AE%9A%E6%A0%87%E9%A2%98:
用 QuickAdd 实现跳转到指定标题

module.exports = async function showAndGotoHeadings(params) {
const { quickAddApi = app.plugins.plugins.quickadd.api } = params || {};
const { headings } = app.metadataCache.getFileCache(app.workspace.getActiveFile());
if (!headings) return;
const heading = await quickAddApi.suggester(
headings.map(h=>`H${h.level}: ${h.heading}`), // default render
headings,
'choose a heading to goto',
false,
{renderItem: (h, el) => {
const row = el.createEl('div');
const marker = row.createEl('span', {text: 'H'});
marker.setAttr('style', `font-weight:bold;color:var(--h${h.level}-color)`);
const level = row.createEl('sub', {text: `${h.level}`});
level.setAttr('style', `color:gray;`);
row.createEl('span', {text: ` ${h.heading}`});
}}
);
app.workspace.activeLeaf?.view?.currentMode.applyScroll(heading.position.start.line);
}
说明:
- 保存上面的代码到库中的某个位置
- 在 QuickAdd 中添加 Macro 类型的选项, 点击设置按钮编辑该选项, 在 User Scripts 中选择该脚本并添加.
- 通过命令或快捷键调出 QuickAdd 选项菜单, 选择刚才创建的 Macro 名称, 回车运行.
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。