资源文件
概述
通过编辑器插入的附件会被认为是资源文件,默认放置在 工作空间/data/assets/ 文件夹下。
插入图片或文件
在编辑器中可以直接粘贴系统剪切板中复制好的图片或文件(Linux 端不支持),或者通过拖拽图片或文件到编辑器中也可以实现插入。插入时有两个选择:
- 复制为资源文件并插入:将图片或文件复制为资源文件并插入,快捷键 Ctrl+V
- 使用 file:// 绝对路径并链接:将图片或文件以本地绝对路径方式插入超链接,快捷键 Ctrl+Shift+V,或者按住 Alt 后拖入
对于图片,如果排版时指定了图片标题,则标题会被渲染在图片下方作为图注。
![siyuan-128.png](assets/siyuan-128-20210604092205-djd749a.png "源于思考,饮水思源")
注意:插入图片不会进行压缩处理,所有图片和文件都以原始数据进行保存。
清理未引用资源
“引用”指的是通过超链接、插入图片或者 HTML 标签(例如 <img>
、<iframe>
)的属性 src 对资源文件进行链接。这里分为两种情况:
- 引用具体的资源文件,比如图片或者文件。如果资源文件是 PDF 且做过标注,那么无论它是否被引用都不会计入清理
- 引用资源文件夹(在 assets 文件夹下的子文件夹),必须以 / 结尾,比如 foo。一个资源文件夹如果被引用,则下面所有资源文件无论是否被单独引用,都会被算作已经引用
在 设置 - 资源 中可以一键清理未引用资源,如果需要找回被误删的文件,请通过回滚。
注意:使用绝对路径(本地路径或者是网络路径)不会纳入清理计算。
查看丢失资源
在设置 - 资源 中可以查看丢失的资源,复制路径后可以在全局搜索中找到引用处。
注意:搜索资源文件路径需要先启用 设置 - 搜索 - 索引 - 资源文件路径。
笔记本级资源文件
如果需要默认将插入的资源文件放置在文档同级 assets 文件夹下,则需要先手动创建名为 assets 的文件夹,这样思源会优先选择该 assets 文件夹来存放资源文件。
建议尽量不要使用笔记本级资源文件,因为这会带来一些副作用:
- 删除该笔记本时,为保证跨笔记本资源文件引用正常工作,该笔记本下的资源文件会被批量复制到全局 assets 中
- 不支持在数据历史中查看笔记本级资源文件历史
- 不支持使用 /资源 搜索
- 不支持重命名
图片 OCR 提取文本
该特性仅在桌面端支持,并且需要先手动安装 Tesseract OCR 程序。
注意:
- 在安装 Tesseract OCR 时需要勾选你需要的语言包,并将安装后的 Tesseract-OCR 目录路径添加到环境变量 PATH 中,这样思源才能直接调用 tesseract 命令进行图片 OCR 提取文本。如果安装正常的话,在内核启动日志中可以搜索到 tesseract-ocr enabled;如果要禁用 OCR,请设置环境变量 SIYUAN_TESSERACT_ENABLED=false
- 思源并不会启用所有已安装的语言包,因为语言包太多的话会导致 OCR 缓慢甚至超时返回空结果,并且占用过多的系统资源,所以默认最多只会启用 eng、chi*、fra、spa、deu、rus 和 osd,如果你需要更准确的语言支持,可以通过配置环境变量 SIYUAN_TESSERACT_LANGS 来指定语言包,比如 SIYUAN_TESSERACT_LANGS=chi_sim+eng
- 仅支持 png 和 jpg 格式的图片
- 默认只对 2MB 以下的图片进行处理,如果需要调整,可以通过环境变量 SIYUAN_TESSERACT_MAX_SIZE 设置,值的单位是字节,比如:SIYUAN_TESSERACT_MAX_SIZE=4000000 将上限调整为 4MB
图片 OCR 提取文本过程是自动在后台进行的,目前仅支持 PNG、JPG 图片。提取的文本会被用于搜索功能,这样就能通过文本关键字来定位图片。
手动调整 OCR 结果
OCR 的结果保存在 工作空间/data/assets/ocr-texts.json 中,可通过下面的方式调整 OCR 结果:
- 退出思源后下在文件系统上修改该文件(请注意 JSON 格式的正确性)
- 或者在编辑器中的图片元素菜单中选择 OCR
调整完以后需要手动重建索引。