用Hexo搭建博客学习过程分享

Hexo介绍

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
                  ——Hexo主页https://hexo.io/zh-cn/

准备环境

1.Node.js的安装和配置

Node.js是一个Javascript运行环境(runtime environment),是一个让 JavaScript 运行在服务端的开发平台,让 JavaScript 成为与PHP、Python、Perl、Ruby等服务端语言平起平坐的脚本语言。

step1:下载
  下载地址:https://nodejs.org/zh-cn/download/,下载安装包文件。

Node.js下载界面

注:不要安装太新的或太旧的版本。

安装包文件(.msi):可以安装、修改、卸载所安装的程序
二进制文件(.zip):下载后解压即可使用

step2:安装
  在安装模式这一步,不改变默认设置(全选):

Node.js runtime 表示运行环境
npm package manager表示npm包管理器
online documentation shortcuts 在线文档快捷方式
Add to PATH添加到环境变量

step3:检验是否安装成功:
  1.查看 计算机-属性-高级系统设置-环境变量-path-编辑 ,可以看到node程序已经被加入全局变量。

node已加入全局变量

  2.打开命令行工具,输入node --version,可以看到node.js的版本。

2.安装Git

step1:下载
  官网下载地址:https://git-scm.com/downloads(但是下载速度非常非常慢,不建议……,下面会提供两个更快速的下载网址)

git下载界面

git下载网址1:http://apache.soxinyang.com/#/down/adb546cc9830db6735ce4c0b9d2ec133
git下载网址2:
https://npm.taobao.org/mirrors/git-for-windows/
step2:安装
  按照提示安装。
修改Git Bash的默认启动路径的方法:https://blog.csdn.net/engineerxin/article/details/81041846

3.安装Hexo

(后来发现以下步骤中我所谓的“在git bash中运行xxx指令”,事实上却都是在git cmd的界面中运行的。。。问题不大,只是在git cmd中运行指令不需要加$罢了。
Git GUI和Git CMD以及Git Bash:https://blog.csdn.net/weixin_36058293/article/details/94388387

step1:搭建Hexo环境
在Git Bash中运行命令npm install -g hexo-cli

step2:初始化hexo
在Git Bash中,进入想要存放博客内容的文件夹,依次运行hexo init myblogcd myblognpm install(myblog是我想要存放内容的文件夹名,是Hexo初始化文件的路径, 即站点目录)。

-遇到问题:在git bash中输入$hexo init myblog后运行,报错提示>$不是内部或外部命令,也不是可运行的程序或批处理文件。
原因:$ 是 Linux 下的提示符,相当于git命令行窗口的 C:\Users\Administrator>
解决方法:在git bash中输入指令hexo init myblog(即不加$

-遇到问题:

图片.png

原因:所安装的node版本过老,需要更新node
解决方法:下载gnvm(下载链接:https://github.com/Kenshin/gnvm),将下载好的gnvm.exe文件放到node的安装目录下(node的安装目录可以在命令行中运行where node指令获得),在命令行中运行gnvm update latest指令,然后运行gnvm use 14.2.0指令(这里的14.2.0是node的最新版本号,这条指令用来设置node当前使用版本),至此node版本更新完成。

补充:还有一条指令gnvm install <xxxx>用来安装指定版本的node,xxxx为所要安装的node版本号)

注意:windows下不能在git bash中直接运行n stable或者n latest来更新node,因为windows下没有n模块,不支持用这些指令

附:
1.另一个用来管理node版本的工具nvmw,下载及使用链接:https://github.com/TimothyGu/nvmw
2.window下使用nvmw控制nodejs的版本:https://www.jianshu.com/p/82c5f3a39559
2.所有版本的node.js下载链接:https://nodejs.org/zh-cn/download/releases/

step3:启动服务器
在Git Bash中运行hexo server指令。
然后在浏览器中打开 http://localhost:4000 (这是你的博客网址)查看属于你的第一份快乐。
按Ctrl+C可以停止运行。

至此,hexo博客本地搭建完成。

将本地Hexo博客推送到GithubPages

(从这里开始用的是Git bash)

1.配置GitHub账户信息

首先在GitHub中注册登录,并创建一个仓库(repository),命名为<GithubName>.github.io
然后在Git bash中配置git用户名和邮箱,依次运行
git config --global user.name "你的github用户名"
git config --global user.email "注册GitHub时用的邮箱"

2.安装hexo-deployer-git插件

在Git Bash中运行命令npm install hexo-deployer-git --save

3.添加SSH key

SSH 为建立在应用层基础上的安全协议 ,利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。
ssh key让你方便的登录到 SSH 服务器,而无需输入密码。由于你无需发送你的密码到网络中,SSH 密钥对被认为是更加安全的方式。
ssh和ssh key的介绍:https://www.jianshu.com/p/1246cfdbe460

step1:创建一个ssh key
在git bash中运行命令$ ssh-keygen -t rsa -C "邮箱地址",回车三下。

step2:添加到Github
在上一步的运行结果中有一句Your public key has been saved in /c/Users/LENOVO/.ssh/id_rsa.pub,按照这句话提供的路径找到id_rsa.pub文件,用记事本打开,复制内容。
在GitHub中,点击右上角头像——settings——SSH and GPG key——New SSH key,将id_rsa.pub文件的内容粘贴进去保存。

step3:测试是否添加成功
在git bash中运行命令$ ssh -T git@github.com,对于运行中出现的Are you sure to continue connecting (yes/no)?的问题,输入yes并回车继续运行。
最后返回You've successfully authentictated即表示添加成功。

3.修改_config.yml

_config.yml文件站点目录下。文件末尾修改为

#  Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
  type: git
  repo: git@github.com:<Github账号名称>/<Github账号名称>.github.io.git
  branch: master

其中<Github账号名称>换成自己的Github账号。

4.推送到GithubPages。

在Git Bash中依次输入以下命令,

$ hexo g
$ hexo d

返回INFO Deploy done: git即成功推送。
补充:强烈建议了解一下hexo指令https://hexo.io/zh-cn/docs/commands.html
hexo s——本地预览
hexo g——根据配置文件和主题,将 root/source/_post 下的 markdown 文件生成 html 内容

hexo clean——清空 hexo g 生成的内容,内容在 root/public
hexo d——将本地生成 url 链接推送到百度,让百度爬取其中的内容进行索引

遇到问题:运行hexo d时程序报错,

图片.png

原因:node版本太新
解决方法:用gnvm安装稍旧版本的node。

遇到问题:运行hexo d时报错,

运行hexo d一直出现的问题.png

原因:github仓库的名字设置错了,设置成了username
解决方法:将仓库名设置为username.github.io

(呜呜呜呜呜呜呜,让我说让我说:今天是7.1号,这个问题我搞了半个多月,一直不明白到底是哪一步出现了问题,看了无数的网页和教程,经历了N次ssh key重置,无数次满怀希望地运行起hexo cleanhexo ghexo d,然而一次又一次的ERROR: Repository not found用不变的姿态在我头顶浇下一瓢凉过一瓢的冷水,在这个过程里我要感谢Hexo默认主题中的index.html这个网页,让在未知的黑暗中灰头土脸摸爬滚打的弱小无助的我,在颤抖着双手敲下http://localhost:4000进入这个网址时总能看到“希望”他那模糊的身影。身为一个懒惰的胖废人不仅预习到了将来可能遇到的无数error和它们的解决方法,搞明白了一直拖延的github的使用方法,甚至还学习了一些git命令,然而却是愈发像一只无头苍蝇,在找错误的错误道路上越走越远……直到今天,亲爱的党99岁生日这天,我抱着不抛弃不放弃的精神,再次打开一个又一个网页学找问题的根源,终于被

image.png

(图片来源:https://www.cnblogs.com/kiscall/p/4741097.html)这道耀眼的光透过我的眼睛直击我的心灵,使我顿时耳清目明,茅塞顿开,打通任督二脉,守得云开见月明(对不起我有点激动),总之,在颤抖着双手改完了仓库名后,我终于看到了这幅美丽的画面!


果然人都是要为自己的所作所为付出相应的代价的,我这就是因为一时的粗心大意铸成小错,结果花了百十倍的时间和精力去弥补,耽误了多少别的事情啊。
总之总之,走过路过的施主们,做事万万细心啊(双手合十,虔诚恳请.ing)

更改主题

Hexo默认的主题是landscape,可以在Hexo官网|主题页面上下载自己喜欢的主题。

我选择的是Next主题,在Next官网 http://theme-next.iissnan.com/getting-started.html有详细的使用方法。

下载完成后,更改站点目录下的配置文件-config.yml中的theme:后的内容为新主题的名称。在git bash中运行hexo cleanhexo ghexo dhexo s,即可查看更换主题后的本地博客(http://localhost:4000/
)和GithubPage上的效果(https://<username>.github.io/
)。
注意:theme:后面有一个空格,留着它。

遇到问题:运行hexo s --debug时,出现警告WARN No layout: index.html,访问http://localhost:4000,网页无显示
原因:下载主题时,指令git clone https://github.com/iissnan/hexo-theme-next themes/next时,themes/next误拼写成了theme/next。
解决方法:重新输入正确的命令运行

遇到问题:下载主题时报错error: RPC failed; curl 18 transfer closed with outstanding read data remaining
原因:网速过慢
解决方法:等网络好时再下载

遇到问题:更换主题后网站显示空白
原因:下载主题时网络不好导致下载的next主题文件夹内容不全
解决方法:重新下载主题,下载完成后next文件夹下的目录如下:


image.png

遇到问题:更换主题后,运行hexo s,报错Error: Cannot find module 'hexo-util'
原因:未安装hexo-util
解决方法:gitbash中运行指令npm install hexo-util --save

主题配置

1.更换背景
将背景图片放在主题文件夹的images文件夹里(路径如...\themes\next\source\images\background.png),打开...\themes\next\source\css\_custom目录下的custom.styl文件,添加如下代码:

body{
background:url(/images/background.png);
background-size:cover;
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}

Gitbash中运行hexo cleanhexo g,更换背景图完成。
2.静态资源压缩
在站点目录下运行$ npm install gulp -g

写作

1.执行hexo new [layout] <title>创建文章

[layout]是布局,也可以看作是模板,hexo提供了三种默认的,分别是post(文章-普通推送),page(分页-独立页面), draft(草稿),不同类型的文件将会被保存到不同的路径。如果没有设置,则默认使用 _config.yml 中的 default_layout 参数代替。post文件将储存到 source/_posts 文件夹。

[layout]也可以自定义,将自定义的模板(xxx.md文件)放在scaffolds文件夹后,可以用hexo new xxx title这样的命令来建立使用该模板文件。

2.可以在hexo中安装喜欢的渲染插件来支持自己喜欢的书写格式。默认已经安装了hexo-renderer-markedhexo-renderer-ejs。记得改拓展名!

3.front-matter区域用来指示个别文件的变量。


front-matter

有一些预先定义的参数可以用:

参数 描述 默认值
layout 布局
title 标题 文章的文件名
date 建立日期 文件建立日期
update 更新日期 文件更新日期
comments 开启文章的评论功能 true
tags 标签(不适用于分页)
categories 分类(不适用于分页)
permalink 覆盖文章地址
scheme: Pisces

遇到问题:推送的文章在本地博客上能显示,但是并没有被推送到GithubPages。
原因:
解决方法:

遇到问题:一段时间后再次运行hexo s打开本地博客,出现报错:ERROR Process failed: _posts/test.md
原因:
解决方法:

未完待续……

主要参考教程:https://www.simon96.online/2018/10/12/hexo-tutorial/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342