Hexo历险记之十一新建单篇通用模板

前言

经过前面的所有文章,你其实已经可以出门对别人讲,我是个博主,你可以从我的域名访问到我的博客。

本篇文章是着重细说,如何使用自定义模板,新建单篇博客。

注意:本文具体文档只针对[email protected],最新的[email protected]我还没用过,不做保证。

时隔四年,重启Hexo历险计划!

<!–more–>

相当长的一段时间内,在_drafts文件夹内复制旧有的博客,然后修改Front-matter信息。其实本质上来说,我这么做是没有错误的。但是总会遇到那么一种没脑子的情况,我自己忘记做拷贝,直接将快完成的一篇三千字文章给全部删除了,写了新的内容……

所以才开始求变,才开始了解原来Hexo是怎么用模板创建文章的。

新建单篇博客

默认模板

言归正传,一开始的时候,我其实就从官方文档里面了解到,可以用命令新建文档。

 hexo new test-1

于是Hexo就会根据博客根目录的配置文件的配置,从模板文件夹\scaffolds内去匹配模板draft.md文件,在\_draft文件夹内生成命名为test-1.md的MD文件。

自定义模板

仔细了解hexo的帮助命令后,知道可以使用自定义的模板。

所以,我们完全可以新建不同的模板,来给不同的文章系列规定不同的样式表,下面用我自己的CPP模板做例子。

新建文件\scaffolds\cpp.md

 —
 layout: cpp
 title: {{ title }}
 date: {{date}}
 author: 君匡
 typora-root-url: ../
 tags:
   – java
 categories:
   – Java
 —
 
 <!–more–>
 
 
 
 
 ## 感谢
 
 感谢现在努力的自己。

注意:一定要在front-matter 中加上字段layout: cpp。用这个方式来指定文件所对应的模板。

生成博客

 hexo new cpp test-3 –path=../_drafts/test-3

  • cpp: 是扫描了模板文件夹下指定的模板

  • test-3: 指定了生成文件的名称

  • --path:可以为空,会自动生成到_post文件夹内的;可以为路径,指明生成的文件夹。

脚本优化

正如我之前所说的,把他做成可运行的脚本,那么适当的美化是很重要的吧!

Windwos系统

在任意位置新建文件新建CPP博客.bat,内容如下。

 @echo off
 color 74
 echo.    ******************************************************************
 echo.
 echo.    辛勤的君匡大人,欢迎新建CPP博客!
 echo.
 echo.    ******************************************************************
 echo.  
 echo.  
 
 cd F://myblog
 set /p name=请输入新建的博客名称:
 hexo new cpp %name% –path=../_drafts/%name%

至于更加风骚的模板就要自己开动脑筋了哦。

mac系统

这个系统默认使用的是zsh,所以不能使用bat脚本了,必须要使用sh脚本了。

 #!/bin/zsh
 function hncpp(){  # hexo new cpp ****
        cd /Volumes/KeenMacPlus/Blog/0Local
        echo “辛勤的君匡大人,欢迎新建CPP博客!”
        hexo new cpp  “$1″ –path=../_drafts/”$1”
 }

在配置文件中/Users/keen/.zshrc中修改,实现自动加载该文件,内容如下。

 source /Volumes/KeenMacPlus/Blog/0Local/source/+Bat+Sh/hexo.sh

于是想要写新博客的时候,只需要在任何路径下运行以下命令即可生成新一篇博客。

 hncpp test-4

插件适配

在平时我们不显式标明的话,在渲染的时候layout字段是自动填成post的。然后诸多插件共同努力完成渲染,生成页面。

而因为我这次使用了自定义的模板文件,layout就不是post了,一些默认只针对layout: post的插件就失效了。

举例来说,就是hexo-abbrlink

解决办法有两个,一个就是在手动移动md文件的时候直接删除该条信息,回归默认。

另一个,就是手动修改插件的内部逻辑,当然,非老司机不建议。而我此时脑袋里冒出了一个大胆的想法,我为什么不能基于原插件进一步开发一个新的插件?

事实证明,我做到了,公布了插件hexo-abbrlink3,详细过程介绍就留在下一篇内容。

感谢

感谢现在努力的自己。

资源下载: