在 obsidian 中使用 alias 属性

如何xxx

#type / howto #status / evergreen

[!info] related notes

use-alias-property

简短的回答是:在界面的“视觉展示”上完全可以,但在敲击 [[ 时的“输入自动补全”上,原生 Obsidian 做不到。

这里需要区分 Obsidian 内部的两个核心机制:

1. 界面展示(单靠 title 完全可以胜任)

如果你安装了 Front Matter Title 插件,你可以直接在插件设置中,将显示源(Custom Properties)设定为只读取 title

设置好后,你的文件树(左侧边栏)、标签页、关系图谱(Graph View)全都会完美读取并显示 title 里的中文名称。在这个层面上,你可以完全抛弃 aliases

2. 双链自动补全(原生底层只认 aliases

当你在写笔记,敲下 [[ 并输入中文试图寻找那篇笔记时,问题就出现了。Obsidian 的底层搜索索引引擎是硬编码的,它在搜索下拉框中只抓取两个东西:

  1. 真实的文件名(如 api-version-management
  2. 官方特权属性 aliases

如果你只写了 title: API版本管理,当你在正文敲打 [[API 时,由于它不是 aliases,下拉列表里根本搜不到这篇笔记。这是 Obsidian 目前架构上的硬性限制。

面向网站生成的双赢策略

在开发 digital-biome 个人网站时,title 属性是不可或缺的。Astro 的内容集合(Content Collections)和路由生成系统,默认就是深度依赖 Markdown 前言中的 title 字段来提取网页的主 H1 标题、<title> 标签以及 SEO 元数据。如果为了迁就 Obsidian 的补全机制而删掉 title 只留 aliases,反而会严重增加前端解析的成本。

既然 Astro 刚需 title,而 Obsidian 丝滑的链接输入刚需 aliases,最优雅的解决方案是保持两者共存,但不要手动写两遍

推荐的自动化工作流:

你可以利用 Templater 插件(或者 Obsidian 原生的模板功能)来创建一个新笔记模板。

当你新建笔记时,让模板弹出一个输入框让你输入中文标题,然后让模板自动为你生成如下的 Frontmatter:

YAML

---
title: <% tp.file.title %>  # 供 Astro 网站渲染使用
aliases:
  - <% tp.file.title %> # 供 Obsidian 原生 [[ 搜索补全使用
date: <% tp.date.now("YYYY-MM-DD") %>
---

(注:以上为 Templater 语法示例)

这样一来,你只需输入一次中文名,机器就会在后台同时满足 Astro 网站的数据结构需求和 Obsidian 的本地写作体验,彻底消除维护多个字段的割裂感。

创建于 2026/3/1 更新于 2026/3/1