Hexo搭建个人博客并部署到Gitlab和GitHub

前言

之前在一些平台写过一段时间博客,后来由于各种原因就慢慢荒废了;最近心血来潮想要把一些东西记录下来,所以决定搭建一个博客玩玩。

Hexo介绍

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

Hexo安装

我用的Mac系统,所以直接homebrew安装:

brew install hexo

Hexo建站

安装 Hexo 完成后,请执行下列命令,Hexo 将会在指定文件夹中新建所需要的文件。

hexo init <folder>

新建完成后,文件夹的目录大致如下:

.
├── _config.landscape.yml
├── _config.yml
├── package.json
├── scaffolds
│   ├── draft.md
│   ├── page.md
│   └── post.md
├── source
│   └── _posts
│       └── hello-world.md
├── themes
└── yarn.lock

_config.yml 是一些配置信息,你可以在此配置大部分的参数。 package.json 是依赖的一些包。 scaffolds 是模版文件夹。 source 是存放用户资源的地方,那个 hello-world.md 就是默认生成的一篇文章。 themes 是主题文件夹,你可以在里面配置自己喜欢的主题。

Hexo指令

hexo g

生成静态文件,在 public 目录下。

hexo s

启动本地服务器。打开 http://localhost:4000/ 就可以看到我们的博客啦。

hexo new "article title"

新建一篇文章。在 source\_posts 目录下就多了一个.md文件。

将博客部署到GitLab Pages

Gitlab创建一个repository,名字为username.gitlab.io,username就是你的Gitlab用户名。

在博客目录下生成git,并配置远端仓库,然后提交代码。

git init
git remote add origin git@gitlab.com:username/username.gitlab.io.git

在你的博客目录下新建一个 .gitlab-ci.yml 文件内容如下:

image: node:10-alpine # use nodejs v10 LTS

cache:
  paths:
    - node_modules/

before_script:
  - ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
  - npm install hexo-cli -g
  - npm install

pages:
  script:
    - hexo generate
  artifacts:
    paths:
      - public
  only:
    - master

GitLab CI 会自动开始运行,构建成功以后稍等几分钟,打开 https://username.gitlab.io 应该就能看到自己的博客了。

如果想隐藏博客源码,又不想影响博客的正常访问,可以在仓库的 Settings -> General -> Visibility, project features, permissions 里面将仓库权限设置为 private,然后把下面的 Pages 选项改为 Everyone

将博客部署到GitHub Pages

在这里我将继续用Gitlab的仓库存储博客源码,将生成的静态博客部署到Github。

GitHub创建一个repository,名字为username.github.io,username就是你的GitHub用户名。如果是免费账户的话,repository要是public的,不然不能启用GitHub Pages。

安装 hexo-deployer-git :

npm install hexo-deployer-git --save

修改 _config.yml 里面的 deploy 配置改为

deploy:
  type: git
  repo: git@github.com:username/username.github.io.git
  branch: main

然后运行以下命令,就会把生成的 public 文件夹里的东西都push上去。

hexo clean && hexo d

在Github上,打开项目的 Settings ,找到 GitHub Pages 设置,如果没有开启的话先开启,然后 Branch选择 mainfolder 选择 /(root)。勾选上 Enforce HTTPS 启用HTTPS。

都弄好之后,稍等片刻,打开 https://username.github.io 就能看到自己的博客了。

Built with Hugo
主题 StackJimmy 设计