Add tabs shortcode
parent
6378ac1bfc
commit
98ba641b30
@ -0,0 +1,132 @@
|
|||||||
|
+++
|
||||||
|
authors = ["author-demo"]
|
||||||
|
categories = ["paige", "shortcodes"]
|
||||||
|
date = 2024-07-06T22:37:00-07:00
|
||||||
|
description = "Demonstration of the Paige tabs shortcodes."
|
||||||
|
tags = ["figures", "tabs"]
|
||||||
|
title = "Tabs Shortcode"
|
||||||
|
+++
|
||||||
|
|
||||||
|
Paige provides a `paige/tabs` shortcode for displaying content in tabs.
|
||||||
|
|
||||||
|
<!--more-->
|
||||||
|
|
||||||
|
## Basic
|
||||||
|
|
||||||
|
Code:
|
||||||
|
|
||||||
|
```go-html-template
|
||||||
|
{{</* paige/tabs */>}}
|
||||||
|
{{</* paige/tabs/buttons */>}}
|
||||||
|
{{</* paige/tabs/button */>}}JSON{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* paige/tabs/button */>}}TOML{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* paige/tabs/button */>}}YAML{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* /paige/tabs/buttons */>}}
|
||||||
|
{{</* paige/tabs/panes */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="json" */>}}
|
||||||
|
{"foo": 123}
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="toml" */>}}
|
||||||
|
foo = 123
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="yaml" */>}}
|
||||||
|
foo: 123
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* /paige/tabs/panes */>}}
|
||||||
|
{{</* /paige/tabs */>}}
|
||||||
|
```
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
{{< paige/tabs >}}
|
||||||
|
{{< paige/tabs/buttons >}}
|
||||||
|
{{< paige/tabs/button >}}JSON{{< /paige/tabs/button >}}
|
||||||
|
{{< paige/tabs/button >}}TOML{{< /paige/tabs/button >}}
|
||||||
|
{{< paige/tabs/button >}}YAML{{< /paige/tabs/button >}}
|
||||||
|
{{< /paige/tabs/buttons >}}
|
||||||
|
{{< paige/tabs/panes >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="json" >}}
|
||||||
|
{"foo": 123}
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="toml" >}}
|
||||||
|
foo = 123
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="yaml" >}}
|
||||||
|
foo: 123
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< /paige/tabs/panes >}}
|
||||||
|
{{< /paige/tabs >}}
|
||||||
|
|
||||||
|
## Figure
|
||||||
|
|
||||||
|
Code:
|
||||||
|
|
||||||
|
```go-html-template
|
||||||
|
{{</* paige/figure caption="Tabs" */>}}
|
||||||
|
{{</* paige/tabs */>}}
|
||||||
|
{{</* paige/tabs/buttons */>}}
|
||||||
|
{{</* paige/tabs/button */>}}JSON{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* paige/tabs/button */>}}TOML{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* paige/tabs/button */>}}YAML{{</* /paige/tabs/button */>}}
|
||||||
|
{{</* /paige/tabs/buttons */>}}
|
||||||
|
{{</* paige/tabs/panes */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="json" */>}}
|
||||||
|
{"foo": 123}
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="toml" */>}}
|
||||||
|
foo = 123
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* paige/tabs/pane */>}}
|
||||||
|
{{</* paige/code lang="yaml" */>}}
|
||||||
|
foo: 123
|
||||||
|
{{</* /paige/code */>}}
|
||||||
|
{{</* /paige/tabs/pane */>}}
|
||||||
|
{{</* /paige/tabs/panes */>}}
|
||||||
|
{{</* /paige/tabs */>}}
|
||||||
|
{{</* /paige/figure */>}}
|
||||||
|
```
|
||||||
|
|
||||||
|
Result:
|
||||||
|
|
||||||
|
{{< paige/figure caption="Tabs" >}}
|
||||||
|
{{< paige/tabs >}}
|
||||||
|
{{< paige/tabs/buttons >}}
|
||||||
|
{{< paige/tabs/button >}}JSON{{< /paige/tabs/button >}}
|
||||||
|
{{< paige/tabs/button >}}TOML{{< /paige/tabs/button >}}
|
||||||
|
{{< paige/tabs/button >}}YAML{{< /paige/tabs/button >}}
|
||||||
|
{{< /paige/tabs/buttons >}}
|
||||||
|
{{< paige/tabs/panes >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="json" >}}
|
||||||
|
{"foo": 123}
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="toml" >}}
|
||||||
|
foo = 123
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< paige/tabs/pane >}}
|
||||||
|
{{< paige/code lang="yaml" >}}
|
||||||
|
foo: 123
|
||||||
|
{{< /paige/code >}}
|
||||||
|
{{< /paige/tabs/pane >}}
|
||||||
|
{{< /paige/tabs/panes >}}
|
||||||
|
{{< /paige/tabs >}}
|
||||||
|
{{< /paige/figure >}}
|
@ -0,0 +1,11 @@
|
|||||||
|
{{ $content := chomp .Inner }}
|
||||||
|
|
||||||
|
{{ if not (.Page.Scratch.Get "paige-tabs") }}
|
||||||
|
{{ .Page.Scratch.Set "paige-tabs" 0 }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ .Page.Scratch.Add "paige-tabs" 1 }}
|
||||||
|
|
||||||
|
<div class="paige-tabs">
|
||||||
|
{{ $content }}
|
||||||
|
</div>
|
@ -0,0 +1,16 @@
|
|||||||
|
{{ $content := chomp .Inner | markdownify }}
|
||||||
|
{{ $tabcount := .Page.Scratch.Get "paige-tabs" | default 0 }}
|
||||||
|
|
||||||
|
{{ if not $content }}
|
||||||
|
{{ errorf "layouts/shortcodes/paige/tab/button.html: no content" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ .Page.Scratch.Add "paige-tabs-button" 1 }}
|
||||||
|
|
||||||
|
{{ $buttoncount := .Page.Scratch.Get "paige-tabs-button" }}
|
||||||
|
|
||||||
|
{{ $active := eq $buttoncount 1 }}
|
||||||
|
|
||||||
|
<li class="nav-item" role="presentation">
|
||||||
|
<button aria-controls="paige-tabs-{{ $tabcount }}-pane-{{ $buttoncount }}" aria-selected="{{ $active }}" class="{{ if $active }} active {{ end }} nav-link" data-bs-target="#paige-tabs-{{ $tabcount }}-pane-{{ $buttoncount }}" data-bs-toggle="tab" id="paige-tabs-{{ $tabcount }}-button-{{ $buttoncount }}" role="tab" type="button">{{ $content }}</button>
|
||||||
|
</li>
|
@ -0,0 +1,9 @@
|
|||||||
|
{{ $content := chomp .Inner }}
|
||||||
|
|
||||||
|
{{ .Page.Scratch.Set "paige-tabs-button" 0 }}
|
||||||
|
|
||||||
|
<div class="paige-tab-buttons">
|
||||||
|
<ul class="mb-3 nav nav-tabs" role="tablist">
|
||||||
|
{{ $content }}
|
||||||
|
</ul>
|
||||||
|
</div>
|
@ -0,0 +1,14 @@
|
|||||||
|
{{ $content := chomp .Inner | markdownify }}
|
||||||
|
{{ $tabcount := .Page.Scratch.Get "paige-tabs" | default 0 }}
|
||||||
|
|
||||||
|
{{ if not $content }}
|
||||||
|
{{ errorf "layouts/shortcodes/paige/tab/pane.html: no content" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ .Page.Scratch.Add "paige-tabs-pane" 1 }}
|
||||||
|
|
||||||
|
{{ $panecount := .Page.Scratch.Get "paige-tabs-pane" }}
|
||||||
|
|
||||||
|
{{ $active := eq $panecount 1 }}
|
||||||
|
|
||||||
|
<div aria-labelledby="paige-tabs-{{ $tabcount }}-button-{{ $panecount }}" class="{{ if $active }} active {{ end }} fade {{ if $active }} show {{ end }} tab-pane" id="paige-tabs-{{ $tabcount }}-pane-{{ $panecount }}" role="tabpanel" tabindex="0">{{ $content }}</div>
|
@ -0,0 +1,9 @@
|
|||||||
|
{{ $content := chomp .Inner }}
|
||||||
|
|
||||||
|
{{ .Page.Scratch.Set "paige-tabs-pane" 0 }}
|
||||||
|
|
||||||
|
<div class="paige-tab-panes">
|
||||||
|
<div class="tab-content">
|
||||||
|
{{ $content }}
|
||||||
|
</div>
|
||||||
|
</div>
|
Loading…
Reference in New Issue