avatar

使用hexo+nodejs+github搭建博客教程

前言

我个人用了差不多一天的时间,搭建出来hexo+nodejs+github的个人博客网站,其中出现了无次数的错误和坑.但也在我的坚持下,不断的百度,思考和请教别人终于完成了。
其中也有过无次数的想放弃,但是我都坚持下来了。接下来为许多新手提供一个教程,不管你在后面遇到了什么困难都希望你能够坚持下来。

为什么要写博客

  • 整合自己阶段性学习成果
  • 加深对某个技术点的理解
  • 纸上得来终觉浅,知识与技能只有经过自己双手的验证才可以加深理解,输出则有利于巩固记忆。
  • 建立自己的知识体系和知识清单
  • 获得阅读量,坚持的动力
  • 供小伙伴参考
  • 结交志同道合的朋友
  • 培养自己坚持做一件事的能力
  • 不要为了写博客而写博客

怎么写博客(自我要求,原则)

  • 敬畏之心
    如果文章是引用,务必标明出处,注明参考。

  • 可复现
    亲力亲为得到验证的东西才可以拿出来分享,这是对自己负责,也是对别人负责。别人拿自己的文章作为参考,花费时间阅读文章,若无法解决读者的问题,作者无异于在“耍流氓”!

  • Markdown
    写博客很方便

写什么

  • 初学者的博客没技术含量?
    写博客的主要目的是在输出的过程中提升自己,作为知识备忘录。不必太在意别人的看法,只要对自己的学习有着积极作用就木有问题。

  • 入门系列
    备忘录、笔记、基础理解、踩坑记录。

  • 实战系列
    环境搭建、操作记录。

安装相应软件

安装git

一 .Git是目前世界上最先进的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。也就是用来管理你的hexo博客文章,上传到GitHub的工具。Git非常强大,我觉得建议每个人都去了解一下。
二 .windows:到git官网上下载, download git,下载后会有一个Git Bash的命令行工具,以后就用这个工具来使用git.git教程
三 .安装好后,用git –version 来查看一下版本

安装nodejs

一 .Hexo是基于nodeJS编写的,所以需要安装一下nodeJs和里面的npm工具。
二 .windows:nodejs下载选择LTS版本就行了。
三 .安装完后,打开命令行输入如下命令

node -v
npm -v

四 .检查一下有没有安装成功,顺便说一下,windows在git安装完后,就可以直接使用git bash来敲命令行了,不用自带的cmd,cmd有点难用。
五 .配置一下环境变量,请查看目录2.3 的第八条内容

安装hexo

一 .先创建一个文件夹blog,然后cd到这个文件夹下(或者在这个文件夹下直接右键git bash打开)。
二 .输入如下命令

npm install -g hexo-cli

三 .依旧用hexo -v查看一下版本,如果显示以下内容则代表成功。

四 .如果上述不显示版本号则可能出现错误,按照以下内容配置

npm config set prefix (设置全局目录)

我输入到git中的命令如下: 因为我的blog是创建在d:\陈圣文\ 下的,所以设置如下这样.

npm config set D:\陈圣文\blog

并再次安装

npm install -g hexo-cli

完成后依旧用hexo -v查看一下版本
如果出现其他错误,请自行百度。
五 .接下来初始化一下hexo

hexo init myblog

六 .这个myblog可以自己取什么名字都行,myblog会生成在blog目录中

cd myblog //进入这个myblog文件夹
npm install

七 .新建完成后,指定文件夹目录下有:

  • node_modules: 依赖包
  • public:存放生成的页面
  • scaffolds:生成文章的一些模板
  • source:用来存放你的文章
  • themes:主题
  • _config.yml: 博客的配置文件**

八 .设置如下系统环境变量

九 .输入如下命令

hexo g
hexo server

十 .打开hexo的服务,在浏览器输入localhost:4000就可以看到你生成的博客了。

github搭建个人仓库

创建仓库

  • 首先,你先要有一个GitHub账户,去注册一个吧。
  • 注册完登录后,在GitHub.com中看到一个New repository,新建仓库
  • 创建一个和你用户名相同的仓库,后面加.github.io,只有这样,将来要部署到GitHub page的时候,才会被识别,也就是xxxx.github.io,其中xxx就是你注册GitHub的用户名。我这里是已经建过了。
  • 点击create repository。

生成SSH添加到GitHub

git config --global user.name "yourname"
git config --global user.email "youremail"

这里的yourname输入你的GitHub用户名,youremail输入你GitHub的邮箱。这样GitHub才能知道你是不是对应它的账户。
可以用以下两条,检查一下你有没有输对

git config user.name
git config user.email

然后创建SSH,一路回车

ssh-keygen -t rsa -C "youremail"

这个时候它会告诉你已经生成了.ssh的文件夹。在你的电脑中找到这个文件夹。
例如我的.ssh文件夹在这个文件夹下

C:\Users\行路\.ssh

ssh,就是一个秘钥,其中,id_rsa是你电脑的私人密钥,不能给别人看。id_rsa.pub是公共秘钥,可以随便给别人看。把这个公钥放在GitHub上,这样当你链接GitHub自己的账户时,它就会根据公钥匹配你的私钥,当能够相互匹配时,才能够顺利的通过git上传你的文件到GitHub上。
而后在GitHub的setting中,找到SSH keys的设置选项,点击New SSH key
把你的id_rsa.pub里面的信息复制进去。

在gitbash中,查看是否成功

ssh -T git@github.com

将hexo部署到GitHub

hexo和GitHub关联起来

将hexo生成的文章部署到GitHub上,打开myblog下的(即站点配置文件)文件 _config.yml,翻到最后,修改为
YourgithubName就是你的GitHub账户

deploy:
  type: git
  repo: https://github.com/YourgithubName/YourgithubName.github.io.git
  branch: master

命令部署到GitHub

这个时候需要先安装deploy-git ,也就是部署的命令,这样你才能用命令部署到GitHub。

npm install hexo-deployer-git --save
hexo clean #清除本地myblog下的public文件夹下内容
hexo generate #再次生成 public下的内容(包含首页的html)
hexo deploy #上传到github上

其中 hexo clean清除了你之前生成的东西,也可以不加。
hexo generate 顾名思义,生成静态文章,可以用 hexo g缩写
hexo deploy 部署文章,可以用hexo d缩写
注意deploy时可能要你输入username和password。
过一会儿就可以在http://yourname.github.io 这个网站看到你的博客了!!如果看到正确的页面显示就代表部署成功。

设置个人域名

现在你的个人网站的地址是yourname.github.io,如果觉得这个网址逼格不太够,这就需要你设置个人域名了。但是需要花钱。一下是我设置个人域名的步骤,可以设置,也可以不设置。

购买域名

关于域名的购买我比较推荐去godaddy,这是国外的域名商,可以使用支付宝购买,不需要备案,使用起来不错的。我的域名 www.todcsw.site 就是在这里买的

绑定域名

在你的博客的 sources 目录下新建一个 CNAME 文件,这个文件里面就写你的域名就可以了,比如我就写: www.todcsw.site。 接着将文件push到你的GitHub上,可以使用 hexo d 命令。

在你的域名商后台进行 DNS 解析添加两条记录:

根据具图片指示



第一个A记录的值的ip地址是通过ping 自己的todcsw.github.io这个地址得到的
第二个CNAME记录值就是todcsw.github.io(填写你自己的)

GitHub 设置域名

在你的 GitHub 设置域名,在你的 GitHub 博客项目中点击 Settings,在 GitHub Pages 下的 Custom domain 写上你的域名,然后 save。

域名设置完毕

至此,你已经搭建好了自己的博客,托管你的网站到 GitHub 了,也绑定了你自己的域名了,那么这时候你的网站就可以被全世界的人看到了。

hexo的基本配置

下载主题

在文件根目录(myblog)下的_config.yml,就是整个hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述.
点击官网选择合适主题进入以后点击主题,然后进入到该主题,该主题的博主在里面提供一个github下载地址(自己找一下地方,因为每一个主题放置下载地址位置不一样)。进入到github下载,点击下载或者clone
如果自己觉得下载慢,可以转到码云上下载,具体方法自己百度。主题的文件夹下内容如下

更换主题

下载完以后将下载后的文件夹拷贝到 (以我自己举例)myblog\themes\下
然后进入到myblog下的_config.yml下,更改如下

theme: butterfly #(butterfly把这个更改为自己下载的主题文件夹名字)

Hexo更改主题后启动服务器,

hexo clean 
hexo g #在本地生成
hexo d #上传到github上去
#然后访问xxx.github.io 可以看到自己的博客了xxx是自己的github账户的名称

如果界面显如下字符:

extends includes/layout.pug block content include includes/recent-posts.pug include includes/partial

执行如下命令

npm install --save hexo-renderer-jade hexo-generator-feed hexo-generator-sitemap hexo-browsersync hexo-generator-archive
#然后再执行后查看
hexo clean
hexo g #在本地生成
hexo d #上传到github上去

修改博客名称

更改myblog下的_config.yml,更改如下,按照我的配置更改自己的

博客的基本配置

站点配置文件_config.yml是hexo工作目录下的主配置文件(还不知道在哪里的自己重新看上面,这是博客下的)
以我自己主题为例butterfly.yml是Butterfly的配置文件,它需要你将主题下的_config.yml(主题下的,看清楚)文件 复制到工作目录下(myblog)下的source/_data/butterfly.yml,如果文件或者文件夹,不存在,自己创建。(言简意赅的意思就是把主题下的_config.yml,复制到上述的文件夹,重命名为butterfly.yml)

更改菜单栏

butterfly.yml下,当然我觉得如果没有配置这个文件夹,在主题下的_config.yml文件下更改也是没有问题的
如果自己不了解yml的文件格式,自行百度。更改butterfly.yml如下内容

{% menu: 首页: / || fa fa-home 时间轴: /archives/ || fa fa-archive 标签: /tags/ || fa fa-tags 目录: /categories/ || fa fa-folder-open 友情链接: /link/ || fa fa-link 关于: /about/ || fa fa-heart 清单||fa fa-list: - 音乐 || /music/ || fa fa-music - 电影 || /movies/ || fa fa-film - 照片 || /gallery/ || fa fa-picture-o %}

新建与菜单匹配的页面

在myblog中右键(Git bash here) (记住以后部署到github上也是在这个地方git bash here)
输入

hexo new page tags

你会找到source/tags/index.md这个文件
修改这个文件如下

---
title: 标签
date: 2020-04-03 09:45:22
type: "tags"
---

以此类推

hexo new page categories
hexo new page link
hexo new page about
hexo new page music #等,仿照上面的去修改生成的文件,如果运行到网页出现乱码,将这些生成的.md文件编码格式保存为utf-8

查看blog

在本地查看

hexo s --debugger
#然后在网页中访问localhost:4000
#可以看到自己的blog,如果访问不了自行百度

部署到github上查看

hexo g #在本地生成
hexo d #上传到github上去
#其实上面已经介绍到了这些命令,期间可能会让你输入自己的github账号和密码

然后访问xxx.github.io 可以看到自己的博客了xxx是自己的github账户的名称

主题的具体样式配置

主题的具体配置我就不一一列举了
详情请访问以我这个主题为例写的说明文档,如果想配置的好看点,请仔细查看
说明文档
这是这个主题创建者的博客
这里是整个hexo 的说明文档
里面接收了怎样 使用 操作 部署

写博客

创建

hexo new [layout] <title>

#layout默认是post直接发布
#会在source/_posts下生成一个<title>.md命名的博客,采用markdown的语法写作

写作

以我的为一个小小的例子

发布

本地先查看

hexo s --debugger

访问localhost:4000在本地查看,如果再本地写的博客,没有目录,发布到github上访问会显示目录的。

发布到github上

hexo g
hexo d

访问自己的xxx.github.io即可,别人访问的就是这个

文章作者: Todcsw
文章链接: https://todcsw.github.io/2020/04/03/%E4%BD%BF%E7%94%A8hexo-nodejs-github%E6%90%AD%E5%BB%BA%E5%8D%9A%E5%AE%A2%E6%95%99%E7%A8%8B/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 行路のblog
打赏
  • 微信
    微信
  • 支付宝
    支付宝

评论