Merge pull request #2795 from alxhslm/tab-nested
fix: Tab shortcode supports nested shortcodes
This commit is contained in:
@@ -879,6 +879,7 @@ The `tabs` shortcode is commonly used to present different variants of a particu
|
|||||||
| `default` | **Optional.** Label of the tab to be active by default. If not set, the first tab will be active. |
|
| `default` | **Optional.** Label of the tab to be active by default. If not set, the first tab will be active. |
|
||||||
| `label` | **Required.** The text label displayed on the tab button. |
|
| `label` | **Required.** The text label displayed on the tab button. |
|
||||||
| `icon` | **Optional.** Icon name to display before the label. |
|
| `icon` | **Optional.** Icon name to display before the label. |
|
||||||
|
| `md` | **Optional.** Render tab content as Markdown (default `true`). Set `md=false` to allow nested shortcodes inside tab content. |
|
||||||
|
|
||||||
**Example 1: Basic Usage**
|
**Example 1: Basic Usage**
|
||||||
|
|
||||||
@@ -905,8 +906,8 @@ The `tabs` shortcode is commonly used to present different variants of a particu
|
|||||||
```
|
```
|
||||||
{{</* /tab */>}}
|
{{</* /tab */>}}
|
||||||
|
|
||||||
{{</* tab label="Linux" */>}}
|
{{</* tab label="Linux" md=false */>}}
|
||||||
See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).
|
{{</* alert */>}}See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).{{</* /alert */>}}
|
||||||
{{</* /tab */>}}
|
{{</* /tab */>}}
|
||||||
|
|
||||||
{{</* /tabs */>}}
|
{{</* /tabs */>}}
|
||||||
@@ -936,8 +937,8 @@ The `tabs` shortcode is commonly used to present different variants of a particu
|
|||||||
```
|
```
|
||||||
{{< /tab >}}
|
{{< /tab >}}
|
||||||
|
|
||||||
{{< tab label="Linux" >}}
|
{{< tab label="Linux" md=false >}}
|
||||||
See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).
|
{{< alert >}}See [documentation](https://code.visualstudio.com/docs/setup/linux#_install-vs-code-on-linux).{{< /alert >}}
|
||||||
{{< /tab >}}
|
{{< /tab >}}
|
||||||
|
|
||||||
{{< /tabs >}}
|
{{< /tabs >}}
|
||||||
|
|||||||
@@ -1,7 +1,12 @@
|
|||||||
{{- $label := .Get "label" -}}
|
{{- $label := .Get "label" -}}
|
||||||
{{- $icon := .Get "icon" -}}
|
{{- $icon := .Get "icon" -}}
|
||||||
{{- $index := .Parent.Store.Get "tab-index" | default 0 -}}
|
{{- $index := .Parent.Store.Get "tab-index" | default 0 -}}
|
||||||
{{- $content := .InnerDeindent | strings.TrimSpace | .Page.RenderString -}}
|
{{- $md := .Get "md" | default true -}}
|
||||||
|
{{- $isMarkdown := or (eq $md true) (eq $md "true") -}}
|
||||||
|
{{- $content := .Inner -}}
|
||||||
|
{{- if $isMarkdown -}}
|
||||||
|
{{- $content = .InnerDeindent | strings.TrimSpace | .Page.RenderString -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
{{- $tabs := .Parent.Store.Get "tabs" | default slice -}}
|
{{- $tabs := .Parent.Store.Get "tabs" | default slice -}}
|
||||||
{{- .Parent.Store.Set "tabs" ($tabs | append (dict "label" $label "icon" $icon "content" $content)) -}}
|
{{- .Parent.Store.Set "tabs" ($tabs | append (dict "label" $label "icon" $icon "content" $content)) -}}
|
||||||
|
|||||||
@@ -45,7 +45,7 @@
|
|||||||
{{- $isActive = eq $nTabs 0 -}}
|
{{- $isActive = eq $nTabs 0 -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<div class="tab__panel {{ if $isActive }}tab--active{{ end }}" data-tab-index="{{ $nTabs }}">
|
<div class="tab__panel {{ if $isActive }}tab--active{{ end }}" data-tab-index="{{ $nTabs }}">
|
||||||
{{ index . "content" }}
|
{{ index . "content" | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user