前言
之前在一些平台写过一段时间博客,后来由于各种原因就慢慢荒废了;最近心血来潮想要把一些东西记录下来,所以决定搭建一个博客玩玩。
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
选择 main
,folder
选择 /(root)
。勾选上 Enforce HTTPS
启用HTTPS。
都弄好之后,稍等片刻,打开 https://username.github.io
就能看到自己的博客了。