← BACK

1、Obsidian 上传到 Github 换行符错误

1、Obsidian 上传到 Github 换行符错误

配置 Git 处理行结束符 https://docs.github.com/zh/get-started/git-basics/configuring-git-to-handle-line-endings

方式一

在根目录下创建 .gitattributes 文件

# 所有文件视为文本,但由 Git 自动处理换行符(推荐)
* text=auto

# 明确指定 Markdown 相关文件使用 LF 换行符(关键!)
*.md text eol=lf
*.markdown text eol=lf

# 避免对二进制文件进行换行符转换
*.png binary
*.jpg binary
*.pdf binary

方式二

git config core.autocrlf 命令用于更改 Git 处理行尾的方式。 它将采用单一参数。 在 Windows 上,只需将 true 传递给配置即可

git config --global core.autocrlf true

在根目录下创建 .gitignore 文件,忽略 Obsidian 工作区文件

.obsidian/workspace.json
.obsidian/workspace-mobile.json

设置 core.autocrlf 选项或提交 .gitattributes 文件后,Git 会自动更改行结束符以匹配新配置。你可能会发现,Git 会报告你未修改的文件的更改。 若要更新当前分支上的所有文件以反映新配置,请运行以下命令。

git add --renormalize .

若要显示重写的规范化文件,请运行以下命令。

git status

2、Markdown 超链接与 Wiki 链接的区别

不使用 wiki 链接

当你关闭 Obsidian 的 Use Wikilinks 选项后,Obsidian 会遵循标准的 Markdown 语法 [显示文本](链接地址)

最关键的点在于:先前提到的三种“路径类型”依然生效,它们会直接决定括号 () 里的内容如何生成。

依然假设你的仓库结构:

  • 📂 Vault_Root/
    • 📂 Notes/ → 📄 MyNote.md (当前编辑)
    • 📂 Assets/ → 🖼️ cat.png

1. 尽可能简短的形式 (Shortest path)

Obsidian 会只保留文件名,并自动处理空格编码(将空格转换为 %20)。

  • 文本链接[My Note](My%20Note.md)
  • 图片链接![cat](cat.png)
  • 注意:这种模式在标准 Markdown 环境(如 GitHub 或 VS Code)中通常无法直接跳转,因为它们找不到文件的具体物理位置。

2. 基于当前笔记的相对路径 (Relative path)

这是对 SSG 最友好 的模式。它会生成相对于当前文件的完整路径。

  • 文本链接[My Note](My%20Note.md) (同目录下) 或 [Other](Subfolder/Other.md)
  • 图片链接![cat](../Assets/cat.png)
  • 优势:这种格式具有通用性。无论你把生成的 HTML 部署到哪,只要相对目录结构不变,图片和链接永远不会失效。

3. 基于仓库根目录的绝对路径 (Absolute path)

路径从仓库根目录开始,但不带开头的斜杠(默认情况下)。

  • 文本链接[My Note](Notes/My%20Note.md)
  • 图片链接![cat](Assets/cat.png)
  • 特点:在 SSG 构建时,你通常需要给这些路径手动加上前缀(如 /),否则浏览器会把它们误认为相对路径。

4. 一个重要的细节:空格处理

在标准 Markdown 模式下,如果文件名包含空格,Obsidian 有两种处理方式:

  1. URL 编码[My Note](My%20Note.md)(最常见)。
  2. 尖括号包裹[My Note](<My Note.md>)(这是 CommonMark 规范支持的,但在某些解析器中兼容性略差)。

使用 wiki 链接

在 Obsidian 中,这三种链接类型决定了当你拖入或插入图片时,编辑器在 Markdown 源码中生成的文本路径长什么样。

为了方便理解,我们假设你的仓库(Vault)结构如下:

  • 📂 Vault_Root/
    • 📂 Notes/
      • 📄 MyNote.md (你正在编辑的笔记)
    • 📂 Assets/
      • 📂 Images/
        • 🖼️ cat.png (你要插入的图片)

1. 尽可能简短的形式 (Shortest path when possible)

这是 Obsidian 的默认设置。它会扫描整个仓库,如果图片的文件名是唯一的,它就只保留文件名。

  • 显示效果![[cat.png]]

  • 特点

  • 最清爽,不包含任何路径信息。

  • 注意:如果库中其他文件夹里也有一个同名的 cat.png,Obsidian 会自动补全路径以示区别(例如 ![[Assets/Images/cat.png]])。

2. 基于当前笔记的相对路径 (Relative path to file)

这种方式遵循标准的相对路径逻辑,从当前 MyNote.md 的位置出发去寻找图片。

  • 显示效果![[../Assets/Images/cat.png]]

  • 特点

  • 使用了 ../(返回上级目录)。

  • 优势:这种路径格式对外部编辑器(如 VS Code)和绝大多数 SSG(静态站点生成器) 最为友好,因为它们通常也使用相对路径寻址。

3. 基于仓库根目录的绝对路径 (Absolute path in vault)

这种方式始终从仓库的最顶层文件夹开始计算路径。

  • 显示效果![[Assets/Images/cat.png]]

  • 特点

  • 无论你的笔记在哪里,链接开头始终是根目录下的文件夹名。

  • 注意:这里的“绝对”是指相对于 Obsidian 仓库根目录,而不是你电脑的 C:\ 盘或 /Users/ 目录。

Obsidian MarkDown 图片名称路径规范化

命名规范和路径规范

图片位置与笔记位置相对一致,且随笔记的位置改变而改变。 图片名称与笔记名称相对一致,且随笔记的名称改变而改变。

Obsidian 设置如下:

Custom Attachment location 插件

设置如下:

使用指令前最好将 obsidian 语言改为英文,obsidian 在中文语言下有概率不生效

Custom Attachment Location: Collect attachments in current note

功能:将图片 wiki 链接转换成标准的 markdown 相对路径链接,路径遵循 obsidian 设置

将 wiki 图片链接转换为标准的 markdown 链接

Consistent Attachments and Links: Replace All Wiki Embeds with Markdown Embeds in Current note

将链接转换为相对路径

Consistent Attachments and Links: Convert All Embed Paths to Relative in Current Note