前几天心血来潮,翻出了不知道那年的博客,用户hexo重新搭建了下。把这个是记录下来。
安装
这个不多说,hexo 官方文档有介绍。
配置
基本的一些配置上面,上面也有,还有一些我参考了这篇博客,在此先谢过这位朋友的分享。
遇到的问题及解决
CNAME 文件
因为 Github 需要 CNAME 文件,用于指定域名。不过放在 public
文件夹中的话,只要 clean
一次就没了。网站找了下资料,应该将其放在 source
目录总,这样在生成时候就会一起带到 public
文件夹中。一些博文中需要的图片(images)和favicon.ico等不变的内容也可以一起放在 source
目录下。
README.md文件不渲染
在站点配置文件中添加
skip_render: README.md
stiemap 的生成
需要安装插件
npm install hexo-generator-sitemap --save
站点配置文件中添加配置
sitemap:
path: sitemap.xml
博文永久连接
默认是时间分开。但是这样路径比较长。不方便管理。网上有种方法是urlname。使用urlname来作为链接,避免使用文件名。这样文件名就可以自己定义,方便本地管理。
具体做法是,在站点配置文件中,修改配置如下:
permalink: post/:urlname.html
然后在每一篇 post
中都需要加一个urlname,如这篇文章的:
title: 20171001-hexo3搭建博客
date: 2017-10-01 03:44:13
tags: hexo
urlname: blog-with-hexo3
缺点是,如果那篇忘记了这个,那生成的 html
文件将会是未知
图片保存
hexo官网有推荐的方法,文档。当时我的觉这个太依赖hexo,不符合markdown的理念。所以,还是选择土办法管理图片,放在 source/images
目录下,post中直接用相对路径应用。亲测可行。
博客的版本控制
hexo 的部署功能,只能建 public
文件夹中的内容推送到 Github 上。而配置文件和博客源文件都无法提交。如果换了电脑或电脑换了,那就什么都要从新开始了。
解决方法是,将整个博客目录都提交到 Github 上。
hexo 生成站点目录时候,已经有一个 .gitignore
文件,里面帮我们忽略了所有的没必要提交的内容。我估计这个文件的目录就是方便保存配置和源文件。
我的做法是,Github 上使用同一个源,用不同分支分别保存生成的页面和源文件。如 master
保存生成的整个站点。post
分支保存源文件。master
由 hexo 部署命令自动推送。 post
由我手动推送。
这里说到主题的版本控制。我使用的 NexT 主题。按教程,我是直接从 Github 上 clone 下来的。themes/next
文件夹中有 git 的版本信息。这样,我提交博客配置时候,这个文件夹无法被提交, git 当他是一个子项目。后来看了下网站相同问题的解决方法。大致是将主题 fork 到自己的仓库中。然后在 clone 下来。这样如果主题配置或样式有改动,可以提交到自己的远程仓库中。不然他人的源肯定是不给提交的。
总结
hexo 这东西还是很容易上手的。完全就看能不能持久的写博客了。