最近有人问我博客的代码块是怎么做的,如下面的代码块,然后好久没有写文章了,趁着周末有时间就水一篇吧~
1 | var arr = 'abcdaabc'; |
hexo
会有各种生命周期和事件,平时可能不会用到,但是能很好的利用的话,可以提高不少效率。比如文章多到一定程度之后,每次创建新文章都会被淹没在文件夹里面,在博客根目录下创建一个 scripts
文件夹,放一个 events.js
文件。这样每次通过hexo new post
创建新文章就会自动用 code
打开了~
1 | var exec = require('child_process').exec; |
又或者是在 hexo deploy
之后想做一些事情的时候也可以用到
1 | try { |
代码块也是利用了 hexo
的 api
,是在主题目录下面的 scripts
文件夹,我创建了一个 codeblock.js
文件。监听 after_post_render
事件,(这个事件并不是每次都触发,hexo
会做缓存,在没有缓存的情况下才会执行。)通过事件回调替换文章渲染出来的内容。
1 | var attributes = [ |
然后在 highlight.js
的基础上调整下样式,包裹上一层类 mac Panel
的效果。
在 blog/themes/next/source/css/_custom
目录下新建一个 .styl
的样式文件 ,文件内容如下
1 | .highlight-wrap[data-rel] { |
然后在同目录 custom.styl
文件中引入新建的样式文件即可
最后修改主题的代码样式配置文件
1 | highlight_theme: night eighties |
OK,大功告成~
我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=2t8yu2xdpn280