docs: update documentation for Halo 2.14 (#334)

为 Halo 2.14.0 更新文档。

/kind documentation

```release-note
None 
```
This commit is contained in:
Ryan Wang
2024-04-01 15:28:07 +08:00
committed by GitHub
parent f4fdff1317
commit 6e97f3724b
164 changed files with 13535 additions and 73 deletions

View File

@@ -0,0 +1,108 @@
---
title: 附件
description: 附件管理相关功能说明
---
## 存储策略
为了能够更加灵活地管理附件的存储位置Halo 提供了存储策略的概念。
Halo 默认提供了本地的存储策略类型,你还可以通过安装插件的方式扩展其他的存储策略类型。一个存储策略包含了存储提供者,具体存储位置等使用该类型存储所必要的各种信息。
:::info
目前 Halo 官方维护了两个存储策略插件,可以根据需要选择安装:
1. 阿里云 OSS<https://halo.run/store/apps/app-wCJCD>
2. Amazon S3 协议(主流云存储厂商均支持):<https://halo.run/store/apps/app-Qxhpp>
:::
你可以点击附件页面右上角的 `存储策略` 按钮对存储策略进行管理。
### 新建存储策略
点击存储策略列表右上方的 `+` 添加按钮即可新建一个存储策略。
![添加存储策略](/img/user-guide/attachments/attachment-policy-add.png)
添加时首先需要选择一种存储策略类型,系统内置的存储策略为本地存储,图中的 `S3 Object Storage` 由[对象存储Amazon S3 协议)](https://halo.run/store/apps/app-Qxhpp)提供,此文档以本地存储为例。
![添加本地存储策略](/img/user-guide/attachments/attachment-policy-add-local.png)
添加一个本地存储时,你需要输入名称及存储位置信息。其中的存储位置决定了使用该存储策略的附件,在服务器上的实际存储路径,路径规则为 `{Halo 工作目录}/attachments/{存储位置}`,其中的 Halo 工作目录由安装时指定的参数决定,默认为 `~/.halo2`
:::info
默认的 Docker 部署方式,实际存储位置由挂载到 Halo 容器工作目录的服务器目录所决定。
:::
### 管理存储策略
点击存储策略列表指定存储所在行后方的 `···` 更多操作按钮即可对该存储策略进行编辑或删除。
![存储策略操作](/img/user-guide/attachments/attachment-policy-operate.png)
:::info
为了保护附件安全避免用户误操作,当存储策略下存在附件时,该存储策略不允许删除。如果确定要删除某个存储策略及该存储策略中的所有附件,可以先按照存储策略对附件进行筛选,先批量删除存储策略下的所有附件,再删除存储策略。
:::
## 附件分组
通过附件分组功能可以方便地将同一类型、同一用途的附件划分到一个分组中,方便后续附件的管理和插件。
附件所使用的存储策略决定了附件的实际存储位置和 URL 规则,而附件分组功能仅是逻辑上的归类划分,不会影响附件的存储位置及 URL。
### 新建分组
点击附件列表上方的 `添加分组` 按钮即可新建一个分组。
![添加分组](/img/user-guide/attachments/attachment-group-add.png)
### 删除分组
点击附件列表上方指定分组上的 `···` 更多按钮,可以对分组进行重命名或删除操作。
Halo 目前提供了两种分组删除策略:
1. **删除并将附件移动至未分组**:分组被删将被删除,分组下的附件移动到未分组中。
2. **删除并同时删除附件**:先删除下的所有附件后,再删除该分组。
:::warning
当使用 `删除并同时删除附件` 方式时,分组下的所有附件会被同时删除且不可恢复、无法找回,请谨慎进行该操作。
:::
## 上传附件
点击附件列表右上方的 `上传` 按钮即可上传新的附件到 Halo。
![上传附件](/img/user-guide/attachments/attachment-upload.png)
1. **分组选择**:你可以选择需要上传到的分组,为了方便,选择之后会在浏览器记住这个选项。
2. **存储策略选择**:你可以选择需要使用的存储策略,为了方便,选择之后会在浏览器记住这个选项。
3. **上传区域**:同时支持拖拽文件、点击上传区域选择文件、粘贴文件。
## 查看附件
点击附件列表中的某一个附件即可查看该附件的详细信息。
![附件详情](/img/user-guide/attachments/attachment-detail.png)
1. **预览区域**:目前支持图片、视频、音频的预览。
2. **链接**目前可以显示并复制链接、HTML 格式代码、Markdown 格式代码。
## 删除附件
目前有两种删除附件的方式,你可以选中一些附件进行批量删除或者点击指定附件所在行后方的 `···` 更多按钮,对单个附件进行删除操作。
![批量操作附件](/img/user-guide/attachments/attachment-batch-operate.png)
:::warning
附件删除后不可恢复、无法找回,请谨慎进行该操作。
:::
## 移动附件
![附件移动](/img/user-guide/attachments/attachment-move.png)
与批量删除操作类似,你可以选中多个附件后在上方的批量操作按钮中选择 `移动` 操作,将所选附件移动到指定的分组中。
:::info
需要注意的是,目前移动附件只支持移动分组,不支持存储策略的移动。
:::

View File

@@ -0,0 +1,48 @@
---
title: 备份与恢复
description: 备份与恢复功能说明
---
从 Halo 2.8 开始Halo 内置了备份和恢复的功能,可以在 Console 中一键备份和恢复完整的数据。
## 备份
在 Console 中,点击左侧菜单的 `备份`,进入备份页面。
点击右上角的 `创建备份` 按钮,即可创建一个新的备份请求,需要注意的是,创建备份请求并不会立即开始备份,而是会在后台异步执行,因此需要等待一段时间才能看到备份的结果。
![Create a backup](/img/user-guide/backup/create-backup.png)
备份中:
![Backup running](/img/user-guide/backup/backup-running.png)
备份完成:
![Backup complete](/img/user-guide/backup/backup-complete.png)
## 恢复
:::info 在恢复前,需要了解以下几点:
1. 恢复不限制部署方式,也不限制数据库,也就是说新站点的部署方式和数据库类型可以和备份的站点不同。
2. 恢复过程可能会持续较长时间,期间请勿刷新页面。
3. 在恢复的过程中,虽然已有的数据不会被清理掉,但如果有冲突的数据将被覆盖。
4. 恢复完成之后会提示停止运行 Halo停止之后可能需要手动运行。
:::
在 Console 中,点击左侧菜单的 `备份`,进入备份页面,然后点击 `恢复` 选项卡即可进入恢复界面,阅读完注意事项之后点击 `开始恢复` 按钮即可显示备份文件上传界面。
![Before restore](/img/user-guide/backup/before-restore.png)
![Restore](/img/user-guide/backup/restore.png)
选择备份文件后,点击 `上传` 按钮即可开始上传备份文件,上传完成后会自动开始恢复。
![Restore upload](/img/user-guide/backup/restore-upload.png)
恢复完成,会提示重启 Halo点击 `确定` 按钮即可重启 Halo。
![Restore complete](/img/user-guide/backup/restore-complete.png)
![Waiting restart](/img/user-guide/backup/waiting-restart.png)
最后,建议去服务器检查 Halo 的运行状态,如果没有设置自动重启,需要手动重启。

View File

@@ -0,0 +1,67 @@
---
title: 基础说明
description: Halo 中的基本概念说明
---
Halo 作为一款好用又强大的开源建站工具,配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。
为了更好地发挥出 Halo 的价值,这里有一些基本概念需要你进行了解。
## 控制台
控制台是一个 Halo 站点的后台管理系统,只有具有权限的登录用户才可以正常使用控制台功能。你可以在控制台中管理站点中的文章、页面、附件等各种内容,调整站点使用的主题或各种设置。
:::info
控制台的访问入口为 `/console`。忘记密码请参考[常见问题中的忘记密码章节](../user-guide/faq.md#忘记密码怎么办)进行处理。
:::
### 界面说明
![控制台界面说明](/img/user-guide/common/控制台界面说明.png)
1. **全局搜索框**:点击或通过快捷键 `Ctrl+K` 可以呼出全局搜索框,输入关键字可以在所有文章、页面、附件、用户及设置项等所有内容中进行全局搜索。
2. **侧边导航栏**:对控制台提供的功能进行导航,点击导航栏条目会在页面右侧显示对应功能页面。安装某些插件可能会扩展导航栏条目。
3. **用户信息展示及操作**:展示当前登录用户的头像、名称及角色等信息,`···` 中提供更多用户相关操作。
4. **功能页面标题** 当前所在的功能页面标题。
5. **功能页面操作区域**:当前所在功能页面提供的功能操作按钮。
6. **功能页面主体** 当前所在功能页面的主体显示区域,显示内容及形式视具体页面功能而定。
## 个人中心
从 Halo 2.11 开始,除了 Console 管理控制台,我们新增加了个人中心,用于管理和用户相关的所有功能。有了个人中心之后,也可以让网站有更多的使用和开发场景,个人中心独立访问入口为 `/uc`
## 文章
文章是 Halo 中的核心概念之一。一篇文章主要由纯文本的文章标题和富文本的文章内容构成,除此之外你还可以为文章设置所属分类、添加标签、设置封面图等。
在不同的站点类型不同的应用场景中,文章的实际含义也会有所区别,它可以代表一则公司新闻、一篇博客或者产品文档中的某一章节。
## 页面
页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
## 分类
通过分类可以更好地组织管理文章。分类之间存在层级关系,一个父分类下可包含多个子分类。一篇文章可以同时属于多个分类。
## 标签
标签可以用于为文章添加特定标记,与分类不同的是标签之间没有层级关系。一篇文章也可以同时添加多个标签。
## 附件
由用户上传的,供文章、主题设置等各个地方引用的文件。多用于文章配图、主题配图、用户头像等场景。
## 主题
包含了各种站点页面模板的资源包。用户访问 Halo 站点浏览到的内容及样式,由 Halo 管理端所配置使用的主题所决定。
## 插件
用于扩展 Halo 功能的软件包。插件独立于 Halo 核心应用,可以单独安装、升级、卸载。
:::info
目前有两个官方渠道可以获取主题和插件:
- 应用市场:<https://halo.run/store/apps>
- Awesome Halo<https://github.com/halo-sigs/awesome-halo>
:::

View File

@@ -0,0 +1,134 @@
---
title: 常见问题
description: 使用上的常见问题
---
### Halo 是什么?
**Halo** [ˈheɪloʊ],是一款好用又强大的[开源建站工具](https://github.com/halo-dev/halo),配合上不同的模板与插件,可以很好地帮助你构建你心中的理想站点。它可以是你公司的官方网站,可以是你的个人博客,也可以是团队共享的知识库,甚至可以是一个论坛、一个商城。
### 忘记密码怎么办?
1. 站点管理员已经配置好邮件通知,并且用户已完成电子邮箱验证时,可以点击登录页面的 `找回密码` 选项或直接访问 `/console/reset-password` 地址,填写用户名及对应邮箱后,系统将向该邮箱发送密码重置链接,用户可通过该链接重置密码;
2. 如果不满足上述条件,或者密码重置邮件不能发送成功,请直接联系具有用户管理权限的管理员进行密码重置操作,管理员可参考文档[修改用户密码](./users#修改用户密码)部分修改指定用户的密码;
3. 如果系统没有任何一个能够正常登录控制台且具有用户管理权限的管理员账号,则用户需要通过更新数据库记录的方式重置指定用户的密码。
:::info 参考 SQL 语句
通过以下 SQL 语句,可以将 `admin` 用户的密码重置为 `password`,密码重置后请尽快修改为更加安全的密码。
**PostgreSQL** 数据库
```SQL
UPDATE
extensions
SET
data = convert_to(
jsonb_set(
convert_from(data, 'UTF-8') :: jsonb,
'{spec,password}',
'"{bcrypt}$2a$10$7tBEL1sNQSr/uWtLZHLmCeA9IGx0I9/Jz//3Uwo/anIm9xdxv.xrO"'
) :: text,
'UTF-8'
)
WHERE
name LIKE '/registry/users/admin';
```
**MySQL** 数据库
```SQL
UPDATE
extensions
SET
data = JSON_SET(
CONVERT(data USING utf8mb4),
'$.spec.password',
'{bcrypt}$2a$10$7tBEL1sNQSr/uWtLZHLmCeA9IGx0I9/Jz//3Uwo/anIm9xdxv.xrO'
)
WHERE
name LIKE '/registry/users/admin';
```
:::
### 附件上传提示 `413 Request Entity Too Large` 如何解决?
这可能是由于 Nginx 的上传大小限制所导致的。可以在 Nginx 的配置文件下的 server 节点加入 `client_max_body_size 1024m;` 即可解决,如果 1024m 还不够,请自行断定,详细配置参考如下:
```nginx {4}
server {
listen 80;
server_name localhost;
client_max_body_size 1024m;
}
```
### 网站加载速度慢,是什么问题导致的?
导致网站加载速度慢的原因有很多,建议打开浏览器的 Developer Tools 查看具体是哪个请求时间过长,然后进行针对性的优化。这里提供一些可能的原因:
1. 服务器带宽过小,很多厂商提供的最低带宽一般是 1M。
2. 服务器地区过远,这个需要自行取舍。
3. 网站上的图片过多或者体积过大,可以尝试压缩图片,或者参考 [优雅的让 Halo 支持 webp 图片输出](https://www.halo.run/archives/halo-and-webp) 的教程配置一个 Webp 图片的服务。
4. 部分主题的静态资源可能是由公共 CDN 提供的,当这个 CDN 不稳定的时候可能会导致加载变慢。
一些提升网站加载速度的建议:
1. 尽量不要选择 1M 带宽的服务器,可以根据自己的预算适当提升带宽。一般 3M 以上即可。
2. 尽量购买网络质量较好的服务器,或者较近区域的服务器。
3. 如果一定需要放大量的图片,建议先无损压缩一下再使用。
4. 如上所说,可以自行搭建一个 Webp 图片转换的服务,参考 [优雅的让 Halo 支持 webp 图片输出](https://www.halo.run/archives/halo-and-webp)。
5. 如果网站的静态资源加载慢是由三方 CDN 导致的,可以自行修改主题。
6. 可以使用全站 CDN 加速的方案。
### 如何在一台服务器上部署多个站点?
使用 Docker 创建多个容器,因为使用 Docker 可以将内部的工作目录映射到宿主机的任何目录,可以参考以下创建容器的方式:
```bash
# 第一个 Halo 容器
docker run \
-it -d \
--name halo-1 \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.14 \
# 第二个 Halo 容器
docker run \
-it -d \
--name halo-2 \
-p 8091:8090 \
-v ~/.halo2_2:/root/.halo2 \
halohub/halo:2.14 \
```
更多 Docker 相关的教程请参考:[使用 Docker 部署 Halo](../getting-started/install/docker.md)
### 如何查看运行日志?
1. 可以在 Console 端的概览页面下载最近的日志文件。
2. 使用 docker logs 命令进行查看。
```bash
# '-f' 滚动更新日志
# '-n 200' 从倒数第200行开始查看
# 更多帮助可以查看 'docker logs --help'
docker logs -f halo -n 200
```
### 前台样式丢失,如何解决?
前台样式不正常或者丢失有很多种问题的可能,最快捷定位问题的方式就是打开浏览器控制台查看具体请求的错误,以下列出了部分导致出现该问题的常见原因:
1. 后台设置的 `博客地址` 与实际访问地址不一致。也可能是开启了 https 之后,无法正常加载 http 资源,将 `博客地址` 改为 https 协议即可。
2. Nginx 配置了静态资源缓存,但没有设置 `proxy_pass`,参考如下:
```nginx
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
proxy_pass http://halo;
expires 30d;
access_log off;
}
```

View File

@@ -0,0 +1,20 @@
---
title: 页面
description: 页面管理相关功能说明
---
页面与文章类似,同样包含页面标题和富文本形式的页面内容。与文章不同的是页面无法设置所属分类和标签信息,一般用于站点中单一展示功能的页面,例如常见的站点关于页面、联系我们页面等。
自定义页面的访问链接为 `/{slug}` 其中 `slug` 为自定义页面的别名。
对于如下的关于页面,便可以通过 `/about` 地址进行访问。
![链接功能页面](/img/user-guide/pages/page-about.png)
:::info
自定义页面默认使用主题端的 `page.html` 模板进行渲染,如果主题中提供了针对自定义页面的其他模板,用户可以通过修改自定义页面高级设置中的自定义模板设置进行使用。
:::
#### 页面操作
对于页面的新建、设置、发布及删除等操作,与文章操作基本一致,具体操作请参考[《用户指南-文章》](./posts.md)章节,此处不再赘述。

View File

@@ -0,0 +1,79 @@
---
title: 插件
description: 插件管理相关功能说明
---
插件是用于扩展 Halo 功能的软件包。插件独立于 Halo 核心应用,可以单独安装、升级、卸载。
本文档仅对插件的基本管理功能进行说明,关于插件的详细使用说明请参考对应插件的文档。
:::info
目前有两个官方渠道可以获取插件:
- 应用市场:<https://halo.run/store/apps>
- Awesome Halo<https://github.com/halo-sigs/awesome-halo>
:::
## 安装插件
进入插件管理页面,点击右上角的 `安装` 按钮即可打开插件安装的对话框。
和主题一样,插件同时支持本地上传安装和远程下载安装。
### 本地上传安装
![安装插件](/img/user-guide/plugins/plugin-install.png)
插件安装成功后,便会出现在插件管理的列表中。
### 远程下载安装
同样,在安装插件的对话框中,切换到远程下载选项卡,输入插件的下载地址,点击 `下载` 按钮即可开始下载插件。
插件安装成功后,便会出现在插件管理的列表中。
此外, Halo 的[应用市场](https://halo.run/store/apps)也支持通过输入站点地址的方式自动跳转到你的站点进行安装,演示视频:
<!-- markdownlint-disable MD034 -->
<video src="https://assets.halo.run/install-plugin-from-store.mp4" controls style={{width: '100%', borderRadius: '8px'}}/>
:::info
插件安装成功后会提示你是否需要启动该插件,你可以根据需要选择是否启动。
:::
## 插件设置
点击插件列表中的某个插件进入插件详情页面。与主题设置类似,插件详情页面默认显示出了当前插件的详细信息,在详细信息标签页后方的标签页,即为插件提供的相关设置。不同的插件提供的设置项各不相同,设置项的详细说明请参考对应插件的文档。
![插件设置](/img/user-guide/plugins/plugin-setting.png)
此处以 `plugin-umami` 插件为例。
:::info
你可以点击插件列表指定插件所在行后方的 `···` 更多操作按钮,选择其中的 `重置` 选项将插件提供的设置项恢复为默认值。
:::
## 启用/禁用插件
点击插件列表或插件详情页中的启用/禁用开关,即可切换插件的启用禁用状态。
![插件启用/禁用](/img/user-guide/plugins/plugin-switch.png)
## 升级插件
点击具体插件的 `···` 更多操作按钮,选择其中的 `升级` 选项即可打开升级插件的对话框,与安装插件一样,同时支持本地上传和远程下载。
## 重置
如果你需要清空所有插件配置并重新配置插件,你可以通过 `···` 更多操作中的 `重置` 选项将主题提供的设置项恢复为默认值。
## 卸载插件
点击插件列表指定插件所在行后方的 `···` 更多操作按钮,选择其中的 `卸载` 选项即可对当前插件进行卸载。
![卸载插件](/img/user-guide/plugins/plugin-uninstall.png)
:::info
目前提供了 `卸载``卸载并删除配置` 两种卸载方式。
仅卸载插件时插件的配置信息会进行保留,当重新安装插件后还可以使用之前已保存的配置。
:::

View File

@@ -0,0 +1,139 @@
---
title: 文章
description: 文章管理相关功能说明
---
## 新建文章
目前你可以通过以下两种方式新建一篇文章:
1. 点击仪表盘快捷访问组件中的创建文章
2. 通过左侧导航栏进入文章页面,点击右上角的新建按钮
进入到如下页面后,你就可以开始编辑自己的文章内容了:
![文章编辑界面说明](/img/user-guide/posts/post-edit.png)
1. **编辑器切换**:如果安装了其他的编辑器插件,那么就可以在这个位置选择所需的编辑器。
2. **预览**:点击预览按钮可以在未发布的时候预览文章的渲染效果。
3. **保存**:仅保存文章内容,但是不发布。
4. **发布**:保存并发布文章内容。
:::info
Halo 支持通过插件来拓展文章编辑器,目前 Halo 官方维护了另外两款编辑器插件,可以按需安装使用:
1. StackEdit<https://halo.run/store/apps/app-hDXMG>
2. ByteMD<https://halo.run/store/apps/app-HTyhC>
:::
## 文章设置
当你想修改一篇文章的标题、所属分类等信息时,你可以通过以下方式进行操作:
1. 点击文章列表指定文章所在行的 `···` 更多操作按钮,选择设置。
2. 在文章列表点击指定文章的标题进入文章编辑页面,点击页面右上角的设置按钮。
![文章编辑界面说明](/img/user-guide/posts/post-setting.png)
### 设置说明
- **标题**:用于在主题端显示的文章标题。
- **别名**:通常用于生成文章访问地址,如:`/archives/{slug}`
- **分类目录**:文章所属分类,方便用户区分文章类型进行针对性浏览,一篇文章可以属于多个分类。
- **标签**:文章添加的标签,方便用户更进一步标识文章信息,一篇文章可以添加多个标签。
- **自动生成摘要**:文章摘要是对文章内容的概括性描述。
- **是** 系统根据文章内容,自动生成一段摘要。
- **否** 用户自行输入文章摘要文本。
- **自定义摘要**:用户自行输入的文章摘要文本,仅当 `自动生成摘要` 为否时生效。
- **允许评论**:是否允许用户在主题端浏览文章时对该文章发起评论。
- **是否置顶**:文章是否排序在文章列表的最顶部。
- **可见性**:访问站点主题端时,哪些人可以看到这篇文章。
- **公开**:所有用户均可看到这篇文章,包括未登录用户。
- **私有**:仅文章作者可以看到这篇文章。
- **发表时间**:手动指定文章的发表时间,未指定时以实际发布时间为准。
- **自定义模板**:自定义文章的渲染模板,由主题提供支持。
- **封面图**:文章封面图设置,需要主题支持该功能。
- **元数据**:供主题、插件使用的额外数据信息。比如主题在文章页面提供了一个下载按钮,那么就可以通过元数据来指定下载地址。
## 发布及取消发布
对于已发布的文章,默认可以通过站点地址进行公开访问,用户可以在文章高级设置中修改可见性。
你可以在上文介绍的文章设置对话框中,修改文章的发布状态。
在文章设置对话框中,若文章当前处于已发布状态,下方会显示取消发布按钮。若文章处于未发布状态,下方则不会显示发布按钮。
## 删除文章
当你不再需要一篇文章时,你可以通过以下方式删除该文章:
1. 点击文章列表指定文章所在行的 `···` 更多操作按钮,选择删除。
2. 勾选文章列表中的全选/多选框,选中一篇或多篇文章进行批量删除。
文章删除后会进入回收站中,点击右上角的回收站按钮进入回收站。在回收站中,你可以永久删除或恢复指定的文章。
:::warning
文章永久删除后将从数据库删除该记录,后续无法再恢复找回。
:::
## 文章分类管理
通过分类可以更好地组织管理文章。分类之间存在层级关系,一个父分类下可包含多个子分类。一篇文章可以同时属于多个分类。
在文章管理页面,点击页面右上角的 `分类` 按钮即可进入分类管理页面。
### 新建文章分类
点击分类管理页面右上角的 `新建` 按钮即可新建一个分类。
![文章分类编辑界面说明](/img/user-guide/posts/category-create.png)
#### 设置说明
- **名称**:用于在主题端显示的分类名称。
- **别名**:通常用于生成分类归档页面的访问地址。默认路径规则为 `/categories/{slug}`,其中 `slug` 为分类别名,访问该地址即可浏览该分类下的所有文章。分类页路由前缀可[在设置中修改](./settings#主题路由设置)。
- **自定义模板**:自定义分类归档页面的渲染模板,由主题提供支持。
- **封面图**:分类封面图设置,需要主题支持该功能。
- **描述**:关于该文章分类的更多描述信息。
- **元数据**:供主题、插件使用的额外数据信息。例如部分主题期望使用不同的颜色对分类进行区分,便可以使用该功能为分类增加颜色相关的元数据。
### 调整分类层级
分类之间存在层级关系,一个父分类下可包含多个子分类。
你可以按住分类前的图标,通过拖拽来调整分类间的层级关系和顺序。
![移动文章分类](/img/user-guide/posts/category-move.gif)
### 修改/删除分类
点击指定分类所在行后方的 `···` 更多操作按钮,可以对文章分类进行修改或删除。
:::warning
文章分类删除后,对应文章的关联将被解除,且该操作不可恢复,请谨慎进行该操作。
:::
## 文章标签管理
标签可以用于为文章添加特定标记,与分类不同的是标签之间没有层级关系。一篇文章也可以同时添加多个标签。
### 新建文章标签
点击分类管理页面右上角的 `新建` 按钮即可新建一个分类。
![标签编辑界面说明](/img/user-guide/posts/tag-create.png)
#### 设置说明
- **名称**:用于在主题端显示的标签名称。
- **别名**:通常用于生成标签归档页面的访问地址。默认路径规则为 `/tags/{slug}`,其中 `slug` 为标签别名,访问该地址即可浏览具有该标签的所有文章。标签页路由前缀可[在设置中修改](./settings#主题路由设置)。
- **颜色**:用于在控制台及主题端显示的标签颜色,主题端显示颜色需要主题支持该功能。
- **封面图**:标签封面图设置,需要主题支持该功能。
- **元数据**:供主题、插件使用的额外数据信息。
### 修改/删除标签
在列表模式下,点击指定标签所在行后方的 `···` 更多操作按钮,可以对文章标签进行修改或删除。
:::warning
文章标签删除后,对应文章的关联将被解除,且该操作不可恢复,请谨慎进行该操作。
:::

View File

@@ -0,0 +1,113 @@
---
title: 站点设置
description: 站点设置相关功能说明
---
## 基本设置
Halo 提供了以下站点基本信息设置:
- **站点标题**
- **站点副标题**
- **Logo**
- **Favicon**
在控制台设置完成后,主题端可以通过特定的表达式获取到这些信息并且在对应的位置进行展示。具体是否读取使用这些配置、在哪些位置显示这些信息由使用的不同主题而决定。
以 Halo 2.0 的[默认主题 Earth](https://github.com/halo-dev/theme-earth) 为例,这些设置信息将在如下位置进行展示。
![默认主题基本设置说明](/img/user-guide/settings/setting-basic.png)
## 文章设置
针对主题端的文章展示Halo 提供了以下设置项:
- **文章列表显示条数**
- **归档页文章显示条数**
- **分类页文章显示条数**
- **标签页文章显示条数**
## SEO 设置
针对站点的 SEO搜索引擎优化需求Halo 提供了以下设置项:
- **屏蔽搜索引擎**:配置后会在所有页面 HTML 源码的 head 部分添加 `<meta name="robots" content="noindex" />`
- **站点关键词**:格式为以`,`分隔的关键词列表,配置后会在所有页面 HTML 源码的 head 部分添加 `<meta name="keywords"> content="{关键词}" />`
:::warning 注意
目前主流的搜索引擎(如 Google、Bing、百度搜索等已经不再使用该标签作为关键词的参考因此该设置项的作用已经不大未来我们也可能会移除该设置项。
:::
- **站点描述**:配置后会在所有页面 HTML 源码的 head 部分添加 `<meta name="description" content="{描述}" />`
## 用户设置
- **开放注册**:是否允许访客注册,勾选之后在登录页面会显示注册入口。
- **默认角色**:新注册用户的默认角色。
## 评论设置
针对站点的评论功能Halo 提供了以下设置项:
- **启用评论**:全局评论功能开关配置,修改后影响所有文章、页面的评论功能。
- **新评论审核**:新增的评论是否需要在控制台进行审核,审核通过后其他访问者才能看到该条评论。
- **仅允许注册用户评论**:开启后只有登录用户才能添加评论,关闭后匿名(未登录)的访客也可以通过自行填写昵称、邮箱、网址等信息进行评论。
## 主题路由设置
针对访问站点各种类型页面的 URL 生成规则Halo 提供了以下主题路由设置项:
- **分类页路由前缀**:定位到分类列表页面以及分类归档页面。
- 默认的分类列表页面 URL 规则前缀为 `/categories`
- 默认的分类归档页面 URL 规则前缀为 `/categories/{slug}`
- **标签页路由前缀**:定位到标签列表页面以及标签归档页面。
- 默认的标签列表页面 URL 规则前缀为 `/tags`
- 默认的标签归档页面 URL 规则前缀为 `/tags/{slug}`
- **归档页路由前缀**:定位到文章归档页面的 URL 规则前缀,默认为 `/archives`
- **文章详情页访问规则**:定位到具体文章详情页面的 URL 规则前缀,默认为 `/archives/{slug}` ,用户可从以下路径规则进行选择:
- `/archives/{slug}`
- `/archives/{name}`
- `/?p={name}`
- `/?p={slug}`
- `/?p={slug}`
- `/{year}/{slug}`
- `/{year}/{month}/{slug}`
- `/{year}/{month}/{day}/{slug}`
:::info 变量说明
- `slug`:文章别名
- `name`:文章 `metadata.name` 字段值
- `year`:四位数格式的文章发布年份
- `month`:两位数格式的文章发布月份
- `day`:两位数格式的文章发布日
:::
## 代码注入
你可以使用代码注入功能,在特定类型的页面中注入额外的代码。你可以通过该功能覆盖或补充部分主题 CSS 样式,或者引入额外的 JavaScript 脚本扩展主题端功能。
- **全局 head 标签**:该代码将会被注入到所有页面的 head 标签中。
- **内容页 head 标签**:该代码将会被注入到文章、页面详情页的 head 标签中。
- **页脚**:该代码将会被注入到所有页面的页脚中。
## 通知设置
从 2.10.0 版本开始, Halo 提供了 **通知** 功能当有新的评论、留言、回复等事件发生时Halo 会通过配置的方式通知站长或者相关用户。同时,个人中心配置的电子邮箱也会作为通知的接收邮箱。
### 邮件通知
- **启用邮件通知器**开启后当有新的评论、留言、回复等事件发生时Halo 会通过 **邮件** 的方式通知站长或者相关用户。
- **用户名**:你需要在此处填写你的 **邮箱账号**
- **密码**:你需要在此处填写你的 **邮箱密码** 或相关的 **授权码**,具体请参考你所使用邮箱的相关说明。
- **显示名称**:你需要在此处填写你的 **邮箱显示名称**,该名称将会作为邮件发送者的名称显示。
- **SMTP 服务器地址**:你需要在此处填写你的 **SMTP 服务器地址**,具体请参考你所使用邮箱的相关说明。
- **端口号**:你需要在此处填写你的 **SMTP 服务器端口号**,具体请参考你所使用邮箱的相关说明。
- **加密方式**:你需要在此处选择你的 **SMTP 服务器加密方式**,具体请参考你所使用邮箱的相关说明。
> 常见邮箱服务商的文档如下:
>
> - [QQ 邮箱](https://service.mail.qq.com/detail/0/310)
> - [163 邮箱](https://help.mail.163.com/faqDetail.do?code=d7a5dc8471cd0c0e8b4b8f4f8e49998b374173cfe9171305fa1ce630d7f67ac2a5feb28b66796d3b)
> - [Gmail](https://support.google.com/mail/answer/7104828?hl=zh-Hans)
> - [阿里云企业邮箱](https://help.aliyun.com/document_detail/36687.html)
> - [腾讯企业邮箱](https://open.work.weixin.qq.com/help2/pc/19870)

View File

@@ -0,0 +1,96 @@
---
title: 主题
description: 主题管理相关功能说明
---
主题包含了各种站点页面模板的资源包。用户访问 Halo 站点浏览到的内容及样式,由 Halo 管理端所配置使用的主题所决定。
:::info
目前有两个官方渠道可以获取主题:
- 应用市场:<https://halo.run/store/apps>
- Awesome Halo<https://github.com/halo-sigs/awesome-halo>
:::
## 安装主题
点击主题页面右上方的 `主题管理` 按钮即可弹出主题管理对话框。
目前 Halo 提供了两种主题安装方式。
### 本地上传安装
你可以点击主题管理对话框下方的 `安装主题` 按钮,在弹出的安装主题对话框中上传主题压缩包。
![安装主题](/img/user-guide/themes/theme-install.png)
主题安装成功后,便会出现在已安装主题列表中。
### 远程下载安装
同样,在安装主题的对话框中,切换到远程下载选项卡,输入主题的下载地址,点击 `下载` 按钮即可开始下载主题。
下载完成后,便会出现在已安装主题列表中。
此外, Halo 的[应用市场](https://halo.run/store/apps)也支持通过输入站点地址的方式自动跳转到你的站点进行安装,演示视频:
<!-- markdownlint-disable MD034 -->
<video src="https://assets.halo.run/install-theme-from-store.mp4" controls style={{width: '100%', borderRadius: '8px'}}/>
## 切换主题
同样点击主题页面右上方的 `主题管理` 按钮弹出主题管理对话框。
在弹框中点击选中要切换的目标主题,此时页面返回到主题详情页,点击右上角的 `启用` 按钮即可将当前主题切换为实际使用的主题。
:::info
仅选中主题不点击右上角的 `启用` 按钮时,不会影响当前实际使用的主题。
:::
你也可以在已安装主题列表中,通过后方 `···` 的更多操作中的启用选项直接启用指定的主题。
## 修改主题设置
主题页面默认显示出了当前主题的详细信息,在详细信息标签页后方的标签页,即为主题提供的相关设置。不同的主题提供的设置项各不相同,设置项的详细说明请参考对应主题的文档。
![主题设置](/img/user-guide/themes/theme-setting.png)
以 Halo 的默认主题 Earth 为例,该主题提供了布局、样式、侧边栏、页脚及备案设置共五组配置项。
:::info
你可以点击主题列表指定主题所在行后方的 `···` 更多操作按钮,选择其中的 `重置` 选项将主题提供的设置项恢复为默认值。
:::
## 预览主题
通过预览功能,你可以在不更改当前启用主题的情况下查看不同主题的效果。点击主题详情页面右上角的 `预览` 按钮预览当前主题,或者进入已安装主题列表,通过后方 `···` 的更多操作中的预览选项预览指定的主题。
在主题预览页面你可以切换不同分辨率的设备,模拟主题在不同终端下的显示效果。也可以通过右上角的功能菜单切换预览的主题,或者调整当前主题的设置,查看不同设置下主题所展现的区别。
演示视频:
<!-- markdownlint-disable MD034 -->
<video src="https://assets.halo.run/theme-preview.mp4" controls style={{width: '100%', borderRadius: '8px'}}/>
## 升级主题
点击主题详情页右上角的 `···` 更多操作按钮,选择其中的 `升级` 选项即可打开升级主题的对话框,与安装主题一样,同时支持本地上传和远程下载。
## 重载主题配置
如果当前主题提供的设置项发生变化,可以通过 `···` 更多操作中的 `重载主题配置` 选项对主题配置项进行更新。
## 重置
如果你需要清空所有主题配置并重新配置主题,你可以通过 `···` 更多操作中的 `重置` 选项将主题提供的设置项恢复为默认值。
## 卸载主题
进入已安装主题列表,点击指定主题所在行后方的 `···` 更多操作按钮,选择其中的 `卸载` 选项即可对当前主题进行卸载。
![卸载主题](/img/user-guide/themes/theme-uninstall.png)
:::info
目前提供了 `卸载``卸载并删除配置` 两种卸载方式。
仅卸载主题时主题的配置信息会进行保留,当重新安装主题后还可以使用之前已保存的配置。
:::

View File

@@ -0,0 +1,61 @@
---
title: 个人中心
description: 关于个人中心的功能说明
---
从 Halo 2.11 开始,除了 Console 管理控制台,我们新增加了个人中心,用于管理和用户相关的所有功能。有了个人中心之后,也可以让网站有更多的使用和开发场景。
## 进入个人中心
你可以通过点击 Console 左下角的个人中心图标进入个人中心,也可以直接访问 `/uc` 进入个人中心。
:::info 提示
此外,如果用户拥有进入 Console 的权限,也会在个人中心的左侧导航栏中看到 Console 的入口。
详情可见:[创建角色](./users.md#创建角色)
:::
![Entry](/img/uc/uc-entry.png)
## 个人资料
这个页面会显示和用户相关的一些信息。
![Entry](/img/uc/uc-profile.png)
## 通知配置
这个页面可以配置用户的通知偏好,可以选择接收哪些类型的通知。
![Entry](/img/uc/uc-notification-preferences.png)
## 个人令牌
个人令牌是一种用于访问 Halo API 的凭证,可以通过个人令牌访问 Halo 的 REST API而无需通过用户名和密码授权。
![Entry](/img/uc/uc-pat.png)
创建新的个人令牌:
![Entry](/img/uc/uc-pat-creation.png)
- **名称**:个人令牌的名称。
- **过期时间**:个人令牌的过期时间,不选择则表示永不过期。
- **描述**:个人令牌的描述信息,用于描述个人令牌的用途。
- **权限**:个人令牌的权限,可以选择多个权限。
创建好的个人令牌:
![Entry](/img/uc/uc-pat-token.png)
## 消息
此页面用于显示用户收到的站内消息。
![Entry](/img/uc/uc-notifications.png)
## 我的文章
Halo 默认为个人中心提供了管理个人文章的功能,每个用户都可以在个人中心创建、编辑自己的文章。当然,也可以通过配置角色权限,自行决定是否开放此功能,可查阅[创建角色](./users.md#创建角色)。
![Entry](/img/uc/uc-posts.png)

View File

@@ -0,0 +1,118 @@
---
title: 用户与权限
description: 用户管理、权限配置相关功能说明
---
## 概览
Halo 2.0 版本采用了基于角色的权限控制RBAC体系。不同于之前 1.x 版本的单用户设计,现在你可以创建多个用户并且通过赋予不同用户不同角色的方式,为他们分配不同的权限。
## 用户
点击左侧导航栏的 `用户` 条目进入用户管理页面。
### 创建用户
在用户管理页面,点击右上角的 `添加用户` 按钮即可弹出新建用户对话框。
![创建用户](/img/user-guide/users/user-setting.png)
目前支持配置的用户属性有:
- **用户名**:用户登录 Halo 控制台使用的用户名,不可与已有的用户名重复;
- **显示名称**:用于显示文章作者等用户信息时使用的,更友好的用户名称;
- **密码**
- **电子邮箱**
- **手机号**
- **头像**
- **描述**
- **元数据**:供主题、插件使用的额外数据信息。例如部分主题期望展示作者的学历、工作单位等信息,便可以使用该功能为用户增加相关的元数据。
### 其他操作
点击用户列表中的 `···` 更多操作按钮,可以对指定用户进行修改资料、修改密码等其他更多操作。
![用户列表其他操作](/img/user-guide/users/user-operate.png)
#### 修改用户资料
你可以修改除用户名以外的所有资料,具有用户管理相关权限的用户,也可对其他用户的资料进行修改。
#### 修改用户密码
对于已有的用户,你可以在 `···` 更多操作中修改指定用户的登录密码。
#### 分配角色
对于已有的用户,你可以在 `···` 更多操作中为该用户分配角色,分配角色后该用户具有角色所对应的权限。
:::info
修改用户分配的角色会影响用户所拥有的权限,可能影响用户使用。
:::
#### 删除用户
对于已有的用户,你可以在 `···` 更多操作中删除该用户。
:::warning
删除用户后,该用户之前创建的文章、页面等内容的作者信息将会丢失,可能影响站点内容浏览。此操作不可恢复。
:::
## 角色
如下图所示,在用户管理页面,点击右上角红色区域的 `角色管理` 按钮,即可进入到角色管理页面。
![角色管理](/img/user-guide/users/role-management.png)
### 创建角色
Halo 提供了全新创建和基于已有角色创建两种角色创建方式。
#### 全新创建
点击角色管理页面右上角的 `新建角色` 按钮即可弹出新建角色对话框,通过这种方式创建的角色默认未勾选任何权限,你需要在对话框中点击切换到权限标签页,为该角色勾选需要的权限。
#### 基于已有角色创建
![基于已有角色创建角色](/img/user-guide/users/role-fork.png)
当系统中已经存在一些基础角色时,你可以点击某个角色所在行中的 `···` 更多操作按钮,选择 `基于此角色创建` 来创建一个新的角色。通过这种方式创建的角色默认继承了原有角色的权限,但你同样可以对新角色的权限进行进一步调整。
![创建角色](/img/user-guide/users/role-creation.png)
- **名称**:角色的名称。
- **登录之后默认跳转位置**:用户登录成功后,跳转到指定的页面。
- **禁止访问 Console**:勾选后,该角色的用户将无法进入 Console 管理控制台,只能访问个人中心(/uc
- **权限**:角色的权限,可以选择多个权限。
### 修改角色信息
对于已有的角色,你可以在 `···` 更多操作中修改指定角色的名称和该角色所拥有的权限。
### 其他操作
对于已有的角色,你可以在 `···` 更多操作中删除指定角色。
:::warning
删除角色后,分配了该角色的用户会丧失对应的权限,影响用户使用。此操作不可恢复。
:::
## 身份认证
目前 Halo 默认仅支持本地身份认证,但可以通过插件的方式拓展其他三方的身份认证方式。
:::info
目前 Halo 官方提供的身份认证插件:
- OAuth2 认证:<https://halo.run/store/apps/app-ESVDK>
:::
你可以在用户管理界面的右上角点击 `身份认证` 按钮,进入身份认证管理页面。
![身份认证](/img/user-guide/users/auth-providers-entry.png)
进入身份认证管理页面之后,如果你已经安装了提供身份认证方式的插件,你就可以在列表中看到对应的身份认证方式,你可以对其进行设置并启用。
![身份认证方式](/img/user-guide/users/auth-providers.png)
> 这里是安装了 [OAuth2 认证](https://halo.run/store/apps/app-ESVDK) 插件,提供了 `GitHub`、`GitLab`、`Gitee` 三种 OAuth2 认证方式。