Description
这篇内容详细记述了我使用hexo+next主题搭建个人博客的过程中走过的路和跌过的坑。
最终效果:个人博客
hexo环境搭建
Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。
安装
可以参考hexo的官方文档的安装步骤:hexo的安装
建站
其实是利用hexo的博客初始化框架进行博客站点的建立,会初始化一个新的博客文件夹,里面会包含各种博客运行所需要的包以及资源文件,建站的命令参考hexo官方文档:hexo建站
建站的过程中会出现问题,当运行完hexo init myblog质量以后会提示安装错误,但是并不要紧,紧接着通过npm install指令能够解决这个错误提示
配置
紧接着是对网站进行配置,在 _config.yml 中修改大部分的配置,配置参数参考官方文档:hexo配置文档
其中要改的地方就是_config.yml里面的 new_post_name
字段,将字段的值改成new_post_name: :year-:month-:day-:title.md # File name of new posts
,这样在新建一条博客内容的时候,在source文件夹中就会生成一个同具有时间+名称的资源文件。
指令
hexo的常用指令,包含增删查改一条博客的方法、博客静态网页的生成、静态网页的部署,动态网页的清理,清理的指令:清理的指令
hexo的工作顺序是:编辑内容,生成博文,部署博文到服务器上面。编辑内容就是利用markdown语法写号一些文章,然后将写好的文章生成css连接,生成的整个网站的代码都在public文件夹里面,部署的时候会生成一个.deploy文件夹,主要是用来进行部分,一般静态托管的站点很多,推荐的有githubpage,codepage等等。
每一次安装新的包都需要重新生成静态网页,新增一篇文章不需要重新生成配置:部署的文档
个人的hexo配置文件
下面是个人的config文件的全部内容:
1 | # Hexo Configuration |
问题
通过配置文件进行功能的启用和关闭的时候,一定要在开启功能的时候安装相应的包,否则就会出现网页加载不出来的情况,也建议前期先做出一个稳定的版本的博客版式,然后不要对博客结构和代码进行修改,这样可以使博客更加稳定,而且对插件也不要升级,除非博客时间太久远,需要更新,否则,应当以稳定为第一要务
比如上图的配置文件,filter_optimize:
功能,如果只是启动这个功能,没有加入相应的插件包,那么对网站将是致命的打击,而且debug无从下手,根本不知道到底哪里出现问题。
next主题配置
next主题配置相对来说复杂一些,主要依据是next官方网站推荐的文档,个人配置的思路是先重点看next下面的配置文件,然后根据配置文件的每一个目录里面的说明文档进行包的下载和配置就可以,官方文档的参考顺序和目录层级也都是根据配置文件进行配置的,现在废话不多说了,直接上手进行配置吧,先上我的个人配置文档:
1 | # --------------------------------------------------------------- |
根据官方文档修改配置
通过配置文档就能看到这个next主题所实现的功能,每一个功能块都在配置文档里面分块标识出来了,并且每一个大功能块里面的子功能的参考文档也都有详细的安装说明,下面举例子说明
下面是一个功能块的配置文档图,我们可以看到大功能块的配置文档说明:post功能模块的说明文档,里面有整个post模块的详细说明以及功能介绍
接着可以看到这个功能模块的子功能的开启按钮和关闭按钮,# Post wordcount display settings
,这是一个对每篇文章进行计数的子功能,会显示在文档的最上角,该子功能模块给了一个安装说明文档,# Dependencies: https://github.com/theme-next/hexo-symbols-count-time
,根据地址找到文档,并且按照文档安装该功能所需的插件或者npm包,然后开启该功能就可以
其他的功能也都是一样的,有的子功能可能不需要安装插件就可以打开,直接在配置文档里面就可以进行打开,此时参考大功能模块的参考文档就可以,每一个大功能都有介绍,但是开启子功能的时候碰到文档的,一定要耐心看完文档,可以避免走很多弯路,其实这种博客搭建起来很简单,就是完全按照配置文档配置就好了。
1 | # --------------------------------------------------------------- |
next功能推荐
功能推荐其实可以参考next主题的官方Github,把next所有的子项目都配置一遍就可以了。
next的GitHub:https://github.com/theme-next
next官方说明文档:https://theme-next.org/docs/
- schem:主题里面还有副主题,选择一个副主题,schem字段里面的内容
- 阅读进度条功能
- 本地搜索功能
- canvas-nest功能,可以生成背景效果
- 右上角GitHub按钮功能
- 右下角的一键回到顶端功能
- 书签功能,可以收藏功能看到的网页
- vasline的评论功能,参考文档就可以配置完成,过程中不要怕麻烦,一劳永逸的事情
- fancy-box图片显示功能,可以将图片进行个性化显示,如果不安装图片注释将无法使用
- 左下角的分享功能也是必须的,所以也要进行配置
左边菜单栏配置
菜单栏配置不能通过配置文档来实现,菜单栏其实是需要新建一个网页,然后来配置菜单栏的子菜单的,比如添加about子菜单,需要在source文件下新建一个about.md的文档,然后在next的menu配置里面填写about: /source/about/index.md
的地址,这样该菜单栏就会生效,想要这个子菜单有什么样的效果,直接写markdown就可以,这就是hexo的精髓所在,在这个框架下,任何markdown语言写出来的文本都可以渲染,访问的路径就是source文档里面的路径加上服务器的ip地址就可以
我新建的about文件的在source里面的地址为,about: /source/about/index.md
,那么我的网页访问地址为,https://univeryinli.github.io/about,会直接对index进行渲染,相当于一个子页面,也可以写多级的index,可以组成一个庞大的多级菜单栏
总结
hexo非常适用个人博客和站点的建立,只需要很少的维护成本和极少的代码编写就可以实现一个比较酷炫的个人博客,可以在菜单栏中配置多个标签,让个人博客成为一个个人站点也都是可以的,配置好网站后就不要升级网站的基本代码了,不然会出现很多问题就麻烦了。
配置完网页以后,剩下的就交给markdown,学会写markdown将会使你的写作水平更上一个台阶,它为说明文档而生,而且科研领域里面用得比较多的ctex也跟这个语言有异曲同工之妙,非常好用,层次分明,逻辑清洗,合理利用多级标题、有序列表、无序列表将会使你的工作得到充分的展示。