跳至主要內容

利用 GitHub 从零开始搭建一个博客「2023版」

AI悦创原创大约 28 分钟...约 8379 字

你好,我是悦创。

趁着周末,从新搭建了一下 AI悦创 的官方主页「叫啥无所谓,都可以改」,耗时数个小时,GitHub 的站点终于完工了。

由于 AI悦创 的域名是 aiyc.top,所以这里官方主页使用了二级域名 github.aiyc.top,官方博客使用了根域名现在使用的是 https://bornforthis.cn/open in new window,现在两个站点已经稳定运行。一个运行在 GitHub Pages 上面,一个运行在阿里云服务器,大家如果感兴趣可以去看一下。

GitHub 的主页呢,因为好久没有维护,多少还是有些问题的。现在准备开始重新维护和更新!

接下来主要讲博客,相对复杂一点,使用了 Hexo 框架,采用了 Next 主题,在搭建的过程中我就顺手把搭建的流程大致记录下来了,在这里扩充一下形成一篇记录,毕竟好记性不如烂笔头。

于是,这篇《利用 GitHub 从零开始搭建一个博客》的文章就诞生了。

1. 准备条件

在这里先跟大家说一些准备条件,有些同学可能一听到搭建博客就望而却步。弄个博客网站,不得有台服务器吗?不得搞数据库吗?不得注册域名吗?没事,如果都没有,那照样是能搭建一个博客的。

GitHub 是个好东西啊,它提供了 GitHub Pages 帮助我们来架设一个静态网站,这就解决了服务器的问题。

Hexo 这个博客框架没有那么重量级,它是 MarkDown 直接写文章的,然后 Hexo 可以直接将文章编译成静态网页文件并发布,所以这样文章的内容、标题、标签等信息就没必要存数据库里面了,是直接纯静态页面了,这就解决了数据库的问题。

GitHub Pages 允许每个账户创建一个名为 {username}.github.io 的仓库,另外它还会自动为这个仓库分配一个 github.ioopen in new window 的二级域名,这就解决了域名的问题,当然如果想要自定义域名的话,也可以支持。

所以说,基本上,先注册个 GitHub 账号就能搞了,下面我们来正式开始吧。

PS:如果你现在连 GitHub 账户都没有,我建议你马上自己注册一个,不管做不做网页,不会的可以自行谷歌或者加我微信入群交流。微信:Jiabcdefh

2. 新建项目

首先在 GitHub 新建一个仓库(Repository),名称为 {username}.github.io,注意这个名比较特殊,必须要是 github.ioopen in new window 为后缀结尾的。比如 AI悦创 的 GitHub 用户名就叫 AndersonHJB,那我就新建一个 AndersonHJB.github.ioopen in new window,新建完成之后就可以进行后续操作了。

注意

大小写要和你的 GitHub 的账号名称一模一样,不要有区别。

2.1 新建仓库「Repository」

1

2.2 配置 GitHub SSH 链接

另外如果 GitHub 没有配置 SSH 连接的建议配置一下,这样后面在部署博客的时候会更方便。

2.2.1 概要

本地生成公钥,将本地公钥配置到远程 github ,这个公钥相当于本地和远程 github 的链接桥梁。

2.2.2 准备

2.2.3 开始

首先右击--git Bash here 打开 git 命令行工具,检查用户名和邮箱是否配置。

git config --global  --list

如未配置,则执行以下命令进行配置:

设置用户名
git config --global  user.name "这里换上你的用户名"

然后执行以下命令生成秘钥:

ssh-keygen -t rsa -C "这里换上你的邮箱"

执行上面的命令后需要进行 3 次或 4 次确认:

1、确认秘钥的保存路径(如果不需要改路径则直接回车);

2、如果上一步默认的保存路径下已经有秘钥文件,则需要确认是否覆盖(如果之前的秘钥不再需要则直接回车覆盖,如需要则手动拷贝到其他目录后再覆盖);

3、创建密码(如果不需要密码则直接回车);

4、确认密码如果不需要密码则直接回车;

在指定的保存路径下会生成 2 个名为 id_rsaid_rsa.pub 的文件:

添加公钥到你的远程仓库(github),再打开你的 github,进入配置页: Settings -- SSH and GPG keys

1

测试是否配置成功,用 ssh 链接 git,命令如下:

ssh -T git@github.com 

你将会看到:

➜  ~ ssh -T git@github.com
The authenticity of host 'github.com (13.229.188.59)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)?

选择 yes。

Warning: Permanently added 'github.com,13.229.188.59' (RSA) to the list of known hosts.
Hi AndersonHJB! You've successfully authenticated, but GitHub does not provide shell access.

如果看到 Hi 后面是你的用户名,就说明成功了。

3. 安装环境

3.1 Node

首先在自己的电脑上安装 Node.js,下载地址:https://nodejs.org/zh-cn/download/,安装过程自行查找。安装完毕之后,确保环境变量配置好,能正常使用open in new window npm 命令。

3.2 安装 Hexo

接下来就需要安装 Hexo 了,这是一个博客框架,Hexo 官方还提供了一个命令行工具,用于快速创建项目、页面、编译、部署 Hexo 博客,所以在这之前我们需要先安装 Hexo 的命令行工具。

命令如下:

npm install hexo-cli -g

安装完毕之后,确保环境变量配置好,能正常使用 hexo 命令。

PS: 如果你是苹果电脑,有可能输入上面的命令会出现下图结果:

把命令前面加个 sudo 即可:

sudo npm install -g hexo-cli

如果还是解决不了,可以自行谷歌一下。

3.3 初始化项目

接下来我们使用 Hexo 的命令行创建一个项目,并将其在本地跑起来,整体跑通看看。首先使用如下命令创建项目:

hexo init {name}

这里的 name 就是项目名,我这里要创建 AndersonHJB 的博客,我就把项目取名为 andersonhjb 了,用了纯小写,命令如下:

hexo init andersonhjb #初始化博客

这样 andersonhjb 文件夹下就会出现 Hexo 的初始化文件,包括 themes、scaffolds、source 等文件夹,这些内容暂且先不用管是做什么的,我们先知道有什么,然后一步步走下去看看都发生了什么变化。

接下来我们首先进入新生成的文件夹里面,然后调用 Hexo 的 generate 命令,将 Hexo 编译生成 HTML 代码,命令如下:

hexo generate
hexo generate
hexo generate

可以看到输出结果里面包含了 js、css、font 等内容,并发现他们都处在了项目根目录下的 public 文件夹下面了。

然后我们利用 Hexo 提供的 server 命令把博客在本地运行起来,命令如下:

hexo server

运行之后命令行输出如下:

➜  andersonhjb hexo server
INFO  Validating config
INFO  Start processing
INFO  Hexo is running at http://localhost:4000/ . Press Ctrl+C to stop.

它告诉我们在本地 4000 端口上就可以查看博客站点了,如图所示:

这样一个博客的架子就出来了,我们只用了三个命令就完成了。

4. 部署

接下来我们来将这个初始化的博客进行一下部署,放到 GitHub Pages 上面验证一下其可用性。成功之后我们可以再进行后续的修改,比如修改主题、修改页面配置等等。

那么怎么把这个页面部署到 GitHub Pages 上面呢,其实 Hexo 已经给我们提供一个命令,利用它我们可以直接将博客一键部署,不需要手动去配置服务器或进行其他的各项配置。

部署命令如下:

hexo deploy

不过,在输入上面部署命令之前,不要着急!

在部署之前,我们需要先知道博客的部署地址,它需要对应 GitHub 的一个 Repository 的地址,这个信息需要我们来配置一下。

打开根目录下的 _config.yml 文件,找到 Deployment 这个地方:

把刚才新建的 Repository 的地址贴过来,然后指定分支为 master 分支,最终修改为如下内容:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: {git repo ssh address}
  branch: master

我的实际修改内容为下面:

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: git@github.com:AndersonHJB/AndersonHJB.github.io.git
  branch: master

你会看到,我上面在 repo 里面填写了:

git@github.com:AndersonHJB/AndersonHJB.github.io.git

那我是如何获得的呢?

另外我们还需要额外安装一个支持 Git 的部署插件,名字叫做 hexo-deployer-git,有了它我们才可以顺利将其部署到 GitHub 上面,如果不安装的话,在执行部署命令时会报如下错误:

Deployer not found: git

好,那就让我们安装下这个插件,在项目目录下执行安装命令如下:

npm install hexo-deployer-git --save

这里我多废话一句,有人不知道项目目录指的是啥,这里我还是把我的项目,截图出来:

出现如下结果,就是安装成功:

➜  andersonhjb npm install hexo-deployer-git --save

added 3 packages, and audited 239 packages in 5s

27 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities

安装成功之后,执行部署命令:

hexo deploy

上面的命令,也是在项目目录下。出现如下类似的结果表面成功:

➜  andersonhjb hexo deploy
INFO  Validating config
INFO  Deploying: git
INFO  Setting up Git deployment...
Initialized empty Git repository in /Users/aiyuechuang/WebSite/andersonhjb/.deploy_git/.git/
[main (root-commit) 37fe052] First commit
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 placeholder
INFO  Clearing .deploy_git folder...
INFO  Copying files from public folder...
INFO  Copying files from extend dirs...
[main effb5a7] Site updated: 2023-08-16 15:27:32
 12 files changed, 2485 insertions(+)
 create mode 100644 2023/08/16/hello-world/index.html
 create mode 100644 archives/2023/08/index.html
 create mode 100644 archives/2023/index.html
 create mode 100644 archives/index.html
 create mode 100644 css/images/banner.jpg
 create mode 100644 css/style.css
 create mode 100644 fancybox/jquery.fancybox.min.css
 create mode 100644 fancybox/jquery.fancybox.min.js
 create mode 100644 index.html
 create mode 100644 js/jquery-3.6.4.min.js
 create mode 100644 js/script.js
 delete mode 100644 placeholder
Enumerating objects: 27, done.
Counting objects: 100% (27/27), done.
Delta compression using up to 8 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (27/27), 278.94 KiB | 892.00 KiB/s, done.
Total 27 (delta 3), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (3/3), done.
To github.com:AndersonHJB/AndersonHJB.github.io.git
 + 57e1a3d...effb5a7 HEAD -> master (forced update)
branch 'main' set up to track 'git@github.com:AndersonHJB/AndersonHJB.github.io.git/master'.
INFO  Deploy done: git

4.1 访问链接

如果出现类似上面的内容,就证明我们的博客已经成功部署到 GitHub Pages 上面了,这时候我们访问一下 GitHub Repository 同名的链接,比如我的 andersonhjb 博客的 Repository 名称取的是 AndersonHJB.github.io,那我就访问 http://andersonhjb.github.ioopen in new window,这时候我们就可以看到跟本地一模一样的博客内容了。

这时候我们去 GitHub 上面看看 Hexo 上传了什么内容,打开之后可以看到 master 分支有了这样的内容:

仔细看看,这实际上是博客文件夹下面的 public 文件夹下的所有内容,Hexo 把编译之后的静态页面内容上传到 GitHub 的 master 分支上面去了。

这时候可能就有人有疑问了,那我博客的源码也想放到 GitHub 上面怎么办呢?

其实很简单,新建一个其他的分支就好了,比如我这边就新建了一个 source 分支,代表博客源码的意思。

具体的添加过程就很简单了,参见如下命令:

git init
git checkout -b source
git add -A
git commit -m "init blog"
git remote add origin git@github.com:{username}/{username}.github.io.git
git push origin source

上面操作之后,可以使用如下目录切回原本的的分支「方便后续操作」:

git checkout -b master

成功之后,可以到 GitHub 上再切换下默认分支,比如我就把默认的分支设置为了 source,当然不换也可以。

4.2 切换默认分支

settings

4.3 配置站点信息

完成如上内容之后,实际上我们只完成了博客搭建的一小步,因为我们仅仅是把初始化的页面部署成功了,博客里面还没有设置任何有效的信息。

下面就让我们来进行一下博客的基本配置,另外换一个好看的主题,配置一些其他的内容,让博客真正变成属于我们自己的博客吧。

下面我就以自己的站点 andersonhjb 为例,修改一些基本的配置,比如站点名、站点描述等等。

修改根目录下的 _config.yml 文件,找到 Site 区域,这里面可以配置站点标题 title、副标题 subtitle 等内容、关键字 keywords 等内容。

比如我的就修改为如下内容:

# Site
title: 'JiaBao' # 加不加引号都不影响
subtitle: 'Photographer'
description: '摄影师黄家宝的个人网站,含纪实类、旅行类、手机类作品集及中文博客等。 | 叶梓 - 摄影师'
keywords: 黄家宝,摄影师,纪实摄影师,纪实摄影,手机摄影,旅行摄影,摄影作品,摄影博客
author: JiaBao Huang
language: zh-CN
timezone: 'Asia/Shanghai'

这里大家可以参照格式把内容改成自己的。

这里我来系统的整理个表格来解析:

参数描述
title网站标题
subtitle网站副标题
description网站描述
keywords网站的关键词。支援多个关键词。
author您的名字
language网站使用的语言。对于简体中文用户来说,使用不同的主题可能需要设置成不同的值,请参考你的主题的文档自行设置,常见的有 zh-Hanszh-CN
timezone网站时区。Hexo 默认使用您电脑的时区。请参考 时区列表open in new window 进行设置,如 America/New_York, Japan, 和 UTC 。一般的,对于中国大陆地区可以使用 Asia/Shanghai

其中,description主要用于 SEO,告诉搜索引擎一个关于您站点的简单描述,通常建议在其中包含您网站的关键词。author参数用于主题显示文章的作者。

另外还可以设置一下语言,如果要设置为汉语的话可以将 language 的字段设置为 zh-CN,修改如下:

language: zh-CN

这样就完成了站点基本信息的配置,完成之后可以看到一些基本信息就修改过来了,页面效果如下:

4.4 修改主题

目前来看,整个页面的样式个人感觉并不是那么好看,想换一个风格,这就涉及到主题的配置了。

目前 Hexo 里面应用最多的主题基本就是 Next 主题了,个人感觉这个主题还是挺好看的,另外它支持的插件和功能也极为丰富,配置了这个主题,我们的博客可以支持更多的扩展功能,比如阅览进度条、中英文空格排版、图片懒加载等等。

4.4.1 Next Theme

那么首先就让我们来安装下 Next 这个主题吧,目前 Next 主题已经更新到 7.x 版本了,我们可以直接到 Next 主题的 GitHub Repository 上把这个主题下载下来。

主题的 GitHub 地址是:https://github.com/theme-next/hexo-theme-nextopen in new window,我们可以直接把 master 分支 Clone 下来。

首先命令行进入到项目的根目录,执行如下命令即可:

1
git clone https://github.com/theme-next/hexo-theme-next themes/next

执行完毕之后 Next 主题的源码就会出现在项目的 themes/next 文件夹下。

然后我们需要修改下博客所用的主题名称,修改项目根目录下的 _config.yml 文件,找到 theme 字段,修改为 next 即可,修改如下:

theme: next

然后本地重新开启服务,访问刷新下页面,就可以看到 next 主题就切换成功了,预览效果如下:

4.4.1.1 主题配置

现在我们已经成功切换到 next 主题上面了,接下来我们就对主题进行进一步地详细配置吧,比如修改样式、增加其他各项功能的支持,下面逐项道来。

Next 主题内部也提供了一个配置文件,名字同样叫做 _config.yml,只不过位置不一样,它在 themes/next 文件夹下,Next 主题里面所有的功能都可以通过这个配置文件来控制,下文所述的内容都是修改的 themes/next/_config.yml 文件。

4.4.1.2 样式

Next 主题还提供了多种样式,风格都是类似黑白的搭配,但整个布局位置不太一样,通过修改配置文件的 scheme 字段即可,我选了 Pisces 样式,修改 _config.yml(注意是 themes/next/_config.yml 文件)。

原本
# ---------------------------------------------------------------
# Scheme Settings
# ---------------------------------------------------------------

# Schemes
scheme: Muse
#scheme: Mist
#scheme: Pisces
#scheme: Gemini

接下来我们重新本地运行服务,如然后访问:

4.4.1.3 favicon

favicon 就是站点标签栏的小图标,默认是用的 Hexo 的小图标,如果我们有站点 Logo 的图片的话,我们可以自己定制小图标。

但这并不意味着我们需要自己用 PS 自己来设计,已经有一个网站可以直接将图片转化为站点小图标,站点链接为:https://realfavicongenerator.netopen in new window,到这里上传一张图,便可以直接打包下载各种尺寸和适配不同设备的小图标。

图标下载下来之后把它放在 themes/next/source/images 目录下面。

然后在配置文件里面找到 favicon 配置项,把一些相关路径配置进去即可,示例如下:

原本
favicon:
  small: /images/favicon-16x16-next.png
  medium: /images/favicon-32x32-next.png
  apple_touch_icon: /images/apple-touch-icon-next.png
  safari_pinned_tab: /images/logo.svg
  #android_manifest: /images/manifest.json
  #ms_browserconfig: /images/browserconfig.xml
4.4.1.4 avatar

avatar 这个就类似站点的头像,如果设置了这个,会在站点的作者信息旁边额外显示一个头像,比如我这边有一张 avatar.JPG 图片:

将其放置到 themes/next/source/images/avatar.png 路径,然后在主题 _config.yml 文件下编辑 avatar 的配置,修改为正确的路径即可。

原本
# Sidebar Avatar
avatar:
  # Replace the default image and set the url here.
  url: #/images/avatar.gif
  # If true, the avatar will be dispalyed in circle.
  rounded: false
  # If true, the avatar will be rotated with the cursor.
  rotated: false

我们可以发现,上面代码中有 rounded 选项是是否显示圆形,rotated 是是否带有旋转效果,大家可以根据喜好选择是否开启。这里我自己就不开了,效果如下:

可以看见我的头像。

4.4.1.5 rss

博客一般是需要 RSS 订阅的,如果要开启 RSS 订阅,这里需要安装一个插件,叫做 hexo-generator-feed,安装完成之后,站点会自动生成 RSS Feed 文件,安装命令如下:

npm install hexo-generator-feed --save

我的实际操作图片:

在项目根目录下运行这个命令,安装完成之后不需要其他的配置,以后每次编译生成站点的时候就会自动生成 RSS Feed 文件了。

4.4.1.6 code

作为程序猿,代码块的显示还是需要很讲究的,默认的代码块我个人不是特别喜欢,因此我把代码的颜色修改为黑色,并把复制按钮的样式修改为类似 Mac 的样式,修改 _config.yml 文件的 codeblock 区块如下操作。

原本内容
codeblock:
  # Code Highlight theme
  # Available values: normal | night | night eighties | night blue | night bright | solarized | solarized dark | galactic
  # See: https://github.com/chriskempson/tomorrow-theme
  highlight_theme: normal
  # Add copy button on codeblock
  copy_button:
    enable: false
    # Show text copy result.
    show_result: false
    # Available values: default | flat | mac
    style:
修改前
4.4.1.7 top

我们在浏览网页的时候,如果已经看完了想快速返回到网站的上端,一般都是有一个按钮来辅助的,这里也支持它的配置,修改 _config.yml 的 back2top 字段即可。

原本如下
back2top:
  enable: true
  # Back to top in sidebar.
  sidebar: false
  # Scroll percent label in b2t button.
  scrollpercent: false

enable 默认为 true,即默认显示。sidebar 如果设置为 true,按钮会出现在侧栏下方,个人觉得并不是很好看,就取消了,scrollpercent 就是显示阅读百分比,个人觉得还不错,就将其设置为 true。具体的效果大家可以设置后根据喜好选择。

4.4.1.8 reading_process

reading_process,阅读进度。大家可能注意到有些站点的最上侧会出现一个细细的进度条,代表页面加载进度和阅读进度,如果大家想设置的话也可以试试,我将其打开了,修改 _config.yml 如下。

还是老样子,带你看看原本的
# Reading progress bar
reading_progress:
  enable: false
  # Available values: top | bottom
  position: top
  color: "#37c6c0"
  height: 3px

记得重新启动服务,我们来看看效果:

4.4.1.9 bookmark

书签,可以根据阅读历史记录,在下次打开页面的时候快速帮助我们定位到上次的位置,大家可以根据喜好开启和关闭,我的配置如下。

原本
# Bookmark Support
bookmark:
  enable: false
  # Customize the color of the bookmark.
  color: "#222"
  # If auto, save the reading progress when closing the page or clicking the bookmark-icon.
  # If manual, only save it by clicking the bookmark-icon.
  save: auto
4.4.1.10 github_banner

在一些技术博客上,大家可能注意到在页面的右上角有个 GitHub 图标,点击之后可以跳转到其源码页面,可以为 GitHub Repository 引流,大家如果想显示的话可以自行选择打开,我的配置如下:

原本
# `Follow me on GitHub` banner in the top-right corner.
github_banner:
  enable: false
  permalink: https://github.com/yourname
  title: Follow me on GitHub

记得修改下链接 permalink 和标题 title,显示效果如下:

可以看到在页面右上角显示了 GitHub 的图标,点击可以进去到 Repository 页面。

4.4.1.11 Gitalk 评论插件使用教程

由于 Hexo 的博客是静态博客,而且也没有连接数据库的功能,所以它的评论功能是不能自行集成的,但可以集成第三方的服务。

Next 主题里面提供了多种评论插件的集成,有 changyan | disqus | disqusjs | facebook_comments_plugin | gitalk | livere | valine | vkontakte 这些。

作为一名程序员,我个人比较喜欢 gitalk,它是利用 GitHub 的 Issue 来当评论,样式也比较不错。

首先需要在 GitHub 上面注册一个 OAuth Application。

链接为:https://github.com/settings/applications/newopen in new window

1. 说明

Gitalk 是一个基于 GitHub Issue 和 Preact 开发的评论插件。

Gitalk 的特性:

1、使用 GitHub 登录

2、支持多语言 [en, zh-CN, zh-TW, es-ES, fr, ru]

3、支持个人或组织

4、无干扰模式(设置 distractionFreeMode 为 true 开启)

5、快捷键提交评论 (cmd|ctrl + enter)

使用 Gitalk 需要你做一些提前准备:

1、在 github 上创建一个仓库,Gitalk 会把评论放在这个仓库的 issues 里面。

2、在 github 上申请一个 GitHub OAuth application,来让 Gitalk 有权限操作 github 上的仓库。

2. GitHub 创建评论仓库

我直接用 andersonhjb.github.io 仓库,你也可以自行创建。

3. 申请一个 OAuth application

GitHub OAuth application 允许程序来操作你的 github 账户,可以对 github 中仓库读写。详情介绍:https://docs.github.com/en/apps/creating-github-apps/about-creating-github-apps/about-creating-github-apps#about-oauth-appsopen in new window

  1. 申请 GitHub OAuth application 流程:

为了让小白也能看懂,我直接来一个图片操作系列:

1

上图虽然写了解析,但我还是要详细的给你讲一遍的。

在注册 OAuth 应用页面有如下几个参数需要填写:

Application name:必填,OAuth 的名字

Homepage URL:必填,你应用的网址,哪个网站用了 Gitalk 组件,就填写这个网址

Application description:选填,该 OAuth 的说明

Authorization callback URL:必填,授权成功后回调网址,跟 Homepage URL

参数保持一致就好这些参数在注册成功后是可以修改。

参数填好后,点 Register application 按钮即可完成注册。

4. 获取 Client ID、Client Secret

注册成功后会自动跳转到这个 OAuth 应用的页面,或者在 Developer settingsopen in new window 选择 OAuth Apps 后就能看见你创建的 OAuth 应用名字,点击它进入这个 OAuth 应用的页面:

点击生成

注册完毕之后拿到 Client ID、Client Secret 就可以了。

5. 修改配置文件

首先需要在 _config.yml 文件的 comments 区域配置使用 gitalk。

原本内容
# ---------------------------------------------------------------
# Comments Settings
# See: https://theme-next.org/docs/third-party-services/comments
# ---------------------------------------------------------------

# Multiple Comment System Support
comments:
  # Available values: tabs | buttons
  style: tabs
  # Choose a comment system to be displayed by default.
  # Available values: changyan | disqus | disqusjs | gitalk | livere | valine
  active:
  # Setting `true` means remembering the comment system selected by the visitor.
  storage: true
  # Lazyload all comment systems.
  lazyload: false
  # Modify texts or order for any navs, here are some examples.
  nav:
    #disqus:
    #  text: Load Disqus
    #  order: -1
    #gitalk:
    #  order: -2

主要是 comments.active 字段选择对应的名称即可。

然后找到 gitalk 配置,添加它的各项配置。

原本
# Gitalk
# For more information: https://gitalk.github.io, https://github.com/gitalk/gitalk
gitalk:
  enable: false
  github_id: # GitHub repo owner
  repo: # Repository name to store issues
  client_id: # GitHub Application Client ID
  client_secret: # GitHub Application Client Secret
  admin_user: # GitHub repo owner and collaborators, only these guys can initialize gitHub issues
  distraction_free_mode: true # Facebook-like distraction free mode
  # Gitalk's display language depends on user's browser or system environment
  # If you want everyone visiting your site to see a uniform language, you can set a force language value
  # Available values: en | es-ES | fr | ru | zh-CN | zh-TW
  language:

配置完成之后 gitalk 就可以使用了,点击进入文章页面,就会出现如下页面:

GitHub 授权登录之后就可以使用了,评论的内容会自动出现在 Issue 里面。

注意

第一次 Gitalk 需要初始化评论,需要你先点击使用 GitHub 登陆,然后刷新页面才会初始化,或者自己去仓库里手动创建一个 issues,并添加 issues 的 labels 值为 Gitalk 的 labels 参数和 id 参数的值。「部署之后,再初始化

4.4.1.12 pangu

我个人有个强迫症,那就是写中文和英文的时候中间必须要留有间距,一个简单直接的方法就是中间加个空格,但某些情况下可能习惯性不加或者忘记加了,这就导致中英文混排并不是那么美观。

pangu 就是来解决这个问题的,我们只需要在主题里面开启这个选项,在编译生成页面的时候,中英文之间就会自动添加空格,看起来更加美观。

具体的修改如下:

# 修改前
# Pangu Support
# For more information: https://github.com/vinta/pangu.js
pangu: false

# 修改后
# Pangu Support
# For more information: https://github.com/vinta/pangu.js
pangu: true
4.4.1.13 math

可能在一些情况下我们需要写一个公式,比如演示一个算法推导过程,MarkDown 是支持公式显示的,Hexo 的 Next 主题同样是支持的。

Next 主题提供了两个渲染引擎,分别是 mathjax 和 katex,后者相对前者来说渲染速度更快,而且不需要 JavaScript 的额外支持,但后者支持的功能现在还不如前者丰富,具体的对比可以看官方文档:https://theme-next.org/docs/third-party-services/math-equationsopen in new window 。所以我这里选择了 mathjax,通过修改配置即可启用:

修改前
# Math Formulas Render Support
math:
  # Default (true) will load mathjax / katex script on demand.
  # That is it only render those page which has `mathjax: true` in Front-matter.
  # If you set it to false, it will load mathjax / katex srcipt EVERY PAGE.
  per_page: true

  # hexo-renderer-pandoc (or hexo-renderer-kramed) required for full MathJax support.
  mathjax:
    enable: false
    # See: https://mhchem.github.io/MathJax-mhchem/
    mhchem: false

mathjax 的使用需要我们额外安装一个插件,叫做 hexo-renderer-kramed,另外也可以安装 hexo-renderer-pandoc,命令如下:

npm un hexo-renderer-marked --save
npm i hexo-renderer-kramed --save

另外还有其他的插件支持,大家可以到官方文档查看。

4.4.1.14 pjax

可能大家听说过 Ajax,没听说过 pjax,这个技术实际上就是利用 Ajax 技术实现了局部页面刷新,既可以实现 URL 的更换,又可以做到无刷新加载。

要开启这个功能需要先将 pjax 功能开启,然后安装对应的 pjax 依赖库,首先修改 _config.yml 修改如下:

pjax: true

然后安装依赖库,切换到 next 主题下,然后安装依赖库:

$ cd themes/next
$ git clone https://github.com/theme-next/theme-next-pjax source/lib/pjax

这样 pjax 就开启了,页面就可以实现无刷新加载了。

另外关于 Next 主题的设置还有挺多的,这里就介绍到这里了,更多的主题设置大家可以参考官方文档:https://theme-next.org/docs/open in new window

4.4.1.15 文章

现在整个站点只有一篇文章,那么我们怎样来增加其他的文章呢?

这个很简单,只需要调用 Hexo 提供的命令即可,比如我们要新建一篇「HelloWorld」的文章,命令如下:

hexo new hello-world2

创建的文章会出现在 source/_posts 文件夹下,是 MarkDown 格式。

欢迎关注我公众号:AI悦创,有更多更好玩的等你发现!

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Linux、Web 全栈」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度