博客诞生记

Jan 1, 0001 00:00 · 651 words · 4 minute read 杂记

搭博客的想法被搁置了很久,主要是害怕以后服务器更换之类的迁移博客很麻烦。但是今天发现可以将博客搭建在github上,就来尝试一把。毕竟大网站不会说倒就倒。哈哈

折腾半天,先记录一下,一会继续折腾主题。哈哈哈哈

安装hexo

github工作

现在本机上安装好git,安装连接

https://git-scm.com/download/win .

安装好后与自己的github绑定

打开git bash

git config --global user.name "你的GitHub用户名"
git config --global user.email "你的GitHub注册邮箱"

然后生成ssh秘钥文件

ssh-keygen -t rsa -C "你的GitHub注册邮箱"
三个回车搞定问题

然后会提示将生成的秘钥和公钥路径给出,我们只需要照着路径找到id_rsa.pub密钥,然后将其内容添加到github上就ok,具体步骤就不多说了。

安装node.js

直接到官网下载即可

https://nodejs.org/en/download/

检测是否安装好,在cmd里输入以下内容即可测试。

C:\Users\Administrator>node -v
v8.9.1

C:\Users\Administrator>npm -v
5.5.1

现在就已经把安装hexo的环境准备好了。下来就来安装hexo!

安装hexo

先在自己的本机上安装hexo,我是直接在D盘新建了一个blog文件夹。然后在blog文件夹中打开cmd(就是shift+右键)。

打开cmd后输入

npm install -g hexo-cli 

这个执行完直接提示我装在了C盘,当时惊了我一下,不是应该装在D:/blog下吗?

到后来才知道这是hexo的配置文件,不是hexo的网站。。。。。。

执行完毕后输入

hexo init blog //初识化博客

到这里就已经在本地搭建好博客了,可以测试一下,测试命令如下

hexo new test_my_site //发布一个test_my_site博客

hexo g //生成网页,就是将刚写的md文件生成网页

hexo s //在本地启动服务预览

然后直接在浏览器访问’localhost:4000’ ,hexo s 执行后会提示一个url,直接复制粘贴就好。

接下来要做的就是将博客部署在github上。

打开blog文件夹里的_config.yml文件,blog文件夹下的themes里也有一个_config.yml文件。

打开根目录的_config.yml后,找到最后的位置添加为

deploy:
  type: git
  repo: https://github.com/Yangzcc/Yangzcc.github.io.git //这是github的仓库的url。
  branch: master

其实就是给hexo d 这个命令做相应的配置,让hexo知道你要把blog部署在哪个位置。这里我们部署在github的仓库里。

然后安装Git部署插件

npm install hexo-deployer-git --save

执行完毕后,执行下边三条命令

hexo clean 
hexo g 
hexo d

现在网站就已经上线了,可以通过访问https://yangzcc.github.io/ 来访问。

hexo基本操作

设置标签

给一篇文章添加标签后,就可以将该文章归属于该标签下,可对应多个标签。

1.给文章添加标签的示例

---
title: 基础语法
date: 2017-11-10 09:54:35
tags: 学习
---

2.设置标签页面(即显示所有标签的那个页面)

1.在终端窗口下,定位到 Hexo 站点目录下。使用 hexo new page 新建一个页面,命名为 Yang's tags :

hexo new page "Yang's tags"
INFO  Created: D:\Blog\Blog\source\Yang-s-tags\index.md

2.编辑刚新建的页面Yang-s-tags\index.md,将页面的类型设置为 tags ,主题将自动为这个页面显示标签云。页面内容如下:

---
title: Yang's tags
date: 2017-12-05 10:29:33
type: "tags"
---
3.在菜单中添加链接。编辑 主题配置文件 , 添加 Yang-s-tages 到 menu 中,如下:
menu:
  home: / || home
  archives: /archives/ || archive
  tags: /Yang-s-tags/ || tags    //这里填的名字一定是生成的文件夹的名字。不然hexo会找不到。
  categories: /categories/ || th
  about: /about/ || user

这样hexo的标签设置结束。

设置分类

1.给文章添加分类的示例

---
title: 火眼金睛
date: 2017-12-3 09:54:35
tags: 
  - ctf
  - python
categories: ctf //添加分类ctf
---

2.设置分类页面(即显示所有标签的那个页面)

1.在终端窗口下,定位到 Hexo 站点目录下。使用 hexo new page 新建一个页面,命名为 Yang's categories :

hexo new page "Yang's categories"
INFO  Created: D:\Blog\Blog\source\Yang-s-categories\index.md

2.编辑刚新建的页面,将页面的 type 设置为 categories,主题将自动为这个页面显示分类。页面内容如下:

---
title: Yang's categories
date: 2017-12-05 10:44:17
type: "categories"
---

3.在菜单中添加链接。编辑 主题配置文件 , 添加 Yang-s-categories 到 menu 中,如下:
menu:
  home: / || home
  archives: /archives/ || archive
  tags: /Yang-s-tags/ || tags
  categories: /Yang-s-categories/ || th
  about: /about/ || user


到这分类页面设置好了。

设置阅读全文

在首页显示一篇文章的部分内容,并提供一个链接跳转到全文页面是一个常见的需求。 NexT 提供三种方式来控制文章在首页的显示方式。 也就是说,在首页显示文章的摘录并显示 阅读全文 按钮,可以通过以下方法:

1.在文章中使用 <!-- more --> 手动进行截断,Hexo 提供的方式 推荐

2.在文章的 front-matter 中添加 description,并提供文章摘录

3.自动形成摘要,在 主题配置文件 中添加:

auto_excerpt:
  enable: true
  length: 150

默认截取的长度为 150 字符,可以根据需要自行设定

设置本地搜索

1.在博客根目录下执行

 npm install hexo-generator-searchdb --save

在主题配置文件搜索 local_search:将false改为true即可()

local_search:
  enable: true

写文章注意的地方

每一篇文章的头部都要写这几个东西

---
title: 火眼金睛   //标题
date: 2017-12-3 09:54:35  //发布时间
tags:   //  标签
  - ctf
  - python
categories: ctf   // 属于哪个分类
---
还有一些其他的参数,以后用到再说

发表文章时的操作步骤如下:

1.先将写好的.md文件存入到blog的source\_posts文件夹下
2.执行 hexo g
3.执行 hexo d

这是一个比较难受的地方。。。

删除博客的方法

1.删除Blog\Blog\source\_posts下的要删除的文章
2.删除Blog\Blog\public\2017下对应的文件夹
3.重新部署以便即可

解决hexo d报错的情况。

warning: LF will be replaced by CRLF in archives/2017/12/index.html.

可以这样,首先删除hexo 下面的.deploy_git文件夹,然后运行

git config --global core.autocrlf false

重新 hexo clean,hexo g,hexo d就行了

折腾主题

官方文档设置

http://theme-next.iissnan.com/getting-started.html#select-language

设置头像

打开主题配置文件,修改avatar的值,将其换为要修改的外链即可。

添加阅读量统计

https://notes.wanghao.work/2015-10-21-%E4%B8%BANexT%E4%B8%BB%E9%A2%98%E6%B7%BB%E5%8A%A0%E6%96%87%E7%AB%A0%E9%98%85%E8%AF%BB%E9%87%8F%E7%BB%9F%E8%AE%A1%E5%8A%9F%E8%83%BD.html#%E9%85%8D%E7%BD%AELeanCloud

弄完后发现很不稳定,有时候可以显示有时候不可以,有点难受。

添加网易云外链

  1. 在网易云音乐网页版可以找到歌曲的生成外链,将其复制下来。
  2. 在本地打开Blog\Blog\themes\next\layout\ _macro下的sidebar.swig文件,将其粘贴在该文件中即可。
  3. 重新部署博客。

添加来必应评论

1.注册来必应获取data-uid(在安装代码里) 2.打开主题配置文件,在livere_uid:后添加data-uid即可。

新版的next主题比较方便,刚开始照着教程找了好久。。。。

小细节优化

下面四个都是在主题的配置文件里修改

设置代码高亮

highlight_theme: night eighties //共有5个可选

设置友链

links_icon: 
links_title: Links
#links_layout: block
links_layout: inline
links:
  #链接地址

设置右侧社交链

social:
  GitHub: https://github.com/yourname || github
  E-Mail: http://mail.qq.com/cgi-bin/qm_share?t=qm_mailme&email=863209913@qq.com

更改背景动画

这四个都可以选。

# Canvas-nest
canvas_nest: false

# three_waves
three_waves: false

# canvas_lines
canvas_lines: true

# canvas_sphere
canvas_sphere: false

修改头像为圆形并可转动

打开\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);
  }
}

博客底部字数统计

在博客根目录运行

npm install hexo-wordcount --save

然后在/themes/next/layout/_partials/footer.swig文件尾部加上:

<div class="theme-info">
  <div class="powered-by"></div>
  <span class="post-count">博客全站共{{ totalcount(site) }}字</span>
</div>

添加顶部加载条

打开/themes/next/layout/_partials/head.swig文件,在第四行添加如下代码

<script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script>
<link href="//cdn.bootcss.com/pace/1.0.2/themes/pink/pace-theme-flash.css" rel="stylesheet">
<style>
    .pace .pace-progress {
        background: #000000; /*进度条颜色*/
        height: 3px;
    }
    .pace .pace-progress-inner {
         box-shadow: 0 0 10px #000000, 0 0 5px     #000000; /*阴影颜色*/
    }
    .pace .pace-activity {
        border-top-color: #000000;    /*上边框颜色*/
        border-left-color: #000000;    /*左边框颜色*/
    }
</style>

也可直接在主题配置文件中将pace改为true,然后修改pace_theme:

隐藏底部的主题信息

用的人家的主题,还去掉人家的宣传虽然有点不太好,但是就是想去掉。(反正next的名气已经很大。哈哈哈)

打开themes/next/layout/_partials/footer.swig,注释以下代码,想去掉由hexo强力驱动,也是同样的道理。


  <div class="theme-info">{#
  #}{{ __('footer.theme') }} &mdash; {#
  #}<a class="theme-link" target="_blank" href="https://github.com/iissnan/hexo-theme-next">{#
    #}NexT.{{ theme.scheme }}{#
  #}</a>{% if theme.footer.theme.version %} v{{ theme.version }}{% endif %}{#
#}</div>

打开themes/next/layout/_partials/footer.swig找到如下代码

  <span class="with-love">
    <i class="fa fa-rocket" aria-hidden="true"></i>
  </span>

然后在 http://fontawesome.io/icons/ 找自己喜欢的图标,点击自己喜欢的图标,网站会自动生成一段<i></i>代码,直接将其替换刚刚找到的代码。OK,效果如图:

Markdown

美滋滋。。。。

设置网站的图标

到网上下载一个32*32的png图标, 然后将其放入Blog\themes\next\source\images下,这里我的是paper-plane.png. 然后在主题配置文件下找到favicon,然后将原图标名改为paper-plane.png.如下代码

favicon:
  small: /images/favicon-16x16-next.png
  medium: /images/paper-plane.png
  apple_touch_icon: /images/apple-touch-icon-next.png
  safari_pinned_tab: /images/logo.svg

感谢大佬的分享

https://zhuanlan.zhihu.com/p/26625249

https://zhuanlan.zhihu.com/p/28128674

http://jmyblog.top/Hexo-GithubPages-CodingPages%E6%90%AD%E5%BB%BA%E8%87%AA%E5%B7%B1%E7%9A%84%E4%B8%AA%E4%BA%BA%E5%8D%9A%E5%AE%A2/#more

tweet Share