mirror of
https://github.com/gethinode/hinode.git
synced 2025-10-17 15:03:20 +00:00
37 lines
1.2 KiB
HTML
37 lines
1.2 KiB
HTML
<!--
|
|
Copyright © 2022 - 2025 The Hinode Team / Mark Dumay. All rights reserved.
|
|
Use of this source code is governed by The MIT License (MIT) that can be found in the LICENSE file.
|
|
Visit gethinode.com/license for more details.
|
|
-->
|
|
|
|
{{ $error := false }}
|
|
|
|
<!-- Validate arguments -->
|
|
{{ if partial "utilities/IsInvalidArgs.html" (dict "structure" "accordion" "args" .Params) }}
|
|
{{ errorf "Invalid arguments: %s" .Position -}}
|
|
{{ $error = true }}
|
|
{{ end }}
|
|
|
|
<!-- Initialize arguments and default values -->
|
|
{{- $id := printf "accordion-%d" .Ordinal -}}
|
|
{{- $class := "" -}}
|
|
{{- $open := false -}}
|
|
{{- $body := .Inner -}}
|
|
|
|
{{ if .IsNamedParams }}
|
|
{{ with .Get "id" }}{{ $id = . }}{{ end }}
|
|
{{ with .Get "class" }}{{ $class = . }}{{ end }}
|
|
{{ if isset .Params "always-open" }}{{ $open = partial "utilities/CastBool.html" (.Get "always-open") }}{{ end -}}
|
|
{{ end }}
|
|
|
|
{{- if $open -}}
|
|
{{- $pattern := printf "data-bs-parent=\"#%s\"" $id -}}
|
|
{{- $body = (replace .Inner $pattern "") }}
|
|
{{- end -}}
|
|
|
|
<!-- Main code -->
|
|
{{ if not $error }}
|
|
<div id="{{ $id }}" class="accordion mb-3{{ with $class }} {{ . }}{{ end }}">
|
|
{{- $body | safeHTML -}}
|
|
</div>
|
|
{{ end }} |