本文主要记录一下,修改Hexo下语法高亮的各种用法,修改后的语法可以快速设置多种样式,主要功能如下:
格式总览
主要功能如上,都是自带功能,更重要的是只是想在```
```
后直接实现设置,不想使用{ % ... % }
去实现这些功能。
格式
```[language] [:title] [lang:language] [line_number:(true|false)] [first_line:number] [mark:#,#-#] [diff:true|false] [url:http...]code snippet```自定义
```code snippet```效果
使用方法
设置语法语言
格式
``` language //注意 语言类型 需要写在其他定义之前code snippet```样例
```javapublic Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}```效果
12345public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}
设置标题
格式
``` [:words|:path|:url|:ftp|:ip/path] //以英文冒号开头即可code snippet```样例
``` :file:///D:/zhuzhu xia/HelloWorldClass.java //如果没有定义语言,词后缀可辅助public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}```效果
file:///D:/zhuzhu xia/HelloWorldClass.java 12345public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}
是否显示行号
格式
``` [line_number:(true|false)] //默认truecode snippet```样例
```java line_number:falsepublic Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}```效果
public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}
设置起始行号
格式
123``` [first_line:number] //默认code snippet```样例
```java first_line:22public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}```效果
2223242526public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");}}
选定行号标记
格式
``` [mark:#,#-#] //#行号,#-#行号范围code snippet```样例
```java mark:2,4,8,10-14,18public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");}}```效果
1234567891011121314151617181920public Class HelloWorldClass(){public static void main(String[] args){System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");System.Out.printl("Hello World");}}
设置代码添加删除标记
格式
``` [diff:true|false]code snippet```样例
```js diff:true'use struct';-var name = 'zhu'+var name = 'zhuzhuxia';function sayHello(){- alert(name);+ console.log(name);}```效果
123456789'use struct';var name = 'zhu'var name = 'zhuzhuxia';function sayHello(){alert(name);console.log(name);}
还有更惊喜的功能,你点击左上角 复制
按钮,粘贴出去试试看!只会复制出最新代码哦。
设置跳转超级链接
格式
``` [url:http... download|下载] //url:http 开头,无download则跳转链接,有则下载内容code snippet```样例
``` :需要标题 url:http://zhuzhuyule.com/images/avatar.png download这里会下载我的头像!```效果
需要标题 download 1这里会下载我的头像!
修改代码
如果需要实现以上功能,需要更改 ./node_modules/
目录下插件:
|--hexo| |--lib| |--plugins| |--filter| |--before_post_render||--hexo-util| |--lib| |--highlight.js
覆盖以上文件即可,详细不在这里描述了。
在添加样式文件即可:@import highlight
;
custom.styl
中添加样式文件引用:
theme.styl
中直接添加颜色,可以自己调整颜色(放在这里好控制管理皮肤):
也可以这样,这是我的 自己使用的皮肤配色: