chore: use markdownlint and add pre commit hook (#41)

Signed-off-by: Ryan Wang <i@ryanc.cc>
JohnNiang-patch-1
Ryan Wang 3 years ago committed by GitHub
parent 251729f565
commit 7e023448fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
pnpm lint

@ -0,0 +1,8 @@
{
"MD033": false,
"MD024": false,
"MD029": false,
"MD010": { "code_blocks": true, "spaces_per_tab": 4 },
"MD046": { "style": "fenced" },
"line-length": false
}

@ -0,0 +1,3 @@
{
"recommendations": ["davidanson.vscode-markdownlint"]
}

@ -0,0 +1,5 @@
{
"[markdown]": {
"editor.defaultFormatter": "DavidAnson.vscode-markdownlint"
}
}

@ -9,7 +9,7 @@ description: 问题反馈渠道及指南
## GitHub Issues
链接https://github.com/halo-dev/halo/issues
链接:<https://github.com/halo-dev/halo/issues>
如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
@ -23,6 +23,6 @@ description: 问题反馈渠道及指南
## Halo 官方社区
链接https://bbs.halo.run
链接:<https://bbs.halo.run>
此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。

@ -9,7 +9,7 @@ description: 开发环境的一些说明
2. 工具:[Gradle](https://gradle.org/)[Lombok](https://projectlombok.org/) 插件
3. JDK`11+`
> 推荐 IntelliJ IDEA 社区版开源免费https://github.com/JetBrains/intellij-community
> 推荐 IntelliJ IDEA 社区版(开源免费)<https://github.com/JetBrains/intellij-community>
`Halo` 项目使用了 `Lombok`,运行 `Halo` 之前请检查 `IDE` 是否已经安装好了 `Lombok` 插件。

@ -31,11 +31,6 @@ description: Halo 项目的构成
在开发的时候,希望大家能够在 `~/halo-dev/application.yml` 中进行添加自定义配置。当然后面也会讲到如何用`运行参数` 和 `VM options` 进行控制配置,届时可根据具体情况进行选择。
<article class="message is-warning">
<div class="message-body">
:::warning
开发的时候,我们不建议直接更改`项目源码`中的所包含的`配置文件`,包括 `application.yml`、`application-dev.yml`、`application-test.yml` 和 `application-user.yml`
</div>
</article>
:::

@ -5,16 +5,15 @@ description: 系统提供的一些全局变量
## 博客地址
```
```html
${blog_url!}
```
此变量与后台博客设置中的 `博客地址` 相对应。
## 网站根路径
```
```html
${context!}
```
@ -24,12 +23,12 @@ ${context!}
假设,我设置的 `博客地址``https://halo.run`,那么:
- 全局绝对路径为开启的状态下https://halo.run/
- 全局绝对路径为开启的状态下:<https://halo.run/>
- 全局绝对路径为关闭的状态下:/
## 主题资源根路径
```
```html
${theme_base!}
```
@ -37,7 +36,7 @@ ${theme_base!}
举个例子,你当前开发的主题为 `anatole`,当你要获取主题下 `css/style.css` 这个文件的路径,那么:
```
```html
${theme_base!}/css/style.css
```
@ -45,25 +44,25 @@ ${theme_base!}/css/style.css
主题名称:
```
```html
${theme.name!}
```
主题 git 仓库地址:
```
```html
${theme.repo!}
```
主题版本号:
```
```html
${theme.version!}
```
## 博客标题
```
```html
${blog_title!}
```
@ -71,7 +70,7 @@ ${blog_title!}
## 博客 Logo
```
```html
${blog_logo!}
```
@ -79,7 +78,7 @@ ${blog_logo!}
## Halo 版本
```
```html
${version!}
```
@ -89,37 +88,37 @@ ${version!}
昵称:
```
```html
${user.nickname!}
```
邮箱地址:
```
```html
${user.email!}
```
描述:
```
```html
${user.description!}
```
头像地址:
```
```html
${user.avatar!}
```
上次登录时间:
```
```html
${user.expireTime!}
```
## SEO 关键词
```
```html
${meta_keywords!}
```
@ -132,16 +131,15 @@ ${meta_keywords!}
## SEO 描述
```
```html
${meta_description!}
```
需要注意的是,虽然这个变量在任何页面都可以使用,但是其值可能在不同的页面是不一样的。会根据用户的设置,生成对应的值。
## RSS 2.0 订阅地址
```
```html
${rss_url!}
```
@ -149,7 +147,7 @@ ${rss_url!}
## Atom 格式的订阅地址
```
```html
${atom_url!}
```
@ -157,7 +155,7 @@ ${atom_url!}
## Xml 格式的网站地图地址
```
```html
${sitemap_xml_url!}
```
@ -165,7 +163,7 @@ ${sitemap_xml_url!}
## HTML 格式的网站地图地址
```
```html
${sitemap_html_url!}
```
@ -173,7 +171,7 @@ ${sitemap_html_url!}
## 友情链接页面地址
```
```html
${links_url!}
```
@ -184,7 +182,7 @@ ${links_url!}
## 图库页面地址
```
```html
${photos_url!}
```
@ -195,7 +193,7 @@ ${photos_url!}
## 日志页面地址
```
```html
${journals_url!}
```
@ -206,7 +204,7 @@ ${journals_url!}
## 文章归档页面地址
```
```html
${archives_url!}
```
@ -217,7 +215,7 @@ ${archives_url!}
## 分类列表页面地址
```
```html
${categories_url!}
```
@ -228,7 +226,7 @@ ${categories_url!}
## 标签列表页面地址
```
```html
${tags_url!}
```
@ -258,6 +256,6 @@ ${tags_url!}
```html
<#if is_index??>
当前页面是首页
当前页面是首页
</#if>
```

File diff suppressed because it is too large Load Diff

@ -44,7 +44,7 @@ Halo 的运行可参考上述 [系统开发](/developer-guide/core/prepare)
> 为了让开发更加规范,我们推荐使用以下的目录结构。
```
```txt
├── module // 公共模板目录
│   ├── comment.ftl // 比如:评论模板
│   ├── layout.ftl // 比如:布局模板

@ -29,12 +29,10 @@ description: 系统提供的一些宏模板
> 需要注意的是,为了保证系统功能的完整性,我们强制要求在每个页面的尾部必须包含此模板。
```html
<@global.footer />
```
等同于:
```html
@ -51,7 +49,6 @@ description: 系统提供的一些宏模板
x 年前/x 个月前/x 天前/昨天/x 小时前/x 分钟前/x 秒前/刚刚
```
## 评论模块
```html
@ -73,23 +70,22 @@ x 年前/x 个月前/x 天前/昨天/x 小时前/x 分钟前/x 秒前/刚刚
- targetpost / sheet / journal 对象
- type评论类型可为post / sheet / journal
例子:
在文章页面post.ftl or post_xxx.ftl
```
```html
<@global.comment target=post type="post" />
```
在自定义页面sheet.ftl or post_sheet.ftl
```
```html
<@global.comment target=sheet type="sheet" />
```
在日志页面journals.ftl
```
```html
<@global.comment target=journal type="journal" />
```

File diff suppressed because it is too large Load Diff

@ -12,9 +12,11 @@ Halo 的配置文件名为 `application.yaml`,其必须位于[工作目录](/g
如下将详细列出配置文件 `application.yaml` 中所有的配置项。
## 基础配置
基础配置中的配置设置一般来说是**必要的**,且必须在 application.yaml 里进行定义。
### 端口
用于指定 HTTP 服务器监听的端口Halo 默认设置为 `8090`
```yaml
@ -25,6 +27,7 @@ server:
请注意,如果您选择设置端口为 `80`,则需要确保您的 80 端口未被占用,通常**不建议**直接设置为 80 端口。
### 数据库
Halo 目前支持 `H2``MySQL` 数据库。
:::tip
@ -88,9 +91,11 @@ create database halodb character set utf8mb4 collate utf8mb4_bin;
- 默认时区为 `Asia/Shanghai`,如果与您所在时区不一致,则可以修改为您所在的时区。
## 高级配置
高级配置中的配置设置是可选的,如果不需要,可以略过。
### 后台路径
Halo 支持自定义后台管理的**根路径**。
```yaml
@ -102,6 +107,7 @@ halo:
注意:仅为改动后台管理的根路径,因此前后不带 `/`
### 缓存
某些情况下,需要用户根据需求来设置缓存数据的保存方式,例如将缓存数据持久化保存在本地。
```yaml
@ -111,10 +117,12 @@ halo:
```
目前支持两种策略:
- `memory` 将数据缓存至内存,重启服务缓存将清空。
- `level` 将数据缓存至本地,重启服务不会清空缓存。
### 压缩
启用压缩对于减少带宽和加快页面加载非常有用,在**未使用** `Nginx``Caddy` 等反向代理服务器时(反向代理服务器通常是默认开启 Gzip 的可以考虑开启系统自带的Gzip 功能。
```yaml

@ -8,36 +8,43 @@ description: 使用 Docker 部署
:::
## 使用 Docker 镜像
Halo 在 Docker Hub 上发布的镜像为 [halohub/halo](https://hub.docker.com/r/halohub/halo)
1. 创建[工作目录](/getting-started/prepare#工作目录)
```bash
mkdir ~/.halo && cd ~/.halo
```
2. 下载示例配置文件到[工作目录](/getting-started/prepare#工作目录)
```bash
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
```
3. 编辑配置文件,配置数据库或者端口等,如需配置请参考[参考配置](/getting-started/config)
```bash
vim application.yaml
```
4. 拉取最新的 Halo 镜像
```bash
docker pull halohub/halo:1.4.17
```
:::info
查看最新版本镜像https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
查看最新版本镜像:<https://hub.docker.com/r/halohub/halo> ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
:::
5. 创建容器
```bash
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.17
```
- **-it** 开启输入功能并连接伪终端
- **-d** 后台运行容器
- **--name** 为容器指定一个名称
@ -78,7 +85,7 @@ server {
### Caddy 1.x
```
```txt
https://www.yourdomain.com {
gzip
tls your@email.com
@ -90,7 +97,7 @@ https://www.yourdomain.com {
### Caddy 2.x
```
```txt
www.yourdomain.com
encode gzip
@ -98,4 +105,4 @@ encode gzip
reverse_proxy 127.0.0.1:8090
```
以上配置都可以在 https://github.com/halo-dev/halo-common 找到。
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。

@ -8,6 +8,7 @@ description: 在Linux上快速安装Halo
:::
## 依赖检查
目前运行 Halo 的最低依赖要求为 JRE 11请务必确保在进行下面操作之前已经正确安装了 JRE。
目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE不推荐 Oracle 版本。
@ -61,32 +62,37 @@ OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode)
:::
创建一个名为 halo 的用户(名字可以随意)
```bash
useradd -m halo
```
给予 sudo 权限
```bash
usermod -aG wheel halo
```
为 halo 用户创建密码
```bash
passwd halo
```
登录到 halo 账户
```bash
su - halo
```
2. 创建存放 [运行包](/getting-started/prepare#运行包) 的目录,这里以 `~/app` 为例
```
```bash
mkdir ~/app && cd ~/app
```
3. 下载运行包
```bash
wget https://dl.halo.run/release/halo-1.4.17.jar -O halo.jar
```
@ -102,26 +108,31 @@ mkdir ~/.halo && cd ~/.halo
```
5. 下载示例配置文件到 [工作目录](/getting-started/prepare#工作目录)
```bash
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
```
6. 编辑配置文件,配置数据库或者端口等,如需配置请参考 [参考配置](/getting-started/config)
```bash
vim application.yaml
```
7. 测试运行 Halo
```bash
cd ~/app && java -jar halo.jar
```
8. 如看到类似以下日志输出,则代表启动成功。
```bash
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
```
打开 `http://ip: 端口号` 即可看到安装引导界面。
:::info
@ -143,16 +154,19 @@ exit
```
2. 下载 Halo 官方的 halo.service 模板
```bash
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
```
3. 修改 halo.service
```bash
vim /etc/systemd/system/halo.service
```
4. 修改配置
- **YOUR_JAR_PATH**Halo 运行包的绝对路径,例如 `/home/halo/app/halo.jar`,注意:此路径不支持 `~` 符号。
- **USER**:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo修改为你创建的用户名称即可。反之请删除 `User=USER`
@ -182,21 +196,25 @@ WantedBy=multi-user.target
:::
5. 重新加载 systemd
```bash
systemctl daemon-reload
```
6. 运行服务
```bash
systemctl start halo
```
7. 在系统启动时启动服务
```bash
systemctl enable halo
```
您可以查看服务日志检查启动状态
```bash
journalctl -n 20 -u halo
```
@ -230,7 +248,7 @@ server {
### Caddy 1.x
```
```txt
https://www.yourdomain.com {
gzip
tls your@email.com
@ -242,7 +260,7 @@ https://www.yourdomain.com {
### Caddy 2.x
```
```txt
www.yourdomain.com
encode gzip
@ -250,4 +268,4 @@ encode gzip
reverse_proxy 127.0.0.1:8090
```
以上配置都可以在 https://github.com/halo-dev/halo-common 找到。
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。

@ -86,7 +86,7 @@ docker run --name some-mysql -v ~/.halo/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSW
5. 创建 `Halo` 工作目录
```
```bash
mkdir ~/.halo && cd ~/.halo
```
@ -140,7 +140,7 @@ docker network connect halo-net some-mysql
3. 同之前一样创建 `Halo` 工作目录
```
```bash
mkdir ~/.halo && cd ~/.halo
```

@ -15,7 +15,7 @@ description: 使用 OneinStack 的 vhost 脚本创建 Halo 站点的 Nginx 配
点击下方链接进入 OneinStack 官网,仅选择 `安装 Nginx`,其他的都可以取消选择。
https://oneinstack.com/auto
<https://oneinstack.com/auto>
最后点击 `复制安装命令` 到服务器执行即可。如果你仅安装 Nginx你的链接应该是这样
@ -57,10 +57,10 @@ sh vhost.sh
```bash
What Are You Doing?
1. Use HTTP Only
2. Use your own SSL Certificate and Key
3. Use Let's Encrypt to Create SSL Certificate and Key
q. Exit
1. Use HTTP Only
2. Use your own SSL Certificate and Key
3. Use Let's Encrypt to Create SSL Certificate and Key
q. Exit
Please input the correct option:
```
@ -260,14 +260,14 @@ nginx -t
如果输出如下提示则代表配置有效:
```
```bash
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
```
重载 Nginx 配置:
```
```bash
nginx -s reload
```

@ -14,13 +14,13 @@ description: 使用腾讯云 CloudBase 一键部署
1. 系统使用内置的 H2 Database暂不支持使用 MySQL。
1. 工作目录保存在腾讯云提供的 CFS 上,在使用此方式创建应用的时候会要求创建 CFS。
1. 目前使用该方式部署,不支持修改 [配置文件](/getting-started/config)。
1. 费用相关请参考 https://cloud.tencent.com/document/product/876/18864
1. 费用相关请参考 <https://cloud.tencent.com/document/product/876/18864>
## 进入云开发页面
点击下方按钮即可进入到腾讯云云开发 CloudBase 创建应用界面,此按钮可在云开发页面自动选择 Halo 的配置模板。
[![](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
[![CloudBase](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
## 配置并部署
@ -48,7 +48,7 @@ description: 使用腾讯云 CloudBase 一键部署
![tencent-cloudbase-6.png](/img/tencent-cloudbase/tencent-cloudbase-6.png)
**Halo 初始化页面**
**Halo 初始化页面**
![tencent-cloudbase-7.png](/img/tencent-cloudbase/tencent-cloudbase-7.png)
@ -77,4 +77,3 @@ description: 使用腾讯云 CloudBase 一键部署
- [Halo 配置文件仓库](https://github.com/halo-dev/tencent-cloudbase-halo)
- [腾讯云 CloudBase](https://console.cloud.tencent.com/tcb/env/index)
- [云开发使用指南](https://cloud.tencent.com/document/product/876)

@ -6,13 +6,15 @@ title: 在 Windows 服务器上部署
在继续操作之前,我们推荐您先阅读[《写在前面》](/getting-started/prepare),这可以快速帮助你了解 Halo。
:::
# 系统要求
## 系统要求
目前运行 Halo 的最低依赖要求为 JRE 11而 Java9 之后将不再提供 32 位系统的环境,因此请确保您的服务器属于 64 位 CPU。
# 依赖检查
## 依赖检查
如下将介绍在 Windows 下安装 OpenJRE 11 的方式。如果您的服务器已经安装过 OpenJRE 11则可以直接跳过本节。
1. 使用浏览器前往 https://developers.redhat.com/content-gateway/file/java-11-openjdk-jre-11.0.10.9-1.windows.redhat.x86_64.msi 下载 OpenJRE 11 的可执行程序。
1. 使用浏览器前往 <https://developers.redhat.com/content-gateway/file/java-11-openjdk-jre-11.0.10.9-1.windows.redhat.x86_64.msi> 下载 OpenJRE 11 的可执行程序。
2. 下载时会提示登录“红帽”,任意注册账号登录即可。登录完成之后会自动下载 JRE。
@ -21,7 +23,8 @@ title: 在 Windows 服务器上部署
![img2.png](/img/img2.png)
4. 安装完成之后, 使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口。之后键入 `java -version`。显示如下所示内容即代表安装成功。
```
```bash
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
@ -29,10 +32,11 @@ OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
![1615618595.jpg](/img/1615618595.jpg)
# 安装 Halo
## 安装 Halo
1. 下载运行包
使用浏览器前往 https://dl.halo.run/release/halo-1.4.6.jar 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar`
使用浏览器前往 <https://dl.halo.run/release/halo-1.4.6.jar> 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar`
:::info
如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。
@ -40,7 +44,7 @@ OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
2. 下载示例配置文件
使用浏览器前往 https://dl.halo.run/config/application-template.yaml 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`
使用浏览器前往 <https://dl.halo.run/config/application-template.yaml> 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`
:::tip
IE 浏览器下,配置文件可能会以文本的形式直接打开,因此推荐使用其他浏览器或下载器下载。
@ -51,16 +55,19 @@ IE 浏览器下,配置文件可能会以文本的形式直接打开,因此
4. 测试运行 Halo
使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口,并键入如下命令。
```
```bash
cd Desktop && java -jar halo.jar
```
5. 如看到类似以下日志输出,则代表启动成功。
```bash
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
```
浏览器打开 `http://ip:端口号` 即可看到安装引导界面。
:::info

@ -84,14 +84,16 @@ create database halodb character set utf8mb4 collate utf8mb4_bin;
代表当前系统下的 [用户目录](https://zh.wikipedia.org/wiki/%E5%AE%B6%E7%9B%AE%E5%BD%95)。
### 运行包
指 Halo 构建所产生的 Jar 包,后缀为 `.jar`。可能与其他网站应用有所区别的是Halo 仅仅只有这一个文件。而且所有数据统一保存在下面所说的 `工作目录`
### 工作目录
指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 `.halo` 的文件夹,绝对路径为 `~/.halo`。由于这个工作目录是固定的,所以上面所说的 `运行包`不限制所存放的位置,里面通常包含下列目录或文件:
1. `db`:存放 H2 Database 的物理文件,如果您使用 MySQL 数据库,那么不会存在这个目录。
2. `templates/themes`:里面包含用户所下载的主题。
3. `static`:相当于网站的根目录。
4. `logs`:运行日志目录。
4. `upload`:附件目录。
5. `application.yaml`:配置文件。
5. `upload`:附件目录。
6. `application.yaml`:配置文件。

@ -57,11 +57,10 @@ java -jar halo.jar
5. 重启服务
```
```bash
service halo start
```
## Docker <i class="mdi mdi-docker"></i>
> 我们假设您的容器是按照 [使用 Docker 部署 Halo](/getting-started/install/docker) 中的命令构建的。如有不同,请根据实际情况修改。
@ -93,7 +92,7 @@ docker pull halohub/halo:1.4.17
```
:::info
查看最新版本镜像https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
查看最新版本镜像:<https://hub.docker.com/r/halohub/halo> ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
:::
4. 创建容器
@ -101,6 +100,7 @@ docker pull halohub/halo:1.4.17
```bash
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.17
```
- **-it** 开启输入功能并连接伪终端
- **-d** 后台运行容器
- **--name** 为容器指定一个名称

@ -29,7 +29,7 @@ description: 系统功能的相关配置说明
很多人反映评论中自己的头像不显示,其实评论部分调用的头像并不是在个人资料中设置的那个,而是 `Gravatar`。所以这一点怪我,从 Halo 发布至今我都没有说明这个事情。
至于什么是 `Gravatar`,引用 `Gravatar` 官方的说明:`全球公认的头像`。这可不是在吹牛,因为只要接入了 Gravatar 的网站,你在网站上使用在 Gravatar 注册的邮箱之后,都会显示你设置的头像,而不需要额外设置。比较出名的网站有 `Github``Gitlab``V2ex` 等。所以点击 https://cn.gravatar.com/ 注册一个吧。
至于什么是 `Gravatar`,引用 `Gravatar` 官方的说明:`全球公认的头像`。这可不是在吹牛,因为只要接入了 Gravatar 的网站,你在网站上使用在 Gravatar 注册的邮箱之后,都会显示你设置的头像,而不需要额外设置。比较出名的网站有 `Github``Gitlab``V2ex` 等。所以点击 <https://cn.gravatar.com/> 注册一个吧。
## 设置用户头像/Logo/Favicon
@ -158,8 +158,8 @@ A诸如百度统计CNZZGoogle Analytics。可以非常详细的统计
点击主题下方的设置按钮即可进入主题设置。另外主题设置还有一种预览模式,可以实时查看主题设置变更后的效果。当你设置当前激活主题的时候,在页面右下角有一个 `预览模式` 的按钮,点击即可进入预览模式。
## 设置备案信息
由于后台博客设置并没有提供设置备案信息的选项,所以有很多人不知道该怎么添加备案信息,这里简单说明一下。
由于后台博客设置并没有提供设置备案信息的选项,所以有很多人不知道该怎么添加备案信息,这里简单说明一下。
第一步:
@ -167,7 +167,6 @@ A诸如百度统计CNZZGoogle Analytics。可以非常详细的统计
这时候你应该可以看到一个`页脚信息`的选项,而且有提示 `支持 HTML 格式的文本`。所以我们把备案信息放在这里即可。
第二步:
将整理好的备案信息填写到页脚信息即可,如果没记错的话,公安联网备案是有提供`网站公安机关备案号`和`备案编号HTML代码`的。

@ -9,21 +9,27 @@ Halo 使用的 `Markdown` 解析器为 [flexmark-java](https://github.com/vsch/f
## 代码块
```language
代码块
```
````markdown
```language
代码块
```
````
其中language 为必填,如果不填写,很可能主题的代码高亮插件无法识别代码的语言,导致样式异常。举几个例子:
```java
public static void main(String[] args){
    System.out.println("Hello World!");
}
```
````markdown
```java
public static void main(String[] args){
    System.out.println("Hello World!");
}
```
````
```javascript
console.log("Hello World!")
```
````markdown
```javascript
console.log("Hello World!")
```
````
## TOC
@ -33,9 +39,9 @@ Halo 使用的 `Markdown` 解析器为 [flexmark-java](https://github.com/vsch/f
支持自动将一个链接解析为可点击的格式,如下:
````markdown
```markdown
https://halo.run
````
```
将被解析为:
@ -177,21 +183,21 @@ Halo 内置一些短连接以更好地支持一些 HTML 语法,但是编辑器
## 脚注
#### 语法
语法
```markdown
[^脚注名]
[^脚注名]: 脚注内容
```
#### 示例
示例
```markdown
驿外[^1]断桥边,寂寞开无主。已是黄昏独自愁,更着风和雨
[^1]: 驿指荒僻、冷清之地。驿驿站。
```
#### 解析结果
解析结果
```html
<p>驿外<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>断桥边,寂寞开无主。已是黄昏独自愁,更着风和雨</p>

@ -3,6 +3,7 @@
"version": "0.0.0",
"private": true,
"scripts": {
"prepare": "husky install",
"docusaurus": "docusaurus",
"start": "docusaurus start",
"build": "docusaurus build",
@ -11,7 +12,8 @@
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"write-translations": "docusaurus write-translations",
"write-heading-ids": "docusaurus write-heading-ids"
"write-heading-ids": "docusaurus write-heading-ids",
"lint": "markdownlint-cli2 './docs/**/*.md' './versioned_docs/version-1.4.17/**/*.md'"
},
"dependencies": {
"@docusaurus/core": "2.0.0-beta.14",
@ -37,5 +39,10 @@
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"husky": "^7.0.4",
"markdownlint": "^0.25.1",
"markdownlint-cli2": "^0.4.0"
}
}

@ -8,6 +8,9 @@ specifiers:
'@svgr/webpack': ^5.5.0
clsx: ^1.1.1
file-loader: ^6.2.0
husky: ^7.0.4
markdownlint: ^0.25.1
markdownlint-cli2: ^0.4.0
prism-react-renderer: ^1.2.1
react: ^17.0.2
react-dom: ^17.0.2
@ -26,6 +29,11 @@ dependencies:
react-dom: 17.0.2_react@17.0.2
url-loader: 4.1.1_file-loader@6.2.0
devDependencies:
husky: 7.0.4
markdownlint: 0.25.1
markdownlint-cli2: 0.4.0
packages:
/@algolia/autocomplete-core/1.2.2:
@ -3599,12 +3607,10 @@ packages:
dependencies:
'@nodelib/fs.stat': 2.0.5
run-parallel: 1.2.0
dev: false
/@nodelib/fs.stat/2.0.5:
resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
engines: {node: '>= 8'}
dev: false
/@nodelib/fs.walk/1.2.8:
resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
@ -3612,7 +3618,6 @@ packages:
dependencies:
'@nodelib/fs.scandir': 2.1.5
fastq: 1.13.0
dev: false
/@polka/url/1.0.0-next.21:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
@ -4373,7 +4378,6 @@ packages:
/argparse/2.0.1:
resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
dev: false
/arr-diff/4.0.0:
resolution: {integrity: sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=}
@ -4410,6 +4414,11 @@ packages:
engines: {node: '>=8'}
dev: false
/array-union/3.0.1:
resolution: {integrity: sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==}
engines: {node: '>=12'}
dev: true
/array-uniq/1.0.3:
resolution: {integrity: sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=}
engines: {node: '>=0.10.0'}
@ -4720,7 +4729,6 @@ packages:
engines: {node: '>=8'}
dependencies:
fill-range: 7.0.1
dev: false
/browserslist/4.14.2:
resolution: {integrity: sha512-HI4lPveGKUR0x2StIz+2FXfDk9SfVMrxn6PLh1JeGUwcuoDkdKZebWiyLRJ68iIPDpMI4JLVDf7S7XzslgWOhw==}
@ -5762,7 +5770,6 @@ packages:
engines: {node: '>=8'}
dependencies:
path-type: 4.0.0
dev: false
/dns-equal/1.0.0:
resolution: {integrity: sha1-s55/HabrCnW6nBcySzR1PEfgZU0=}
@ -5926,6 +5933,10 @@ packages:
resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
dev: false
/entities/2.1.0:
resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==}
dev: true
/entities/2.2.0:
resolution: {integrity: sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==}
dev: false
@ -6213,7 +6224,6 @@ packages:
glob-parent: 5.1.2
merge2: 1.4.1
micromatch: 4.0.4
dev: false
/fast-json-stable-stringify/2.1.0:
resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
@ -6229,7 +6239,6 @@ packages:
resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==}
dependencies:
reusify: 1.0.4
dev: false
/faye-websocket/0.11.4:
resolution: {integrity: sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==}
@ -6320,7 +6329,6 @@ packages:
engines: {node: '>=8'}
dependencies:
to-regex-range: 5.0.1
dev: false
/finalhandler/1.1.2:
resolution: {integrity: sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==}
@ -6589,7 +6597,6 @@ packages:
engines: {node: '>= 6'}
dependencies:
is-glob: 4.0.3
dev: false
/glob-parent/6.0.2:
resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
@ -6660,11 +6667,23 @@ packages:
array-union: 2.1.0
dir-glob: 3.0.1
fast-glob: 3.2.7
ignore: 5.1.8
ignore: 5.2.0
merge2: 1.4.1
slash: 3.0.0
dev: false
/globby/12.1.0:
resolution: {integrity: sha512-YULDaNwsoUZkRy9TWSY/M7Obh0abamTKoKzTfOI3uU+hfpX2FZqOq8LFDxsjYheF1RH7ITdArgbQnsNBFgcdBA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dependencies:
array-union: 3.0.1
dir-glob: 3.0.1
fast-glob: 3.2.7
ignore: 5.2.0
merge2: 1.4.1
slash: 4.0.0
dev: true
/globby/6.1.0:
resolution: {integrity: sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=}
engines: {node: '>=0.10.0'}
@ -7082,6 +7101,12 @@ packages:
engines: {node: '>=10.17.0'}
dev: false
/husky/7.0.4:
resolution: {integrity: sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ==}
engines: {node: '>=12'}
hasBin: true
dev: true
/iconv-lite/0.4.24:
resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
engines: {node: '>=0.10.0'}
@ -7103,6 +7128,10 @@ packages:
engines: {node: '>= 4'}
dev: false
/ignore/5.2.0:
resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==}
engines: {node: '>= 4'}
/immer/8.0.1:
resolution: {integrity: sha512-aqXhGP7//Gui2+UrEtvxZxSquQVXTpZ7KDxfCcKAF3Vysvw0CViVaW9RZ1j1xlIYqaaaipBoqdqeibkc18PNvA==}
dev: false
@ -7378,7 +7407,6 @@ packages:
/is-extglob/2.1.1:
resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=}
engines: {node: '>=0.10.0'}
dev: false
/is-fullwidth-code-point/2.0.0:
resolution: {integrity: sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=}
@ -7402,7 +7430,6 @@ packages:
engines: {node: '>=0.10.0'}
dependencies:
is-extglob: 2.1.1
dev: false
/is-hexadecimal/1.0.4:
resolution: {integrity: sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw==}
@ -7443,7 +7470,6 @@ packages:
/is-number/7.0.0:
resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
engines: {node: '>=0.12.0'}
dev: false
/is-obj/1.0.1:
resolution: {integrity: sha1-PkcprB9f3gJc19g6iW2rn09n2w8=}
@ -7779,6 +7805,12 @@ packages:
resolution: {integrity: sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=}
dev: false
/linkify-it/3.0.3:
resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==}
dependencies:
uc.micro: 1.0.6
dev: true
/loader-runner/4.2.0:
resolution: {integrity: sha512-92+huvxMvYlMzMt0iIOukcwYBFpkYJdpl2xsZ7LrlayO7E8SOv+JJUEK17B/dJIHAOLMfh2dZZ/Y18WgmGtYNw==}
engines: {node: '>=6.11.5'}
@ -7960,6 +7992,50 @@ packages:
resolution: {integrity: sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg==}
dev: false
/markdown-it/12.3.2:
resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==}
hasBin: true
dependencies:
argparse: 2.0.1
entities: 2.1.0
linkify-it: 3.0.3
mdurl: 1.0.1
uc.micro: 1.0.6
dev: true
/markdownlint-cli2-formatter-default/0.0.3_markdownlint-cli2@0.4.0:
resolution: {integrity: sha512-QEAJitT5eqX1SNboOD+SO/LNBpu4P4je8JlR02ug2cLQAqmIhh8IJnSK7AcaHBHhNADqdGydnPpQOpsNcEEqCw==}
peerDependencies:
markdownlint-cli2: '>=0.0.4'
dependencies:
markdownlint-cli2: 0.4.0
dev: true
/markdownlint-cli2/0.4.0:
resolution: {integrity: sha512-EcwP5tAbyzzL3ACI0L16LqbNctmh8wNX56T+aVvIxWyTAkwbYNx2V7IheRkXS3mE7R/pnaApZ/RSXcXuzRVPjg==}
engines: {node: '>=12'}
hasBin: true
dependencies:
globby: 12.1.0
markdownlint: 0.25.1
markdownlint-cli2-formatter-default: 0.0.3_markdownlint-cli2@0.4.0
markdownlint-rule-helpers: 0.16.0
micromatch: 4.0.4
strip-json-comments: 4.0.0
yaml: 1.10.2
dev: true
/markdownlint-rule-helpers/0.16.0:
resolution: {integrity: sha512-oEacRUVeTJ5D5hW1UYd2qExYI0oELdYK72k1TKGvIeYJIbqQWAz476NAc7LNixSySUhcNl++d02DvX0ccDk9/w==}
dev: true
/markdownlint/0.25.1:
resolution: {integrity: sha512-AG7UkLzNa1fxiOv5B+owPsPhtM4D6DoODhsJgiaNg1xowXovrYgOnLqAgOOFQpWOlHFVQUzjMY5ypNNTeov92g==}
engines: {node: '>=12'}
dependencies:
markdown-it: 12.3.2
dev: true
/mdast-squeeze-paragraphs/4.0.0:
resolution: {integrity: sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ==}
dependencies:
@ -7999,7 +8075,6 @@ packages:
/mdurl/1.0.1:
resolution: {integrity: sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=}
dev: false
/media-typer/0.3.0:
resolution: {integrity: sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=}
@ -8031,7 +8106,6 @@ packages:
/merge2/1.4.1:
resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
engines: {node: '>= 8'}
dev: false
/methods/1.1.2:
resolution: {integrity: sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=}
@ -8067,7 +8141,6 @@ packages:
dependencies:
braces: 3.0.2
picomatch: 2.3.0
dev: false
/mime-db/1.33.0:
resolution: {integrity: sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ==}
@ -8681,7 +8754,6 @@ packages:
/path-type/4.0.0:
resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
engines: {node: '>=8'}
dev: false
/picocolors/0.2.1:
resolution: {integrity: sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==}
@ -8694,7 +8766,6 @@ packages:
/picomatch/2.3.0:
resolution: {integrity: sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==}
engines: {node: '>=8.6'}
dev: false
/pify/2.3.0:
resolution: {integrity: sha1-7RQaasBDqEnqWISY59yosVMw6Qw=}
@ -9330,7 +9401,6 @@ packages:
/queue-microtask/1.2.3:
resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
dev: false
/randombytes/2.1.0:
resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==}
@ -9927,7 +9997,6 @@ packages:
/reusify/1.0.4:
resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: false
/rimraf/2.7.1:
resolution: {integrity: sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==}
@ -9962,7 +10031,6 @@ packages:
resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
dependencies:
queue-microtask: 1.2.3
dev: false
/rxjs/6.6.7:
resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==}
@ -10279,6 +10347,11 @@ packages:
engines: {node: '>=8'}
dev: false
/slash/4.0.0:
resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==}
engines: {node: '>=12'}
dev: true
/snapdragon-node/2.1.1:
resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
engines: {node: '>=0.10.0'}
@ -10589,6 +10662,11 @@ packages:
engines: {node: '>=8'}
dev: false
/strip-json-comments/4.0.0:
resolution: {integrity: sha512-LzWcbfMbAsEDTRmhjWIioe8GcDRl0fa35YMXFoJKDdiD/quGFmjJjdgPjFJJNwCMaLyQqFIDqCdHD2V4HfLgYA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
dev: true
/style-to-object/0.3.0:
resolution: {integrity: sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA==}
dependencies:
@ -10778,7 +10856,6 @@ packages:
engines: {node: '>=8.0'}
dependencies:
is-number: 7.0.0
dev: false
/to-regex/3.0.2:
resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
@ -10856,6 +10933,10 @@ packages:
resolution: {integrity: sha512-6Gurc1n//gjp9eQNXjD9O3M/sMwVtN5S8Lv9bvOYBfKfDNiIIhqiyi01vMBO45u4zkDE420w/e0se7Vs+sIg+g==}
dev: false
/uc.micro/1.0.6:
resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
dev: true
/unbox-primitive/1.0.1:
resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==}
dependencies:
@ -11629,7 +11710,6 @@ packages:
/yaml/1.10.2:
resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==}
engines: {node: '>= 6'}
dev: false
/yargs-parser/13.1.2:
resolution: {integrity: sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==}

@ -9,7 +9,7 @@ description: 问题反馈渠道及指南
## GitHub Issues
链接https://github.com/halo-dev/halo/issues
链接:<https://github.com/halo-dev/halo/issues>
如果你在使用过程中,遇到了一些 bug 或者需要添加某些新特性,请尽量在 GitHub Issues 进行反馈,这非常有助于我们跟踪解决此问题,您也可以很方便的接收到处理状态。
@ -23,6 +23,6 @@ description: 问题反馈渠道及指南
## Halo 官方社区
链接https://bbs.halo.run
链接:<https://bbs.halo.run>
此平台主要目的用于与其他 Halo 用户进行交流。但如果您对 GitHub 不是很熟悉或者没有账号,您也可以在此平台进行反馈。

@ -9,7 +9,7 @@ description: 开发环境的一些说明
2. 工具:[Gradle](https://gradle.org/)[Lombok](https://projectlombok.org/) 插件
3. JDK`11+`
> 推荐 IntelliJ IDEA 社区版开源免费https://github.com/JetBrains/intellij-community
> 推荐 IntelliJ IDEA 社区版(开源免费)<https://github.com/JetBrains/intellij-community>
`Halo` 项目使用了 `Lombok`,运行 `Halo` 之前请检查 `IDE` 是否已经安装好了 `Lombok` 插件。

@ -31,11 +31,6 @@ description: Halo 项目的构成
在开发的时候,希望大家能够在 `~/halo-dev/application.yml` 中进行添加自定义配置。当然后面也会讲到如何用`运行参数` 和 `VM options` 进行控制配置,届时可根据具体情况进行选择。
<article class="message is-warning">
<div class="message-body">
:::warning
开发的时候,我们不建议直接更改`项目源码`中的所包含的`配置文件`,包括 `application.yml`、`application-dev.yml`、`application-test.yml` 和 `application-user.yml`
</div>
</article>
:::

@ -5,16 +5,15 @@ description: 系统提供的一些全局变量
## 博客地址
```
```html
${blog_url!}
```
此变量与后台博客设置中的 `博客地址` 相对应。
## 网站根路径
```
```html
${context!}
```
@ -24,12 +23,12 @@ ${context!}
假设,我设置的 `博客地址``https://halo.run`,那么:
- 全局绝对路径为开启的状态下https://halo.run/
- 全局绝对路径为开启的状态下:<https://halo.run/>
- 全局绝对路径为关闭的状态下:/
## 主题资源根路径
```
```html
${theme_base!}
```
@ -37,7 +36,7 @@ ${theme_base!}
举个例子,你当前开发的主题为 `anatole`,当你要获取主题下 `css/style.css` 这个文件的路径,那么:
```
```html
${theme_base!}/css/style.css
```
@ -45,25 +44,25 @@ ${theme_base!}/css/style.css
主题名称:
```
```html
${theme.name!}
```
主题 git 仓库地址:
```
```html
${theme.repo!}
```
主题版本号:
```
```html
${theme.version!}
```
## 博客标题
```
```html
${blog_title!}
```
@ -71,7 +70,7 @@ ${blog_title!}
## 博客 Logo
```
```html
${blog_logo!}
```
@ -79,7 +78,7 @@ ${blog_logo!}
## Halo 版本
```
```html
${version!}
```
@ -89,37 +88,37 @@ ${version!}
昵称:
```
```html
${user.nickname!}
```
邮箱地址:
```
```html
${user.email!}
```
描述:
```
```html
${user.description!}
```
头像地址:
```
```html
${user.avatar!}
```
上次登录时间:
```
```html
${user.expireTime!}
```
## SEO 关键词
```
```html
${meta_keywords!}
```
@ -132,16 +131,15 @@ ${meta_keywords!}
## SEO 描述
```
```html
${meta_description!}
```
需要注意的是,虽然这个变量在任何页面都可以使用,但是其值可能在不同的页面是不一样的。会根据用户的设置,生成对应的值。
## RSS 2.0 订阅地址
```
```html
${rss_url!}
```
@ -149,7 +147,7 @@ ${rss_url!}
## Atom 格式的订阅地址
```
```html
${atom_url!}
```
@ -157,7 +155,7 @@ ${atom_url!}
## Xml 格式的网站地图地址
```
```html
${sitemap_xml_url!}
```
@ -165,7 +163,7 @@ ${sitemap_xml_url!}
## HTML 格式的网站地图地址
```
```html
${sitemap_html_url!}
```
@ -173,7 +171,7 @@ ${sitemap_html_url!}
## 友情链接页面地址
```
```html
${links_url!}
```
@ -184,7 +182,7 @@ ${links_url!}
## 图库页面地址
```
```html
${photos_url!}
```
@ -195,7 +193,7 @@ ${photos_url!}
## 日志页面地址
```
```html
${journals_url!}
```
@ -206,7 +204,7 @@ ${journals_url!}
## 文章归档页面地址
```
```html
${archives_url!}
```
@ -217,7 +215,7 @@ ${archives_url!}
## 分类列表页面地址
```
```html
${categories_url!}
```
@ -228,7 +226,7 @@ ${categories_url!}
## 标签列表页面地址
```
```html
${tags_url!}
```
@ -258,6 +256,6 @@ ${tags_url!}
```html
<#if is_index??>
当前页面是首页
当前页面是首页
</#if>
```

@ -44,7 +44,7 @@ Halo 的运行可参考上述 [系统开发](/developer-guide/core/prepare)
> 为了让开发更加规范,我们推荐使用以下的目录结构。
```
```txt
├── module // 公共模板目录
│   ├── comment.ftl // 比如:评论模板
│   ├── layout.ftl // 比如:布局模板

@ -29,12 +29,10 @@ description: 系统提供的一些宏模板
> 需要注意的是,为了保证系统功能的完整性,我们强制要求在每个页面的尾部必须包含此模板。
```html
<@global.footer />
```
等同于:
```html
@ -51,7 +49,6 @@ description: 系统提供的一些宏模板
x 年前/x 个月前/x 天前/昨天/x 小时前/x 分钟前/x 秒前/刚刚
```
## 评论模块
```html
@ -73,23 +70,22 @@ x 年前/x 个月前/x 天前/昨天/x 小时前/x 分钟前/x 秒前/刚刚
- targetpost / sheet / journal 对象
- type评论类型可为post / sheet / journal
例子:
在文章页面post.ftl or post_xxx.ftl
```
```html
<@global.comment target=post type="post" />
```
在自定义页面sheet.ftl or post_sheet.ftl
```
```html
<@global.comment target=sheet type="sheet" />
```
在日志页面journals.ftl
```
```html
<@global.comment target=journal type="journal" />
```

@ -12,9 +12,11 @@ Halo 的配置文件名为 `application.yaml`,其必须位于[工作目录](/g
如下将详细列出配置文件 `application.yaml` 中所有的配置项。
## 基础配置
基础配置中的配置设置一般来说是**必要的**,且必须在 application.yaml 里进行定义。
### 端口
用于指定 HTTP 服务器监听的端口Halo 默认设置为 `8090`
```yaml
@ -25,6 +27,7 @@ server:
请注意,如果您选择设置端口为 `80`,则需要确保您的 80 端口未被占用,通常**不建议**直接设置为 80 端口。
### 数据库
Halo 目前支持 `H2``MySQL` 数据库。
:::tip
@ -88,9 +91,11 @@ create database halodb character set utf8mb4 collate utf8mb4_bin;
- 默认时区为 `Asia/Shanghai`,如果与您所在时区不一致,则可以修改为您所在的时区。
## 高级配置
高级配置中的配置设置是可选的,如果不需要,可以略过。
### 后台路径
Halo 支持自定义后台管理的**根路径**。
```yaml
@ -102,6 +107,7 @@ halo:
注意:仅为改动后台管理的根路径,因此前后不带 `/`
### 缓存
某些情况下,需要用户根据需求来设置缓存数据的保存方式,例如将缓存数据持久化保存在本地。
```yaml
@ -111,10 +117,12 @@ halo:
```
目前支持两种策略:
- `memory` 将数据缓存至内存,重启服务缓存将清空。
- `level` 将数据缓存至本地,重启服务不会清空缓存。
### 压缩
启用压缩对于减少带宽和加快页面加载非常有用,在**未使用** `Nginx``Caddy` 等反向代理服务器时(反向代理服务器通常是默认开启 Gzip 的可以考虑开启系统自带的Gzip 功能。
```yaml

@ -8,36 +8,43 @@ description: 使用 Docker 部署
:::
## 使用 Docker 镜像
Halo 在 Docker Hub 上发布的镜像为 [halohub/halo](https://hub.docker.com/r/halohub/halo)
1. 创建[工作目录](/getting-started/prepare#工作目录)
```bash
mkdir ~/.halo && cd ~/.halo
```
2. 下载示例配置文件到[工作目录](/getting-started/prepare#工作目录)
```bash
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
```
3. 编辑配置文件,配置数据库或者端口等,如需配置请参考[参考配置](/getting-started/config)
```bash
vim application.yaml
```
4. 拉取最新的 Halo 镜像
```bash
docker pull halohub/halo:1.4.17
```
:::info
查看最新版本镜像https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
查看最新版本镜像:<https://hub.docker.com/r/halohub/halo> ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
:::
5. 创建容器
```bash
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.17
```
- **-it** 开启输入功能并连接伪终端
- **-d** 后台运行容器
- **--name** 为容器指定一个名称
@ -78,7 +85,7 @@ server {
### Caddy 1.x
```
```txt
https://www.yourdomain.com {
gzip
tls your@email.com
@ -90,7 +97,7 @@ https://www.yourdomain.com {
### Caddy 2.x
```
```txt
www.yourdomain.com
encode gzip
@ -98,4 +105,4 @@ encode gzip
reverse_proxy 127.0.0.1:8090
```
以上配置都可以在 https://github.com/halo-dev/halo-common 找到。
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。

@ -8,6 +8,7 @@ description: 在Linux上快速安装Halo
:::
## 依赖检查
目前运行 Halo 的最低依赖要求为 JRE 11请务必确保在进行下面操作之前已经正确安装了 JRE。
目前介绍两种 Linux 发行版的安装方式,均为 OpenJRE不推荐 Oracle 版本。
@ -61,32 +62,37 @@ OpenJDK 64-Bit Server VM (build 11.0.10+9-Ubuntu-0ubuntu1.20.04, mixed mode)
:::
创建一个名为 halo 的用户(名字可以随意)
```bash
useradd -m halo
```
给予 sudo 权限
```bash
usermod -aG wheel halo
```
为 halo 用户创建密码
```bash
passwd halo
```
登录到 halo 账户
```bash
su - halo
```
2. 创建存放 [运行包](/getting-started/prepare#运行包) 的目录,这里以 `~/app` 为例
```
```bash
mkdir ~/app && cd ~/app
```
3. 下载运行包
```bash
wget https://dl.halo.run/release/halo-1.4.17.jar -O halo.jar
```
@ -102,26 +108,31 @@ mkdir ~/.halo && cd ~/.halo
```
5. 下载示例配置文件到 [工作目录](/getting-started/prepare#工作目录)
```bash
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
```
6. 编辑配置文件,配置数据库或者端口等,如需配置请参考 [参考配置](/getting-started/config)
```bash
vim application.yaml
```
7. 测试运行 Halo
```bash
cd ~/app && java -jar halo.jar
```
8. 如看到类似以下日志输出,则代表启动成功。
```bash
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
```
打开 `http://ip: 端口号` 即可看到安装引导界面。
:::info
@ -143,16 +154,19 @@ exit
```
2. 下载 Halo 官方的 halo.service 模板
```bash
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
```
3. 修改 halo.service
```bash
vim /etc/systemd/system/halo.service
```
4. 修改配置
- **YOUR_JAR_PATH**Halo 运行包的绝对路径,例如 `/home/halo/app/halo.jar`,注意:此路径不支持 `~` 符号。
- **USER**:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo修改为你创建的用户名称即可。反之请删除 `User=USER`
@ -182,21 +196,25 @@ WantedBy=multi-user.target
:::
5. 重新加载 systemd
```bash
systemctl daemon-reload
```
6. 运行服务
```bash
systemctl start halo
```
7. 在系统启动时启动服务
```bash
systemctl enable halo
```
您可以查看服务日志检查启动状态
```bash
journalctl -n 20 -u halo
```
@ -230,7 +248,7 @@ server {
### Caddy 1.x
```
```txt
https://www.yourdomain.com {
gzip
tls your@email.com
@ -242,7 +260,7 @@ https://www.yourdomain.com {
### Caddy 2.x
```
```txt
www.yourdomain.com
encode gzip
@ -250,4 +268,4 @@ encode gzip
reverse_proxy 127.0.0.1:8090
```
以上配置都可以在 https://github.com/halo-dev/halo-common 找到。
以上配置都可以在 <https://github.com/halo-dev/halo-common> 找到。

@ -86,7 +86,7 @@ docker run --name some-mysql -v ~/.halo/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSW
5. 创建 `Halo` 工作目录
```
```bash
mkdir ~/.halo && cd ~/.halo
```
@ -140,7 +140,7 @@ docker network connect halo-net some-mysql
3. 同之前一样创建 `Halo` 工作目录
```
```bash
mkdir ~/.halo && cd ~/.halo
```

@ -15,7 +15,7 @@ description: 使用 OneinStack 的 vhost 脚本创建 Halo 站点的 Nginx 配
点击下方链接进入 OneinStack 官网,仅选择 `安装 Nginx`,其他的都可以取消选择。
https://oneinstack.com/auto
<https://oneinstack.com/auto>
最后点击 `复制安装命令` 到服务器执行即可。如果你仅安装 Nginx你的链接应该是这样
@ -57,10 +57,10 @@ sh vhost.sh
```bash
What Are You Doing?
1. Use HTTP Only
2. Use your own SSL Certificate and Key
3. Use Let's Encrypt to Create SSL Certificate and Key
q. Exit
1. Use HTTP Only
2. Use your own SSL Certificate and Key
3. Use Let's Encrypt to Create SSL Certificate and Key
q. Exit
Please input the correct option:
```
@ -260,14 +260,14 @@ nginx -t
如果输出如下提示则代表配置有效:
```
```bash
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
```
重载 Nginx 配置:
```
```bash
nginx -s reload
```

@ -14,13 +14,13 @@ description: 使用腾讯云 CloudBase 一键部署
1. 系统使用内置的 H2 Database暂不支持使用 MySQL。
1. 工作目录保存在腾讯云提供的 CFS 上,在使用此方式创建应用的时候会要求创建 CFS。
1. 目前使用该方式部署,不支持修改 [配置文件](/getting-started/config)。
1. 费用相关请参考 https://cloud.tencent.com/document/product/876/18864
1. 费用相关请参考 <https://cloud.tencent.com/document/product/876/18864>
## 进入云开发页面
点击下方按钮即可进入到腾讯云云开发 CloudBase 创建应用界面,此按钮可在云开发页面自动选择 Halo 的配置模板。
[![](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
[![CloudBase](https://main.qcloudimg.com/raw/67f5a389f1ac6f3b4d04c7256438e44f.svg)](https://console.cloud.tencent.com/tcb/env/index?action=CreateAndDeployCloudBaseProject&appUrl=https%3A%2F%2Fgithub.com%2Fhalo-dev%2Ftencent-cloudbase-halo&branch=master)
## 配置并部署
@ -48,7 +48,7 @@ description: 使用腾讯云 CloudBase 一键部署
![tencent-cloudbase-6.png](/img/tencent-cloudbase/tencent-cloudbase-6.png)
**Halo 初始化页面**
**Halo 初始化页面**
![tencent-cloudbase-7.png](/img/tencent-cloudbase/tencent-cloudbase-7.png)
@ -77,4 +77,3 @@ description: 使用腾讯云 CloudBase 一键部署
- [Halo 配置文件仓库](https://github.com/halo-dev/tencent-cloudbase-halo)
- [腾讯云 CloudBase](https://console.cloud.tencent.com/tcb/env/index)
- [云开发使用指南](https://cloud.tencent.com/document/product/876)

@ -6,13 +6,15 @@ title: 在 Windows 服务器上部署
在继续操作之前,我们推荐您先阅读[《写在前面》](/getting-started/prepare),这可以快速帮助你了解 Halo。
:::
# 系统要求
## 系统要求
目前运行 Halo 的最低依赖要求为 JRE 11而 Java9 之后将不再提供 32 位系统的环境,因此请确保您的服务器属于 64 位 CPU。
# 依赖检查
## 依赖检查
如下将介绍在 Windows 下安装 OpenJRE 11 的方式。如果您的服务器已经安装过 OpenJRE 11则可以直接跳过本节。
1. 使用浏览器前往 https://developers.redhat.com/content-gateway/file/java-11-openjdk-jre-11.0.10.9-1.windows.redhat.x86_64.msi 下载 OpenJRE 11 的可执行程序。
1. 使用浏览器前往 <https://developers.redhat.com/content-gateway/file/java-11-openjdk-jre-11.0.10.9-1.windows.redhat.x86_64.msi> 下载 OpenJRE 11 的可执行程序。
2. 下载时会提示登录“红帽”,任意注册账号登录即可。登录完成之后会自动下载 JRE。
@ -21,7 +23,8 @@ title: 在 Windows 服务器上部署
![img2.png](/img/img2.png)
4. 安装完成之后, 使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口。之后键入 `java -version`。显示如下所示内容即代表安装成功。
```
```bash
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
@ -29,10 +32,11 @@ OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
![1615618595.jpg](/img/1615618595.jpg)
# 安装 Halo
## 安装 Halo
1. 下载运行包
使用浏览器前往 https://dl.halo.run/release/halo-1.4.6.jar 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar`
使用浏览器前往 <https://dl.halo.run/release/halo-1.4.6.jar> 下载最新版本 Halo 运行包,**并保存至桌面**。修改 Jar 包名称为 `halo.jar`
:::info
如果下载速度不理想,可以[在这里](/getting-started/downloads)选择其他下载地址。
@ -40,7 +44,7 @@ OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode)
2. 下载示例配置文件
使用浏览器前往 https://dl.halo.run/config/application-template.yaml 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`
使用浏览器前往 <https://dl.halo.run/config/application-template.yaml> 下载示例配置文件,**并保存至桌面**。修改示例配置文件名字为 `application.yaml`
:::tip
IE 浏览器下,配置文件可能会以文本的形式直接打开,因此推荐使用其他浏览器或下载器下载。
@ -51,16 +55,19 @@ IE 浏览器下,配置文件可能会以文本的形式直接打开,因此
4. 测试运行 Halo
使用 <kbd>Win</kbd>+<kbd>R</kbd> 打开运行窗口并输入 `CMD` 后,回车打开 CMD 窗口,并键入如下命令。
```
```bash
cd Desktop && java -jar halo.jar
```
5. 如看到类似以下日志输出,则代表启动成功。
```bash
run.halo.app.listener.StartedListener : Halo started at http://127.0.0.1:8090
run.halo.app.listener.StartedListener : Halo admin started at http://127.0.0.1:8090/admin
run.halo.app.listener.StartedListener : Halo has started successfully!
```
浏览器打开 `http://ip:端口号` 即可看到安装引导界面。
:::info

@ -84,14 +84,16 @@ create database halodb character set utf8mb4 collate utf8mb4_bin;
代表当前系统下的 [用户目录](https://zh.wikipedia.org/wiki/%E5%AE%B6%E7%9B%AE%E5%BD%95)。
### 运行包
指 Halo 构建所产生的 Jar 包,后缀为 `.jar`。可能与其他网站应用有所区别的是Halo 仅仅只有这一个文件。而且所有数据统一保存在下面所说的 `工作目录`
### 工作目录
指 Halo 所依赖的工作目录,在 Halo 运行的时候会在系统当前用户目录下产生一个 `.halo` 的文件夹,绝对路径为 `~/.halo`。由于这个工作目录是固定的,所以上面所说的 `运行包`不限制所存放的位置,里面通常包含下列目录或文件:
1. `db`:存放 H2 Database 的物理文件,如果您使用 MySQL 数据库,那么不会存在这个目录。
2. `templates/themes`:里面包含用户所下载的主题。
3. `static`:相当于网站的根目录。
4. `logs`:运行日志目录。
4. `upload`:附件目录。
5. `application.yaml`:配置文件。
5. `upload`:附件目录。
6. `application.yaml`:配置文件。

@ -57,11 +57,10 @@ java -jar halo.jar
5. 重启服务
```
```bash
service halo start
```
## Docker <i class="mdi mdi-docker"></i>
> 我们假设您的容器是按照 [使用 Docker 部署 Halo](/getting-started/install/docker) 中的命令构建的。如有不同,请根据实际情况修改。
@ -93,7 +92,7 @@ docker pull halohub/halo:1.4.17
```
:::info
查看最新版本镜像https://hub.docker.com/r/halohub/halo ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
查看最新版本镜像:<https://hub.docker.com/r/halohub/halo> ,我们推荐使用具体版本号的镜像,但也提供了 `latest` 标签的镜像,它始终是最新的。
:::
4. 创建容器
@ -101,6 +100,7 @@ docker pull halohub/halo:1.4.17
```bash
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.4.17
```
- **-it** 开启输入功能并连接伪终端
- **-d** 后台运行容器
- **--name** 为容器指定一个名称

@ -29,7 +29,7 @@ description: 系统功能的相关配置说明
很多人反映评论中自己的头像不显示,其实评论部分调用的头像并不是在个人资料中设置的那个,而是 `Gravatar`。所以这一点怪我,从 Halo 发布至今我都没有说明这个事情。
至于什么是 `Gravatar`,引用 `Gravatar` 官方的说明:`全球公认的头像`。这可不是在吹牛,因为只要接入了 Gravatar 的网站,你在网站上使用在 Gravatar 注册的邮箱之后,都会显示你设置的头像,而不需要额外设置。比较出名的网站有 `Github``Gitlab``V2ex` 等。所以点击 https://cn.gravatar.com/ 注册一个吧。
至于什么是 `Gravatar`,引用 `Gravatar` 官方的说明:`全球公认的头像`。这可不是在吹牛,因为只要接入了 Gravatar 的网站,你在网站上使用在 Gravatar 注册的邮箱之后,都会显示你设置的头像,而不需要额外设置。比较出名的网站有 `Github``Gitlab``V2ex` 等。所以点击 <https://cn.gravatar.com/> 注册一个吧。
## 设置用户头像/Logo/Favicon
@ -158,8 +158,8 @@ A诸如百度统计CNZZGoogle Analytics。可以非常详细的统计
点击主题下方的设置按钮即可进入主题设置。另外主题设置还有一种预览模式,可以实时查看主题设置变更后的效果。当你设置当前激活主题的时候,在页面右下角有一个 `预览模式` 的按钮,点击即可进入预览模式。
## 设置备案信息
由于后台博客设置并没有提供设置备案信息的选项,所以有很多人不知道该怎么添加备案信息,这里简单说明一下。
由于后台博客设置并没有提供设置备案信息的选项,所以有很多人不知道该怎么添加备案信息,这里简单说明一下。
第一步:
@ -167,7 +167,6 @@ A诸如百度统计CNZZGoogle Analytics。可以非常详细的统计
这时候你应该可以看到一个`页脚信息`的选项,而且有提示 `支持 HTML 格式的文本`。所以我们把备案信息放在这里即可。
第二步:
将整理好的备案信息填写到页脚信息即可,如果没记错的话,公安联网备案是有提供`网站公安机关备案号`和`备案编号HTML代码`的。

@ -9,21 +9,27 @@ Halo 使用的 `Markdown` 解析器为 [flexmark-java](https://github.com/vsch/f
## 代码块
```language
代码块
```
````markdown
```language
代码块
```
````
其中language 为必填,如果不填写,很可能主题的代码高亮插件无法识别代码的语言,导致样式异常。举几个例子:
```java
public static void main(String[] args){
    System.out.println("Hello World!");
}
```
````markdown
```java
public static void main(String[] args){
    System.out.println("Hello World!");
}
```
````
```javascript
console.log("Hello World!")
```
````markdown
```javascript
console.log("Hello World!")
```
````
## TOC
@ -33,9 +39,9 @@ Halo 使用的 `Markdown` 解析器为 [flexmark-java](https://github.com/vsch/f
支持自动将一个链接解析为可点击的格式,如下:
````markdown
```markdown
https://halo.run
````
```
将被解析为:
@ -177,21 +183,21 @@ Halo 内置一些短连接以更好地支持一些 HTML 语法,但是编辑器
## 脚注
#### 语法
语法
```markdown
[^脚注名]
[^脚注名]: 脚注内容
```
#### 示例
示例
```markdown
驿外[^1]断桥边,寂寞开无主。已是黄昏独自愁,更着风和雨
[^1]: 驿指荒僻、冷清之地。驿驿站。
```
#### 解析结果
解析结果
```html
<p>驿外<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>断桥边,寂寞开无主。已是黄昏独自愁,更着风和雨</p>

Loading…
Cancel
Save