feat(code): add toggle code block functionality and enhance code tabs (#719)

* feat(markup): add toggle code block functionality with multiple format support

* fix(assets): improve filename generation for code downloads

* feat(code): add `before_tabs` attribute support for tabbed code blocks

* feat(code): implement visibility control for first tab content in code blocks
This commit is contained in:
Cell
2026-03-20 17:26:28 +08:00
committed by GitHub
parent 65ad407cd0
commit b09555981b
6 changed files with 114 additions and 8 deletions
@@ -67,10 +67,16 @@
{{- end -}}
{{- if $config.group -}}
{{- $tabTitle := $config.name | default (strings.FirstUpper .Type) | default "Code" -}}
{{- $groupKey := printf "code-tab-group-first:%s" $config.group -}}
{{- $isFirst := not (.Page.Store.Get $groupKey) -}}
{{- if $isFirst -}}
{{- .Page.Store.Set $groupKey true -}}
{{- end -}}
{{- $hidden := cond $isFirst "" " data-hidden" -}}
{{- $wrapper =
replace $wrapper
(printf `class="%s"` $class)
(printf `class="%s" data-tab-group="%s" data-tab-title="%s"` $class $config.group $tabTitle) -}}
(printf `class="%s" data-tab-group="%s" data-tab-title="%s"%s` $class $config.group $tabTitle $hidden) -}}
{{- end -}}
{{- if ne .Options.linenostart nil -}}
{{- $wrapper =