利用Github和hexo搭建个人免费博客详细过程:
概述:
详细的介绍了利用github和hexo搭建免费的博客,内容详细,浅显易懂,容易上手,大家一起进来看看吧!
1、配置Github相关操作:
①新建一个仓库,点击【New】
②输入自己的仓库名,注意:这里的仓库名的形式一定是username.github.io的形式,其中username是你的用户名。(像我的仓库名称就是:lures2019.github.io),并且一个账号只能拥有一个这样的仓库!(仓库名字一定要和github账户名称一样,否则后面部署失败,图是错误的!)
③搭建环境:安装node.js和git(具体安装过程谷歌搜索),安装好后打开cmd,分别输入node -v和npm -v以及git --version
,结果若是下面这样,说明环境搭建成功:
这时桌面鼠标点击右键,可以看到下面这样:git bash here表示在当前目录下运行git bash(在不同的目录下运行效果不一样,切记)
④SSH授权:
打开git bash,输入ssh-keygen -t rsa
接着按照提示进行操作(回车三下),如下所示说明创建公私钥成功,回车默认是把公钥和私钥保存在默认的路径(我们可以选择自己的路径,把路径输入即可,但是不建议这么做,否则后面会出bug):
接着运行下面的两条命令:
1 | ssh-keygen -t rsa -b 4096 -C "your_email@example.com" |
2 | ssh-add ~/.ssh/id_rsa |
这样就会在C盘用户目录下生成id_rsa和id_rsa.pub这两个文件,前者是私钥,后者是公钥,用记事本打开id_rsa.pub,复制其中的全部内容,添加到GitHub上,这样本地的id_rsa密钥就可以和GitHub上的id_rsa.pub公钥进行配对,授权成功。
⑤在github上添加SSH key:
点击右上角的头像打开setting,在SSH and GPGkey选项中点击New SSH key,把上述所说的id_rsa.pub中的内容全部复制到框框中,完成授权 :
其中SSH的存放目录是:
SSH key添加之后,就可以在本机的git bash下进行测试,输入:ssh -T git@github.com
进行测试,出现HiXXX,说明授权成功:
注意:如果出现无法登陆的情况,先把之前生成的文件懂删了以后再重新生成一下ssh,(建议使用默认目录,否则这个地方会出问题)
2、设置本地博客的设置:
①安装一个文件夹(用来安装hexo),在git bash中进入这个文件夹下(在git bash中用cd 命令进入或者在该文件夹下右击点Git bash here ,两种方法效果一样)输入npm install -g hexo
安装hexo即可(要耐心的等会),再输入npm install hexo --save
(耐心的等一会),紧接着输入 hexo v
,出现如下信息则说明安装成功:
记住:一定要在【环境变量】path下添加node-modules下的.bin目录,否则hexo v会出现错误:
②初始化hexo:
什么是初始化hexo?就相当于新建一个hexo实例,新建一个文件夹,在这个文件夹下初始化hexo,用hexo init +文件夹路径 或者在该文件夹下打开git bash 进行执行hexo init
命令,比如我在一个叫blog的文件夹初始化了hexo,则这个文件夹下就生成了一个hexo站点所包含的所以文件:
初始化成功后,在git bash中进入该目录,试行命令 hexo s
(hexo server的缩写),启动本地服务,这样可以进行本地预览,hexo可以初始化很多次,产生多个hexo站点。这里我就初始化了一个,在blog文件夹下,如果你初始化了多个hexo站点,想要启动哪个,就在哪个目录下执行hexo s
命令。执行后,如下:
根据提示,在浏览器里打开localhost:4000,如下,说明博客已经搭建成功,不过只能在本地查看,此时还没有与Github关联起来 !
③部署到Github上:
强调:两个概念
1 | 站点配置文件:初始化hexo的那个文件夹下的_config.yml文件; |
2 | 主题配置文件:theme目录下的每个主题文件夹的_config.yml文件 |
3 | (每个主题都有一个主题配置文件,但是一个站点只有一个站点配置文件) |
4 | |
5 | 打开站点配置文件先打开配置文档_config.yml,对它做如下修改,repository后面的内容是 git@gitbub.com:username/库地址 的形式 |
6 | |
7 | 注意:type、repository、branch冒号的后面都有一个空格(切记所有配置文件中冒号与值之间都有一个空格) |
(其中,repository后面的是你的仓库的地址,我的应该是lures2019/lures2019.github.io,后面已经修改了),这个在文末(需要自己添加!)
这样就配置好啦,接下来在git bash中把网站部署到github上。打开github,通过ssh登录github,即执行指令ssh -T git@github.com
,必须先登录才能部署,在本地预览的时候不需要这一步,接着执行三部曲
hexo clean
(清理缓存什么的,执行一下没坏处)
hexo g
(生成静态文件)
hexo d
(部署到github上,如果只是本地预览把这一步换为 hexo s)
这样就完成了,在浏览器里输入库地址就能访问我们在github上搭建的博客了 ,比如我的库地址如上(斜杠后面的)lures.github.io
:
注意:如果在部署时执行命令hexo d
时出现:Error Deployer not found: git
,需要执行下面的步骤:
1 | 安装hexo-deployer-git: |
2 | $ npm install hexo-deployer-git --save |
3 | 重新deploy: |
4 | $ hexo deploy |
现在可以在浏览器上搜索:lures.github.io可以查看博客了;
3、更换主题(以next主题为例):
(1)下载主题:
安装指令: 首先打开git bash进入根目录即 “ /blog/blog” 执行命令: git clone https://github.com/theme-next/hexo-theme-next themes/next
此时会从next主题的作者的github仓库克隆next主题到 我们本地的 /blog/theme/next文件夹下 :
安装完成后,打开【站点配置文件】即hexo下的_config.yml文件,找到theme字段,并将值更改为next,【Ctrl +s】进行保存:(记事本打开)
接着,依次执行下面的代码:
1 | hexo clean |
2 | hexo g |
3 | hexo d |
截图如下:
接着,咱就可以在浏览器之前的网址进行刷新了:
(next主题有四种选择,上面这个只是最简洁的一种,我选择的是Gemini布局)
(2)修改主题配置文件:
打开themes下的_config.yml文件进行修改操作:
【Ctrl+s】进行保存后,接着运行三个命令:
1 | hexo clean |
2 | hexo g |
3 | hexo d |
我就不截图了,部署成功后的网址刷新结果是:
(注意:如果刷新后发现next主题并没有变化,可能是刚开始的时候hexo下的_config.yml文件的repository后面的名字错误(我刚开始犯下的错误)
4、设置语言:
在站点配置文件【即hexo下的_config.yml】中设置语言:
5、字数统计和阅读时长(网站底部/文章内):
①首先安装插件:npm install hexo-symbols-count-time --save
文件夹中出现这个名称的目录就说明插件安装成功,如下图:
②然后修改主题配置文件【即themes下的_config.yml】
③运行之前的三个命令并刷新网址后得到截图:
出现乱码的方式是这样的,看下图:
当我们把ANSI编码换成UTF-8编码后,出现的图片是这样的:
发现全部都是乱码,我们只需要重写再写一遍,再次运行之前的三个命令并刷新网址就可以得到新的界面了:
6、添加busuanzi:统计浏览次数(本站总访问数,本站总访问量):
打开/blog/themes/next/layout/_partials/footer.swig 在文件底部添加下面的代码:
1 | <div class="powered-by"> |
2 | <i class="fa fa-user-md"></i> |
3 | <span id="busuanzi_container_site_uv"> |
4 | 本站总访客数:<span id="busuanzi_value_site_uv"></span> | |
5 | </span> |
6 | <span id="busuanzi_container_site_pv"> |
7 | 本站总访问量<span id="busuanzi_value_site_pv"></span>次 |
8 | </span> |
9 | </div> |
10 | </div> |
现在【Ctrl +s】保存并运行三条命令后刷新网址得到新的界面:
7、添加网站的安全运行时间:
打开/blog/themes/next/layout/_partials/footer.swig 在文件底部添加下面的代码:
1 | <span id="timeDate">载入天数...</span><span id="times">载入时分秒...</span> |
2 | <script> |
3 | var now = new Date(); |
4 | function createtime() { |
5 | var grt= new Date("12/08/2019 16:00:00");//此处修改你的建站时间或者网站上线时间 |
6 | now.setTime(now.getTime()+250); |
7 | days = (now - grt ) / 1000 / 60 / 60 / 24; dnum = Math.floor(days); |
8 | hours = (now - grt ) / 1000 / 60 / 60 - (24 * dnum); hnum = Math.floor(hours); |
9 | if(String(hnum).length ==1 ){hnum = "0" + hnum;} minutes = (now - grt ) / 1000 /60 - (24 * 60 * dnum) - (60 * hnum); |
10 | mnum = Math.floor(minutes); if(String(mnum).length ==1 ){mnum = "0" + mnum;} |
11 | seconds = (now - grt ) / 1000 - (24 * 60 * 60 * dnum) - (60 * 60 * hnum) - (60 * mnum); |
12 | snum = Math.round(seconds); if(String(snum).length ==1 ){snum = "0" + snum;} |
13 | document.getElementById("timeDate").innerHTML = "本站已安全运行 "+dnum+" 天 "; |
14 | document.getElementById("times").innerHTML = hnum + " 小时 " + mnum + " 分 " + snum + " 秒"; |
15 | } |
16 | setInterval("createtime()",250); |
17 | </script> |
运行三个命令并刷新网址后的截图是:
8、静态背景图片:
在下图的路径下新建一个文件夹:background:
接着,打开主题配置文件,在文末加上background_image: bg-8.jpg;
,截图如下:
(透明度暂时不知道怎么设置,QAQ,hexo6后静态背景我没找到实现办法,害得我想了好久,哭了~)
9、添加评论系统(以valine为例):
先注册leancloud账号,获取自己的appid,appkey:
(注意:class名称必须是Counter)
打开主题配置文件,修改如下:
1 | valine: |
2 | enable: true # 为true时启用评论 |
3 | appid: # 这里填写上面得到的APP ID 注意空一格再输入ID和key, |
4 | appkey: # 这里填写上面得到的APP KEY |
5 | notify: false # 邮件通知 |
6 | verify: false # 验证码 |
7 | placeholder: #评论框中预设的文字,随意填写 |
8 | avatar: mm # gravatar style 头像,采用gravatar头像,到http://cn.gravatar.com/了解 |
9 | guest_info: nick,mail,link # custom comment header 访客信息,显示在评论框上面,三者可随意选择或全选 |
10 | pageSize: 10 # pagination size 评论分页大小 |
11 | visitor: false # |
10、添加热度:
修改主题配置文件:
1 | leancloud_visitors: |
2 | enable: true |
3 | app_id: #填入你leancloud账号的appid |
4 | app_key: #填入你leancloud账号的appkey |
打开/blog/themes/next/layout/_macro/post.swig
,在画红线的区域添加℃
:
然后打开,/blog/themes/next/languages/zh-CN.yml
,将画红框的改为热度就OK了 :
11、为博客添加宠物:
①在hexo根目录下安装插件:npm install -save hexo-helper-live2d
npm install {package}
其中,{package}是替换为你要安装的宠物名,如 live2d-widget-model-z16
具体指令:npm install live2d-widget-model-z16
③在站点配置文件中加上如下代码:
1 | live2d: |
2 | enable: true #开启宠物 |
3 | scriptFrom: local |
4 | model: |
5 | use: live2d-widget-model-z16 |
6 | display: |
7 | position: right #指定宠物显示的位置 |
8 | width: 300 #指定宠物显示的宽度 |
9 | height: 600 #指定宠物显示的高度 |
10 | mobile: |
11 | show: true #是否在手机上显示 |
12、鼠标点击出现桃心效果:
①在 /themes/next/source/js 下新建文件 love.js,在love.js 文件中添加以下代码:
1 | !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: 500%;-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); |
②然后在 \themes\next\layout_layout.swig 文件末尾添加以下代码:
1 | <!-- 页面点击小红心 --> |
2 | <script type="text/javascript" src="/js/love.js"></script> |
13、网页底部的动态桃心图像:
修改主题配置文件:
1 | icon: |
2 | name: heart #如果name的值为heart表示引用fontawesome网站上的心形图标 |
3 | animated: true #如果想用动态图标应该将animated的值设为true |
4 | color: "#ff0000" #图标的色--用16进制数 |
14、设置网站的图标Favicon:
①下载一个32*32的图片,并改名为favicon.ico, 然后放到/blog/themes/next/source/images目录
②修改主题配置文件:
1 | favicon: |
2 | small: /images/favicon-16x16-next.png |
3 | medium: /images/favicon.ico |
4 | apple_touch_icon: /images/apple-touch-icon-next.png |
5 | safari_pinned_tab: /images/logo.svg |
15、添加打赏:
1 | # Reward (Donate) |
2 | reward_settings: |
3 | enable: true |
4 | animation: true |
5 | comment: 只想买包辣条 |
6 | |
7 | reward: |
8 | wechatpay: /images/wechatpay.png #微信收款码 |
9 | alipay: /images/alipay.png #支付宝收款码 |
10 | #bitcoin: /images/bitcoin.png |
16、在右上角或者左上角实现fork me on github
访问:https://github.blog/2008-12-19-github-ribbons/
或者是http://tholman.com/github-corners/
选择合适的图标,并复制代码!
/blog/themes/next/layout/_layout.swig文件中进行配置. next表示的是当前你使用的主题的样式.
(注意:其中href后面的是我们自己的地址)
17、侧边栏社交链接
① 修改主题配置文件: 链接放置在 social
字段下,一行一个链接。其键值格式是 显示文本: 链接地址
:
1 | social: |
2 | GitHub: https://github.com/lures2019 || github |
3 | E-Mail: mailto:zhichaowang94@gmail.com || envelope |
4 | Weibo: https://weibo.com/zhichaowang94/home?wvr=5 || weibo |
5 | #Google: https://plus.google.com/yourname || google |
6 | #Twitter: https://twitter.com/yourname || twitter |
7 | #FB Page: https://www.facebook.com/yourname || facebook |
8 | StackOverflow: https://stackoverflow.com/users/12209371/王智超 || stack-overflow |
9 | #YouTube: https://youtube.com/yourname || youtube |
10 | #Instagram: https://instagram.com/yourname || instagram |
11 | #Skype: skype:yourname?call|chat || skype |
12 | #RSS: /atom.xml || rss |
13 | |
14 | social_icons: |
15 | enable: true |
16 | icons_only: false |
17 | transition: false |
18 | #图标: |
19 | Github: github |
20 | E-Mail: envelope |
21 | Weibo: weibo |
22 | StackOverflow: stack-overflow |
18、网页雪花飘落效果:
①在 \Hexo\themes\next\source\js 目录下新建一个 snow.js 文件,粘贴以下代码:
1 | /*样式一*/ |
2 | (function($){ |
3 | $.fn.snow = function(options){ |
4 | var $flake = $('<div id="snowbox" />').css({'position': 'absolute','z-index':'9999', 'top': '-50px'}).html('❄'), |
5 | documentHeight = $(document).height(), |
6 | documentWidth = $(document).width(), |
7 | defaults = { |
8 | minSize : 10, |
9 | maxSize : 20, |
10 | newOn : 1000, |
11 | flakeColor : "#AFDAEF" /* 此处可以定义雪花颜色,若要白色可以改为#FFFFFF */ |
12 | }, |
13 | options = $.extend({}, defaults, options); |
14 | var interval= setInterval( function(){ |
15 | var startPositionLeft = Math.random() * documentWidth - 100, |
16 | startOpacity = 0.5 + Math.random(), |
17 | sizeFlake = options.minSize + Math.random() * options.maxSize, |
18 | endPositionTop = documentHeight - 200, |
19 | endPositionLeft = startPositionLeft - 500 + Math.random() * 500, |
20 | durationFall = documentHeight * 10 + Math.random() * 5000; |
21 | $flake.clone().appendTo('body').css({ |
22 | left: startPositionLeft, |
23 | opacity: startOpacity, |
24 | 'font-size': sizeFlake, |
25 | color: options.flakeColor |
26 | }).animate({ |
27 | top: endPositionTop, |
28 | left: endPositionLeft, |
29 | opacity: 0.2 |
30 | },durationFall,'linear',function(){ |
31 | $(this).remove() |
32 | }); |
33 | }, options.newOn); |
34 | }; |
35 | })(jQuery); |
36 | $(function(){ |
37 | $.fn.snow({ |
38 | minSize: 5, /* 定义雪花最小尺寸 */ |
39 | maxSize: 50,/* 定义雪花最大尺寸 */ |
40 | newOn: 300 /* 定义密集程度,数字越小越密集 */ |
41 | }); |
42 | }); |
43 | /*样式二*/ |
44 | /* 控制下雪 */ |
45 | function snowFall(snow) { |
46 | /* 可配置属性 */ |
47 | snow = snow || {}; |
48 | this.maxFlake = snow.maxFlake || 200; /* 最多片数 */ |
49 | this.flakeSize = snow.flakeSize || 10; /* 雪花形状 */ |
50 | this.fallSpeed = snow.fallSpeed || 1; /* 坠落速度 */ |
51 | } |
52 | /* 兼容写法 */ |
53 | requestAnimationFrame = window.requestAnimationFrame || |
54 | window.mozRequestAnimationFrame || |
55 | window.webkitRequestAnimationFrame || |
56 | window.msRequestAnimationFrame || |
57 | window.oRequestAnimationFrame || |
58 | function(callback) { setTimeout(callback, 1000 / 60); }; |
59 | |
60 | cancelAnimationFrame = window.cancelAnimationFrame || |
61 | window.mozCancelAnimationFrame || |
62 | window.webkitCancelAnimationFrame || |
63 | window.msCancelAnimationFrame || |
64 | window.oCancelAnimationFrame; |
65 | /* 开始下雪 */ |
66 | snowFall.prototype.start = function(){ |
67 | /* 创建画布 */ |
68 | snowCanvas.apply(this); |
69 | /* 创建雪花形状 */ |
70 | createFlakes.apply(this); |
71 | /* 画雪 */ |
72 | drawSnow.apply(this) |
73 | } |
74 | /* 创建画布 */ |
75 | function snowCanvas() { |
76 | /* 添加Dom结点 */ |
77 | var snowcanvas = document.createElement("canvas"); |
78 | snowcanvas.id = "snowfall"; |
79 | snowcanvas.width = window.innerWidth; |
80 | snowcanvas.height = document.body.clientHeight; |
81 | snowcanvas.setAttribute("style", "position:absolute; top: 0; left: 0; z-index: 1; pointer-events: none;"); |
82 | document.getElementsByTagName("body")[0].appendChild(snowcanvas); |
83 | this.canvas = snowcanvas; |
84 | this.ctx = snowcanvas.getContext("2d"); |
85 | /* 窗口大小改变的处理 */ |
86 | window.onresize = function() { |
87 | snowcanvas.width = window.innerWidth; |
88 | /* snowcanvas.height = window.innerHeight */ |
89 | } |
90 | } |
91 | /* 雪运动对象 */ |
92 | function flakeMove(canvasWidth, canvasHeight, flakeSize, fallSpeed) { |
93 | this.x = Math.floor(Math.random() * canvasWidth); /* x坐标 */ |
94 | this.y = Math.floor(Math.random() * canvasHeight); /* y坐标 */ |
95 | this.size = Math.random() * flakeSize + 2; /* 形状 */ |
96 | this.maxSize = flakeSize; /* 最大形状 */ |
97 | this.speed = Math.random() * 1 + fallSpeed; /* 坠落速度 */ |
98 | this.fallSpeed = fallSpeed; /* 坠落速度 */ |
99 | this.velY = this.speed; /* Y方向速度 */ |
100 | this.velX = 0; /* X方向速度 */ |
101 | this.stepSize = Math.random() / 30; /* 步长 */ |
102 | this.step = 0 /* 步数 */ |
103 | } |
104 | flakeMove.prototype.update = function() { |
105 | var x = this.x, |
106 | y = this.y; |
107 | /* 左右摆动(余弦) */ |
108 | this.velX *= 0.98; |
109 | if (this.velY <= this.speed) { |
110 | this.velY = this.speed |
111 | } |
112 | this.velX += Math.cos(this.step += .05) * this.stepSize; |
113 | |
114 | this.y += this.velY; |
115 | this.x += this.velX; |
116 | /* 飞出边界的处理 */ |
117 | if (this.x >= canvas.width || this.x <= 0 || this.y >= canvas.height || this.y <= 0) { |
118 | this.reset(canvas.width, canvas.height) |
119 | } |
120 | }; |
121 | /* 飞出边界-放置最顶端继续坠落 */ |
122 | flakeMove.prototype.reset = function(width, height) { |
123 | this.x = Math.floor(Math.random() * width); |
124 | this.y = 0; |
125 | this.size = Math.random() * this.maxSize + 2; |
126 | this.speed = Math.random() * 1 + this.fallSpeed; |
127 | this.velY = this.speed; |
128 | this.velX = 0; |
129 | }; |
130 | // 渲染雪花-随机形状(此处可修改雪花颜色!!!) |
131 | flakeMove.prototype.render = function(ctx) { |
132 | var snowFlake = ctx.createRadialGradient(this.x, this.y, 0, this.x, this.y, this.size); |
133 | snowFlake.addColorStop(0, "rgba(255, 255, 255, 0.9)"); /* 此处是雪花颜色,默认是白色 */ |
134 | snowFlake.addColorStop(.5, "rgba(255, 255, 255, 0.5)"); /* 若要改为其他颜色,请自行查 */ |
135 | snowFlake.addColorStop(1, "rgba(255, 255, 255, 0)"); /* 找16进制的RGB 颜色代码。 */ |
136 | ctx.save(); |
137 | ctx.fillStyle = snowFlake; |
138 | ctx.beginPath(); |
139 | ctx.arc(this.x, this.y, this.size, 0, Math.PI * 2); |
140 | ctx.fill(); |
141 | ctx.restore(); |
142 | }; |
143 | /* 创建雪花-定义形状 */ |
144 | function createFlakes() { |
145 | var maxFlake = this.maxFlake, |
146 | flakes = this.flakes = [], |
147 | canvas = this.canvas; |
148 | for (var i = 0; i < maxFlake; i++) { |
149 | flakes.push(new flakeMove(canvas.width, canvas.height, this.flakeSize, this.fallSpeed)) |
150 | } |
151 | } |
152 | /* 画雪 */ |
153 | function drawSnow() { |
154 | var maxFlake = this.maxFlake, |
155 | flakes = this.flakes; |
156 | ctx = this.ctx, canvas = this.canvas, that = this; |
157 | /* 清空雪花 */ |
158 | ctx.clearRect(0, 0, canvas.width, canvas.height); |
159 | for (var e = 0; e < maxFlake; e++) { |
160 | flakes[e].update(); |
161 | flakes[e].render(ctx); |
162 | } |
163 | /* 一帧一帧的画 */ |
164 | this.loop = requestAnimationFrame(function() { |
165 | drawSnow.apply(that); |
166 | }); |
167 | } |
168 | /* 调用及控制方法 */ |
169 | var snow = new snowFall({maxFlake:60}); |
170 | snow.start(); |
②然后在 \Hexo\themes\next\layout_layout. swig文件里引用即可:
1 | <!-- 雪花特效 --> |
2 | <script type="text/javascript" src="\js\snow.js"></script> |
3 | |
4 | 如果没效果,请确认网页是否已载入JQurey,如果没有请在下雪代码之前引入JQ即可: |
5 | <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.js"></script> |
6 | <script type="text/javascript" src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script> |
运行后截图效果:
19、添加作者头像:
①在images目录下下载作者头像并命名为:avatar.png
②在主题配置文件中:
将false改成true,url对应改变即可
运行并截图:
20、配置主菜单:
①打开主题配置文件,按照下面格式添加边栏菜单:
1 | menu: |
2 | home: / || home |
3 | about: /about/ || user #关于我 |
4 | tags: /tags/ || tags #标签云 |
5 | #categories: /categories/ || th |
6 | archives: /archives/ || archive |
7 | #schedule: /schedule/ || calendar |
8 | #sitemap: /sitemap.xml || sitemap |
②标签云:使用 Hexo 命令新建一个名为 tags
的页面即可 :
hexo new page tags
该页面标题可以在文件 \hexo\source\tags\index.md
中修改
③about页面:
使用 Hexo 命令新建一个名为 about
的页面即可
hexo new page about
该页面内容在文件 \hexo\source\about\index.md
中修改 :
21、在每篇文章末尾统一添加“本文结束”标记:
①在路径 \themes\next\layout\_macro
中新建 passage-end-tag.swig
文件,并添加以下内容:
1 | <div> |
2 | {% if not is_index %} |
3 | <div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div> |
4 | {% endif %} |
5 | </div> |
②接着打开\themes\next\layout\_macro\post.swig
文件,在post-body
之后, post-footer
之前添加如下画红色部分代码(post-footer之前两个DIV):
代码如下:
1 | <div> |
2 | {% if not is_index %} |
3 | {% include 'passage-end-tag.swig' %} |
4 | {% endif %} |
5 | </div> |
然后打开主题配置文件(_config.yml
),在末尾添加:
1 | # 文章末尾添加“本文结束”标记 |
2 | passage_end_tag: |
3 | enabled: true |
完成以上设置之后,在每篇文章之后都会添加如上效果图的样子。
22、在网站底部加上访问量:
①打开\themes\next\layout\_partials\footer.swig
文件,在copyright前加上画红线这句话:
代码如下:
<script async src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
然后再合适的位置添加显示统计的代码,如图:
代码如下:
1 | |
2 |
23、隐藏网页底部powered By Hexo / 强力驱动
打开themes/next/layout/_partials/footer.swig
,使用””隐藏之间的代码即可,或者直接删除。
运行截图:
写在最后:
- 首先,致谢:https://www.zhihu.com/tardis/sogou/art/60424755
其次,花了大概12个小时来配置,来改错并记录(记录的过程和结果是没有问题的!)最后,希望大家关注微信公众号"空谷小莜蓝",快到03:30了,得赶紧睡觉,腰有点酸!
- 今天早上4:20睡,7:40醒,发现图片加载不了,于是又搞了好久
~