hexo博客安装与配置步骤
GitHub+Hexo 搭建个人网站详细教程。随着互联网浪潮的翻腾,国内外涌现出越来越多优秀的社交网站让用户分享信息更加便捷。然后,如果你是一个不甘寂寞的程序猿(媛),是否也想要搭建一个属于自己的个人网站,如果你曾经或者现在正有这样的想法,请跟随这篇文章发挥你的Geek精神,让你快速拥有自己的博客网站,写文章记录生活,享受这种从0到1的过程。
1.安装Git nodejs
先在桌面建个blog的文件夹
开始菜单右键运行 CMD(文件夹右键在此处打开命令窗口无效) 输入d: 进入D盘 再 cd 文档 cd桌面 cd blog 或者cd 文档/桌面/blog
改变hexo镜像包地址
npm install -g cnpm --registry=https://registry.npm.taobao.org
2.安装hexo
cnpm install hexo-cli -g
查看版本信息 新机安装迁移 到这里就可以了能显示hexo v就可以了 直接hexo s
hexo -v
初始化hexo程序
hexo init
启动本地hexo
hexo s
桌面本地http://localhost:4000
3.GIT和github关联
鼠标右击打开Git Bash here 设置user.name和user.email配置信息:
git config --global user.name "loveyouluobin"
git config --global user.email "loveyouluobin@qq.com"
ssh-keygen -t rsa -C "loveyouluobin@qq.com"
然后直接三个回车即可,默认不需要设置密码
生成了ssh密钥文件:
然后找到生成的(/c/Users/Administrator/.ssh的文件夹中的id_rsa.pub密钥,将内容全部复制
打开 GitHub_Settings_keys 页面,新建new SSH Key
Title为标题,任意填即可,将刚刚复制的id_rsa.pub内容粘贴进去,最后点击Add SSH key。
在Git Bash中检测GitHub公钥设置是否成功,输入
ssh git@github.com
PTY allocation request failed on channel 0 则成功
如没有建仓库,新建仓库时一定要是loveyouluobin.github.io
如果没有加后面的github.io不能以默认域名访问
设置主页目录Source
Your GitHub Pages site is currently being built from the main
branch.
Learn more
.
设置为main root 然后保存Save
https://loveyouluobin.github.io/
4.推送到github
将hexo和GitHub关联起来,修改D:\文档\桌面\blog配置文件_config.yml
repository地址在仓库里复制ssh里的地址
deploy:
type: git
repo: git@github.com:loveyouluobin/loveyouluobin.github.io.git
branch: main
或者
deploy:
type: git
repo: https://github.com/loveyouluobin/loveyouluobin.github.io.git
branch: main
CMD里安装deploy-git部署命令
npm install hexo-deployer-git --save
清除之前生成的东西 生成静态文章 部署文章到github 分开运行
hexo clean
hexo g
hexo d
设置next主题
1下载主题
next主题是hexo的一个著名的第三方主题,在hexo博客源码目录右键打开Git bash here,使用以下命令下载next主题:
git clone git@github.com:theme-next/hexo-theme-next.git themes/next
或者直接 点此 处下载ZIP包解压到themes
2设置主题
打开hexo源码根目录下的_config.yml文件,修改相应部分为以下内容:
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: next
清除 Hexo 的缓存
3发布
hexo clean
hexo s
4部署到hithub
npm install hexo-deployer-git --save
报错原因是hexo在5.0之后把swig给删除了需要自己手动安装
npm i hexo-renderer-swig
这时,我们分别输入三条命令:
hexo clean
hexo g
hexo d
next主题更改
冒号后面要有一个空格 设置前面不能有空格
# Site
title: 小小罗对世界的分享
subtitle: 一生一次的生命该如何度过呢?
description: 小小罗对世界的分享
keywords: 小小罗对世界的分享
author: luobin
language: zh-CN
timezone: Asia/Shanghai
保存的时候一定要选择utf-8
hexo博客front-matter格式
title: 标题
date: 2020-02-29 16:00:00
summary: # 文章摘要
toc: true
mathjax: true
top: true
cover: true
abbrlink: 213245 # 自己可随意设置
img: 'https://img-blog.csdnimg.cn/20200309120551356.png' # 设置文章背景图,设置为外链图片,访问快
tags:
- 算法
- 计算机知识
categories:
- 算法
author: # 设置文章作者
password: # 设置密码(yml中开启相应功能)
coverImg: # 轮播图片
Front-matter 选项详解
Front-matter 选项中的所有内容均为非必填的。但我仍然建议至少填写 title 和 date 的值。
配置选项 默认值 描述
title Markdown的文件标题 文章标题
date 文件创建的时间 发布时间,强烈建议填写此选项,且最好保证全局唯一
author 根 _config.yml 中的 author 文章作者
img featureImages 中的某个值 文章特征图
top true 推荐文章(文章是否置顶),如果 top 值为 true,则会作为首页推荐文章
cover false 表示该文章是否需要加入到首页轮播封面中
coverImg 无 表示该文章在首页轮播封面需要显示的图片路径,如果没有,则默认使用文章的特色图片
password 无 文章阅读密码,如果要对文章设置阅读验证密码的话,就可以设置 password 的值,该值必须是用 SHA256 加密后的密码,防止被他人识破。前提是在主题的 config.yml 中激活了 verifyPassword 选项
toc ture 是否开启 TOC,可以针对某篇文章单独关闭 TOC 的功能。前提是在主题的 config.yml 中激活了 toc 选项
mathjax false 是否开启数学公式支持 ,本文章是否开启 mathjax,且需要在主题的 _config.yml 文件中也需要开启才行
summary 无 文章摘要,自定义的文章摘要内容,如果这个属性有值,文章卡片摘要就显示这段文字,否则程序会自动截取文章的部分内容作为摘要
categories 无 文章分类,本主题的分类表示宏观上大的分类,只建议一篇文章一个分类
tags 无 文章标签,一篇文章可以多个标签
reprintPolicy 无 文章转载规则, 可以是 cc_by, cc_by_nd, cc_by_sa, cc_by_nc, cc_by_nc_nd, cc_by_nc_sa, cc0, noreprint 或 pay 中的一个
next分类和标签正确显示
_config.ym config.yml 选择样式
# Schemes主题样式
#scheme: Muse
#scheme: Mist
scheme: Pisces
#scheme: Gemini
# Schemes打开菜单
menu:
home: / || fa fa-home
about: /about/ || fa fa-user
tags: /tags/ || fa fa-tags
categories: /categories/ || fa fa-th
archives: /archives/ || fa fa-archive
#schedule: /schedule/ || fa fa-calendar
#sitemap: /sitemap.xml || fa fa-sitemap
#commonweal: /404/ || fa fa-heartbeat
hexo根目录的source文件夹下新建一个tags和categories文件夹,然后在tags和categories文件夹里面新建一个index.md文件
---
title: "标签"
type: tags
layout: "tags"
---
---
title: "分类"
type: categories
layout: "categories"
---
关于页
hexo根目录的source文件夹下新建一个about 新建一个index.md文件
---
title: 关于
type: about
---
其它内容
文章置顶
npm install hexo-generator-index-pin-top --save
在需要置顶的文章的 Front-matter 中加上 top: true
即可实现文章置顶功能
搜索
根目录安装插件
npm install hexo-generator-search --save
在 Hexo 根目录下的 _config.yml 文件中,新增以下的配置项:
search:
path: search.xml
field: post
format: html
limit: 10000
修改主题配置文件
找到 local_search 项,将它的enable修改为true。
摘要
站点根目录\themes\next\_config.yml
搜索auto_excerpt,然后配置如下,开启摘要,设置摘要长度为150个字
# Automatically Excerpt (Not recommend).
# Use <!-- more --> in the post to control excerpt accurately.
auto_excerpt:
enable: true
length: 150
或者在文章中
description: 这是摘要
图片防盗链
主题head.ejs D:\文档\blog\themes\next\layout_partials\head\head.swig
<meta name="referrer" content="no-referrer" />
头像
# Sidebar Avatar
avatar:
# Replace the default image and set the url here.
url: /images/avatar.png
# If true, the avatar will be dispalyed in circle.
rounded: true
# If true, the avatar will be rotated with the cursor.
rotated: true
去掉文章目录标题的自动编号
toc:
enable: true
# Automatically add list number to toc.
number: false
其它设置教程
http://theme-next.iissnan.com/theme-settings.html
加密
- 在hexo目录下CMD
npm install hexo-blog-encrypt
在主题下启动/next/_config.yml
文件中添加内容
encrypt: enable:true
---
password: luobin
abstract: 输入密码访问
message: 限制访问
---
打赏
enable: true
animation: true
#comment: 如果此文章对您有价值,您可以自由打赏。
reward:
wechatpay: /images/wechatpay.jpg
alipay: /images/alipay.jpg
#paypal: /images/paypal.png
#bitcoin: /images/bitcoin.png
永久链接
安装插件
npm install hexo-abbrlink --save
执行此命令可能会不成功,提示你缺少相应的依赖 比如
babel-eslint
、mini-css-extract-plugin
、webpack-cli
… 使用npm命令安装即可,比如npm install eslint@4.x babel-eslint@8 --save-dev
配置
安装
npm install hexo-abbrlink --save
在站点配置文件
中查找代码permalink
,将其更改为:
permalink: posts/:abbrlink/ # “posts/” 可自行更换
增加
# abbrlink config
abbrlink:
alg: crc32 # 算法:crc16(default) and crc32
rep: hex # 进制:dec(default) and hex
压缩
hexo-neat使用起来非常方便,只需在站点根目录安装:CMD
npm install hexo-neat –save
卸载 npm uninstall hexo-neat –save
在站点配置文件_config.yml的末尾添加配置:
# hexo-neat
# 博文压缩
neat_enable: true
# 压缩html
neat_html:
enable: true
exclude:
# 压缩css
neat_css:
enable: true
exclude:
- '**/*.min.css'
# 压缩js
neat_js:
enable: true
mangle: true
output:
compress:
exclude:
- '**/*.min.js'
- '**/jquery.fancybox.pack.js'
- '**/index.js'
hexo g会自动压缩
去掉页脚
D:\文档\blog\themes\next\layout_partials footer.swig
<div class="copyright">
{% set copyright_year = date(null, 'YYYY') %}
{% if theme.footer.since and theme.footer.since != copyright_year %}{{ theme.footer.since }} {% endif %}
<span itemprop="copyrightYear">
<span class="with-love">
<i class="{{ theme.footer.icon.name }}"></i>
</span>
<span class="author" itemprop="copyrightHolder">{{ theme.footer.copyright or author }}</span>
音频
- 安装所依赖的插件, GitHub 地址 :
npm install --no-optional --save hexo-tag-aplayer
- 在
MD
的文章中插入如下代码即可,若想禁用自动播放,请去掉autoplay
标签:
{% aplayer "{{音频名称}}" "{{音频作者}}" "{{音频链接}}" "{{音频缩略图}}" "autoplay" %}
视频
- 安装所依赖的插件, GitHub 地址 :
npm install --no-optional --save hexo-tag-dplayer
- 在
MD
的文章中插入如下代码即可,若想禁用自动播放,请去掉autoplay
标签:
{% dplayer "url={{视频链接}}" "pic={{视频缩略图}}" "theme=#FADFA3" "autoplay=false" %}
hexo-all-minifier压缩使用
这款工具它兼顾了hexo-neat的易用性,和gulp的功能。
安装 cnpm install hexo-all-minifier –save
配置 在根目录_config.yml里添加:
all_minifier: true
取消动画
主题_config.yml将motion
下的enable
参数设置为false
即可关闭页面动画
motion:
enable: false
友链社交图标
# Blog rolls
links_icon: link # 友链的图标 参考上文
links_title: Links # 友链的title 比如你可以更改为 友情链接
#links_layout: inline # 友链摆放的样式:按线摆放(一行很多个),注意,同时只能一种样式
links:
谷歌: http://www.google.com/ # 友链的地址
social:
#GitHub: https://github.com/loveyouluobin || fab fa-github
E-Mail: mailto:loveyouluobin@qq.com || fa fa-envelope
#Weibo: https://weibo.com/loveyouluobin || fab fa-weibo
#CSDN: https://blog.csdn.net/loveyouluobin || crosshairs
QQ: tencent://message/?uin=304967823 || fab fa-qq
本地后台管理
npm install hexo-admin –save
http://localhost:4000/admin
在hexo的“_config.yml
”文件中还可以配置一些hexo-admin插件的参数,用于保证安全的。如果是部署到GitHub pages上的话就没必要设置这个,因为GitHub只支持静态,而且hexo-admin的管理界面并不会一起被部署上去。
admin:
username: 用户名
password_hash: md5密码
secret: 用于加密cookie的密码
“_config.yml
”的参数可以使用hexo-admin自动生成,打开hexo-admin界面,点击导航的“settings”选项,输入内容。
输入内容后下滑,找到生成的代码,复制到“_config.yml
”中重启hexo,打来hexo-admin的界面
重装hexo
安装Hexo
git bash 上 输入 npm install hexo-cli -g
或cnpm install hexo-cli -g
删掉原blog文件夹部分文件
打开你原有的 blog文件夹,只需保留_config.yml,theme/,source/,scaffolds/,package.json,.gitignore 这些项目,删除其他的文件。
安装依赖文件
git bash 上 输入 npm install
失败就用 cnpm install
安装部署插件
git bash 上 输入 npm install hexo-deployer-git --save
最后 运行 hexo clean && hexo g && hexo d 看看是否成功。
升级
1.自动更新
使用cd命令进入博客根目录
cnpm update
2手动更新
使用cd命令进入博客根目录
常规操作,不做解释
检查插件更新
npm outdated
运行后可以检查Hexo和插件的最新版本
修改根目录的package.json
文件,将对应插件名称所对应的版本号更改为要更新的版本号
npm install –save
1、全局升级hexo-cli,先hexo v查看当前版本,然后cnpm i hexo-cli -g,再次hexo v查看是否升级成功。
2、使用copy install -g npm-check和npm-check,检查系统中的插件是否有升级的,可以看到自己前面都安装了那些插件
3、使用cnpm install -g npm-upgrade和npm-upgrade,升级系统中的插件
4、使用cnpm update -g和cnpm update –save
————————————————
升级亲测有效
# 使用淘宝源的 cnpm 替换 npm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install -g cnpm # 升级 npm
cnpm cache clean -f # 清除 npm 缓存
===更新 hexo: 进入 blog 目录,执行如下命令===
# 更新 package.json 中的 hexo 及个插件版本
cnpm install -g npm-check # 检查之前安装的插件,都有哪些是可以升级的
cnpm install -g npm-upgrade # 升级系统中的插件
npm-check
npm-upgrade
# 更新 hexo 及所有插件
cnpm update
# 确认 hexo 已经更新
hexo -v
————————————————
升级
后期需要升级的化,进入 blog 目录,先检查更新:会列出要升级的版本
$ npm outdated
修改 package.json
文件,基于 Latest
列内容更新版本号,然后更新并检查版本号:
$ npm install --save
npm install
https://www.techgrow.cn/posts/d1f06120.html
全局升级 Hexo 版本
若曾经在系统里,直接使用过 hexo
的命令,才需要执行以下升级操作
# 清理NPM缓存
$ npm cache clean -f
# 全局安装版本检测、版本升级工具
$ npm install -g npm-check
$ npm install -g npm-upgrade
# 全局检测哪些模块可以升级,这里可以根据打印的提示信息,手动安装最新版本的模块
$ npm-check -g
# 全局更新模块
$ npm update -g
# 全局安装或更新Hexo的最新版本
$ npm install --global hexo
博客升级 Hexo 版本
# 进入博客的根目录
$ cd /blog-root
# 检测Hexo哪些模块可以升级
$ npm-check
# 删除package-lock.json
# rm -rf package-lock.json
# 更新package.json
$ npm-upgrade
# 删除整个模块目录,这样可以避免很多坑
$ rm -rf node_modules
# 更新Hexo的模块
$ npm update --save
# 若出现依赖的问题,用以下命令检查一下,然后把报错的统一修复一下即可
$ npm audix
# 或者强制更新
$ npm update --save --force
由于新版的 Hexo 一般增加了不少新特性,因此需要使用新版 Hexo 默认的配置模版文件
_config.yml
,同时还需要稍微更改旧版的package.json
配置文件,否则容易出现各种兼容错误
# 进入博客的根目录
$ cd /blog-root
# 备份旧版的配置文件
$ mv _config.yml _config.yml.bak
$ mv package.json package.json.bak
$ 单独初始化全新的Hexo博客目录
$ hexo init hexo-upgrade
$ 拷贝新的配置模版文件到博客的根目录
$ cp hexo-upgrade/_config.yml /blog-root/_config.yml
$ cp hexo-upgrade/package.json /blog-root/package.json
# 最后在新的配置模版文件里,重新追加旧版的Hexo配置内容
新增菜单栏选项
1、添加新页面:hexo new page “xx” 2、在主题配置文件的menu中加上该页面 3、在zh-CN.yml文件中加上中文意思
新增草稿
1、添加草稿:hexo new draft “xx” 2、预览草稿:hexo server –draft 3、发布草稿:hexo publish draft “xx”
图片处理
1、配置文件中的post_asset_folder改成true 2、npm install hexo-asset-image –save 3、放到该文件夹下,按照md格式输入(文件名称/图片名.jpg)
搜索
1、npm install hexo-generator-searchdb –save 2、站点配置文件的扩展下添加
search:
path: search.xml
field: post
format: html
limit: 10000
3、主题配置文件下,local_search改成true即可
local_search:
enable: true
字数
1、npm install hexo-symbols-count-time –save 2、站点配置
symbols_count_time:
symbols: true
time: true
total_symbols: true
total_time: true
宠物
1、npm install –save hexo-helper-live2d 2、 live2d插件 3、安装合适的宠物npm install live2d-widget-model-wanko 4、在配置文件中添加即可
live2d:
enable: true
scriptFrom: local
pluginRootPath: live2dw/
pluginJsPath: lib/
pluginModelPath: assets/
model:
# use: live2d-widget-model-tororo
# use: live2d-widget-model-hijiki
use: live2d-widget-model-wanko
display:
position: right
width: 150
height: 300
# 水平位置
# hOffset: 0
# 垂直位置
# vOffset: -20
mobile:
show: true
点击弹爱心
1、在source->js目录下新建一个js文件为click-love.js
! function (e, t, a) {
function n() {
c(".heart{width: 10px;height: 10px;position: fixed;background: #f00;transform: rotate(45deg);-webkit-transform: rotate(45deg);-moz-transform: rotate(45deg);}.heart:after,.heart:before{content: '';width: inherit;height: inherit;background: inherit;border-radius: 50%;-webkit-border-radius: 50%;-moz-border-radius: 50%;position: fixed;}.heart:after{top: -5px;}.heart:before{left: -5px;}"), o(), r()
}
function r() {
for (var e = 0; e < d.length; e++) d[e].alpha <= 0 ? (t.body.removeChild(d[e].el), d.splice(e, 1)) : (d[e].y--, d[e].scale += .004, d[e].alpha -= .013, d[e].el.style.cssText = "left:" + d[e].x + "px;top:" + d[e].y + "px;opacity:" + d[e].alpha + ";transform:scale(" + d[e].scale + "," + d[e].scale + ") rotate(45deg);background:" + d[e].color + ";z-index:99999");
requestAnimationFrame(r)
}
function o() {
var t = "function" == typeof e.onclick && e.onclick;
e.onclick = function (e) {
t && t(), i(e)
}
}
function i(e) {
var a = t.createElement("div");
a.className = "heart", d.push({
el: a,
x: e.clientX - 5,
y: e.clientY - 5,
scale: 1,
alpha: 1,
color: s()
}), t.body.appendChild(a)
}
function c(e) {
var a = t.createElement("style");
a.type = "text/css";
try {
a.appendChild(t.createTextNode(e))
} catch (t) {
a.styleSheet.cssText = e
}
t.getElementsByTagName("head")[0].appendChild(a)
}
function s() {
return "rgb(" + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + "," + ~~(255 * Math.random()) + ")"
}
var d = [];
e.requestAnimationFrame = function () {
return e.requestAnimationFrame || e.webkitRequestAnimationFrame || e.mozRequestAnimationFrame || e.oRequestAnimationFrame || e.msRequestAnimationFrame || function (e) {
setTimeout(e, 1e3 / 60)
}
}(), n()
}(window, document);
2、在主题theme->layout->_partials->footer文件中导入该js文件即可
<script type="text/javascript" src="/js/click-love.js"></script>
新增文章处理
然后按照指示hexo n "标题"
---
title: 标题
date: 2020-10-23 18:40:49
updated: 2020-10-24 18:40:49 //更新时间
tags:
- 标签1
- 标签2 //标签
categories:
- [默认分类,其它分类] //布局
layout: //指定布局
permalink: //覆盖文章网址
comments: true //是否评论
img://特色图片
top:false//是否置顶
password:8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92
---
hexo -c g s 新增处理
之后hexo g 生成 hexo s 再启动
npm install hexo -g #安装Hexo npm update hexo -g #升级 hexo init #初始化博客
命令简写 hexo n “我的博客” == hexo new “我的博客” #新建文章 hexo g == hexo generate #生成 hexo s == hexo server #启动服务预览 hexo d == hexo deploy #部署
hexo server #Hexo会监视文件变动并自动更新,无须重启服务器 hexo server -s #静态模式 hexo server -p 5000 #更改端口 hexo server -i 192.168.1.1 #自定义 IP hexo clean #清除缓存,若是网页正常情况下可以忽略这条命令
发布到coding(已失效)
在电脑桌面右键,打开Git Bash Here,输入
则我们生成一个SSH,输入
ssh-keygen -t rsa -C "loveyouluobin@qq.com"
不设置密码的可以直接按三次回车
C:\Users\Administrator.ssh 复制id_rsa.pub到 coding SSH公钥里
在Git Bash Here 中输入
ssh -T git@git.coding.net
打开Coding新建的项目,找到这个地方,复制仓库地址
配置完,执行以下命令 hexo clean hexo g hexo d
coding里设置持续部署—>静态网站->设置OK http://sq2frl.coding-pages.com/