Ob 自带的引用命令插入的是带一个空格的引用(>
),这对我很苦恼。
蚕子大佬的 增强编辑插件 main.js 结构清晰,于是借用增强编辑插件原有的“转换callout语法”命令,新添加了一个命令:
旧命令,点击展开
// 分别插在 main.js 里和各自结构相似的其他项附近
this.addCommand({
id: 'add-blockquote',
name: '转换blockquote语法',
callback: () => this.转换blockquote语法()
});
转换blockquote语法(){
this.获取编辑器信息 ();
if(所选文本 == ""){return};
所选文本 = 所选文本.replace(/\n/g,"↫");
if(所选文本.startsWith(">")){
//new obsidian.Notice("需要去除>符号");
所选文本 = 所选文本.replace(/↫?\>/m,"").replace(/↫\>/g,"\n");
}else{
//new obsidian.Notice("需要补充>符号");
所选文本 = 所选文本.replace(/^(.+)$/m,">$1").replace(/↫/g,"\n>");
}
this.替换所选文本 (所选文本);
编辑模式.exec("goRight");
};
这样就可以用这个命令插入不带空格的引用了
总觉得应该有什么更简单的方法插入不带空格的引用
可用 QuickAdd 实现这个功能,基本配置坛里搜“QuickAdd JS & Templater JS 简介及相互修改”QuickAdd Capture 加载内部代码。
js quickadd 代码:
const Editor = app.workspace.activeEditor.editor, str = Editor.getSelection()
Editor.replaceSelection(str.startsWith('>') ? str.replace(/\n?\>/m, '').replace(/\n\>/g, '\n')
: str.replace(/^(.+)$/m, '>$1').replace(/\n/g, '\n>'))