增强编辑插件真是一个好插件

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");
};

这样就可以用这个命令插入不带空格的引用了 :smile:

总觉得应该有什么更简单的方法插入不带空格的引用

可用 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>'))

你可以选择用linter写一个正则自动把> 替换为>

其实我之前一直用 Linter “引用块样式: 无空格” 自动格式化,直到有一天我开始在引用里写列表,然后我发现自动格式化把我的列表缩进整没了 :joy: 我想除了一次性在行首插入无空格的引用符号比较可行,剩下的替换估计都会有类似问题。

(在引用里写列表是因为我需要分栏样式)