Obsidian Publish 完整指南
Obsidian Publish 是 Obsidian 官方提供的笔记发布服务,让你可以将选定的笔记发布为公开网站。
概述
什么是 Obsidian Publish?
Obsidian Publish 是一个托管服务,可以将你的笔记转换为公开可访问的网站,具有以下特点:
| 特性 | 说明 |
|---|---|
| 官方托管 | 无需自己搭建服务器 |
| 实时同步 | 仓库更改自动同步到网站 |
| 自定义域名 | 支持绑定自己的域名 |
| 主题定制 | 支持自定义 CSS 和主题 |
| 密码保护 | 可设置访问密码 |
| SEO 友好 | 支持搜索引擎优化 |
价格
| 方案 | 价格 | 功能 |
|---|---|---|
| Publish | $8/月 | 无限站点、自定义域名、密码保护 |
| Sync + Publish | $16/月 | 同步服务 + 发布服务 |
快速开始
启用 Publish 服务
- 打开设置 → 核心插件
- 启用「发布」插件
- 点击左侧功能区出现的发布图标(地球图标)
选择发布内容
选择性发布
不需要发布整个仓库,可以选择性地发布特定笔记。
- 点击发布图标打开发布面板
- 勾选要发布的笔记
- 点击「发布」按钮
发布流程
选择笔记 → 预览更改 → 发布 → 访问网站首次发布后,你的网站将在 https://publish.obsidian.md/你的站点ID 可访问。
站点配置
基本设置
在发布面板点击「更改站点选项」:
| 设置项 | 说明 |
|---|---|
| 站点名称 | 显示在浏览器标签的名称 |
| 首页文件 | 网站首页显示的笔记 |
| 导航行为 | 点击链接的打开方式 |
| 主题 | 深色/浅色模式 |
外观定制
使用主题
- 在仓库中安装社区主题
- 发布时选择「包含主题」
- 主题样式将应用到网站
自定义 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 站点。
自定义域名
绑定自定义域名
步骤一:添加域名
- 打开发布面板 → 更改站点选项
- 在「自定义域名」输入你的域名
- 保存设置
步骤二:配置 DNS
根据你的域名类型配置 DNS 记录:
根域名(如 example.com):
| 类型 | 名称 | 值 |
|---|---|---|
| A | @ | 198.187.141.197 |
| A | @ | 198.187.141.247 |
子域名(如 notes.example.com):
| 类型 | 名称 | 值 |
|---|---|---|
| CNAME | notes | publish-main.obsidianportal.net |
步骤三:等待生效
- DNS 更改通常需要几分钟到几小时生效
- 生效后即可通过自定义域名访问
HTTPS 配置
Obsidian Publish 自动为自定义域名提供 HTTPS:
- 绑定域名后,系统自动申请 SSL 证书
- 证书颁发后自动启用 HTTPS
- 无需手动配置
提示
首次绑定时可能需要等待几分钟让 SSL 证书生效。
常见域名问题
域名无法访问
排查步骤:
- 检查 DNS 记录是否正确
- 等待 DNS 传播(最多 48 小时)
- 确认域名没有过期
- 检查是否启用了 CDN(可能与 Publish 冲突)
HTTPS 证书错误
解决方案:
- 等待证书自动颁发
- 如长时间未生效,移除域名后重新绑定
- 确认域名 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/访问控制
密码保护
为整个站点或特定笔记设置密码:
全站密码
- 打开站点选项
- 设置「站点密码」
- 访问者需要输入密码才能查看
部分密码
- 在发布面板选择特定笔记
- 设置「密码保护」
- 其他笔记仍然公开
注意
密码保护不是安全机制,仅用于防止随意访问。敏感信息不应发布。
权限管理
| 权限类型 | 说明 |
|---|---|
| 公开 | 所有人可见 |
| 密码保护 | 需要密码访问 |
| 不发布 | 仅本地可见 |
高级功能
自定义 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
- 获取 Google Analytics 追踪 ID
- 在站点设置中添加追踪代码
- 或在
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[自动同步]批量发布
- 在发布面板查看所有更改
- 使用 Shift/Ctrl 多选笔记
- 一次性发布多个更新
版本控制
结合 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 是最简单的发布方案,适合想要快速分享笔记的用户。