【建议】更智能的列表/大纲代码块缩进支持

这个插件太酷了,完美解决缩进代码块问题。不知道obsidian官方为何至今都没有解决缩进代码块的问题

你好,请教一下你这个列表缩进的参考线是怎么实现的,有现成的插件还是自己做的 :heart_eyes:

因为开发者就俩人, 团队规模太小, 有很多优先级更高的任务, 尤其是当某些功能已经被第三方插件搞定了的时候.

感觉还是不好使啊,虽然代码块缩进了但是下一行的- 接不上,是我用法不对还是什么

这个确实是bug,obsidian在列表中插入代码块时,obsidian不能自动的对齐开始和结尾处```的缩进。
因为不能上传多张图,因此直接附上整体截图,请下载查看:

在obsidian中目前观察,在有序列表中直接添加代码块时,代码块开头的"```“反引号正确的缩进了,但是结尾的”```“不能正常缩进(应该是根本没有发生缩进),因此产生了不匹配的缩进,导致后续列表无法正常渲染。
示例:
在列表的序号2中插入了代码块,代码块开始处和结尾处的”```“反引号缩进不匹配,导致后续被中断,后续显示错误。
列表中插入的代码块开始处和结尾处的”```"反引号缩进不匹配示意图如下:

在“源码模式”中错误渲染(下图是源码模式的表现):

“阅读视图”表现(整个后续列表都被错误解析了,被误识别为代码):


手工修改结尾的"```"反引号缩进(此处手动在结尾添加了3个空格,使结尾的反引号和开始的平齐),并略微拖动后续列表,让编号重新自动更新后,显示恢复了正常的(下图源码模式):

阅读视图:

可以看到必须手动修改代码块前后的"```"反引号的缩进后,才能正确的渲染,根本原因在于:在列表中插入代码块时,obsidian没有为结尾的"```"反引号应用与起始处一致的缩进
这个是比较基础的功能,影响非常大:后续无法正常渲染,需要立即修复。


原始内容

1. 列表
2. 列表
   这是一段python输出的代码示意
   ```python
   print("abc")
```
1. 后续列表
2. 后续

在沙箱中,obsidian也是错误的缩进,应该不是插件的影响:
目前使用的`Codeblock Customizer`插件,也不能自动纠正 错误的代码块缩进(可能是我配置的问题),期望大家有更好的解决方法,谢谢。此外,希望可以像typora那样,在列表中直接回车是在当前列表中另起一行(obsidian中的shift+回车效果),而对于空行重复回车自动时自动创建新列表。

codeblock customizer的代码块缩进是这么用, 比如首先输入,

  • aa
    • aa
```python
print('hello world')
```

然后你再选中整个代码块按tab缩进, 把它缩进到aa的里面. 而不是你就着aa按回车直接键入代码块.
recording

1 个赞

感谢您的回复:
这样做是一种方法,但是比较麻烦,我需要破坏原来的列表,让列表层级回到初级正文层次,然后再将代码缩进到合适的层级,并且重新将列表补充回来;
recording
并且后续编号还会错乱,这一点在多级列表中表现得尤其明显,体验极差,回到原本的目标:在列表中插入代码块,为了做到这个,需要: 打断原来的列表,回归到最顶级的正文,然后全选代码块,调整合适的缩进,重新补充后续的列表。这本身就是个问题!这只能算是一种折中,临时的解决方法,而且需要更多的操作步骤。关于这一点相信使用过typora的用户都会感同身受,这个问题亟待修复或者其他插件来解决!

你还需要搭配linter使用, 自动调整编号. 我个人理解, 如果不改动ob底层所使用的md编辑器, 是不可能直接往列表里插入代码块的, 现在能有在列表外插入再缩进去这种方法就已经不错了, 而且用起来我觉得也还算方便.
recording

感谢回复
综合这些插件,这个问题确实得到“缓解”,但是这个问题确实是obsidian必须面对的,如果没有更好的解决方案的话,在obsidian中创建管理文件,切换到typora做编辑将是我推荐的选择。