目录

Hexo系列(3) - NexT主题和Markdown的写作技巧

前言

本系列主要介绍和hexo-NexT主题相关的一些写作技巧,可能会涉及到部分前端知识(不了解也没关系,能用就行)。我之所以选择hexo-NexT来搭建个人网站,一个很重要的原因就是因为简单、方便、快捷!不需要服务器,直接通过Markdown来进行写作,不仅文章布局美观,还可以节省大量的时间。

此外NexT主题很贴心地自带了一些样式,让你可以不需要自己写一大堆html标签就能得到美观的页面效果。

本系列针对的是NexT 5.1.4版本的样式,请到我的个人站点更加直观地看到页面效果,不便之处还请见谅。 ->这是本文在个人站点的链接<-

文本居中引用

该样式可以将一段文本居中显示,并在首尾各自生成一个引号图片,效果如下:

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-1.jpg
hexo-write-1.jpg

源码如下:

1
2
3
4
5
{% cq %}
人类的本质是复读机。

——**复读机**
{% endcq %}

原本该样式的字体是黑色的,我把它改成红色了。这里的cq是标签别名,也可以用完整的标签名:

1
2
3
4
5
{% centerquote %}
人类的本质是复读机。

——**复读机**
{% endcenterquote %}

图片突破容器宽度限制

使用此标签引用图片时,图片将自动扩大 26%,并突破文章容器的宽度。 此标签使用于需要突出显示的图片, 图片的扩大与容器的偏差从视觉上提升图片的吸引力。效果如下:

附上一张wlop大大的saber~

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-2.jpg
hexo-write-2.jpg

使用方式如下:

1
2
3
4
{% fullimage /image-url, alt, title %}

<!-- 别名 -->
{% fi /image-url, alt, title %}

这里的alt和title可以不写,alt属性是找不到图片时显示的文本,title是鼠标停留在图片上时显示的文本。

Note标签

本标签出自于Bootstrap,使用前需要先启用主题配置文件:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
# 主题自带的标签样式,有 note、label、tabs 三种
# Note tag (bs-callout).
note:
  # Note tag style values:
  #  - simple    bs-callout old alert style. Default.
  #  - modern    bs-callout new (v2-v3) alert style.
  #  - flat      flat callout style with background, like on Mozilla or StackOverflow.
  #  - disabled  disable all CSS styles import of note tag.
  # Note标签的样式有四种:
  #  - simple:默认的样式,也是Bootstrap Callout旧版本的样式。
  #  - modern:Bootstrap Callout新版本(v2-v3)的样式。
  #  - flat:该样式会连同背景也一起渲染,如同Mozilla或者StackOverflow那样。
  #  - disabled:禁用本Note标签。
  style: flat
  icons: true
  border_radius: 3
  # Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
  # Offset also applied to label tag variables. This option can work with disabled note tag.
  light_bg_offset: 0

效果如下:

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-3.jpg
hexo-write-3.jpg

Note标签一共有以上六种类型:default,primary,success,info,warning,danger,源码如下:

1
2
3
4
5
6
{% note default %}default{% endnote %}
{% note primary %}primary{% endnote %}
{% note success %}success{% endnote %}
{% note info %}info{% endnote %}
{% note warning %}warning{% endnote %}
{% note danger %}danger{% endnote %}

Label标签

使用前同样需要启用配置:

1
2
# Label tag.
label: true

效果如下:

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-4.jpg
hexo-write-4.jpg

和Note标签一样,同样是六种类型。@前面是类型,@后面是显示的文本内容。这个label标签的样式并不好看,我基本不用。

Tab标签

这个标签和浏览器的tab是类似的,使用前也需要启用配置:

1
2
3
4
5
6
7
# Tabs tag.
tabs:
  enable: true
  transition:
    tabs: true
    labels: true
  border_radius: 3

效果如下:

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-5.jpg
hexo-write-5.jpg

源码如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
{% tabs 贴吧, 1 %}
<!-- tab android开发吧 -->
有问题为什么不先问问隔壁Java吧呢?
<!-- endtab -->
<!-- tab java吧 -->
有问题为什么不先问问隔壁C++吧呢?
<!-- endtab -->
<!-- tab c++吧 -->
有问题为什么不先问问隔壁C语言吧呢?
<!-- endtab -->
<!-- tab c语言 -->
有问题为什么不先问问神奇海螺吧呢?
<!-- endtab -->
<!-- tab 神奇海螺 -->
有问必答不知道
<!-- endtab -->
{% endtabs %}

简单介绍下常规用法:

  1. 源码第一行的数字表示默认显示哪一个tab页面,如果是-1则表示隐藏所有tab页面内容。
  2. 如果不为每个tab单独制定名字,则会以第一行源码的名字为每个tab命名,并自动在名字后加上1,2,3...以示区分。
  3. tab的名字支持fontawesome图标,使用方法是@加上图标的名字,例如@home,注意该图标需要添加在tab名字的最后,渲染时图标会自动放在名字最前面,比如:<!-- tab android开发吧@home -->

更多用法可以参考该文章

按钮标签样式

这个样式和阅读全文那个按钮一样,效果如下:

https://cdn.jsdelivr.net/gh/lewky/lewky.github.io@master/images/posts/hexo/writing/hexo-write-6.jpg
hexo-write-6.jpg

源码如下:

1
{% btn https://www.baidu.com, 点击前往百度, download fa-lg fa-fw %}

更多用法可以参考该文章 此外还有其他的标签样式的使用方法,请参考本文末尾的参考链接文章。

如何在文章中插入图片

网上有不少办法,有的是启用配置文件中的属性,有的则是安装插件,这里只介绍最简单的一种方法。

  • 在 source/ 目录下新建一个文件夹,比如 images;在该文件夹下存放各种图片资源,比如 test.jpg;
  • 新建一篇文章,在文章中使用markdown的插入图片语法:
1
![test](/images/test.jpg)
  • 这里使用的是绝对路径,如果使用相对路径比如images/test.jpg可能会无法访问到该图片资源。建议在博客或者配置中都使用绝对路径。

修改默认的post和draft的模板

通过hexo n post XXX或者hexo n draft XXX所生成的文章或草稿是根据默认的模板来生成的,我们可以自己来定制想要的模板。

在站点根目录下的 scaffolds 文件夹下,存放着 draft.mdpage.mdpost.md这三个文件夹,一般我们只需要修改draft和post这两个模板就行了。

我们可以在模板的文件头里添加自己想要的格式,如下:

1
2
3
4
5
6
---
title: {{ title }}
date: {{ date }}
tags:
categories:
---

这样使用命令生成的draft或post都会默认带有上边的文件头了。

添加新的模板来生成定制的post

我们还可以在 scaffolds 目录下添加新的模板文件,比如 Hexo.md,其模板内容如下:

1
2
3
4
5
6
7
8
---
title: {{ title }}
date: {{ date }}
tags:
  - Hexo
categories:
  - Hexo
---

然后通过命令:

1
hexo n hexo XXX

注意,这里的第二个 hexo 指的是我们刚刚新添加的模板文件 hexo.md 的文件名;这里的文件名和命令都是大小写不敏感的。

执行完命令会在 source/_posts 目录下生成与 hexo.md 模板相对应的文章。

如何使用上标、下标

Markdown可以和HTML的语法兼容,可以通过HTML的上标和下标标签来实现效果:

标签写法效果
上标2<sup>10</sup>210
下标H<sub>2</sub>OH2O

这里解释下,sup指的是superscript上标,sub指的是subscript下标。

如何给文本加下划线

Markdown可以和HTML的语法兼容,可以通过HTML的<u>标签来实现效果:

写法效果
<u>下划线</u>下划线

这里解释下,u指的是underline下划线。

注意:尽量不要给文本加下划线,因为这会和超链的表现形式混淆,会被误以为是个超链。

参考链接

警告
本文最后更新于 July 19, 2018,文中内容可能已过时,请谨慎使用。