当前位置 : 首页 » 文章分类 :  开发  »  Hexo博客(27)2019博客重构

Hexo博客(27)2019博客重构

2019.12 最新博客结构调整


放弃使用coding

放弃使用 coding git 仓库,原因如下:
1、Coding 被腾讯云收购后用着很别扭。
2、Coding 上部署的博客被封了,被告知有翻墙信息。
3、Coding 上的图床被封了。
4、GitHub 也有免费的私有库了

把 coding 上的项目全删了,以后其他项目也不再用 coding。


放弃使用pages部署博客

放弃使用 pages 发布博客,原因如下:
1、Coding Pages 上部署的静态博客被封了,原因是含有翻墙信息。
2、GitHub Pages 上的博客被原公司警告说在其上发现了公司内的代码,估计是把写的通用代码发到博客上时忘了删除公司相关的package包名,被扫描到了,以后一定要注意。
1、Coding Pages 上的图床也被封了,其实用国内的Pages当图床我一直有担心,因为很容易被人利用往上放不雅内容,早晚要被干掉,把图床迁到自己的服务器。

其实之前我特别讨厌那些用自己的服务器部署博客的,经常由于忘了续费或换域名什么的导致收藏的文章无法访问,所以即使我开始使用vps的一年多内也一直坚持用pages同步部署一份。
但现在自己的想法也变了,因为经过这几个事件发现Pages当博客也很受限,不如完全自己搭建,随心所欲想搞什么就搞什么。
打算完全放弃Pages,都放到自己的服务器上。


项目合并

我当博客用的有三个域名
http://masikkk.com/
http://madaimeng.com/
http://devgou.com/

之前这三个域名,每个对应两个项目,一个公开的hexo部署项目,一个私有的源码保存项目,GitHub和Coding上分别存一份,整了一堆,乱乎乎的。
现在都合并为一个项目 hexo,只存博客源码,只放在GitHub上,私有不公开,里面放 笔记/博客md源码、博客图片、nginx配置以及一些类似webhooks.js脚本之类的东西。
至于博客的html代码,不再往git存了,因为稍微一改就会导致好多文件变更,每次push很耗时。


图床由coding迁移到自己的vps服务器

之前一直用 coding 上的一个 public repo 做图床,见 Hexo博客(23)弃用七牛云图床改为git仓库图床 , 目前被封了,迁到自己的vps服务器中。
我这次图床迁移非常方便:
1、把 image 仓库放到 GitHub 上,单独搞一个项目也行,放到 hexo 博客项目中也行。我是直接放到 hexo 项目的一个子目录中了。在vps上把图片拉下来。
2、nginx 中配置 image.madaimeng.com 解析到图片子目录

# image.开头的三级域名访问, 读取 hexo/public/image 目录下的图片
server {
    listen       80;
    server_name  image.masikkk.com image.madaimeng.com image.devgou.com;
    location / {
            root   /home/centos/git/hexo/public/image;
    }
}

3、修改域名解析,直接把域名 image.madaimeng.com 改为解析到vps的ip即可
博客中代码完全不用动,这就是所有图片集中存储并使用链接访问的好处。


博客部署流程变更

之前无论是把博客放到 pages,还是在自己的vps服务器上,都是本地hexo g生成好html代码后再push到git远程仓库中。
也尝试过在服务器端生成博客,奈何一直有个 Template render error Invalid or unexpected token 错误解决不了,这个周末把这问题解决了,见 Hexo博客(24)VPS中部署Hexo ,所以改为把生成博客html这个步骤放到服务端执行,也就是在vps上执行hexo g命令。
这样的好处是客户端会变得很轻便,换了新电脑就算不装hexo环境也没问题,而且也解决了同时使用Windows和mac两个系统hexo环境不一致的问题。
同时,如果想本地调试hexo,也可以本机装一套hexo环境,互不影响。

为了简化部署, 用 node.js 做个 git webhooks, 一推送代码到 GitHub 就触发拉取最新代码并 hexo g 生成博客,然后 nginx 指向的静态代码目录中就是最新的博客html了。
参考笔记 Git-WebHooks钩子


更换电脑后需要做的

以下都是Windows环境

安装git

从Git官网https://git-scm.com/downloads 或 msysgit(Git for Windows) http://gitforwindows.org/ 下载并安装Git for Windows。安装后就有了Git Bash命令行工具。

安装Node.js

Windows 系统:
从 Node.js 官网 https://nodejs.org/en/ 下载并安装 Windows 版。
安装 Node.js 之后 Git Bash 中就有了 npm 命令。如果公司内访问外网需要配代理则给 npm 设置代理。
Mac 系统:
brew install node
安装 nodejs 时会自动安装包管理工具 npm,安装完后执行 npm -vnode -v 能看到各自的版本号就说明安装成功。

ssh公钥私钥配置

生成 Github 的 ssh 公钥私钥对,把公钥填入对应网站页面,配置 ~/.ssh/config,指定不同 host 所使用的密钥。

从Coding上clone博客源码到本地

假设本地已安装了 git 和 node.js,也已经有了 npm 环境,方法如前述。
从 GitHub 上克隆博客源码到本地 hexo 目录:

  • 使用ssh方式
    git clone git@github.com:masikkk/hexo.git

推荐使用ssh方式,可配合ssh密钥免密访问,不用每次输入密码

  • 使用https方式
    git clone https://github.com/masikkk/hexo.git
    如果使用https方式,由于我的博客源码备份项目是私有项目,clone时需要输入账号和密码。

安装hexo环境

然后进入 hexo 目录,依次执行下面命令:
npm install -g hexo-cli,安装hexo最新版
npm install,根据 package.json 安装依赖,因为 .gitignore 文件中配置了将 node_modules/ 文件夹忽略,所以之前安装的插件并不会备份到远程 Git 仓库,但是我们备份了 package.json 文件,直接使用 npm install 可以根据 dependencies 配置安装所有的依赖包。
注:不需要单独安装 hexo-deployer-git,已经添加在 package.json 中,npm install 就一起安装了。

注意不需要执行 hexo init 指令,因为 hexo 需要的文件目录我们已经有了,如果执行 hexo init 会将已有文件覆盖掉。


上一篇 2020年运动记录

下一篇 AWS Lightsail CentOS7 使用记录

阅读
评论
1,623
阅读预计6分钟
创建日期 2019-12-23
修改日期 2019-12-24
类别
标签

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论