Skip to content

Obsidian Publish 完整指南

Obsidian Publish 是 Obsidian 官方提供的笔记发布服务,让你可以将选定的笔记发布为公开网站。

概述

什么是 Obsidian Publish?

Obsidian Publish 是一个托管服务,可以将你的笔记转换为公开可访问的网站,具有以下特点:

特性说明
官方托管无需自己搭建服务器
实时同步仓库更改自动同步到网站
自定义域名支持绑定自己的域名
主题定制支持自定义 CSS 和主题
密码保护可设置访问密码
SEO 友好支持搜索引擎优化

价格

方案价格功能
Publish$8/月无限站点、自定义域名、密码保护
Sync + Publish$16/月同步服务 + 发布服务

快速开始

启用 Publish 服务

  1. 打开设置 → 核心插件
  2. 启用「发布」插件
  3. 点击左侧功能区出现的发布图标(地球图标)

选择发布内容

选择性发布

不需要发布整个仓库,可以选择性地发布特定笔记。

  1. 点击发布图标打开发布面板
  2. 勾选要发布的笔记
  3. 点击「发布」按钮

发布流程

选择笔记 → 预览更改 → 发布 → 访问网站

首次发布后,你的网站将在 https://publish.obsidian.md/你的站点ID 可访问。

站点配置

基本设置

在发布面板点击「更改站点选项」:

设置项说明
站点名称显示在浏览器标签的名称
首页文件网站首页显示的笔记
导航行为点击链接的打开方式
主题深色/浅色模式

外观定制

使用主题

  1. 在仓库中安装社区主题
  2. 发布时选择「包含主题」
  3. 主题样式将应用到网站

自定义 CSS

创建 publish.css 文件添加自定义样式:

css
/* 自定义字体 */
body {
  font-family: 'LXGW WenKai', sans-serif;
}

/* 自定义颜色 */
.theme-dark {
  --background-primary: #1a1a2e;
  --text-normal: #eaeaea;
}

/* 自定义链接样式 */
a.internal-link {
  text-decoration: underline;
}

/* 隐藏特定元素 */
.frontmatter {
  display: none;
}

注意

自定义 CSS 文件需要手动发布到 Publish 站点。

自定义域名

绑定自定义域名

步骤一:添加域名

  1. 打开发布面板 → 更改站点选项
  2. 在「自定义域名」输入你的域名
  3. 保存设置

步骤二:配置 DNS

根据你的域名类型配置 DNS 记录:

根域名(如 example.com):

类型名称
A@198.187.141.197
A@198.187.141.247

子域名(如 notes.example.com):

类型名称
CNAMEnotespublish-main.obsidianportal.net

步骤三:等待生效

  • DNS 更改通常需要几分钟到几小时生效
  • 生效后即可通过自定义域名访问

HTTPS 配置

Obsidian Publish 自动为自定义域名提供 HTTPS:

  1. 绑定域名后,系统自动申请 SSL 证书
  2. 证书颁发后自动启用 HTTPS
  3. 无需手动配置

提示

首次绑定时可能需要等待几分钟让 SSL 证书生效。

常见域名问题

域名无法访问

排查步骤

  1. 检查 DNS 记录是否正确
  2. 等待 DNS 传播(最多 48 小时)
  3. 确认域名没有过期
  4. 检查是否启用了 CDN(可能与 Publish 冲突)
HTTPS 证书错误

解决方案

  1. 等待证书自动颁发
  2. 如长时间未生效,移除域名后重新绑定
  3. 确认域名 DNS 正确指向 Obsidian 服务器

SEO 优化

基础 SEO 设置

页面元信息

每篇笔记的 frontmatter 会影响 SEO:

yaml
---
title: 页面标题
description: 页面描述(显示在搜索结果中)
image: /images/cover.png
---

站点 SEO 设置

在站点选项中配置:

设置说明
站点名称显示在搜索结果中
站点描述站点整体描述

SEO 最佳实践

1. 优化标题

markdown
---
title: Obsidian Dataview 完整教程 - 从入门到精通
---

建议

  • 标题长度 50-60 字符
  • 包含关键词
  • 有吸引力

2. 优化描述

markdown
---
description: 学习如何使用 Obsidian Dataview 插件进行数据查询,包含 20+ 实战案例和完整语法参考。
---

建议

  • 描述长度 150-160 字符
  • 包含主要关键词
  • 概括页面内容

3. URL 结构

Obsidian Publish 使用文件路径作为 URL:

笔记路径: advanced/dataview-guide.md
访问 URL: https://yoursite.com/advanced/dataview-guide

建议

  • 使用有意义的文件夹结构
  • 文件名使用英文和连字符
  • 避免过深的嵌套

4. 内部链接

markdown
了解更多 [Dataview 语法](/reference/dataview-cheatsheet)。

建议

  • 大量使用双向链接
  • 使用描述性锚文本
  • 确保链接有效

5. 内容质量

  • 原创内容优于转载
  • 定期更新内容
  • 提供有价值的深度内容

站点地图

Obsidian Publish 自动生成站点地图:

  • 访问地址:https://yoursite.com/sitemap.xml
  • 自动提交给搜索引擎
  • 无需手动配置

robots.txt

如需自定义爬虫规则,创建 robots.txt 文件:

text
User-agent: *
Allow: /

# 禁止爬取特定目录
Disallow: /drafts/
Disallow: /private/

访问控制

密码保护

为整个站点或特定笔记设置密码:

全站密码

  1. 打开站点选项
  2. 设置「站点密码」
  3. 访问者需要输入密码才能查看

部分密码

  1. 在发布面板选择特定笔记
  2. 设置「密码保护」
  3. 其他笔记仍然公开

注意

密码保护不是安全机制,仅用于防止随意访问。敏感信息不应发布。

权限管理

权限类型说明
公开所有人可见
密码保护需要密码访问
不发布仅本地可见

高级功能

自定义 404 页面

创建 404.md 文件自定义 404 页面:

markdown
---
title: 页面未找到
---

# 404 - 页面不存在

抱歉,您访问的页面不存在。

[返回首页](/)

自定义组件

使用 Vue 组件

发布站点支持部分 Obsidian 插件的渲染效果。

嵌入外部内容

markdown
<!-- 嵌入 YouTube -->
<iframe width="560" height="315" src="https://www.youtube.com/embed/VIDEO_ID"></iframe>

<!-- 嵌入 GitHub Gist -->
<script src="https://gist.github.com/user/gist_id.js"></script>

统计分析

Google Analytics

  1. 获取 Google Analytics 追踪 ID
  2. 在站点设置中添加追踪代码
  3. 或在 publish.js 中手动集成

其他统计工具

  • Plausible Analytics
  • Fathom Analytics
  • 百度统计

评论系统

Giscus(推荐)

基于 GitHub Discussions 的评论系统:

html
<script src="https://giscus.app/client.js"
        data-repo="your-repo"
        data-repo-id="your-repo-id"
        data-category="General"
        data-category-id="category-id"
        data-mapping="pathname"
        data-theme="preferred_color_scheme"
        crossorigin="anonymous"
        async>
</script>

Disqus

传统评论解决方案:

html
<div id="disqus_thread"></div>
<script>
    var disqus_config = function () {
        this.page.url = window.location.href;
        this.page.identifier = window.location.pathname;
    };
    (function() {
        var d = document, s = d.createElement('script');
        s.src = 'https://your-site.disqus.com/embed.js';
        s.setAttribute('data-timestamp', +new Date());
        (d.head || d.body).appendChild(s);
    })();
</script>

发布工作流

日常更新流程

mermaid
graph LR
    A[编辑笔记] --> B[预览更改]
    B --> C[选择发布]
    C --> D[确认发布]
    D --> E[自动同步]

批量发布

  1. 在发布面板查看所有更改
  2. 使用 Shift/Ctrl 多选笔记
  3. 一次性发布多个更新

版本控制

结合 Obsidian Git 插件使用:

yaml
工作流:
  1. Git 提交更改
  2. Publish 发布公开内容
  3. Git 记录完整历史

最佳实践

内容组织

推荐结构

text
公开仓库/
├── index.md           # 首页
├── about.md           # 关于页面
├── posts/             # 文章目录
│   ├── post-1.md
│   └── post-2.md
├── references/        # 参考资料
└── assets/            # 图片资源

首页设计

markdown
---
title: 我的知识花园
description: 记录学习和思考的地方
---

# 欢迎来到我的知识花园

## 关于本站

这里记录了我的学习笔记和思考。

## 最近更新

```dataview
TABLE file.mtime as "更新时间"
FROM "posts"
SORT file.mtime DESC
LIMIT 5

热门内容

  • [[post-1]]
  • [[post-2]]

### 性能优化

#### 图片优化

- 压缩图片文件大小
- 使用 WebP 格式
- 懒加载大量图片

#### 减少发布内容

- 只发布必要内容
- 定期清理旧内容
- 避免发布大型附件

### 常见问题

::: details 发布后看不到更改?
1. 等待几秒钟让缓存更新
2. 强制刷新页面(Ctrl+Shift+R)
3. 检查笔记是否勾选发布
:::

::: details 链接显示为灰色?
灰色链接表示目标笔记未发布。解决方案:
1. 发布目标笔记
2. 或移除该链接
:::

::: details 如何取消发布?
1. 打开发布面板
2. 取消勾选该笔记
3. 点击「发布」移除
:::

## 与其他方案对比

| 特性 | Obsidian Publish | Hugo | Notion |
|------|------------------|------|--------|
| 配置难度 | 简单 | 中等 | 简单 |
| 自定义程度 | 中等 | 高 | 低 |
| 实时同步 | ✅ | ❌ | ✅ |
| 双向链接 | ✅ | 需插件 | ❌ |
| 价格 | $8/月 | 免费 | 免费 |

## 相关资源

- [Obsidian Publish 官方文档](https://help.obsidian.md/Obsidian+Publish/Introduction)
- [自定义域名设置](https://help.obsidian.md/Obsidian+Publish/Set+up+a+custom+domain)
- [Publish CSS 代码片段](https://github.com/obsidianmd/obsidian-publish/wiki/Publish-CSS-Snippets)

---

> [!tip] 💡 提示
> Obsidian Publish 是最简单的发布方案,适合想要快速分享笔记的用户。
最后更新:2026年4月7日编辑此页反馈问题