使用 GitHub 和 Hexo 搭建轻博客
使用GitHub和Hexo搭建轻博客,并为GithubPages绑定域名,启用SSL
Hexo
Hexo是一个快速、简洁且高效的博客框架
安装
安装过程只需要疯狂的点击 下一步 就好,安装完成后,即可使用GitBash安装Hexo
1 | $ npm install -g hexo-cli |
建站
安装Hexo完成后,执行下列命令,Hexo将会在指定文件夹中新建所需要的文件
1 | $ hexo init <folder> |
接着输入以下代码,之后就可以在浏览器中通过 localhost:4000 预览
1 | $ hexo clean && hexo generate && hexo server |
Hexo 常用命令
1 | $ hexo clean //清理 |
配置站点信息
可以在_config.yml中修改大部份的配置
修改主题
如果觉得默认的主题不好看可以到hexo.io themes查找自己喜欢的主题clone,也可以根据自己的需要手动修改
集成插件
也可以根据自己的需要集成一些插件,一些主题都有集成插件
部署到 GitHub
GitHub是一个软件项目托管平台
创建一个 Repository
Repository name 格式为:Your_GitHub_name.github.io
提交
修改_config.yml文件中的配置节
1 | deploy: |
之后执行以下语句,将Hexo提交到GitHub。中途可能会要求登录
1 | $ hexo clean && hexo generate && hexo deploy |
至此,一个基于GitHub和Hexo搭建的轻博客已经成型,你现在可以通过:Your_GitHub_name.github.io对你的站点进行访问
绑定域名
1.在自己的域名提供商的 DNS 中新建一条 CNAME 记录,指向自己的GitHub项目地址
2.在站点下的 source 文件夹中新建一个名为 CNAME ( 全部大写 , 无后缀名 )的文件。在文件中输入自己的网址,不需要加 http:// 或者 https://
1 | blog.irember.com |
之后只需等待域名解析成功,便可以通过自己的域名访问到在GitHub上创建的站点。推荐使用MarkDown进行写作,关于MarkDown的语法参见MarkDown语法
部署到 GitLab
GitHub限制了搜索引擎的抓取,如果有相关需建议更换到GitLab
创建一个 Repository
Repository name格式为:Your_GitLab_name.gitlab.io
提交
GitLab和GitHub部署的不同之处在于:GitHub 只需要提交发布后的文件而GitLab则需要提交源文件然后在服务器生成静态文件。为了告诉服务器如何生存静态文件,需要在项目的根目录下添加一个名为 .gitlab-ci.yml 的文件。文件大致内容如下:
1 | image: node:8.11.2 |
由于Hexo未对GitLab提供支持所以无法通过hexo d
命令直接提交到GitLab,这意味着_config.yml文件中的 deploy 配置节已经失去了存在的意义。接下来使用git命令提交
初始化仓库
1 | git init |
添加一个远程仓库
1 | git remote add origin "Your_Clone_with_HTTPS_URL" |
追踪所有文件
1 | git add . |
将修改提交到本地库
1 | git commit -m "init blog" |
将修改推送到远程库
1 | git push -u origin master |
中途可能会要求登录,提交到远程库后如果 Jobs passed 则证明构建成功
绑定域名
获取证书
在绑定域名之前先对SSL做一些准备。GitHub更新后默认对.github.io二级域名和自定义域名提供SSL支持,采用的是Let’s Encrypt颁发的免费证书。GitLab也提供免费SSL的支持但是颁发的证书无法用于自定义域名。
这里我同样采用Let’s Encrypt的免费证书,并通过ZeroSSL获取证书。
绑定域名
在自己的域名提供商的DNS中新建一条 CNAME 记录,指向自己的GitLab项目地址
进入Repository主页的 Settings > Pages > New Domain
填写自己的域名、Certificate 和 Key。这意味着 source 文件夹中名为 CNAME 的文件也失去了存在的意义。之后通过DNS验证了自己对域名的所有权之后就可以通过域名访问了。但GitLab并不会将 http:// 的访问重定向到 https:// 上,官方给出的 改善 方案是通过 link 标记和 JavaScript 代码进行声明和跳转。
错误处理
hexo: command not found
原因在于没有环境变量。可以安装高版本的Node 或者 找到 hexo 部署目录将完整路径加入用户环境变量中,保存之后重新打开CLI
ERROR Deployer not found: git
以管理员权限,在站点目录执行以下命令
1 | npm install hexo-deployer-git --save |
The project you were looking for could not be found
替换添加远程仓库的命令
1 | //before |
设置 Git 账户
1 | git config --global user.email "Your_GitHub_Email" |
参考
GitLab Pages examples / hexo·GitLab
GitLab Pages custom domains and SSL/TLS Certificates
Tutorial: Securing your GitLab Pages with TLS and Let's Encrypt | GitLab