本文介绍利用Hexo搭建个人博客,并将该博客部署至git。以及对于Hexo主题,页面等的设置方法。
需要安装git和nodejs
安装完成后,git bash中使用以下命令检查是否安装成功。1
2node -v
npm -v
git安装成功后,就可以使用git bash敲命令了,不再用windowscmd了。
安装hexo
在安装好git和nodejs后,继续安装hexo。
- 创建一个文件夹,如命名为blog
- git bash中,
cd
到这个文件夹下(或在这个文件夹下右键git bash打开) - 输入
npm install -g hexo-cli
安装 - 使用
hexo -v
检查是否安装成功
至此,hexo安装结束
初始化hexo
使用以下命令初始化hexo。hexo init [subdirname]
新建博客文章(post)
使用以下命令新建博客文章。1
2hexo new post_name
hexo n post_name
之后就可以在.md中尽情写文章了。
生成静态网页
文章写完后,使用以下命令生成静态网页。1
2hexo generate
hexo g
启动预览服务
使用以下命令,本地预览。localhost:4000中打开。1
2hexo server
hexo s
或本地测试1
hexo debug
发布网站
站点配置文件中部署blog位置
blog文件夹下 _config.yml
为站点配置文件。打开该文件,新增部署语句如下:1
2
3
4deploy:
type: git
repo: https://github.com/username/username.github.io.git
branch: master
安装git部署插件
1 | npm install hexo-deployer-git --save |
部署
1 | hexo deploy |
至此,blog上线。 如果是内容重新更新,则在deploy
之前先clean
。
1 | hexo clean |
Hexo个性化设置
更换theme
cd
到blog文件夹,git bash中继续输入1
git clone https://github.com/iissnan/hexo-theme-next themes/next
找到站点配置文件中的theme: landscape
修改为theme: next
导航栏设置
分类和标签设置添加”分类”
cd
到blog下,执行命令hexo new page categories
- 成功后会提示
INFO Created: d:/blog/source/tags/index.md
- 找到index.md,添加
type: "tags"
- 注意主题配置文件配置以下内容。打开首页
categories
1 | menu: |
- 打开需要添加标签的文章,为其添加categories属性。
下方的categories:tools
表示添加这篇文章到”tools”这个分类下。注意:hexo中一篇文章只能属于一个分类,也就是说如果在”-tools”下方添加”-xxx”,hexo不会产生两个分类,而是把分类嵌套,即该文章属于”-tools”下的”-xxx”分类
1 | --- |
至此,成功给文章添加分类,点击首页的”分类”可以看到该分类下的所有文章。
添加”标签”
cd
到blog下,执行命令hexo new page tags
- 成功后会提示
INFO Created: d:/blog/source/categories/index.md
- 找到index.md, 添加
type: "categories"
打开需要添加标签的文章,为其添加tags属性。下方的tags: blog
-hexo
就是这篇文章的标签了
1 | --- |
至此,成功给文章添加标签,点击首页的”标签”可以看到该标签下的所有文章。
添加”about”并添加想说的话
cd
到blog下,执行命令hexo new page about
- 成功后会提示
INFO Created: d:/blog/source/categories/index.md
- 找到index.md,写上你想说的话
至此,成功给文章添加标签,点击首页的”标签”可以看到该标签下的所有文章。
添加搜索功能:LocalSearch搜索
安装hexo-generator-searchdb
. cd
到blog下,执行以下命令npm install hexo-generator-searchdb --save
编辑站点配置文件,新增以下内容到任意位置
1 | search: |
编辑主题配置文件,启用本地搜索功能
1 | # local |
首页设置
不显示全文
Hexo的Next主题默认首页显示每篇文章的全文内容,下面将其修改为只显示部分内容。
方法1: 修改主题配置文件
主题配置文件,找到以下代码:
1 | # Automatically Excerpft. Not recommend. |
把enable
的false
改成true
即可。length
设定文章预览的文本长度。 修改后重启hexo即可。
方法2: 在文章内容后加上<!--more-->
在.md文章内容后加上<!--more-->
,首页和列表页显示的文章内容就是<!--more-->
之前的文字,之后的不会显示
第一种会格式化文章的样式,直接把文章挤在一起显示,最后会有...
。第二种不会有
文章设置
置顶
安装node插件
1 | npm uninstall hexo-generator-index --save |
在需要置顶的文章的Front-matter
中加上top:true
即可。 也可以指定top: 数字
。 数字越大排序越靠前。
1 | title: |
显示版权信息
主题配置文件,修改以下部分:
1 | # Declare license on posts |
将其中的enable: false
改为enable: true
。 同时,在站点配置文件中,修改URL
为自己的站点的域名地址。
访问统计功能
添加博客的访问量。不蒜子统计
显示文章的访客数,浏览量等信息
主题配置文件, 找到busuanzi_count
,将enable: false
改为enable: true
1 | # Show PV/UV of the website/page with busuanzi. |
- 当
enable: true
时,代表开启全局开关; - 当
site_uv: true
时,代表页面底部显示站点UV - 当
site_pv: true
时,代表页面底部显示站点PV - 当
page_uv: true
时,代表文章页面标题下显示该页面的PV
显示文章更新时间
主题配置文件,post_meta
部分:
1 | # Post meta display settings |
将updated_at: false
改为updated_at: true
即可。
网站底部
去掉底部hexo强力驱动
主题配置文件,修改
1 | # If not defined, will be used `author` from Hexo main config. |
添加博客运行时间
themes/next/layout/_partials/footer.swig
1 | <span class="footer__copyright"> |
底部的心跳动
主题配置文件1
2footer:
icon: heart
~/blog/themes/next/layout/_partials/footer.swig,编辑1
<span class="with-love" id="heart">
~/blog/themes/next/source/css/_custom/custom.styl, 添加1
2
3
4
5
6
7
8
9
10
11
12
13// 自定义页脚跳动的心样式
@keyframes heartAnimate {
0%,100%{transform:scale(1);}
10%,30%{transform:scale(0.9);}
20%,40%,60%,80%{transform:scale(1.1);}
50%,70%{transform:scale(1.1);}
}
#heart {
animation: heartAnimate 1.33s ease-in-out infinite;
}
.with-love {
color: rgb(255, 113, 168);
}
代码块
代码块样式
1 | ```[language][title][url][link-text] |
说明 + [language] 是代码语言的名称,用来设置代码块颜色高亮,非必须; + [title] 是顶部左边的说明,非必须; + [url] 是顶部右边的超链接地址,非必须; + [link text] 如它的字面意思,超链接的名称,非必须。
1 | print("Hello,world!") |
设置代码高亮主题
主题配置文件,修改highlight_theme
1 | # Code Highlight theme |
Next各种样式
文本块内容样式
note primary
使用html标签写法primary
1 | {%note default%} |
如果想用包含图标的,到主题配置文件,修改为icons: true
1 | # Note tag (bs-callout). |
文字内容样式
复道行空, 不霁何虹。 长桥卧波,未云何龙。1 | {%label @复道%}{%label primary@行空%}, {%label default@不霁%}{%label success@何虹%}。 |
文字增加背景色块
打开themes/next/source/css/_custom下custom.styl文件,添加属性样式
1 | // 颜色块-红 |
在你需要编辑的文章地方。放置如下代码:1
2
3
4<span id="inline-blue"> 站点配置文件 </span>
<span id="inline-purple"> 主题配置文件 </span>
<span id="inline-yellow"> 站点配置文件 </span>
<span id="inline-green"> 主题配置文件 </span>
改变文字颜色
使用html语法直接写即可。
我可以设置这一句的颜色哈哈<font color="#FF0000"> 我可以设置这一句的颜色哈哈 </font>
<font size=6> 我还可以设置这一句的大小嘻嘻 </font>
<font size=5 color="#FF0000"> 我甚至可以设置这一句的颜色和大小呵呵</font>
文字居中
<center>这一行需要居中</center>
tabs标签
这是选项卡 1
这是选项卡 2
这是选项卡 3
1 | {% tabs tab, 1 %} |
按钮
Botton
NexT进度条加载
1 | {% btn url,test_tile,,title %} |
Botton with Icon
NexT主题设置
1 | {%btn url,showlabel,hand-o-right%} |
Botton with Fix-width
NexT个性化设置
1 | {%btn url, Next样式, hand-o-right fa-fw %} |
Center
1 | <div class="text-center"><span>{% btn url,,google%}{%btn url,,edge %}{% btn url,,chrome %}</span> |
酷绚效果
点击发射桃心效果
- /themes/next/source/js/src下新建文件clicklove.js。 把下面代码贴到该文件中。
1 | ! function (e, t, a) { |
- \themes\next\layout_layout.swig,
</body>
上方,添加
1 | <!-- 页面点击小红心 --> |
插件
字数与时间统计
1 | npm install hexo-symbols-count-time --save |
绘制图mermaid
安装1
npm i hexo-filter-mermaid-diagrams
主题配置文件, 增加1
2
3
4
5
6# mermaid chart
mermaid: ## mermaid url https://github.com/knsv/mermaid
enable: true # default true
version: "7.1.2" # default v7.1.2
options: # find more api options from https://github.com/knsv/mermaid/blob/master/src/mermaidAPI.js
#startOnload: true // default true
1 |
|
1 | {% btn, https://stazhenggy.github.io/2019/04/20/mermaid/ , 更多mermaid内容, % } |
之后使用cnpm install [name]
CERT_NOT_VALID_YET
先运行
1 | npm config set strict-ssl false |
即可。
.Rmd直接导入hexo
有大量的建模使用R实现; 日后查看整个建模流程或查阅一些常用命令。
具体查看需求的内容包含两点:
- 代码以及代码的执行结果,包含图片
- 以上需同步到博客
针对以上两个需求的实现
- 用rmarkdown直接实现
- 借助hexo <- 将.rmd转成.md, 放到_post文件夹下即可。
可能有bug的点,是图片以及公式能否显示成功。(已解决)
已有方案
Xie yihui(谢益辉),谢大大已经有新的package: blogdown
可以实现在RStudio中生成博客, 支持Hugo主题。 但自己,已经有基于Hexo搭建的博客,且现阶段基于sublime text
+ markdown
+ git bash
写博客的流程已经比较顺手且暂时不想再转换。所以,准备鼓捣利用rmarkdown
,生成.md文档。还保持之前写博客的方法。
从网上查了一些资料写了以下方案,亲测代码,代码结果输出,图片,公式,网页链接引用均没有问题。 流程不算复杂,基本满足我个人需求。
解决方案
.rmd
-> .md
-> hexo
在.rmd文件yaml head
里加入以下代码:
1 | --- |
直接knit
即可生成.md,然后将这个.md移到_post文件夹下即可。
需要注意的一点是,如果.rmd中包含的了图片,在knit
的时候,会创建名为rmdname_files的文件夹,存放该.md中对应的图。 .md引用该图使用的是markdown
语法的相对路径,即![](rmdname_files/figure-markdown_github/chunkname-1.png)
。为了保证能正确显示图片,建议使用以下流程:
在站点配置文件中, 将
post_asset_folder: false
改为true
。 修改后,每次执行hexo n(new) post_name
将不只在_post下生成post_name.md, 同时新建一个与post_name`同名的文件夹。在Rstudio中,
setwd()
到post_name文件夹下。新建.rmd并保存到该文件夹下,注意.rmd命名为post_name.rmd开始写.rmd文档。写好后,点击
knit
, 将会在post_name文件夹中生成post_name.md以及新文件夹:post_name_files将post_name文件夹中的post_name.md替换_post文件夹下的同名.md即可。
其他方案
参见BaoDuGe_飽蠹閣的博文:如何将我的R项目更好地展示在Hexo博客上