基于Hexo和Github的炫酷个人博客(基础篇)

什么是hexo

      Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
      本文采用最新的Hexo版本和炫酷的Next主题,在github上运行搭建的Hexo博客(github提供服务器),并绑定自己的腾讯云域名。
      文章分两个部分,第一部分基础篇主要讲解搭建基础的Hexo博客(基本的Hexo博客样式),第二部分主要是进阶篇,实现各种炫酷的功能。
线上预览效果为: www.zxcoding.cn
基于Hexo和Github的炫酷个人博客(基础篇)
基于Hexo和Github的炫酷个人博客(进阶篇)

Hexo官网
Next主题

实现功能

  • Next主题安装
  • 切换主题
  • 设置Menu
  • 初始化对应Menu菜单
  • 设置动态背景
  • 在右上角或者左上角实现Fork me on github
  • 添加RSS
  • 修改文章链接文本样式
  • 修改底部标签样式
  • 在文章末尾添加文章结束标记
  • 设置头像并设置动画效果
  • 修改代码块自定义样式
  • 主页文章添加阴影效果
  • 添加热度
  • 网站底部字数统计
  • 设置网站的图标Favicon
  • 实现文章统计功能
  • 添加网页顶部进度加载条
  • 底部隐藏由Hexo强力驱动、主题–NexT.Mist
  • 去掉底部重复字数统计
  • 添加jiathis分享
  • 博文置顶
  • 修改字体大小
  • 添加DaoVoice在线联系
  • 添加底部桃心
  • 添加侧栏推荐阅读
  • 在文章底部增加版权信息
  • Hexo博客添加站内搜索
  • 添加外链网易云音乐
  • Seo优化
  • 搜索引擎关键词优化

安装hexo

安装Node.js和配置好Node.js环境,打开cmd命令行,成功界面如下

在这里插入图片描述

安装Git和配置好Git环境。安装成功的象征就是在电脑上任何位置鼠标右键能够出现如下两个选择

在这里插入图片描述

Github账户注册和新建项目,项目必须要遵守格式:账户名.github.io,不然接下来会有很多麻烦。并且需要勾选Initialize this repository with a README。账户名就是访问地址中www.github.com/[你的账户名]。

在这里插入图片描述

在建好的项目右侧有个settings按钮,点击它,向下拉到GitHub Pages,你会看到那边有个网址,访问它,你将会惊奇的发现该项目已经被部署到网络上,能够通过外网来访问它。
在这里插入图片描述

注:在Custom domain(可选)中可以填写自己的域名,后面会讲到配置。这里可以不填。图中已填好作者的域名。

安装hexo

在自己合适的地方建立文件夹,用于安装hexo博客的本地文件夹。本文在D盘工作目录下建立了HexoBlog目录,并在dos下用命令建立。注:建立的位置可以任意。

在这里插入图片描述

安装hexo

npm install hexo -g 

输入hexo -v ,检查hexo是否安装成功
在这里插入图片描述
输入hexo init ,初始化该文件夹。生成静态页面。
文件夹

在这里插入图片描述

在这里插入图片描述

输入npm install,安装所需要的组件。因为我已经安装过了,图片目录名可能不对,不影响阅读。
在这里插入图片描述

测试

输入 hexo g,首次体验Hexo
在这里插入图片描述

输入hexo s,开启服务器,访问该网址,正式体验Hexo
在这里插入图片描述
问题:假如页面一直无法跳转,那么可能端口被占用了。此时我们ctrl+c停止服务器,接着输入“hexo server -p 端口号”来改变端口号
那么出现下图就成功了。
在这里插入图片描述


功能实现

搭建主题Next

  • 在项目目录下,右键点击Git Base Here。输入命令:git clone https://github.com/iissnan/hexo-theme-next themes/next。
    查看themes会多出一个next文件夹,这就是主题文件夹。
    在这里插入图片描述
  • 查看标签列表(git命令行)
    在这里插入图片描述
  • 切换到最新版本5.14,git checkout tags/v5.1.4
    输出:
    HEAD is now at 4f75fe5… 2018 NY update.
  • 更新主题Next
cd themes/next
git pull
  • 切换成NexT主题,在hexo根文件夹下,编辑_config.yml文件(根目录配置文件)
  • theme: next
    在这里插入图片描述
    然后在dos下进入根目录(HexoBlog)输入命令测试效果。
    在这里插入图片描述
  • 切换主题风格,修改主题目录配置文件(/themes/next/_config.yml),在下图中选出最喜欢的主题风格。
    在这里插入图片描述
    在这里插入图片描述

配置Github,修改根目录配置文件

修改成以下信息

deploy:
  type: git
  repository: git@github.com:用户名/用户名.github.io.git
  branch: master

测试输入以下命令就可以实现,本地推送到github中。

  hexo d -g

然后通过 用户名.github.io
就可以访问线上地址。

绑定域名

在github项目中setting中配置域名,如图设置zxcoding.cn.(图中www.zxcoding.cn应改为zxcoding.cn)

在这里插入图片描述
设置本地Hexo中CNAME在如下位置新建CNAME文件,不加后缀。
在这里插入图片描述

文件内容就是你的域名
这些全部设置完成后,此时你并不能要申请的域名访问你的博客。接着你需要做的是在hexo根目录的source文件夹里创建CNAME文件,不带任何后缀,里面添加你的域名信息,如:penglei.com。实践证明如果此时你填写的是www.penglei.top那么以后你只能用www.penglei.top访问,而如果你填写的是penglei.top。那么用www.penglei.top和penglei.top访问都是可以的。重新清理hexo,并发布即可用新的域名访问。

zxcoding.cn

登录你的域名商,本文是腾讯云。设置如下三个域名解析,图中两个ip都是github提供的ip,可以通过ping codingzhangxin.github.io得到一个,另一个是官网ip(有很多个)。192开头的是github官方提供的,另一个是自己的项目ip。可以自己ping出来
在这里插入图片描述
在这里插入图片描述

然后在本地dos下输入hexo d -g 重新生成发布博客,就可以通过域名访问你的博客了。
在这里插入图片描述
显示的效果可能不同,下面加入关于,标签,分类等功能。

加入分类,关于,标签等

  • 编辑themes/next/_config.yml,Ctrl+F查找到menu标签,加入自己想要的功能:
menu:
  home: / || home  //首页
  about: /about/ || user  //关于
  tags: /tags/ || tags  //标签
  categories: /categories/ || th   //分类
  archives: /archives/ || archive //归档
  schedule: /schedule/ || calendar   //日程表
  sitemap: /sitemap.xml || sitemap   //站点地图

然后在dos下,用命令创建功能页面

hexo new page "tags"
hexo new page "about"
hexo new page "categories"  #....不列举了

hexo new page “” 是创建页面,和_post是平级关系
hexo new “” 是创建文章,在_post下。

  • 然后输入描述信息,在tags目录下编辑index.md文件
    在这里插入图片描述
    其他的功能页面的index.md均修改成类似形式。
---
title: tags
date: 2018-12-04 10:48:44
type: "tags"
---

再重新hexo s 就可以预览效果,hexo d -g 远程查看github上效果或者绑定域名效果。


设置动态背景

-主题配置文件中找到canvas_nest,设置成ture就OK啦。

# Canvas-nest
canvas_nest: ture

在右上角或者左上角实现fork me on github,效果如下

在这里插入图片描述

  • GitHub RibbonsGitHub Corners选择一款你喜欢的挂饰,拷贝方框内的代码:

  • 将刚刚复制的挂饰代码,添加到Blog/themes/next/layout/_layout.swig文件中,添加位置如下图所示(放在

    下方):


    添加添加RSS

    -进入博客主目录下,安装Hexo插件

 npm install --save hexo-generator-feed
  • 安装成功之后,编辑Blog/_config.yml文件,在文件末尾添加
# Extensions
## Plugins: http://hexo.io/plugins/
plugins: hexo-generate-feed
  • 配置主题_config.yml文件,command+f搜索rss,在后面加上/atom.xml
# Set rss to false to disable feed link.
# Leave rss as empty to use site's feed link.
# Set rss to specific value if you have burned your feed already.
rss: /atom.xml //注意:有一个空格

之后,终端输入hexo s查看效果
在这里插入图片描述


修改文章内链接文本样式

  • 修改Blog/themes/next/source/css/_common/components/post/post.styl,在末尾添加CSS样式:
// 文章内链接文本样式
.post-body p a{
  color: #0593d3; //原始链接颜色
  border-bottom: none;
  border-bottom: 1px solid #0593d3; //底部分割线颜色
  &:hover {
    color: #fc6423; //鼠标经过颜色
    border-bottom: none;
    border-bottom: 1px solid #fc6423; //底部分割线颜色
  }
}

设置后,效果是博客链接点击前后都会有颜色变化。


修改底部Hexo,Next标签样式

修改Blog\themes\next\layout_macro\post.swig中文件,command+f搜索rel=“tag”>#,将#替换成。输入以下命令,查看效果:

hexo clean
hexo s

在这里插入图片描述


在文章末尾添加“文章结束”标记

  • 在路径Blog\themes\next\layout_macro文件夹中新建passage-end-tag.swig文件,在passage-end-tag.swig添加以下内容,直接用文本编辑器打开,粘贴以下内容后保存
<div>
    {% if not is_index %}
        <div style="text-align:center;color: #ccc;font-size:14px;">-------------本文结束<i class="fa fa-paw"></i>感谢您的阅读-------------</div>
    {% endif %}
</div>
  • 打开\themes\next\layout_macro\post.swig,在post-body之后,post-footer之前(post-footer之前两个DIV),添加以下代码:
<div>
  {% if not is_index %}
    {% include 'passage-end-tag.swig' %}
  {% endif %}
</div>

添加位置如图所示

在这里插入图片描述

  • 修改主题配置文件_config.yml,在末尾添加:
`# 文章末尾添加“本文结束”标记
 passage_end_tag:
  enabled: true`

配置完成之后,效果如下:
在这里插入图片描述

注意Hexo s启动后,hexo可以热部署,实时查看效果。但是有些功能可能需要重启才能查看效果。


设置头像并设置动画效果

  • 在/_config.yml中添加头像链接地址:
//添加头像地址
avatar: [ http://....]

  • 设置头像圆角并旋转,打开/themes/next/source/css/_common/components/sidebar/sidebar-author.styl,添加以下代码:
.site-author-image {
  display: block;
  margin: 0 auto;
  padding: $site-author-image-padding;
  max-width: $site-author-image-width;
  height: $site-author-image-height;
  border: $site-author-image-border-width solid $site-author-image-border-color;
  /* 头像圆形 */
  border-radius: 80px;
  -webkit-border-radius: 80px;
  -moz-border-radius: 80px;
  box-shadow: inset 0 -1px 0 #333sf;
  /* 设置循环动画 [animation: (play)动画名称 (2s)动画播放时长单位秒或微秒 (ase-out)动画播放的速度曲线为以低速结束 
    (1s)等待1秒然后开始动画 (1)动画播放次数(infinite为循环播放) ]*/
 
  /* 鼠标经过头像旋转360度 */
  -webkit-transition: -webkit-transform 1.0s ease-out;
  -moz-transition: -moz-transform 1.0s ease-out;
  transition: transform 1.0s ease-out;
}
img:hover {
  /* 鼠标经过停止头像旋转 
  -webkit-animation-play-state:paused;
  animation-play-state:paused;*/
  /* 鼠标经过头像旋转360度 */
  -webkit-transform: rotateZ(360deg);
  -moz-transform: rotateZ(360deg);
  transform: rotateZ(360deg);
}
/* Z 轴旋转动画 */
@-webkit-keyframes play {
  0% {
    -webkit-transform: rotateZ(0deg);
  }
  100% {
    -webkit-transform: rotateZ(-360deg);
  }
}
@-moz-keyframes play {
  0% {
    -moz-transform: rotateZ(0deg);
  }
  100% {
    -moz-transform: rotateZ(-360deg);
  }
}
@keyframes play {
  0% {
    transform: rotateZ(0deg);
  }
  100% {
    transform: rotateZ(-360deg);
  }
}

修改代码块``自定义样式

  • 打开\themes\next\source\css_custom\custom.styl,添加以下代码:
// Custom styles.
code {
    color: #ff7600;
    background: #fbf7f8;
    margin: 2px;
}
// 大代码块的自定义样式
.highlight, pre {
    margin: 5px 0;
    padding: 5px;
    border-radius: 3px;
}
.highlight, code, pre {
    border: 1px solid #d6d6d6;
}


侧边栏社交小图标设置

  • 打开主题配置文件_config.yml(themes/next/_config.yml),command+f搜索Social,将你有的社交账号前面的#号去掉。格式为:
  • [社交平台名]: [社交地址] || [图标名称]
social:
  GitHub: https://github.com/codingzhangxin || github
  CSDN: https://blog.csdn.net/qq_35180973?t=1 || envelope
  Google: https://plus.google.com || google
  #Twitter: https://twitter.com/yourname || twitter
  #FB Page: https://www.facebook.com/yourname || facebook
  #VK Group: https://vk.com/yourname || vk
  #StackOverflow: https://stackoverflow.com/yourname || stack-overflow
  #YouTube: https://youtube.com/yourname || youtube
  #Instagram: https://instagram.com/yourname || instagram
  #Skype: skype:yourname?call|chat || skype
  • 效果图如下:
    在这里插入图片描述

  • 图标可以去Font Awesome Icon网站去找,找到后复制名字到相应的位置即可。


主页文章添加阴影效果

  • 打开\themes\next\source\css_custom\custom.styl,添加以下代码
 .post {
   margin-top: 60px;
   margin-bottom: 60px;
   padding: 25px;
   -webkit-box-shadow: 0 0 5px rgba(202, 203, 203, .5);
   -moz-box-shadow: 0 0 5px rgba(202, 203, 204, .5);
  }


基础篇设置完成,下面进入进阶篇,实现各种高大上的Hexo应用。

基于Hexo和Github的炫酷个人博客(基础篇)
基于Hexo和Github的炫酷个人博客(进阶篇)

参考链接

使用Hexo+Github一步步搭建属于自己的博客(进阶)

Hexo博客搭建及NexT主题个性化设置

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该个人网站一共有8个页面。首先博客的登录界面login.html:是利用html5和css3结合写出的一个超炫酷的页面,根据canvas粒子制作出背景具有动态的效果。登陆后根据存入数据进行比对,对其用户名、密码、验证码验证,只有通过验证后才能登录成功并且验证成功后可以达到全屏的效果。每一个页面分为footer body和footer三部分组成。头部主要就是标题栏,尾部是页脚,中间就是主题内容。index.html主页:主要就利用js焦点滚动式轮播插入图片和文字自行进行翻页,其他主要利用div和css进行控制每一个内容框。利用链接跳转到相对应的内容上。可以根据标题、标签、关键字等点击到另一个内容,图片和文字进行有个布局达到图文环绕的布局。再然后,就是 关于about.html页面:博主简介利用jquery焦点缩略图轮播滚动类似选项卡滑动切换。可以自动展现不同的图片。其次,是成长页面about.html:是博主对未来的美好未来的期待,利用bootstrap响应式布局进行布局,图片和文章不同布局相结合,是整体更协调。再其次,是娱乐fun.html页面,利用CSS3 transform当鼠标悬停到照片上时,图片具有放大特效,主要利用css3中scale()和rotate()进行旋转和缩放。接下来是说说moodlist.html:个人心情页面,博主可以发一些类似于微信或qq心情说说,具有时间年轮的效果,当鼠标放上某一个时具有高亮的效果。最后是留言comment.html页面,可以通过给博主留言。给博主一些意见,该留言可以有表情添加,留言框带有头像。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值