一、前置条件
1、安装Git
下载地址:https://git-scm.com/
2、安装Node.js
二、安装Hexo
# 安装 hexo |
三、修改主题
以下都是以next主题为例子
# 可以在https://hexo.io/themes/可以查看你喜欢的主题,然后 clone 到themes文件夹下即可,比如next 主题 |
四、配置
一、基本配置
编辑文件路径站点根目录 /
下 _config.yml
字段 | 说明 |
---|---|
title | 博客的名称。 |
subtitle | 根据主题的不同,有的会显示有的不会显示。 |
description | 主要用于SEO,告诉搜索引擎一个关于站点的简单描述,通常建议在其中包含网站的关键词。 |
author | 作者名称,用于主题显示文章的作者。 |
language | 语言会对应的解析正在应用的主题中的languages文件夹下的不同语言文件。所以这里的名称要和languages文件夹下的语言文件名称一致。 |
timezone | Asia/Shanghai //可不填写。 |
网站存放在子目录
如果您的网站存放在子目录中,例如http://yoursite.com/blog
,则请将您的 :
- url 设为
http://yoursite.com/blog
并把- root 设为
/blog/
。
二、主题基本配置
修改主题配置文件,在菜单项添加以下内容(把注释打开即可)
menu: |
三、新建
1、新建页面
# 生成标签页面 |
2、新建文章
新建文章命令:
hexo n 文章名
,成功之后在~/source/_posts/
下就会看到.md
的文章打开文章会看到在头部有这样的信息
title: 文章名
date: 2019-01-10 18:37:24
tags: "Hexo"这个意思下面有解析,而且也可以按需加其他字段
文章头部解析:
/* !!!!!!!!!!
** 每一项的 : 后面均有一个空格
** 且 : 为英文符号
** !!!!!!!!!!
*/
title:
/* 文章标题,可以为中文 */
date:
/* 建立日期,如果自己手动添加,请按固定格式
** 就算不写,页面每篇文章顶部的发表于……也能显示
** 只要在主题配置文件中,配置了 created_at 就行
** 那为什么还要自己加上?
** 自定义文章发布的时间
*/
updated:
/* 更新日期,其它与上面的建立日期类似
** 不过在页面每篇文章顶部,是更新于……
** 在主题配置文件中,是 updated_at
*/
permalink:
/* 若站点配置文件下的 permalink 配置了 title
** 则可以替换文章 URL 里面的 title(文章标题)
*/
categories:
/* 分类,支持多级,比如:
- technology
- computer
- computer-aided-art
则为 technology/computer/computer-aided-art
(不适用于 layout: page)
*/
tags:
/* 标签
** 多个可以这样写 [标签1,标签2,标签3]
** (不适用于 layout: page)
*/
description:
/* 文章的描述,在每篇文章标题下方显示
** 并且作为网页的 description 元数据
** 如果不写,则自动取 <!-- more -->
** 之前的文字作为网页的 description 元数据
*/
keywords:
/* 关键字,并且作为网页的 keywords 元数据
** 如果不写,则自动取 tags 里的项
** 作为网页的 keywords 元数据
*/
comments:
/* 是否开启评论
** 默认值是 true
** 要关闭写 false
*/
layout:
/* 页面布局,默认值是 post,默认值可以在
** 站点配置文件中修改 default_layout
** 另:404 页面可能用到,将其值改为 false
*/
type:
/* categories,目录页面
** tags,标签页面
** picture,用来生成 group-pictures
*/
四、设置头像
# Sidebar Avatar |
五、修改底部
去掉 由 Hexo 强力驱动 v3.8.0 | 主题 – NexT.Muse v6.7.0
打开主题的_config.yml
配置文件,找到如下信息,把enable:true
改为 enable:false
把powered 与
# If not defined, `author` from Hexo main config will be used. |
六、添加顶部加载
在\themes\next\layout\_custom head.swig
文件中添加如下代码
<script src="//cdn.bootcss.com/pace/1.0.2/pace.min.js"></script> |
七、文章添加阴影
在 themes\next\source\css\_custom\custom.styl
添加如下代码
// 主页文章添加阴影效果 |
八、在文章末尾添加“文章结束”标记
1、在路径 \themes\next\layout\_macro
文件夹中新建 passage-end-tag.swig
文件
添加内容如下
<div> |
2、打开\themes\next\layout_macro\post.swig文件,在post-body后,post-footer前,添加下面内容:
添加内容如下
<div> |
放的位置如下:
|
3、打开主题配置文件(_config.yml),在末尾添加:
# 文章末尾添加“本文结束”标记 |
如果出现乱码,记得把
passage-end-tag.swig
文件 用类似Notepad++
的工具转成UTF-8
九、底部标签样式
修改\themes\next\layout\_macro\post.swig
中文件,command+f搜索rel="tag">#
,将#替换成,修改后,片段代码如下:
<footer class="post-footer"> |
十、文章底部加版权
1、手动修改主题目录下的 \themes\next\layout\_macro\post.swig
文件,找到 post-footer 所在的标签,添加以下内容:
<div> |
2、添加样式
在 \themes\next\source\css\_custom\custom.styl
文件,添加如下内容:
.post-copyright { |
十一、添加评论
注册Leancloud
修改主题配置文件_config.xml
查找Valine ,如下:
# You can get your appid and appkey from https://leancloud.cn |
十二、压缩
# 安装依赖 |
在根目录下创建gulpfile.js
文件。编辑内容如下:
var gulp = require('gulp'); |
十三、Hexo 新建文章插入图片
安装图片插件
|
如果控制台出现如下信息
found 1 low severity vulnerability |
记得修复相关介绍如下
npm audit : npm@5.10.0 & npm@6,允许开发人员分析复杂的代码,并查明特定的漏洞和缺陷。
npm audit fix :npm@6.1.0, 检测项目依赖中的漏洞并自动安装需要更新的有漏洞的依赖,而不必再自己进行跟踪和修复。
修复
# 修复命令 |
插入图片
当插件安装成功后,你新建文章
例:hexo new "Hexo笔记"
,则在\source\_posts
会有一个名为 Hexo笔记
的文件夹
只需把图片放里面即可引用
1、把主页配置文件 _config.yml
里的post_asset_folder:
这个选项设置为 true
2、然后只需要在 Hexo笔记.md
中按照markdown的格式引入图片:![你想输入的替代文字](/Hexo笔记/你要引用的图片名称.jpg)
十四、添加本地搜索
1、安装插件
npm install hexo-generator-searchdb --save |
2、站点配置文件_config.yml
在最后编辑或添加如下信息:
search: |
3、打开主题配置文件
在\themes\next\_config.yml
查找local_search
修改如下
local_search: |
十五、在页面顶部,实现fork me on GitHub
代码样式地址:
- https://github.blog/2008-12-19-github-ribbons/
- http://tholman.com/github-corners/
- 打开如上的任意一个网站,选择自己喜欢的样式
- 然后粘贴刚才复制的代码到
themes/next/layout/_layout.swig
文件中(放在<div class="headband"></div>
的下面),并把href
改为你的Github
地址,例如下<a href="https://github.com/yourName" class="github-corner" aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" style="fill:#151513; color:#fff; position: absolute; top: 0; border: 0; right: 0;" aria-hidden="true"><path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path><path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path><path d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" fill="currentColor" class="octo-body"></path></svg></a><style>.github-corner:hover .octo-arm{animation:octocat-wave 560ms ease-in-out}@keyframes octocat-wave{0%,100%{transform:rotate(0)}20%,60%{transform:rotate(-25deg)}40%,80%{transform:rotate(10deg)}}@media (max-width:500px){.github-corner:hover .octo-arm{animation:none}.github-corner .octo-arm{animation:octocat-wave 560ms ease-in-out}}</style>
十六、网站底部字数统计
1、安装插件
npm install hexo-wordcount --save |
2、然后在/themes/next/layout/_partials/footer.swig
文件尾部加上:
<div class="theme-info"> |
十七、侧栏加入已运行的时间
在文件
~/themes/next/layout/_custom/sidebar.swig
中加入如下代码<div id="days"></div>
<script>
function show_date_time(){
window.setTimeout("show_date_time()", 1000);
BirthDay=new Date("04/10/2017 15:13:14");
today=new Date();
timeold=(today.getTime()-BirthDay.getTime());
sectimeold=timeold/1000
secondsold=Math.floor(sectimeold);
msPerDay=24*60*60*1000
e_daysold=timeold/msPerDay
daysold=Math.floor(e_daysold);
e_hrsold=(e_daysold-daysold)*24;
hrsold=setzero(Math.floor(e_hrsold));
e_minsold=(e_hrsold-hrsold)*60;
minsold=setzero(Math.floor((e_hrsold-hrsold)*60));
seconds=setzero(Math.floor((e_minsold-minsold)*60));
document.getElementById('days').innerHTML="已运行 "+daysold+" 天 "+hrsold+" 小时 "+minsold+" 分 "+seconds+" 秒";
}
function setzero(i){
if (i<10)
{i="0" + i};
return i;
}
show_date_time();
</script>把
BirthDay
改成你自己的即可要是不喜欢颜色,感觉不好看在文件:
/themes/next/source/css/_custom/custom.styl
添加// 自定义的侧栏时间样式
#days {
display: block;
color: #2cd724;
font-size: 13px;
margin-top: 15px;
}
十八、让页脚的心跳起来
- 修改文件位置:
/themes/next/_config.yml
找到footer
修改如下footer:
# Specify the date when the site was setup.
# If not defined, current year will be used.
#since: 2015
# Icon between year and copyright info.
icon:
# Icon name in fontawesome, see: https://fontawesome.com/v4.7.0/icons/
# `heart` is recommended with animation in red (#ff0000).
name: heart
# If you want to animate the icon, set it to true.
animated: true
# Change the color of icon, using Hex Code.
color: "#ff0000"
十九、安装Markdown流程图插件
- 好像hexo默认是不支持流程图的语法的,需要安装插件
1、Mermaid
- 查看Github:https://github.com/webappdevelp/hexo-filter-mermaid-diagrams
第一步:安装依赖
// 安装依赖 |
第二步:修改hexo配置文件
- 之后在hexo的配置文件:
_config.yml
添加如下内容:# mermaid chart
mermaid: ## mermaid url https://github.com/knsv/mermaid
enable: true # default true
version: "8.11.0" # default v7.1.2
options: # find more api options from https://github.com/knsv/mermaid/blob/master/src/mermaidAPI.js
startOnload: true // default true
第三步:修改主题下面的footer文件
- 路径在:
themes\next\layout\_partials\
(这里以next
为例)下面footer文件 - 因为hexo的主题有很多,有些footer文件的后缀都不一样有:
.swig
、.ejs
、.pug
的 next
主题下面是footer.swig
后缀,则在文件最后添加如下
如果是footer.swig则添加如下:
{% if theme.mermaid.enable %} |
如果是after-footer.ejs则添加如下:
<% if (theme.mermaid.enable) { %> |
如果是after_footer.pug则添加如下:
if theme.mermaid.enable == true |
2、flow
- flow 类型的流程图
安装依赖即可
npm install hexo-filter-flowchart -D |
3、sequence
- sequence 类型的流程图
安装依赖即可
npm install hexo-filter-sequence -D |
五、部署到GitHub
准备工作
在Github 创建一个仓库为blog,并从master 分支,新建一个dev分支
dev 分支就是我们的源代码分支,master,就是我们生成的静态文件。
一、安装Git部署插件
# 安装git 部署插件 |
二、修改站点配置文件
修改 配置文件 _config.yml
在deploy
选项,修改如下
# Deployment |
三、多台终端部署
# 此时在另一终端更新博客,只需要将Github的dev分支clone下来,进行初次的相关配置 |
参考链接: