FixIt  主题在 Hugo 内置的 shortcode 的基础上提供多个扩展的 shortcode.
1 style 
Hugo extended  版本对于 style shortcode 是必需的。
 
 
style shortcode 用来在你的文章中插入自定义样式。
style shortcode 有两个位置参数。
第一个参数是自定义样式的内容。它支持 & 指代这个父元素。
第二个参数是包裹你要更改样式的内容的 HTML 标签,默认值是 div。
一个 style 示例:
1
 2
 3
  
{{ <   style   "text-align:right; strong{color:#00b1ff;}"   > }} 
This is a **right-aligned** paragraph.
{{ <   / style   > }} 
 
 
呈现的输出效果如下:
This is a right-aligned  paragraph.
2 link 
link shortcode 是 Markdown 链接语法  的替代。
link shortcode 可以提供一些其它的功能并且可以在代码块中使用。
本地资源引用  的完整用法。
link shortcode 有以下命名参数:
一个 link 示例:
 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
  
{{ <   link   "https://assemble.io"   > }} 
或者
{{ <   link   href = "https://assemble.io"   > }} 
{{ <   link   "mailto:contact@revolunet.com"   > }} 
或者
{{ <   link   href = "mailto:contact@revolunet.com"   > }} 
{{ <   link   "https://assemble.io"   Assemble   > }} 
或者
{{ <   link   href = "https://assemble.io"   content = Assemble   > }} 
 
 
呈现的输出效果如下:
一个带有标题的 link 示例:
1
 2
 3
  
{{ <   link   "https://github.com/upstage/"   Upstage   "Visit Upstage!"   > }} 
或者
{{ <   link   href = "https://github.com/upstage/"   content = Upstage   title = "Visit Upstage!"   > }} 
 
 
呈现的输出效果如下 (将鼠标悬停在链接上,会有一行提示):
Upstage 
一个卡片式 link 示例:
1
 2
 3
  
{{ <   link   "https://github.com/Lruihao/FixIt"   "FixIt Theme"   "source of FixIt Theme"   true   > }} 
或者
{{ <   link   href = "https://github.com/Lruihao/FixIt"   content = "FixIt Theme"   title = "source of FixIt Theme"   card = true   > }} 
 
 
呈现的输出效果如下:
FixIt Theme 
https://github.com/Lruihao/FixIt 
  一个可下载的 link 示例:
1
 2
 3
  
{{ <   link   href = "/music/Wavelength.mp3"   content = "Wavelength"   title = "Download Wavelength.mp3"   download = "Wavelength.mp3"   > }} 
{{ <   link   href = "/music/Wavelength.mp3"   content = "Wavelength.mp3"   title = "Download Wavelength.mp3"   download = "Wavelength.mp3"   card = true   > }} 
 
 
呈现的输出效果如下:
Wavelength.mp3 
Wavelength.mp3 
/music/Wavelength.mp3 
  3 image 
image shortcode 是 figure shortcodeimage shortcode 可以充分利用 lazysizes  和 lightgallery.js  两个依赖库。
本地资源引用  的完整用法。
image shortcode 有以下命名参数:
src  [必需] (第一个 位置参数)
图片的 URL.
 
alt  [可选] (第二个 位置参数)
图片无法显示时的替代文本,默认值是 src  参数的值。
支持 Markdown 或者 HTML 格式。 
 
caption  [可选] (第三个 位置参数)
图片标题。
支持 Markdown 或者 HTML 格式。 
 
title  [可选] 
当悬停在图片上会显示的提示。
 
class  [可选] 
HTML figure 标签的 class 属性。
 
src_s  [可选] 
图片缩略图的 URL, 用在画廊模式中,默认值是 src  参数的值。
 
src_l  [可选] 
高清图片的 URL, 用在画廊模式中,默认值是 src  参数的值。
 
height  [可选] 
图片的 height 属性。
 
width  [可选] 
图片的 width 属性。
 
linked  [可选] 
图片是否需要被链接,默认值是 true。
 
rel  [可选] 
HTML a 标签 的 rel 补充属性,仅在 linked  属性设置成 true 时有效。
 
 
一个 image 示例:
1
  
{{ <   image   src = "/images/lighthouse.jpg"   caption = "Lighthouse (`image`)"   src_s = "/images/lighthouse-small.jpg"   src_l = "/images/lighthouse-large.jpg"   > }} 
 
 
呈现的输出效果如下:
 Lighthouse (image) 
4 admonition 
admonition shortcode 支持 12  种 帮助你在页面中插入提示的横幅。
支持 Markdown 或者 HTML 格式。 
admonition shortcode 有以下命名参数:
一个 admonition 示例:
1
 2
 3
 4
 5
 6
 7
  
{{ <   admonition   type = tip   title = "This is a tip"   open = false   > }} 
一个 **技巧** 横幅
{{ <   / admonition   > }} 
或者
{{ <   admonition   tip   "This is a tip"   false   > }} 
一个 **技巧** 横幅
{{ <   / admonition   > }} 
 
 
呈现的输出效果如下:
5 mermaid 
mermaid shortcode 使用 Mermaid  库提供绘制图表和流程图的功能.
完整文档请查看页面 扩展 Shortcode - mermaid .
6 echarts 
ECharts  是一个帮助你生成交互式数据可视化的库。
ECharts 提供了常规的 折线图 , 柱状图 , 散点图 , 饼图 , K 线图 , 用于统计的 盒形图 , 用于地理数据可视化的 地图 , 热力图 , 线图 , 用于关系数据可视化的 关系图 , treemap , 旭日图 , 多维数据可视化的 平行坐标 , 还有用于 BI 的 漏斗图 , 仪表盘 , 并且支持图与图之间的混搭。
只需在 echarts shortcode 中以 JSON/YAML/TOML格式插入 ECharts 选项即可。
一个 JSON 格式的 echarts 示例:
 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
  
{ {<  echarts  > } } 
{ 
  "title" :  { 
    "text" :  "折线统计图" , 
    "top" :  "2%" , 
    "left" :  "center" 
  }, 
  "tooltip" :  { 
    "trigger" :  "axis" 
  }, 
  "legend" :  { 
    "data" :  [ "邮件营销" ,  "联盟广告" ,  "视频广告" ,  "直接访问" ,  "搜索引擎" ], 
    "top" :  "10%" 
  }, 
  "grid" :  { 
    "left" :  "5%" , 
    "right" :  "5%" , 
    "bottom" :  "5%" , 
    "top" :  "20%" , 
    "containLabel" :  true 
  }, 
  "toolbox" :  { 
    "feature" :  { 
      "saveAsImage" :  { 
        "title" :  "保存为图片" 
      } 
    } 
  }, 
  "xAxis" :  { 
    "type" :  "category" , 
    "boundaryGap" :  false , 
    "data" :  [ "周一" ,  "周二" ,  "周三" ,  "周四" ,  "周五" ,  "周六" ,  "周日" ] 
  }, 
  "yAxis" :  { 
    "type" :  "value" 
  }, 
  "series" :  [ 
    { 
      "name" :  "邮件营销" , 
      "type" :  "line" , 
      "stack" :  "总量" , 
      "data" :  [ 120 ,  132 ,  101 ,  134 ,  90 ,  230 ,  210 ] 
    }, 
    { 
      "name" :  "联盟广告" , 
      "type" :  "line" , 
      "stack" :  "总量" , 
      "data" :  [ 220 ,  182 ,  191 ,  234 ,  290 ,  330 ,  310 ] 
    }, 
    { 
      "name" :  "视频广告" , 
      "type" :  "line" , 
      "stack" :  "总量" , 
      "data" :  [ 150 ,  232 ,  201 ,  154 ,  190 ,  330 ,  410 ] 
    }, 
    { 
      "name" :  "直接访问" , 
      "type" :  "line" , 
      "stack" :  "总量" , 
      "data" :  [ 320 ,  332 ,  301 ,  334 ,  390 ,  330 ,  320 ] 
    }, 
    { 
      "name" :  "搜索引擎" , 
      "type" :  "line" , 
      "stack" :  "总量" , 
      "data" :  [ 820 ,  932 ,  901 ,  934 ,  1290 ,  1330 ,  1320 ] 
    } 
  ] 
} 
{ {<  /echarts  > } } 
 
 
一个 YAML 格式的 echarts 示例:
 1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
  
{{< echarts >}} 
 title : 
      text :   折线统计图 
      top :   2 % 
      left :   center 
 tooltip : 
      trigger :   axis 
 legend : 
      data : 
          - 邮件营销 
          - 联盟广告 
          - 视频广告 
          - 直接访问 
          - 搜索引擎 
      top :   10 % 
 grid : 
      left :   5 % 
      right :   5 % 
      bottom :   5 % 
      top :   20 % 
      containLabel :   true 
 toolbox : 
      feature : 
          saveAsImage : 
              title :   保存为图片 
 xAxis : 
      type :   category 
      boundaryGap :   false 
      data : 
          - 周一 
          - 周二 
          - 周三 
          - 周四 
          - 周五 
          - 周六 
          - 周日 
 yAxis : 
      type :   value 
 series : 
      - name :   邮件营销 
        type :   line 
        stack :   总量 
        data : 
            - 120 
            - 132 
            - 101 
            - 134 
            - 90 
            - 230 
            - 210 
      - name :   联盟广告 
        type :   line 
        stack :   总量 
        data : 
            - 220 
            - 182 
            - 191 
            - 234 
            - 290 
            - 330 
            - 310 
      - name :   视频广告 
        type :   line 
        stack :   总量 
        data : 
            - 150 
            - 232 
            - 201 
            - 154 
            - 190 
            - 330 
            - 410 
      - name :   直接访问 
        type :   line 
        stack :   总量 
        data : 
            - 320 
            - 332 
            - 301 
            - 334 
            - 390 
            - 330 
            - 320 
      - name :   搜索引擎 
        type :   line 
        stack :   总量 
        data : 
            - 820 
            - 932 
            - 901 
            - 934 
            - 1290 
            - 1330 
            - 1320 
 < /echarts >}} 
  
 
一个 TOML 格式的 echarts 示例:
  1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
  
{{ <  echarts  > }} 
[ title ] 
text  =  "折线统计图" 
top  =  "2%" 
left  =  "center" 
[ tooltip ] 
trigger  =  "axis" 
[ legend ] 
data  =  [ 
  "邮件营销" , 
  "联盟广告" , 
  "视频广告" , 
  "直接访问" , 
  "搜索引擎" 
] 
top  =  "10%" 
[ grid ] 
left  =  "5%" 
right  =  "5%" 
bottom  =  "5%" 
top  =  "20%" 
containLabel  =  true 
[ toolbox ] 
[ toolbox . feature ] 
[ toolbox . feature . saveAsImage ] 
title  =  "保存为图片" 
[ xAxis ] 
type  =  "category" 
boundaryGap  =  false 
data  =  [ 
  "周一" , 
  "周二" , 
  "周三" , 
  "周四" , 
  "周五" , 
  "周六" , 
  "周日" 
] 
[ yAxis ] 
type  =  "value" 
[[ series ]] 
name  =  "邮件营销" 
type  =  "line" 
stack  =  "总量" 
data  =  [ 
  120.0 , 
  132.0 , 
  101.0 , 
  134.0 , 
  90.0 , 
  230.0 , 
  210.0 
] 
[[ series ]] 
name  =  "联盟广告" 
type  =  "line" 
stack  =  "总量" 
data  =  [ 
  220.0 , 
  182.0 , 
  191.0 , 
  234.0 , 
  290.0 , 
  330.0 , 
  310.0 
] 
[[ series ]] 
name  =  "视频广告" 
type  =  "line" 
stack  =  "总量" 
data  =  [ 
  150.0 , 
  232.0 , 
  201.0 , 
  154.0 , 
  190.0 , 
  330.0 , 
  410.0 
] 
[[ series ]] 
name  =  "直接访问" 
type  =  "line" 
stack  =  "总量" 
data  =  [ 
  320.0 , 
  332.0 , 
  301.0 , 
  334.0 , 
  390.0 , 
  330.0 , 
  320.0 
] 
[[ series ]] 
name  =  "搜索引擎" 
type  =  "line" 
stack  =  "总量" 
data  =  [ 
  820.0 , 
  932.0 , 
  901.0 , 
  934.0 , 
  1290.0 , 
  1330.0 , 
  1320.0 
] 
{{ <  / echarts  > }} 
 
 
呈现的输出效果如下:
echarts shortcode 还有以下命名参数:
width  [可选] (第一个 位置参数)
100%。
 
height  [可选] (第二个 位置参数)
30rem。
 
 
7 mapbox 
Mapbox GL JS  是一个 JavaScript 库,它使用 WebGL, 以 vector tiles  和 Mapbox styles  为来源,将它们渲染成互动式地图。
mapbox shortcode 有以下命名参数来使用 Mapbox GL JS:
lng  [必需] (第一个 位置参数)
地图初始中心点的经度,以度为单位。
 
lat  [必需] (第二个 位置参数)
地图初始中心点的纬度,以度为单位。
 
zoom  [可选] (第三个 位置参数)
地图的初始缩放级别,默认值是 10。
 
marked  [可选] (第四个 位置参数)
是否在地图的初始中心点添加图钉,默认值是 true。
 
light-style  [可选] (第五个 位置参数)
浅色主题的地图样式,默认值是 前置参数  或者 网站配置  中设置的值。
 
dark-style  [可选] (第六个 位置参数)
深色主题的地图样式,默认值是 前置参数  或者 网站配置  中设置的值。
 
navigation  [可选] 
是否添加 NavigationControl , 默认值是 前置参数  或者 网站配置  中设置的值。
 
geolocate  [可选] 
是否添加 GeolocateControl , 默认值是 前置参数  或者 网站配置  中设置的值。
 
scale  [可选] 
是否添加 ScaleControl , 默认值是 前置参数  或者 网站配置  中设置的值。
 
fullscreen  [可选] 
是否添加 FullscreenControl , 默认值是 前置参数  或者 网站配置  中设置的值。
 
width  [可选] 
地图的宽度,默认值是 100%。
 
height  [可选] 
地图的高度,默认值是 20rem。
 
 
一个简单的 mapbox 示例:
1
 2
 3
  
{{ <   mapbox   113 .953277   22 .559102   11   > }} 
或者
{{ <   mapbox   lng = 113 .953277   lat = 22 .559102   zoom = 11   > }} 
 
 
呈现的输出效果如下:
一个带有自定义样式的 mapbox 示例:
1
 2
 3
  
{{ <   mapbox   -122.252   37 .453   10   false   "mapbox://styles/mapbox/streets-zh-v1"   > }} 
或者
{{ <   mapbox   lng = -122.252   lat = 37 .453   zoom = 10   marked = false   light - style = "mapbox://styles/mapbox/streets-zh-v1"   > }} 
 
 
呈现的输出效果如下:
8 music 
music shortcode 基于 APlayer  和 MetingJS  提供了一个内嵌的响应式音乐播放器。
有三种方式使用 music shortcode.
8.1 自定义音乐 URL 
本地资源引用  的完整用法。
music shortcode 有以下命名参数来使用自定义音乐 URL:
server  [必需] 
音乐的链接。
 
type  [可选] 
音乐的名称。
 
artist  [可选] 
音乐的创作者。
 
cover  [可选] 
音乐的封面链接。
 
 
一个使用自定义音乐 URL 的 music 示例:
1
  
{{ <   music   url = "/music/Wavelength.mp3"   name = Wavelength   artist = oldmanyoung   cover = "/images/Wavelength.jpg"   > }} 
 
 
呈现的输出效果如下:
8.2 音乐平台 URL 的自动识别 
music shortcode 有一个命名参数来使用音乐平台 URL 的自动识别:
一个使用音乐平台 URL 的自动识别的 music 示例:
1
 2
 3
  
{{ <   music   auto = "https://music.163.com/#/playlist?id=60198"   > }} 
或者
{{ <   music   "https://music.163.com/#/playlist?id=60198"   > }} 
 
 
呈现的输出效果如下:
8.3 自定义音乐平台,类型和 ID 
music shortcode 有以下命名参数来使用自定义音乐平台:
server  [必需] (第一个 位置参数)
[netease, tencent, kugou, xiami, baidu]
音乐平台。
 
type  [必需] (第二个 位置参数)
[song, playlist, album, search, artist]
音乐类型。
 
id  [必需] (第三个 位置参数)
歌曲 ID, 或者播放列表 ID, 或者专辑 ID, 或者搜索关键词,或者创作者 ID.
 
 
一个使用自定义音乐平台的 music 示例:
1
 2
 3
  
{{ <   music   server = "netease"   type = "song"   id = "1868553"   > }} 
或者
{{ <   music   netease   song   1868553   > }} 
 
 
呈现的输出效果如下:
8.4 其它参数 
music shortcode 有一些可以应用于以上三种方式的其它命名参数:
music shortcode 还有一些只适用于音乐列表方式的其它命名参数:
9 bilibili 
bilibili shortcode 提供了一个内嵌的用来播放 bilibili 视频的响应式播放器。
如果视频只有一个部分,则仅需要视频的 BV id, 例如:
1
  
https://www.bilibili.com/video/BV1Sx411T7QQ
 
 
一个 bilibili 示例:
1
 2
 3
  
{{ <   bilibili   BV1Sx411T7QQ   > }} 
或者
{{ <   bilibili   id = BV1Sx411T7QQ   > }} 
 
 
呈现的输出效果如下:
如果视频包含多个部分,则除了视频的 BV id 之外,还需要 p, 默认值为 1, 例如:
1
  
https://www.bilibili.com/video/BV1TJ411C7An?p=3
 
 
一个带有 p 参数的 bilibili 示例:
1
 2
 3
  
{{ <   bilibili   BV1TJ411C7An   3   > }} 
或者
{{ <   bilibili   id = BV1TJ411C7An   p = 3   > }} 
 
 
呈现的输出效果如下:
10 typeit 
typeit shortcode 基于 TypeIt  提供了打字动画。
只需将你需要打字动画的内容插入 typeit shortcode 中即可。
10.1 简单内容 
允许使用 Markdown 格式的简单内容,并且 不包含  富文本的块内容,例如图像等等 …
一个 typeit 示例:
1
 2
 3
  
{{ <   typeit   > }} 
这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落* ...
{{ <   / typeit   > }} 
 
 
呈现的输出效果如下:
另外,你也可以自定义 HTML 标签 .
一个带有 h4 标签的 typeit 示例:
1
 2
 3
  
{{ <   typeit   tag = h4   > }} 
这一个带有基于 [TypeIt](https://typeitjs.com/) 的 **打字动画** 的 *段落* ...
{{ <   / typeit   > }} 
 
 
呈现的输出效果如下:
10.2 代码内容 
代码内容也是允许的,并且通过使用参数 code 指定语言类型可以实习语法高亮。
一个带有 code 参数的 typeit 示例:
1
 2
 3
 4
 5
 6
 7
  
{{ <   typeit   code = java   > }} 
public class HelloWorld {
    public static void main(String []args) {
        System.out.println("Hello World");
    }
}
{{ <   / typeit   > }} 
 
 
呈现的输出效果如下:
10.3 分组内容 
默认情况下,所有打字动画都是同时开始的。
但是有时你可能需要按顺序开始一组 typeit 内容的打字动画。
一组具有相同 group 参数值的 typeit 内容将按顺序开始打字动画。
一个带有 group 参数的 typeit 示例:
1
 2
 3
 4
 5
 6
 7
  
{{ <   typeit   group = paragraph   > }} 
**首先**, 这个段落开始
{{ <   / typeit   > }} 
{{ <   typeit   group = paragraph   > }} 
**然后**, 这个段落开始
{{ <   / typeit   > }} 
 
 
呈现的输出效果如下:
11 script 
script shortcode 用来在你的文章中插入 
脚本内容可以保证在所有的第三方库加载之后按顺序执行。
所以你可以自由地使用第三方库。
 
 
一个 script 示例:
1
 2
 3
  
{{ <   script   > }} 
console.log('Hello FixIt!');
{{ <   / script   > }} 
 
 
你可以在开发者工具的控制台中看到输出。
12 details 
details shortcode 用来在你的文章中插入 
details shortcode 只有一个参数:
一个 details 示例:
1
 2
 3
 4
 5
 6
 7
  
{{ <   details   "**Copyright** 2022."   > }} 
*All pages and graphics on this web site are the property of FixIt.*
{{ <   / details   > }} 
或者
{{ <   details   summary = "**Copyright** 2022."   > }} 
*All pages and graphics on this web site are the property of FixIt.*
{{ <   / details   > }} 
 
 
呈现的输出效果如下:
Copyright  2022.All pages and graphics on this web site are the property of FixIt. 
 
13 center-quote 
center-quote shortcode 用来在你的文章中插入文本居中的 blockquote 标签。
一个 center-quote 示例:
1
 2
 3
 4
  
{{ %   center - quote   % }} 
**hello** *world*  
this is a center-quote shortcode example.
{{ %   / center - quote   % }} 
 
 
呈现的输出效果如下:
hello  world 
 
fixit-encryptor 
您可以使用 fixit-encryptor shortcode 来加密部分内容。
完整文档请查看页面 主题文档 - 内容加密 .
本文档中 v0.2.10 版本之前的内容,感谢原作者 Dillon  编写修订。