2020-03-08 14:02:21 +01:00
|
|
|
---
|
2020-03-21 09:59:23 +01:00
|
|
|
weight: 4
|
|
|
|
title: "主题文档 - 扩展 Shortcodes"
|
|
|
|
date: 2020-03-03T16:29:59+08:00
|
|
|
|
lastmod: 2020-03-03T16:29:59+08:00
|
2020-03-08 14:02:21 +01:00
|
|
|
draft: false
|
|
|
|
author: "Dillon"
|
|
|
|
authorLink: "https://dillonzq.com"
|
2020-03-21 09:59:23 +01:00
|
|
|
description: "LoveIt 主题在 Hugo 内置的 shortcode 的基础上提供多个扩展的 shortcode."
|
2022-05-08 19:31:17 +02:00
|
|
|
images: ["featured-image.jpg"]
|
2020-05-28 11:05:37 +02:00
|
|
|
resources:
|
|
|
|
- name: "featured-image"
|
|
|
|
src: "featured-image.jpg"
|
|
|
|
- name: "featured-image-preview"
|
|
|
|
src: "featured-image-preview.jpg"
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
tags: ["shortcodes"]
|
|
|
|
categories: ["documentation"]
|
|
|
|
|
2020-04-21 16:55:06 +02:00
|
|
|
lightgallery: true
|
2022-05-06 17:54:15 +02:00
|
|
|
|
|
|
|
math:
|
|
|
|
enable: true
|
2020-04-24 17:47:47 +02:00
|
|
|
mapbox:
|
|
|
|
lightStyle: mapbox://styles/mapbox/light-zh-v1?optimize=true
|
|
|
|
darkStyle: mapbox://styles/mapbox/dark-zh-v1?optimize=true
|
2020-03-08 14:02:21 +01:00
|
|
|
---
|
|
|
|
|
2020-03-21 09:59:23 +01:00
|
|
|
**LoveIt** 主题在 Hugo 内置的 shortcode 的基础上提供多个扩展的 shortcode.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
<!--more-->
|
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 1 style
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-26 19:19:23 +02:00
|
|
|
{{< version 0.2.0 changed >}}
|
|
|
|
|
2020-05-04 09:19:18 +02:00
|
|
|
{{< admonition >}}
|
|
|
|
Hugo **extended** 版本对于 `style` shortcode 是必需的.
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
2020-03-08 14:02:21 +01:00
|
|
|
`style` shortcode 用来在你的文章中插入自定义样式.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`style` shortcode 有两个位置参数.
|
|
|
|
|
2020-05-15 11:43:04 +02:00
|
|
|
第一个参数是自定义样式的内容. 它支持 [:(fab fa-sass fa-fw): SASS](https://sass-lang.com/documentation/style-rules/declarations#nesting) 中的嵌套语法,
|
2020-04-26 19:19:23 +02:00
|
|
|
并且 `&` 指代这个父元素.
|
2020-03-19 05:35:37 +01:00
|
|
|
|
2020-04-25 21:25:10 +02:00
|
|
|
第二个参数是包裹你要更改样式的内容的 HTML 标签, 默认值是 `div`.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
一个 `style` 示例:
|
|
|
|
|
|
|
|
```markdown
|
2020-04-26 19:19:23 +02:00
|
|
|
{{</* style "text-align:right; strong{color:#00b1ff;}" */>}}
|
|
|
|
This is a **right-aligned** paragraph.
|
2020-03-08 14:02:21 +01:00
|
|
|
{{</* /style */>}}
|
|
|
|
```
|
|
|
|
|
|
|
|
呈现的输出效果如下:
|
|
|
|
|
2020-04-26 19:19:23 +02:00
|
|
|
{{< style "text-align:right; strong{color:#00b1ff;}" >}}
|
|
|
|
This is a **right-aligned** paragraph.
|
2020-03-08 14:02:21 +01:00
|
|
|
{{< /style >}}
|
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 2 link
|
2020-03-17 14:16:04 +01:00
|
|
|
|
2020-03-19 09:54:47 +01:00
|
|
|
{{< version 0.2.0 >}}
|
2020-03-17 14:16:04 +01:00
|
|
|
|
2020-04-27 19:38:22 +02:00
|
|
|
`link` shortcode 是 [Markdown 链接语法](../basic-markdown-syntax#links) 的替代.
|
2020-03-17 14:16:04 +01:00
|
|
|
`link` shortcode 可以提供一些其它的功能并且可以在代码块中使用.
|
|
|
|
|
2020-05-28 11:05:37 +02:00
|
|
|
{{< version 0.2.10 >}} 支持[本地资源引用](../theme-documentation-content#contents-organization)的完整用法.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`link` shortcode 有以下命名参数:
|
2020-03-17 14:16:04 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **href** *[必需]* (**第一个**位置参数)
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
链接的目标.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **content** *[可选]* (**第二个**位置参数)
|
|
|
|
|
|
|
|
链接的内容, 默认值是 **href** 参数的值.
|
2020-03-17 14:16:04 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
*支持 Markdown 或者 HTML 格式.*
|
2020-03-17 14:16:04 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **title** *[可选]* (**第三个**位置参数)
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
HTML `a` 标签 的 `title` 属性, 当悬停在链接上会显示的提示.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **rel** *[可选]*
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
HTML `a` 标签 的 `rel` 补充属性.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **class** *[可选]*
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
HTML `a` 标签 的 `class` 属性.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
一个 `link` 示例:
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
```markdown
|
|
|
|
{{</* 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 "https://assemble.io" >}}
|
|
|
|
* {{< link "mailto:contact@revolunet.com" >}}
|
|
|
|
* {{< link "https://assemble.io" Assemble >}}
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
一个带有标题的 `link` 示例:
|
2020-03-17 14:16:04 +01:00
|
|
|
|
|
|
|
```markdown
|
|
|
|
{{</* link "https://github.com/upstage/" Upstage "Visit Upstage!" */>}}
|
|
|
|
或者
|
|
|
|
{{</* link href="https://github.com/upstage/" content=Upstage title="Visit Upstage!" */>}}
|
|
|
|
```
|
|
|
|
|
|
|
|
呈现的输出效果如下 (将鼠标悬停在链接上,会有一行提示):
|
|
|
|
|
|
|
|
{{< link "https://github.com/upstage/" Upstage "Visit Upstage!" >}}
|
|
|
|
|
2020-04-30 18:57:30 +02:00
|
|
|
## 3 image {#image}
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 09:54:47 +01:00
|
|
|
{{< version 0.2.0 changed >}}
|
|
|
|
|
2020-04-27 19:38:22 +02:00
|
|
|
`image` shortcode 是 [`figure` shortcode](../theme-documentation-built-in-shortcodes#figure) 的替代. `image` shortcode 可以充分利用 [lazysizes](https://github.com/aFarkas/lazysizes) 和 [lightgallery.js](https://github.com/sachinchoolur/lightgallery.js) 两个依赖库.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-05-28 11:05:37 +02:00
|
|
|
{{< version 0.2.10 >}} 支持[本地资源引用](../theme-documentation-content#contents-organization)的完整用法.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`image` shortcode 有以下命名参数:
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **src** *[必需]* (**第一个**位置参数)
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
图片的 URL.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **alt** *[可选]* (**第二个**位置参数)
|
|
|
|
|
|
|
|
图片无法显示时的替代文本, 默认值是 **src** 参数的值.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
*支持 Markdown 或者 HTML 格式.*
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **caption** *[可选]* (**第三个**位置参数)
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
图片标题.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
*支持 Markdown 或者 HTML 格式.*
|
|
|
|
|
|
|
|
* **title** *[可选]*
|
|
|
|
|
|
|
|
当悬停在图片上会显示的提示.
|
|
|
|
|
|
|
|
* **class** *[可选]*
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
HTML `figure` 标签的 `class` 属性.
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **src_s** *[可选]*
|
|
|
|
|
|
|
|
图片缩略图的 URL, 用在画廊模式中, 默认值是 **src** 参数的值.
|
|
|
|
|
|
|
|
* **src_l** *[可选]*
|
|
|
|
|
|
|
|
高清图片的 URL, 用在画廊模式中, 默认值是 **src** 参数的值.
|
|
|
|
|
|
|
|
* **height** *[可选]*
|
|
|
|
|
|
|
|
图片的 `height` 属性.
|
|
|
|
|
|
|
|
* **width** *[可选]*
|
|
|
|
|
|
|
|
图片的 `width` 属性.
|
|
|
|
|
|
|
|
* **linked** *[可选]*
|
|
|
|
|
|
|
|
图片是否需要被链接, 默认值是 `true`.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **rel** *[可选]*
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
HTML `a` 标签 的 `rel` 补充属性, 仅在 **linked** 属性设置成 `true` 时有效.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
一个 `image` 示例:
|
|
|
|
|
|
|
|
```markdown
|
2020-05-28 11:05:37 +02:00
|
|
|
{{</* image src="/images/lighthouse.jpg" caption="Lighthouse (`image`)" src_s="/images/lighthouse-small.jpg" src_l="/images/lighthouse-large.jpg" */>}}
|
2020-03-08 14:02:21 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
呈现的输出效果如下:
|
|
|
|
|
2020-05-28 11:05:37 +02:00
|
|
|
{{< image src="/images/lighthouse.jpg" caption="Lighthouse (`image`)" src_s="/images/lighthouse-small.jpg" src_l="/images/lighthouse-large.jpg" >}}
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 4 admonition
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`admonition` shortcode 支持 **12** 种 帮助你在页面中插入提示的横幅.
|
|
|
|
|
|
|
|
*支持 Markdown 或者 HTML 格式.*
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
{{< admonition >}}
|
|
|
|
一个 **注意** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition abstract >}}
|
|
|
|
一个 **摘要** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition info >}}
|
|
|
|
一个 **信息** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition tip >}}
|
|
|
|
一个 **技巧** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition success >}}
|
|
|
|
一个 **成功** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition question >}}
|
|
|
|
一个 **问题** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition warning >}}
|
|
|
|
一个 **警告** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition failure >}}
|
|
|
|
一个 **失败** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition danger >}}
|
|
|
|
一个 **危险** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition bug >}}
|
|
|
|
一个 **Bug** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition example >}}
|
|
|
|
一个 **示例** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
{{< admonition quote >}}
|
|
|
|
一个 **引用** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`admonition` shortcode 有以下命名参数:
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **type** *[必需]* (**第一个**位置参数)
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`admonition` 横幅的类型, 默认值是 `note`.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
* **title** *[可选]* (**第二个**位置参数)
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-03-19 05:35:37 +01:00
|
|
|
`admonition` 横幅的标题, 默认值是 **type** 参数的值.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-27 19:38:22 +02:00
|
|
|
* **open** *[可选]* (**第三个**位置参数) {{< version 0.2.0 changed >}}
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-27 19:38:22 +02:00
|
|
|
横幅内容是否默认展开, 默认值是 `true`.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
|
|
|
一个 `admonition` 示例:
|
|
|
|
|
|
|
|
```markdown
|
2020-04-27 19:38:22 +02:00
|
|
|
{{</* admonition type=tip title="This is a tip" open=false */>}}
|
2020-03-08 14:02:21 +01:00
|
|
|
一个 **技巧** 横幅
|
|
|
|
{{</* /admonition */>}}
|
2020-03-17 14:16:04 +01:00
|
|
|
或者
|
2020-04-27 19:38:22 +02:00
|
|
|
{{</* admonition tip "This is a tip" false */>}}
|
2020-03-08 14:02:21 +01:00
|
|
|
一个 **技巧** 横幅
|
|
|
|
{{</* /admonition */>}}
|
|
|
|
```
|
|
|
|
|
|
|
|
呈现的输出效果如下:
|
|
|
|
|
2020-04-27 19:38:22 +02:00
|
|
|
{{< admonition tip "This is a tip" false >}}
|
2020-03-08 14:02:21 +01:00
|
|
|
一个 **技巧** 横幅
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 5 mermaid
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
`mermaid` shortcode 使用 [Mermaid](https://mermaidjs.github.io/) 库提供绘制图表和流程图的功能.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - mermaid Shortcode](../theme-documentation-mermaid-shortcode).
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 6 echarts
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
`echarts` shortcode 使用 [ECharts](https://echarts.apache.org/) 库提供数据可视化的功能.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - echarts Shortcode](../theme-documentation-echarts-shortcode).
|
2020-03-21 13:52:12 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 7 mapbox
|
2020-03-21 09:59:23 +01:00
|
|
|
|
|
|
|
{{< version 0.2.0 >}}
|
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
`mapbox` shortcode 使用 [Mapbox GL JS](https://docs.mapbox.com/mapbox-gl-js) 库提供互动式地图的功能.
|
2020-03-21 09:59:23 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - mapbox Shortcode](../theme-documentation-mapbox-shortcode).
|
2020-03-21 09:59:23 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 8 music
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
`music` shortcode 基于 [APlayer](https://github.com/MoePlayer/APlayer) 和 [MetingJS](https://github.com/metowolf/MetingJS) 库提供了一个内嵌的响应式音乐播放器.
|
2020-03-19 05:35:37 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - music Shortcode](../theme-documentation-music-shortcode).
|
2020-03-19 05:35:37 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 9 bilibili
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-15 12:30:22 +02:00
|
|
|
{{< version 0.2.0 changed >}}
|
|
|
|
|
2020-03-08 14:02:21 +01:00
|
|
|
`bilibili` shortcode 提供了一个内嵌的用来播放 bilibili 视频的响应式播放器.
|
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - bilibili Shortcode](../theme-documentation-bilibili-shortcode).
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2020-04-30 18:32:24 +02:00
|
|
|
## 10 typeit
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
`typeit` shortcode 基于 [TypeIt](https://typeitjs.com/) 库提供了打字动画.
|
2020-03-08 14:02:21 +01:00
|
|
|
|
2022-05-08 19:31:17 +02:00
|
|
|
完整文档请查看页面 [主题文档 - typeit Shortcode](../theme-documentation-typeit-shortcode).
|
2020-05-15 11:43:04 +02:00
|
|
|
|
|
|
|
## 11 script
|
|
|
|
|
|
|
|
{{< version 0.2.8 >}}
|
|
|
|
|
|
|
|
`script` shortcode 用来在你的文章中插入 **:(fab fa-js fa-fw): Javascript** 脚本.
|
|
|
|
|
|
|
|
{{< admonition >}}
|
|
|
|
脚本内容可以保证在所有的第三方库加载之后按顺序执行.
|
|
|
|
所以你可以自由地使用第三方库.
|
|
|
|
{{< /admonition >}}
|
|
|
|
|
|
|
|
一个 `script` 示例:
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
{{</* script */>}}
|
|
|
|
console.log('Hello LoveIt!');
|
|
|
|
{{</* /script */>}}
|
|
|
|
```
|
|
|
|
|
|
|
|
你可以在开发者工具的控制台中看到输出.
|
|
|
|
|
|
|
|
{{< script >}}
|
|
|
|
console.log('Hello LoveIt!');
|
|
|
|
{{< /script >}}
|
2022-05-06 17:54:15 +02:00
|
|
|
|
|
|
|
## 12 raw
|
|
|
|
|
|
|
|
`raw` shortcode 用来在你的文章中插入原始 **:(fab fa-html5 fa-fw): HTML** 内容.
|
|
|
|
|
|
|
|
一个 `raw` 示例:
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
行内公式: {{</* raw */>}}\(\mathbf{E}=\sum_{i} \mathbf{E}_{i}=\mathbf{E}_{1}+\mathbf{E}_{2}+\mathbf{E}_{3}+\cdots\){{</* /raw */>}}
|
|
|
|
|
|
|
|
公式块:
|
|
|
|
|
|
|
|
{{</* raw */>}}
|
|
|
|
\[ a=b+c \\ d+e=f \]
|
|
|
|
{{</* /raw */>}}
|
|
|
|
|
|
|
|
原始的带有 Markdown 语法的内容: {{</* raw */>}}**Hello**{{</* /raw */>}}
|
|
|
|
```
|
|
|
|
|
|
|
|
呈现的输出效果如下:
|
|
|
|
|
|
|
|
行内公式: {{< raw >}}\(\mathbf{E}=\sum_{i} \mathbf{E}_{i}=\mathbf{E}_{1}+\mathbf{E}_{2}+\mathbf{E}_{3}+\cdots\){{< /raw >}}
|
|
|
|
|
|
|
|
公式块:
|
|
|
|
|
|
|
|
{{< raw>}}
|
|
|
|
\[ a=b+c \\ d+e=f \]
|
|
|
|
{{< /raw >}}
|
|
|
|
|
|
|
|
原始的带有 Markdown 语法的内容: {{< raw >}}**Hello**{{< /raw >}}
|