# 创建网站 ## 未创建过网站 ### 准备工作 - 一个 Obsidian 账户。如果你还没有账户,请[注册](https://obsidian.md/account#mode=signup)。 - 发布服务订阅。如果你还没有订阅,请在[账户页面](https://obsidian.md/account)进行订阅。 ### 步骤 1:登录 Obsidian 账户 1. 打开**设置**。 2. 在侧栏中,点击**关于**。 3. 在**账户 → 你的账户**下,点击**登录**。 4. 在**邮箱**中,输入账号邮箱。 5. 在**密码**中,输入密码。 6. 点击**登录**。 ### 步骤 2:启用发布插件 1. 打开**设置**。 2. 在侧栏中,选择**核心插件**。 3. 启用[[发布插件|发布插件]]。 ### 步骤 3:创建一个网站 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 在**网站 ID**中,输入你想要使用的网站 ID。网站 ID 将为你网站地址的一部分。例如,ID 为 `my-amazing-site` 的网站可以通过网址 publish. Obsidian. Md/my-amazing-site 访问。 3. 点击**创建**。 ### 步骤 4:设置站点名称 1. 再次点击**发布更改**按钮。在**发布更改**对话框中,选择**更改网站设置**选项( ![[lucide-cog.svg#icon]] )。 2. 在**常规**设置下的**网站名称**设置中,输入你的网站名称。 3. 点击**保存网站设置**。 ### 步骤 5:选择要发布的笔记 1. 回到**发布更改**对话框中,在**未发布**栏位中查看仓库中尚未发布的笔记。 2. 选中要发布的笔记。 3. 点击**发布**。 随后,所选的笔记将可以在网站上访问。 ## 已经创建过网站 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 由于已经创建了一个网站,请点击**切换网站**(箭头图标)。 3. 在**网站 ID**中,输入你想要使用的网站 ID。网站 ID 将为你网站地址的一部分。例如,ID 为 `my-amazing-site` 的网站可以通过网址 publish.obsidian.md/my-amazing-site 访问。 4. 点击**创建**。 > [! 注意] 拥有的网站数量取决于发布服务的订阅数量。新建网站前,请确保订阅数量。 # 发布笔记 ## 发布笔记 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,展开**未发布**栏位查看所有尚未发布的笔记。 3. 选择你想要发布的笔记。 4. 点击**发布**。 ## 取消发布笔记 即使取消发布,笔记仍会保留在本地仓库中。 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,展开**已发布**栏位查看所有已发布的笔记。 3. 选择你想要取消发布的笔记。 4. 点击**发布**。 ## 更新已发布的笔记 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,展开**本地有更改**栏位查看所有在本地上有修改的笔记。 3. 选择你想要更新的笔记。 4. 点击**发布**。 ## 发布相关笔记 如果你只发布了某篇笔记 a,而未发布笔记 a 中所链接的笔记,那么访客在阅读笔记 a 时就无法通过链接跳转到相关内容。为了防止这种情况,发布服务能让你在发布某篇笔记的同时将相关笔记也一起发布。 要将与发布队列中笔记相关的所有笔记加入发布队列中,请在**发布更改**对话框中点击**添加相关文件**。 不过在使用这个功能后,我们建议你仔细检查发布队列,以防止一些不想发布的文件意外混入其中。 ## 默认加入/不加入发布队列 见[[publish 属性]] ## 为笔记设置永久链接 见 [[permalink 属性]] # 设置访问密码 为了增强发布网站的安全性,可以为网站设置密码。其他人只有在正确输入密码后才可浏览网站内容。当然,如果想移除密码也是可以的。移除密码后,整个网站将再次对公众可见。 > [! Warning] 目前不支持单独为已发布的笔记设置密码保护。 ## 添加网站访问密码 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,点击**更改网站设置**选项(齿轮图标)。 3. 在**其他设置**下,点击**密码**旁边的**管理**按钮。 4. 点击**添加密码**。 5. 在**密码**输入框中,输入网站访问密码。 6. (可选)在**密码名称**中,输入密码的昵称。密码名称常用于提示其用途,比如谁将使用这个密码进行访问。 7. 点击**添加此密码**。 ## 移除访问密码 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,点击**更改网站设置**选项(齿轮图标)。 3. 在**其他设置**下,点击**密码**旁边的**管理**按钮。 5. 点击要删除的密码旁边的叉号图标。 # 删除现有网站 > [! 注意] 删除网站后,笔记仍会保留在你的本地仓库中。 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 点击**切换网站**(箭头图标)。 3. 点击要删除网站右侧的**删除网站**(叉号图标)。 4. 点击**删除**以执行删除操作。 # 在网站之间切换 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 点击**切换网站**(箭头图标)。 3. 点击要切换到的网站右侧的**选择**按钮。 # 更改网站 ID 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 点击**切换网站**(箭头图标)。 3. 点击要编辑 ID 的网站右侧的**编辑网站 ID**按钮(铅笔图标)。 4. 在**网站 ID**中,输入网站的新 ID。 5. 点击**更改**。 # 查看网站选项 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 在**发布更改**对话框中,点击[[更改网站设置]] 按钮(齿轮图标)。 # 协作 参考[[Obsidian 发布服务-应用-团队]] # 重定向 见[[别名-应用-Obsidian 发布网站]] # 自定义网站 ## 自定义分享链接 很多社交网站都支持在分享网站时显示网站的要点信息。借助属性,可以自定义网站在分享时的要点信息。 > [! Warning] 警告 > 此部分中部分内容**仅**适用于网络爬虫。为了提高网站的访问性能,一般情况下浏览器仅显示未经修改的页面。 - 自定义摘要,使用 [[description 属性]]。 - 自定义图片,使用 [[cover 属性]] ## 自定义域名 对于每个网站,都可以通过自定义域名访问。可以为网站设置自定义域名或子域名。 > [! Warning] > 目前,官方仅支持使用以下方法配置自定义域名: > > - 使用 [CloudFlare](https://cloudflare.com) 的[全模式](https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/)。 > - 使用代理设置。 > > 目前官方还没有代替配置 SSL 证书的方法。 ### 使用 CloudFlare 进行设置 设置自定义域名或子域名的最简单方式是创建一个 [CloudFlare](https://cloudflare.com) 账户,并让 CloudFlare 管理你的域名 DNS。 以下是使用 CloudFlare 来为发布网站配置自定义域名的步骤,无论是使用根域名(`mysite.com`)还是子域名(`notes.mysite.com`)。 > [! Important] 提示 > CloudFlare 是**我们主要推荐的服务**。因此下文将基于 CloudFlare 进行说明。 **在 CloudFlare 中:** 1. 打开 Cloudflare 到想要使用域名,比如 `mysite.com`,或如 `notes.mysite.com` 的子域名。 2. 转到**DNS**并点击**Add Record**。 3. 选择**CNAME**。 4. 在**name**中输入域名或子域名,例如 `notes.mysite.com`。 5. 在**target**中输入 `publish-main.obsidian.md`。注意,不要在此处加入个人网站的 ID,因为发布服务会自动处理相关设置。 6. 确保**proxy status**已启用。默认情况下应该是启用的。 7. 转到**SSL/TLS**并将 SSL/TLS 加密模式设置为“Full”,以便自动配置 SSL/TLS 证书。 > [! 注意] > 要将 `mysite.com` 和 `www.mysite.com` 都重定向到 Obsidian Publish,你需要创建一个[页面规则](https://support.cloudflare.com/hc/en-us/articles/200172336-Creating-Page-Rules),具体设置如下: > > - URL 匹配:`www.mysite.com/*` > - 转发 URL - 301 永久重定向 > - 重定向 URL:`https://mysite.com/$1` > > 创建完页面规则后,为 `www.mysite.com` 创建一个 CNAME 记录,就像为 `mysite.com` 做的一样。 **在 Obsidian 中:** 1. 打开 Obsidian。 1. 在功能区中,点击**发布更改**按钮(纸飞机图标)。 2. 在**发布更改**对话框中,点击**更改网站设置**选项(齿轮图标)。 4. 点击**自定义域名**设置项旁边的**设置**按钮。 5. 在**自定义 URL**中,输入你的域名或子域名。 > [! 注意] > 如果你的自定义域名出现了循环重定向,很可能是因为将 CloudFlare 中的加密模式设置为“Flexible”而不是“Full”。 ### 使用代理进行设置 你也可以通过使用自己的 Web 服务器为自定义域名设置 SSL/TLS。 如果你已经在域名或子域名下托管了一个网站,你也可以使用这个选项,将网站设置为在特定 URL 路径下加载你的 Obsidian 发布网站,而不是完全托管整个发布网站。 将所有请求代理到 `https://publish.obsidian.md/serve?url=mysite.com/my-notes/...` 的 URL 路径下,并在 Obsidian 中的网站设置中将**自定义 URL**设置为 `mysite.com/my-notes`。 你还可以将 Obsidian 发布网站设置为你网站的子 URL。例如,`https://mysite.com/my-notes/`。为此,你必须托管自己的服务器,并将所有请求代理到我们的服务器 `https://publish.obsidian.md/`。 #### NGINX 在你的 NGINX 配置中添加以下内容: ```nginx location /my-notes { proxy_pass https://publish.obsidian.md/serve?url=mysite.com/my-notes/; proxy_ssl_server_name on; proxy_set_header Host publish.obsidian.md; } ``` #### Apache 在 `.htaccess` 中添加以下内容: ```htaccess RewriteEngine on RewriteRule "^my-notes/(.*)quot; "https://publish.obsidian.md/serve?url=mysite.com/my-notes/$1" [L,P] ``` > [! 注意] > 必须启用 `mod_rewrite`,你可能还需要配置 [SSLProxyEngine](https://stackoverflow.com/questions/40938148/reverse-proxy-for-external-url-apache)。 #### Netlify ```plain [[redirects]] from = "https://mysite.com/my-notes/*" to = "https://publish.obsidian.md/serve?url=mysite.com/my-notes/:splat" status = 200 force = true ``` #### Vercel 在 `vercel.json` 中,[配置重写](https://vercel.com/docs/configuration#project/rewrites): ```json { ... "rewrites": [ { "source": "/my-notes/", "destination": "https://publish.obsidian.md/serve?url=mysite.com/my-notes" }, { "source": "/my-notes/:path*", "destination": "https://publish.obsidian.md/serve?url=mysite.com/my-notes/:path*" } ] } ``` #### Caddy ```plain mysite.com { encode zstd gzip handle /my-notes* { reverse_proxy https://publish.obsidian.md { header_up Host {upstream_hostport} } rewrite * /serve?url=mysite.com{path} } } ``` #### Traefik 这个最小配置将会把 `mysite.com` 重定向到 Obsidian 发布网站。 查看 [Traefik文档](https://doc.traefik.io/traefik/routing/overview/)获取完整示例。 ```yaml http: routers: mysite: rule: Host(`mysite.com`) service: obsidian-publish middlewares: - "publish-headers" services: obsidian-publish: loadBalancer: servers: - url: https://publish.obsidian.md middlewares: publish-headers: headers: customRequestHeaders: Host: "publish.obsidian.md" x-obsidian-custom-domain: "mysite.com" ``` #### 支持的 HTTP X-Headers 如果你的代理服务不允许查询路径,你可以使用 `https://publish.obsidian.md/`,并设置一个自定义头 `x-obsidian-custom-domain`,将其设置为你的网站 URL `mysite.com/my-subpath`。 ### 将旧网站重定向到自定义域名 如果你想将访客从旧的 `publish.obsidian.md` 网站重定向到新的自定义域名,请在配置自定义域名时启用**重定向至你的自定义域名**选项。 ### 故障排除 一旦设置了自定义域名,如果你还从以前的 `https://publish.obsidian.md/slug` 链接访问发布网站,你可能需要清除浏览器缓存,以使字体、图表或密码等内容能够正常工作。这是由当下浏览器强加的跨域安全限制策略导致的。但好消息是,如果你只允许访客使用你的自定义域名,那么你网站的读者应该永远不会遇到这个问题。 ## 自定义外观 这篇笔记将教你如何自定义网站的外观。 ### 静态资源 以下文件是网站外观的设置文件。你可以创建并发布它们,以此来自定义你的网站: - `publish.css` :网站的 CSS 文件 - `publish.js`:自定义 JavaScript - `favicon-32x32.png`:自定义的网站标志 **注意:** - 由于 Obsidian 不支持编辑 CSS 和 JavaScript 文件,因此你需要使用其他应用程序来创建和编辑它们。 - `publish.css` 和 `publish.js` 必须发布于仓库的根目录(`/`)中。 - 默认情况下,`publish.css` 和 `publish.js` 不会出现在文件列表里,但你仍然可以通过**发布更改**对话框来发布它们。 - 要启用 `publish.js` 中的自定义 JavaScript,你需要使用自定义域名。 对于标志,发布服务支持以下命名语法,其中 `32` 代表了标志的像素尺寸: - `favicon-32.png` - `favicon-32x32.png` - `favicon.ico` 我们建议你的标志文件为以下尺寸之一(或多个尺寸): - `favicon-32x32.png` - `favicon-128x128.png` - `favicon-152x152.png` - `favicon-167x167.png` - `favicon-180x180.png` - `favicon-192x192.png` - `favicon-196x196.png` 标志文件可以存放在仓库中任意位置。只要它们被发布了就能生效。 ### 使用社区主题 要在网站上使用社区主题: 1. 在系统资源管理器中打开本地仓库。 2. 进入仓库设置文件夹(默认名称为 `.obsidian`)。 3. 打开 `themes` 文件夹。 4. 复制你想要用于网站的 CSS 文件。 5. 将文件粘贴到本地仓库的根文件夹中。 6. 将这个 CSS 文件重命名为 `publish.css`。 7. 发布 `publish.css` 文件。 **注意:** - 如果发布主题文件后网站外观仍然没有变化,请尝试清空浏览器缓存。 - 你可以在[[更改网站设置|网站设置]]中开启切换颜色的开关。 > [! Tip] 开发你自己的主题 > 找不到适合的主题?[自己构建一个主题吧](https://docs.obsidian.md/Themes/Obsidian+Publish+themes/Build+a+Publish+theme)。 ### 调整界面功能 你可以启用网站的界面组建,如局部关系图或大纲等。 具体界面功能请参考[[更改网站设置|网站设置]]中**阅读体验**和**组件**部分设置。 #### 自定义文件列表 在发布服务中,你可以自定义文件和文件夹在网站[[文件列表]]中的顺序,以及显示情况。默认情况下,文件列表中的项目按发布顺序排列。未发布的笔记不会出现在网站的文件列表中。 ##### 进入自定义文件列表设置 1. 在功能区中,点击**发布更改**按钮( ![[lucide-send.svg#icon]] )。 2. 在**发布更改**对话框中,点击**更改网站设置**(齿轮图标)。 3. 在**组件**设置下,点击**自定义文件列表**旁边的**管理**按钮。 随后将出现一个名为**自定义文件列表**的窗口,你可以在其中对文件列表进行自定义。 ##### 调整文件列表顺序 在标有**文件列表显示顺序**的部分,你可以调整文件列表中项目的显示顺序。 1. 选择要调整的文件夹或文件。 2. 将其拖动到所需位置。 3. 在窗口右下角,点击**完成**。 发布服务会将更改推送到网站。 ##### 隐藏和取消隐藏列表项目 如果你不希望一些已发布的文件或文件夹显示在文件列表中,你可以隐藏这些项目。 1. 选中要隐藏的文件夹或文件。 2. 右键单击并点击**隐藏**。随后该项目将从**预览**列表中消失。 3. 在窗口右下角,点击**完成**。 发布服务会将更改推送到网站。 > [! Tip] 您可以通过点击**在文件列表中隐藏文件或文件夹**标题右侧的恢复按钮来**取消隐藏**文件 ##### 常见问题 > [! Question]- 问:我可以在**自定义文件列表**中将文件从一个文件夹移动到另一个文件夹吗? > 答:不可以。 > > 你只能调整文件夹内文件的顺序(包括根目录内的文件)以及文件夹之间的顺序。 > [! Question]- 问:我可以在调整多个文件和文件夹的顺序吗? > 答:可以! > [! Question]- 问:如何恢复这些修改? > 答:**显示顺序**:点击**自定义文件列表**旁边的**恢复默认**图标(逆时针旋转箭头)。这将让文件列表恢复为按字母顺序排列。 > > **隐藏情况**:点击**在文件列表中隐藏文件或文件夹**旁边的**恢复默认**图标(逆时针旋转箭头)。这将让隐藏项目恢复为可见状态。