PaneStack is building! 🎉 Discover what’s new

Tabs

Example

JSON: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.
YAML: YAML is a human-readable data serialization language.
TOML: TOML aims to be a minimal configuration file format that’s easy to read due to obvious semantics.

Usage

Default

{{< tabs >}}

  {{< tab name="JSON" >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}}
  {{< tab name="YAML" >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}}
  {{< tab name="TOML" >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}}

{{< /tabs >}}

Specify Selected Tab

Use selected property to specify the selected tab.

{{< tabs >}}

  {{< tab name="JSON" >}}**JSON**: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.{{< /tab >}}
  {{< tab name="YAML" selected=true >}}**YAML**: YAML is a human-readable data serialization language.{{< /tab >}}
  {{< tab name="TOML" >}}**TOML**: TOML aims to be a minimal configuration file format that's easy to read due to obvious semantics.{{< /tab >}}

{{< /tabs >}}

The YAML tab will be selected by default.

JSON: JavaScript Object Notation (JSON) is a standard text-based format for representing structured data based on JavaScript object syntax.
YAML: YAML is a human-readable data serialization language.
TOML: TOML aims to be a minimal configuration file format that’s easy to read due to obvious semantics.

Use Markdown

Markdown syntax including code block is also supported:

{{< tabs >}}

  {{< tab name="JSON" >}}
  ```json
  { "hello": "world" }
  ```
  {{< /tab >}}

  ... add other tabs similarly

{{< /tabs >}}
{ "hello": "world" }
hello: world
hello = "world"

Sync Tabs

Tabs with the same list of items can be synchronized. When enabled, selecting a tab updates all other tabs with the same items and remembers the selection across pages.

Enable/disable globally in your hugo.yaml under the page section:

hugo.yaml
params:
  page:
    tabs:
      sync: true

Enable/disable per page inside the front matter:

my_page.md
---
title: My page
params:
  tabs:
    sync: true
---

Example content.

With this enabled, the following two tab blocks will always display the same selected item:

{{< tabs >}}

  {{< tab name="A" >}}A content{{< /tab >}}
  {{< tab name="B" >}}B content{{< /tab >}}

{{< /tabs >}}

{{< tabs >}}

  {{< tab name="A" >}}Second A content{{< /tab >}}
  {{< tab name="B" >}}Second B content{{< /tab >}}

{{< /tabs >}}