有没有不显示语法标记,但可以编辑内容的模式呢


遇到的问题

感觉每次都要跳出粗体等语法有点烦,有些文本设置了CSS样式跳出来就更烦了,有没有可以切换能够编辑内容但不会显示语法标记的方法,或实现这一形式的插件呢

另外还希望能够用快捷键一键切换到可以显示标记的实时编辑视图,永远不显示的话也不方便

已尝试的解决方案

之前尝试了这位大佬分享的CSS样式
https://pkmer.cn/Pkmer-Docs/10-obsidian/obsidian外观/css-片段/obsidian样式-隐藏-markdown-标记/
但问题是有些文本还是会跳动, 且CSS样式只会隐藏<>符号而不会隐藏其他部分

1 个赞

但这就是 Markdown 的特性,它就像代码一样,那些标记语法都是的确写在了纯文本文件中。除非使用那些非 Markdown 编辑器的笔记软件(比如 Notion 和 Siyuan),但它们就只是支持 Markdown 输入而不支持 Markdown 编辑。

2 个赞

如果要这么做, 看起来就是楼主引用链接里的办法了, 这个 css snippet 里说:

“description.zh: 隐藏加粗、斜体、删除线等 markdown 标记”

试了下说的没啥问题

这得具体说说, 怎么 “跳动”, <>符号其他部分 都是指啥

有些也许是可以顺他思路继续完善优化的, 但不保证全都能搞定


PS. 个人基本同意楼上说的, 灭掉 md 语法字符, 虽然看着干净, 但改格式时是大坑

“跳动"的话, 比如引用格式(>后的文本)在预览模式下是会缩进的, 但是可能由于这个css会隐藏>符号, 所以点击的时候缩进会消失, 就会跳一下, 变成无>符号且无缩进的形式. CSS样式如调整字体颜色”<“font color=”#c0504d">“121”<“/font”>“, 使用这个CSS后点击会变成font color=”#c0504d"121/font, 只隐藏了括号

做这些修改, 你看看能否好些

/* 作用于行内的加粗、斜体、删除线, 但不去改引用块, 无序列表 bullet */
.hide-markdown-marker .cm-line span:is(.cm-formatting):not(.cm-formatting-quote, .cm-formatting-list) {
  display: none;
}

/* 作用于行内的 <font color="#c0504d">xxxx</font> 
   这里 display: none; 更接近意图, 但不完善
   里面有个 = 号, 它是默认段落内文字, 不受 span 样式控制, 不会隐藏
   难搞, 最后把这个还原回来 display: unset;
*/
.hide-markdown-marker .cm-line span:is(.cm-tag, .cm-attribute, .cm-string) {
  display: unset;
}

引用块的调整: 按照默认, 仍显示 > 防跳动

html font 格式的调整: 全隐藏格式控制符 / 默认方式 都行, 建议后者, 前者不完善


一键切换到可以显示标记的实时编辑视图,永远不显示的话也不方便

好像有个 css snippet 用快捷键开关的办法 Snippet Commands 插件 我没试过, 楼主可以试试 (可能需要处理 .hide-markdown-marker 这个 id, 它是配合 style settings 的, 未必配那个插件)

感谢大佬!我研究一下