This page explains the custom Hugo shortcodes that can be used in Kubernetes markdown documentation.
Read more about shortcodes in the Hugo documentation.
In a markdown page (.md
file) on this site, you can add a shortcode to display version and state of the documented feature.
Below is a demo of the feature state snippet, which displays the feature as stable in Kubernetes version 1.10.
{{< feature-state for_k8s_version="v1.10" state="stable" >}}
Renders to:
Kubernetes v1.10
stable
The valid values for state
are:
The displayed Kubernetes version defaults to that of the page or the site. This can be changed by passing the for_k8s_version
shortcode parameter.
{{< feature-state for_k8s_version="v1.10" state="stable" >}}
Renders to:
Kubernetes v1.10
stable
{{< feature-state state="alpha" >}}
Renders to:
Kubernetes v1.16
alpha
{{< feature-state state="beta" >}}
Renders to:
Kubernetes v1.16
beta
{{< feature-state state="stable" >}}
Renders to:
Kubernetes v1.16
stable
{{< feature-state state="deprecated" >}}
Renders to:
Kubernetes v1.16
deprecated
You can reference glossary terms with an inclusion that automatically updates and replaces content with the relevant links from our glossary. When the term is moused-over by someone using the online documentation, the glossary entry displays a tooltip.
The raw data for glossary terms is stored at https://github.com/kubernetes/website/tree/master/content/en/docs/reference/glossary, with a content file for each glossary term.
For example, the following include within the markdown renders to clusterA set of machines, called nodes, that run containerized applications managed by Kubernetes. A cluster has at least one worker node and at least one master node. with a tooltip:
{{< glossary_tooltip text="cluster" term_id="cluster" >}}
You can make tables more accessible to screen readers by adding a table caption. To add a caption to a table, enclose the table with a table
shortcode and specify the caption with the caption
parameter.
Note: Table captions are visible to screen readers but invisible when viewed in standard HTML.
Here’s an example:
{{< table caption="Configuration parameters" >}}
Parameter | Description | Default
:---------|:------------|:-------
`timeout` | The timeout for requests | `30s`
`logLevel` | The log level for log output | `INFO`
{{< /table >}}
The rendered table looks like this:
Parameter | Description | Default |
---|---|---|
timeout |
The timeout for requests | 30s |
logLevel |
The log level for log output | INFO |
If you inspect the HTML for the table, you should see this element immediately after the opening <table>
element:
<caption style="display: none;">Configuration parameters</caption>
In a markdown page (.md
file) on this site, you can add a tab set to display multiple flavors of a given solution.
The tabs
shortcode takes these parameters:
name
: The name as shown on the tab.codelang
: If you provide inner content to the tab
shortcode, you can tell Hugo what code language to use for highlighting.include
: The file to include in the tab. If the tab lives in a Hugo leaf bundle, the file – which can be any MIME type supported by Hugo – is looked up in the bundle itself. If not, the content page that needs to be included is looked up relative to the current page. Note that with the include
, you do not have any shortcode inner content and must use the self-closing syntax. For example, {{< tab name=“Content File #1” include=“example1” />}}
. The language needs to be specified under codelang
or the language is taken based on the file name. Non-content files are code-highlighted by default.%
-delimiter to surround the tab. For example, {{% tab name="Tab 1" %}}This is **markdown**{{% /tab %}}
Below is a demo of the tabs shortcode.
Note: The tab name in atabs
definition must be unique within a content page.
{{< tabs name="tab_with_code" >}}
{{{< tab name="Tab 1" codelang="bash" >}}
echo "This is tab 1."
{{< /tab >}}
{{< tab name="Tab 2" codelang="go" >}}
println "This is tab 2."
{{< /tab >}}}
{{< /tabs >}}
Renders to:
{{< tabs name="tab_with_md" >}}
{{% tab name="Markdown" %}}
This is **some markdown.**
{{< note >}}
It can even contain shortcodes.
{{< /note >}}
{{% /tab %}}
{{< tab name="HTML" >}}
<div>
<h3>Plain HTML</h3>
<p>This is some <i>plain</i> HTML.</p>
</div>
{{< /tab >}}
{{< /tabs >}}
Renders to:
This is some markdown.
Note: It can even contain shortcodes.
This is some plain HTML.
{{< tabs name="tab_with_file_include" >}}
{{< tab name="Content File #1" include="example1" />}}
{{< tab name="Content File #2" include="example2" />}}
{{< tab name="JSON File" include="podtemplate" />}}
{{< /tabs >}}
Renders to:
This is an example content file inside the includes leaf bundle.
Note: Included content files can also contain shortcodes.
This is another example content file inside the includes leaf bundle.
{
"apiVersion": "v1",
"kind": "PodTemplate",
"metadata": {
"name": "nginx"
},
"template": {
"metadata": {
"labels": {
"name": "nginx"
},
"generateName": "nginx-"
},
"spec": {
"containers": [{
"name": "nginx",
"image": "dockerfile/nginx",
"ports": [{"containerPort": 80}]
}]
}
}
}
Was this page helpful?
Thanks for the feedback. If you have a specific, answerable question about how to use Kubernetes, ask it on Stack Overflow. Open an issue in the GitHub repo if you want to report a problem or suggest an improvement.