插入的公式在编辑模式下正常显示,但是在阅读模式下就只显示代码了,不知道怎么回事,我的是最新版1.8.4
遇到的问题
仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。
预期的效果
你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。
已尝试的解决方案
尝试了怎样的解决方法,为什么行不通等等。
插入的公式在编辑模式下正常显示,但是在阅读模式下就只显示代码了,不知道怎么回事,我的是最新版1.8.4
仔细叙述你的问题。最好附上自己使用的 Obsidian 版本及环境。
你认为没有问题时应该是怎样的。这里最好描述你的本质需求,而非解决方案。比如渴了是需求,但研究出一杯饮料来解渴并不是需求。
尝试了怎样的解决方法,为什么行不通等等。
各个部分之间空行空开试试
按你说的试了一下,也是不行
同样的问题,编辑模式下预览没有问题,切换成阅读视图无法显示公式
一般这种就是某个地方格式没写对,尤其是在 callout 中有公式的情况下。你可以打开源码模式看一下,或者截图发上来看看
提供一种思路,在网上复制的文章当中公式块当中可能存在不间断空格字符\u00a0,但是我们一般使用的空格字符为\u0020,而obs的公式渲染不支持不间断字符就会报错
下面提供一个脚本,用于替换所有不间断字符为空格,使用方式为python3 脚本名称 你要处理的文件或者文件夹
import os
import sys
def replace_nbsp(file_path):
try:
# 读取文件
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 替换不间断空格
new_content = content.replace('\u00A0', ' ')
# 写回原文件
with open(file_path, 'w', encoding='utf-8') as f:
f.write(new_content)
print(f"已完成文件处理: {file_path}")
except Exception as e:
print(f"处理文件时出错: {str(e)}")
def process_directory(directory_path):
"""递归处理目录中的所有.md文件"""
count = 0
try:
for root, dirs, files in os.walk(directory_path):
for file in files:
if file.lower().endswith('.md'):
file_path = os.path.join(root, file)
replace_nbsp(file_path)
count += 1
print(f"\n共处理了 {count} 个.md文件")
except Exception as e:
print(f"处理目录时出错: {str(e)}")
def main():
if len(sys.argv) < 2:
print("使用方法: python 替换所有不间断空格.py <文件路径或文件夹路径>")
return
path = sys.argv[1]
if not os.path.exists(path):
print(f"错误: 路径 {path} 不存在")
return
if os.path.isfile(path):
replace_nbsp(path)
else:
process_directory(path)
if __name__ == "__main__":
main()