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. 点击「发布」按钮

发布流程 ​

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

首次发布后,你的网站将在 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:

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

建议:

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

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
```markdown

## 热门内容

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

性能优化 ​

图片优化 ​

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

减少发布内容 ​

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

常见问题 ​

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

灰色链接表示目标笔记未发布。解决方案:

  1. 发布目标笔记
  2. 或移除该链接
如何取消发布?
  1. 打开发布面板
  2. 取消勾选该笔记
  3. 点击「发布」移除

与其他方案对比 ​

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

相关资源 ​


提示

Obsidian Publish 是最简单的发布方案,适合想要快速分享笔记的用户。