mirror of https://github.com/jpanther/congo.git
237 lines
7.6 KiB
Markdown
237 lines
7.6 KiB
Markdown
|
---
|
|||
|
title: "短代码"
|
|||
|
date: 2020-08-11
|
|||
|
draft: false
|
|||
|
description: "Congo提供的所有短代码"
|
|||
|
summary: Congo提供了多个短代码,可用于向文章添加丰富的内容,包括图像、图表、图表、按钮等。
|
|||
|
slug: "shortcodes"
|
|||
|
tags: ["shortcodes", "mermaid", "icon", "lead", "docs"]
|
|||
|
---
|
|||
|
|
|||
|
除了[默认的 Hugo 短代码](https://gohugo.io/content-management/shortcodes/)外,Congo 还额外添加了一些功能。
|
|||
|
|
|||
|
## Alert
|
|||
|
|
|||
|
`alert`以样式化的消息框形式输出其内容在文章中。它对于引起读者注意的重要信息很有用。
|
|||
|
|
|||
|
输入是用Markdown编写的,因此您可以按照自己的喜好进行格式化。
|
|||
|
|
|||
|
默认情况下,警报将以感叹号三角形图标的形式呈现。要更改图标,请在短代码中包含图标名称。有关使用图标的更多详细信息,请查看[图标短代码](#icon)。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* alert */>}}
|
|||
|
**警告!** 这个操作是破坏性的!
|
|||
|
{{</* /alert */>}}
|
|||
|
|
|||
|
{{</* alert "twitter" */>}}
|
|||
|
别忘了在Twitter上[关注我](https://twitter.com/jpanther)。
|
|||
|
{{</* /alert */>}}
|
|||
|
```
|
|||
|
|
|||
|
{{< alert >}}
|
|||
|
**警告!** 这个操作是破坏性的!
|
|||
|
{{< /alert >}}
|
|||
|
|
|||
|
{{< alert "twitter" >}}
|
|||
|
别忘了在Twitter上[关注我](https://twitter.com/jpanther)。
|
|||
|
{{< /alert >}}
|
|||
|
|
|||
|
## Badge
|
|||
|
|
|||
|
`badge`输出一个带有样式的徽章组件,用于显示元数据。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* badge */>}}
|
|||
|
新文章!
|
|||
|
{{</* /badge */>}}
|
|||
|
```
|
|||
|
|
|||
|
{{< badge >}}
|
|||
|
新文章!
|
|||
|
{{< /badge >}}
|
|||
|
|
|||
|
## Button
|
|||
|
|
|||
|
`button` 输出一个样式化的按钮组件,用于突出显示主要操作。它有三个可选参数:
|
|||
|
|
|||
|
<!-- prettier-ignore-start -->
|
|||
|
|参数|描述|
|
|||
|
|---|---|
|
|||
|
|`href`|按钮应链接到的 URL。|
|
|||
|
|`target`|链接的目标。|
|
|||
|
|`download`|浏览器是否应下载资源而不是导航到 URL。此参数的值将是下载文件的名称。|
|
|||
|
<!-- prettier-ignore-end -->
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* button href="#button" target="_self" */>}}
|
|||
|
Call to action
|
|||
|
{{</* /button */>}}
|
|||
|
```
|
|||
|
|
|||
|
{{< button href="#button" target="_self" >}}
|
|||
|
Call to action
|
|||
|
{{< /button >}}
|
|||
|
|
|||
|
## Chart
|
|||
|
|
|||
|
`chart` 使用 Chart.js 库通过简单的结构化数据嵌入图表到文章中。它支持多种[不同的图表样式](https://www.chartjs.org/docs/latest/samples/),并且一切都可以通过短代码内部进行配置。只需在短代码标签之间提供图表参数,Chart.js 将完成其余工作。
|
|||
|
|
|||
|
有关语法和支持的图表类型的详细信息,请参阅[官方 Chart.js 文档](https://www.chartjs.org/docs/latest/general/)。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```js
|
|||
|
{{</* chart */>}}
|
|||
|
type: 'bar',
|
|||
|
data: {
|
|||
|
labels: ['Tomato', 'Blueberry', 'Banana', 'Lime', 'Orange'],
|
|||
|
datasets: [{
|
|||
|
label: '# of votes',
|
|||
|
data: [12, 19, 3, 5, 3],
|
|||
|
}]
|
|||
|
}
|
|||
|
{{</* /chart */>}}
|
|||
|
```
|
|||
|
|
|||
|
<!-- prettier-ignore-start -->
|
|||
|
{{< chart >}}
|
|||
|
type: 'bar',
|
|||
|
data: {
|
|||
|
labels: ['Tomato', 'Blueberry', 'Banana', 'Lime', 'Orange'],
|
|||
|
datasets: [{
|
|||
|
label: '# of votes',
|
|||
|
data: [12, 19, 3, 5, 3],
|
|||
|
}]
|
|||
|
}
|
|||
|
{{< /chart >}}
|
|||
|
<!-- prettier-ignore-end -->
|
|||
|
|
|||
|
你可以在 [图表示例]({{< ref "charts" >}}) 页面看到一些额外的 Chart.js 示例。
|
|||
|
|
|||
|
## Figure
|
|||
|
|
|||
|
Congo 包含一个 `figure` 短代码,用于向内容添加图片。该短代码替代了基本的 Hugo 功能,以提供额外的性能优势。
|
|||
|
|
|||
|
当提供的图像是页面资源时,它将使用 Hugo Pipes 进行优化,并进行缩放,以提供适用于不同设备分辨率的图像。如果提供的是静态资源或指向外部图像的 URL,则将其原样包含,Hugo 不会对其进行任何图像处理。
|
|||
|
|
|||
|
`figure` 短代码接受六个参数:
|
|||
|
|
|||
|
<!-- prettier-ignore-start -->
|
|||
|
|参数|描述|
|
|||
|
|---|---|
|
|||
|
|`src`| **必需。** 图像的本地路径/文件名或 URL。当提供路径和文件名时,主题将尝试使用以下查找顺序定位图像:首先,作为[页面资源](https://gohugo.io/content-management/page-resources/)与页面捆绑;然后是 `assets/` 目录中的资源;最后是 `static/` 目录中的静态图像。|
|
|||
|
|`alt`|图像的[替代文本描述](https://moz.com/learn/seo/alt-text)。|
|
|||
|
|`caption`|图像说明的 Markdown,将显示在图像下方。|
|
|||
|
|`class`|应用于图像的额外 CSS 类。|
|
|||
|
|`href`|图像应链接到的 URL。|
|
|||
|
|`default`|特殊参数,用于恢复默认的 Hugo `figure` 行为。只需提供 `default=true`,然后使用正常的[Hugo 短代码语法](https://gohugo.io/content-management/shortcodes/#figure)。|
|
|||
|
<!-- prettier-ignore-end -->
|
|||
|
|
|||
|
Congo 还支持使用标准 Markdown 语法包含的图像的自动转换。只需使用以下格式,主题将处理其余部分:
|
|||
|
|
|||
|
```md
|
|||
|
![Alt text](image.jpg "Image caption")
|
|||
|
```
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* figure
|
|||
|
src="abstract.jpg"
|
|||
|
alt="抽象紫色艺术品"
|
|||
|
caption="照片由[Jr Korpa](https://unsplash.com/@jrkorpa)拍摄,来自[Unsplash](https://unsplash.com/)"
|
|||
|
*/>}}
|
|||
|
|
|||
|
<!-- 或 -->
|
|||
|
|
|||
|
![抽象紫色艺术品](abstract.jpg "照片由[Jr Korpa](https://unsplash.com/@jrkorpa)拍摄,来自[Unsplash](https://unsplash.com/)")
|
|||
|
```
|
|||
|
|
|||
|
{{< figure src="abstract.jpg" alt="抽象紫色艺术品" caption="照片由[Jr Korpa](https://unsplash.com/@jrkorpa)拍摄,来自[Unsplash](https://unsplash.com/)" >}}
|
|||
|
|
|||
|
## Icon
|
|||
|
|
|||
|
`icon` 输出一个 SVG 图标,并将图标名称作为其唯一参数。图标的大小会根据当前文本大小进行缩放。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* icon "github" */>}}
|
|||
|
```
|
|||
|
|
|||
|
**输出:** {{< icon "github" >}}
|
|||
|
|
|||
|
图标是使用 Hugo 管道填充的,这使它们非常灵活。Congo 包含许多用于社交、链接和其他用途的内置图标。请查看 [图标示例]({{< ref "samples/icons" >}}) 页面以获取支持的图标的完整列表。
|
|||
|
|
|||
|
通过在项目的 `assets/icons/` 目录中提供自己的图标资产,可以添加自定义图标。然后,可以通过在短代码中使用不带 `.svg` 扩展名的 SVG 文件名来引用图标。
|
|||
|
|
|||
|
图标还可以通过调用 [图标部分]({{< ref "partials#icon" >}}) 在局部中使用。
|
|||
|
|
|||
|
## Katex
|
|||
|
|
|||
|
`katex` 短代码可用于使用 KaTeX 包向文章内容添加数学表达式。有关可用语法,请参阅[支持的 TeX 函数](https://katex.org/docs/supported.html)的在线参考。
|
|||
|
|
|||
|
要在文章中包含数学表达式,只需在内容中的任何位置放置短代码。它只需要在每篇文章中包含一次,KaTeX 将自动呈现页面上的任何标记。支持行内和块表示法。
|
|||
|
|
|||
|
可以通过将表达式包装在 `\\(` 和 `\\)` 定界符中来生成行内表示法。或者,可以使用 `$$` 定界符生成块表示法。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* katex */>}}
|
|||
|
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
|
|||
|
```
|
|||
|
|
|||
|
{{< katex >}}
|
|||
|
\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
|
|||
|
|
|||
|
查看 [数学符号示例]({{< ref "mathematical-notation" >}}) 页面以获取更多示例。
|
|||
|
|
|||
|
## Lead
|
|||
|
|
|||
|
`lead` 用于突出显示文章开头的内容。它可用于设计引言,或者强调重要信息。只需将任何 Markdown 内容包装在 `lead` 短代码中即可。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* lead */>}}
|
|||
|
当生活给你柠檬时,做柠檬水。
|
|||
|
{{</* /lead */>}}
|
|||
|
```
|
|||
|
|
|||
|
{{< lead >}}
|
|||
|
当生活给你柠檬时,做柠檬水。
|
|||
|
{{< /lead >}}
|
|||
|
|
|||
|
## Mermaid
|
|||
|
|
|||
|
`mermaid` 允许您使用文本绘制详细的图表和可视化效果。它在幕后使用 Mermaid,并支持各种图表、图表和其他输出格式。
|
|||
|
|
|||
|
只需在 `mermaid` 短代码中编写您的 Mermaid 语法,然后让插件处理剩下的工作。
|
|||
|
|
|||
|
有关语法和支持的图表类型的详细信息,请参阅 [官方 Mermaid 文档](https://mermaid-js.github.io/)。
|
|||
|
|
|||
|
**示例:**
|
|||
|
|
|||
|
```md
|
|||
|
{{</* mermaid */>}}
|
|||
|
graph LR;
|
|||
|
A[Lemons]-->B[Lemonade];
|
|||
|
B-->C[Profit]
|
|||
|
{{</* /mermaid */>}}
|
|||
|
```
|
|||
|
|
|||
|
{{< mermaid >}}
|
|||
|
graph LR;
|
|||
|
A[Lemons]-->B[Lemonade];
|
|||
|
B-->C[Profit]
|
|||
|
{{< /mermaid >}}
|
|||
|
|
|||
|
您可以在 [图表和流程图示例]({{< ref "diagrams-flowcharts" >}}) 页面上看到一些额外的 Mermaid 示例。
|