搭建个人博客


简言

Hexo是一个极速、简单且强大的静态博客架构。它使用 Node.js作为构建引擎,上百个文件在几秒钟内便可构建完成;而且拥有着丰富的插件库,因开源而显得生机勃勃,可扩展性很好;最重要的,它支持 Markdown 作为书写语言,极大地方便了博客的撰写。
注意要规划好安装的目录,最好专门新建一个大的文件夹存放此次实践,这也是一个好的习惯!!

先展示一下效果图


逆鳞科技的部落阁

安装环境

首先,我们需要现安装一些软件来搭建博客环境。

Node.js

Node.js官网下载地址,安装过程没什么可说的,一直点下一步即可。


安装完成了!

Git

Git官网下载地址,安装过程也是没有多少需要注意的,我们一路Next即可


安装完成了!

Notepad++

Notepad++官网下载地址,这个跟前两个一样也是一路next,没有什么需要注意的,这里就不做讲解了。

VScode(与Notepad++二选一)

VScode官网下载地址

Hexo

1.创建博客安装路径,在此路径右击找到GitBash,例如我们的目录为
D:\Myblog\Blog,右击Git Bash Here
2.打开Git Bash以后输入npm install -g hexo-cli安装Hexo,
安装好以后不要关闭Git Bash,接下来还要用。

注:

如果安装过慢导致失败,可以更换淘宝的 npm 源,命令如下:

npm config set registry https://registry.npm.taobao.org

验证是否设置成功:

npm config get registry

如果返回如下结果则设置成功:

https://registry.npm.taobao.org/

资源准备

注册GitHub

1.浏览器访问GitHub官方网站

进入官网页面之后,依次填写完成用户名、邮箱和密码信息后点击Sign up for Github。
注意Username、Email和Pssword一定要记住,后边要多次使用,如果太长比较难记,建议记在记事本上。
2.注册完登录之后,先选中Unlimited public repositories for free(默认是选中的),再点击Continue即可。

接下来,直接点击skip this step

3.然后如下图所示,先点击头像右边向下的小箭头,再选择Your profile。

然后先点击右上角的“+”,再点击New repository。

这时会验证你的邮箱,将收到的6位码填入,邮箱通过验证之后,这里需要就要输入新建仓库的信息
这里我们输入仓库名,它的写法是这样的,可不要任性去随意定义,就是username.github.io。这里我可吃了亏,否则是会失败的。其他的内容不需要操作,默认的public即可。

例如:
username:WangGang-a1
对应的仓库名就是:WangGang-a1.github.io


恭喜!您注册完成并创建了GitHub个人博客的仓库。

关于Github的使用在这里咱们详细讲解了,如果有想要了解的可以自行百度相关教程

注册Coding

为什么使用coding而不使用码云(gitee)呢?因为码云的的自定义域名要钱啊,身为学生的我还是退而求其次的选择了coding,而且现在coding对个人博客还是很友好的。

1.浏览器访问Coding官方网站

进入官网页面之后,我们点击登陆,使用微信登陆即可,跟腾讯云账号是有链接的。

2.建立仓库
依次点击项目,创建项目,选择代码托管项目
注意: 项目名称与你的用户名相同而且项目需要选择开源(公开),不能建立私人仓库。

环境搭建

Git配置SSH

1.安装完Git之后,我们需要使用SSH将本地Git项目与远程的GitHub建立联系。
Git安装之后会生成两个版本(Git Bash和Git Bash),我们使用的是Git Bash

点击Git Bash,依次输入以下代码:

git config --global user.name "Your Username"   #Your Username为你的用户名(Github)
git config --global user.email "Your Email Address"   #Your Email Address为你的邮箱地址(Github)

注意这里Your Username和Your Email Address必须正确。因为使用仓库前,要通过这两项标明自己的身份。

2.继续输入以下命令:

cd ~/.ssh
ssh-keygen -t rsa -C "Your Email Address"

输入cd ~/.ssh后,提示:No such file or directory, 说明第一次使用Git,对结果无影响。
代码说明:
cd ~/.ssh用来检查本机的ssh密钥,ssh-keygen -t rsa -C “Your Email Address”用于生成新的SSH Key。
执行命令之后,会出现下面内容:

Generating public/private rsa key pair.
Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa):

出现该结果直接回车(也可以自定义key名称,一般默认就好)
会出现输入密码
Enter passphrase (empty for no passphrase):【输入加密串】【加密串我们看不见,你直接输入就好,输完密码回车键确定】
Enter same passphrase again:【再次输入加密串】
如果密码输入不一致,会提示再次输入:
Passphrases do not match. Try again.
这个密码会在你提交项目时使用,如果为空的话提交项目时则不用输入。
如果出现下图的界面,就说明key生成成功。同时从Your public key has been saved in /c/Users/User/.ssh/id_rsa.pub.能看到ssh key保存的位置。

添加 SSH Key 到 GitHub

1.回到Github,按照顺序点击右上角的头像-Settings-SSH and GPG keys -New SSH key

2.然后使用Notepad++打开本地id_rsa.pub(你的key名称)文件(ssh key文件)。如果看不到这个文件,则没有开启查看隐藏文件权限。将id_rsa.pub(SSH key文件)里面的内容全选复制粘贴到刚刚GitHub上通过New SSH key创建的key方框里,Title随便写或者直接空着不写也可以,直接点击Add SHH key就好了。


3.在GitHub添加SSH key之后,回到Git Bash界面输入ssh -T git@github.com查看是否添加成功,如果出现下图的问题,直接输入yes同意即可!

The authenticity of host 'github.com (192.30.255.113)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8. 
Are you sure you want to continue connecting (yes/no)? 
输入yes之后输入我们项目的密码 
nter passphrase for key '/c/Users/User/.ssh/id_rsa':【这里的密码也是加密串】 

4、出现如下提示时,就是成功了。

Hi HandsomeSuperRed! You've successfully authenticated, but GitHub does not provide shell access.

添加 SSH Key 到 Coding

这一步骤跟GitHub差不多所以我就直接跳过密钥获取教程了
1、我们依次点击右上方头像-个人账号设置进入账号设置界面
2、个人设置界面依次点击SSH公钥-新建公钥 然后随便输入一个公钥名称之后将我们的公钥复制进内容里面(跟GitHub的一样一个电脑使用一个公钥即可)


博客搭建

Hexo部署

1.安装好hexo之后,执行下面三条命令进行初始化:

hexo init #初始化hexo(是你要保存博客内容的文件夹的名字。)
cd #进入此目录
npm install #安装

例如我想把博客保存在Hexo目录,上面三条代码就为:

hexo init Hexo
cd Hexo
npm install

执行命令的界面所示:

2.三条命令执行过后,Hexo的目录就添加了很多内容,而_config.yml文件是我们用次数会比较多,它是博客的一个全局配置文件。

3.Hexo初始化之后,我们执行下面三条命令对博客进行部署,同时开启本地服务

hexo generate
hexo deploy 
hexo server

效果:



4.然后系统会出现如下提示:

INFO Start processing

INFO Hexo is running at http://localhost:4000/. Press Ctrl+C to stop.

我们使用浏览器访问,发现Hexo在本地已经部署好了!
http://localhost:4000/

将博客双线部署至Github、coding

1.找到我们上面说的Hexo的全局配置文件

使用Notepad++进行编辑,将deploy一项修改成如图所示:

deploy:
type: git
message: “”
repo:
github: git@github.com:WangGang-a1/WangGang-a1.github.io.git,master

coding: git@e.coding.net:nilinkeji/nilinkeji/nilinkeji.git,master


注意:repo需要更改为自己的地址,获取方式如下图,将其复制type后面即可。另外,冒号后面一定要加空格,否则部署会失败

2.更改完之后保存,我们就可以使用hexo命令发布到仓库中了:

hexo c
hexo g
hexo d

如果出现下面的提示恭喜你成功了!

3.这样就部署到 GitHub、coding 上了,可到GitHub、coding仓库查看是否更新。


4.GitHub部署成功之后,https://XXXX.github.io/ (只要将一级域名更改成你的账户名即可!) 这个地址就是我们的博客域名了,它可以用来访问你的博客,当然如果你也可以将它修改成自己的域名。
推荐一个可以获取免费域名的网站:freenom

5.Coding仓库同步之后我们依次点击持续部署-静态网站开通Coding Page然后按照提示进行即可,部署成功后会免费提供给你一个域名(后续与GitHub类似就不做过多讲解了)

博客主题

前面我们已经搭建好了自己的个人博客界面,这里我们深入学习一下hexo框架,首先我们修改一下hexo的主题,一个优美的博客主题往往会使你收到更多的流量,当然更多的是自己看着舒心。
这里我使用的是matery主题,当然也可以从Hexo主题中心选择自己喜欢的主题,下面我就以我使用的主题来进行讲解:

下载第三方主题

首先我们进入hexo-matery主题的GitHub仓库

如图所示页面下滑找到Download主题,复制命令:

git clone https://github.com/blinkfox/hexo-theme-matery.git

复制完成后我们再来到我们的博客的本地目录的themes文件夹下,使用Git Bash命令行工具下载 matery主题 (注意:这里我安装过来,所以在themes下又新建了一个文件夹来下载,你们应该下载themes文件夹里)


恭喜!你成功下载了matery主题

更换主题

上一步我们下载完了第三方主题,下面我们将hexo默认主题更换为我们下载的第三方主题
首先我们进入博客的本地目录,使用Notepad++打开_config.yml文件进行修改。

按住Ctrl+F键搜索 theme 将theme: xxx 的xxx替换成你的主题名称。(例如我的主题是matery我的这里就应该是 theme: matery

注意:这里的冒号应该是英文的,而且:后面应该有一个空格,否则可能造成博客崩溃!!!


到这里我们的博客主题就已经安装成功了。

博客背景、菜单栏等修改

博客背景、菜单栏等根据各主页的不同修改方式不同,具体请参照主题的GitHub仓库的官方文档修改.例如我的主题是matery,那么我的就去GitHub上搜索matery就可以进入主题仓库,根据文档修改即可,这里也就不做演示了。

编写博客

新建博客文件

在博客存放路径下使用Git Bash命令行工具输入以下命令:

hexo new "****"

将引号里面的***替换为你想要建立的博客文件的名称,下面我以love为名称作为演示:



这样就是建立完成了,它会自动生成一个love.md文件和一个love文件夹(如果没有这个文件夹就是图片插件有点问题)

love.md文件就是你的页面文件,编写博客内容都是在这里面编写,而love文件夹是用来存放引用的文件的,例如视频,图片之类的。

编写博客文件

使用Notepad++打开love.md文件,对博客文件进行编写

由于Hexo使用的是markdown语法,所以下面我们来介绍以下markdown语法用法

Markdown语法

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。 –摘自百度百科

标题

代码:

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 最小只有六级标题

效果:
会破坏博客目录,不予展示。

加粗

代码:

**加粗效果**

效果:
加粗测试

斜体

代码:

*斜体效果*

效果:
斜体效果

高亮

代码:

==高亮效果==

效果:
主题原因不予展示(matery替换了原生的高亮代码)

上标、下标

该段与word用法一致

代码引用(>式)

代码:

>引用效果

效果:

引用效果

代码引用(```式)

代码

# 不要复制这一句话,并且去掉下面的反斜杠!!!
\`\`\`bash
hello word!
\`\`\`

效果

hello word!

插入链接(显示)

代码

https://blog.qltxy.cn/

效果
https://blog.qltxy.cn/

插入链接(隐藏)

代码

[逆鳞科技的部落阁](https://blog.qltxy.cn/)

效果
逆鳞科技的部落阁

分割线

代码

---

效果
由于主题原因会破坏结构不予展示(就是一条线,一般用不到)

有序列表

代码

1. one
2. two 
3. three

效果

  1. one
  2. two
  3. three

无序列表

代码

* one
* two
* three

效果

  • one
  • two
  • three

表格

(第二行必须得有,并且第二行的冒号代表对齐格式,分别为居中;右对齐;左对齐)
代码

name | age | sex 
:-:|:-|-:
wda|25|男
dwd|6|女

效果
name | age | sex
:-:|:-|-:
wda|25|男
dwd|6|女

数学公式(行内嵌)

代码

内嵌数学公式$\sum_{i=1}^{10}f(i)\,\,\text{thanks}$

效果
内嵌数学公式$\sum_{i=1}^{10}f(i),,\text{thanks}$

数学公式(块状)

$$
\sum_{i=1}^{10}f(i)\,\,\text{thanks}
$$

效果
$$
\sum_{i=1}^{10}f(i),,\text{thanks}
$$

插入图片

安装插件

在hexo根目录打开Git Bash,执行以下代码

npm install hexo-asset-image --save
配置文件

打开hexo的全局配置文件_config.yml
查找 post_asset_folder选项,然后把false改成true

修改文件

在hexo目录下找到/node_modules/hexo-asset-image/index.js文件
用N++打开该文件,并将以下内容替换到该文件中:(该内容由Ericam_ 大神提供:https://blog.csdn.net/xjm850552586)

'use strict';
var cheerio = require('cheerio');

// http://stackoverflow.com/questions/14480345/how-to-get-the-nth-occurrence-in-a-string
function getPosition(str, m, i) {
  return str.split(m, i).join(m).length;
}

var version = String(hexo.version).split('.');
hexo.extend.filter.register('after_post_render', function(data){
  var config = hexo.config;
  if(config.post_asset_folder){
        var link = data.permalink;
    if(version.length > 0 && Number(version[0]) == 3)
       var beginPos = getPosition(link, '/', 1) + 1;
    else
       var beginPos = getPosition(link, '/', 3) + 1;
    // In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html".
    var endPos = link.lastIndexOf('/') + 1;
    link = link.substring(beginPos, endPos);

    var toprocess = ['excerpt', 'more', 'content'];
    for(var i = 0; i < toprocess.length; i++){
      var key = toprocess[i];
 
      var $ = cheerio.load(data[key], {
        ignoreWhitespace: false,
        xmlMode: false,
        lowerCaseTags: false,
        decodeEntities: false
      });

      $('img').each(function(){
        if ($(this).attr('src')){
            // For windows style path, we replace '\' to '/'.
            var src = $(this).attr('src').replace('\\', '/');
            if(!/http[s]*.*|\/\/.*/.test(src) &&
               !/^\s*\//.test(src)) {
              // For "about" page, the first part of "src" can't be removed.
              // In addition, to support multi-level local directory.
              var linkArray = link.split('/').filter(function(elem){
                return elem != '';
              });
              var srcArray = src.split('/').filter(function(elem){
                return elem != '' && elem != '.';
              });
              if(srcArray.length > 1)
                srcArray.shift();
              src = srcArray.join('/');
              $(this).attr('src', config.root + link + src);
              console.info&&console.info("update link as:-->"+config.root + link + src);
            }
        }else{
            console.info&&console.info("no src attr, skipped...");
            console.info&&console.info($(this));
        }
      });
      data[key] = $.html();
    }
  }
});
插入图片

现在就可以插入图片了,比如hexo new “love”之后
就在source/_posts生成love.md文件和love文件夹,我们把要插入的图片复制到love文件夹内,
在love.md文件里面按markdown的标准写,(我的文件名是moban.png)

![这是代替图片的文字,随便写](head.jpeg)

例如我插入一个图片(无文字):

![](moban.png)

效果:

例如我插入一个图片(有文字):

![模板](moban.png)

效果:
模板

更换博客域名

域名准备

1、在阿里云腾讯云华为云等云服务商家购买域名,这一步就不过多讲解了
2、通过freenom获取一个免费域名,然后通过DNSPOS进行分发。

绑定域名

这里我以腾讯云为例进行讲解,首先登陆腾讯云DNS解析后台,

点击解析进入记录管理添加两行记录

主机记录建议填写blog,类型选择CNAME
github记录值填***.github.io.(***为你的GitHub昵称,例如我的昵称为WangGang-a1,我就填写WangGang-a1.github.io.)
coding的记录值需要根据coding自定义域名时显示的来填写
注意:两个域名必须相同,这样使用起来方便

GitHub仓库修改

进入你的GitHub仓库 进入Settings-GitHub Pages-Soyrce选择master
刷新一下网页进入GitHub Pages-Custom domain填入自定义的域名,例如我的是blog.qltxy.cn

Coding仓库修改

进入Coding仓库的静态网站部署(新版页面为网站托管)

进入部署依次点击 自定义域名-新建域名

根据提示去你的域名解析里面添加,一定要与coding提供的信息完全相同,不然会出现错误。

添加完成后就可以使用自己的域名访问啦!

总结

一顿操作下来虽然有点儿累,但看见拥有了私人博客还是非常有成就感的,人生嘛,不就是需要折腾,实践才能增长知识,我相信在不久的将来,你会从中受益良多!


文章作者: 逆鳞
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 逆鳞 !
评论
  目录