Files
hextra/layouts/_shortcodes/callout.html
T

33 lines
1.6 KiB
HTML
Raw Normal View History

{{- /*
A shortcode to create a callout.
@param {string} type The type of the callout (default, info, warning, error).
@param {string} content The content of the callout.
@param {string} emoji The emoji of the callout (related to type or can be a custom emoji).
@param {string} icon The icon of the callout.
@example {{< callout type="info" >}}Content{{< /callout >}}
*/ -}}
2024-12-14 23:44:10 +00:00
{{- $calloutEmojiDict := dict "info" "ℹ️" "warning" "⚠️" "error" "🚫" -}}
{{- $type := .Get "type" | default "default" -}}
2023-07-27 23:26:07 +01:00
{{/* If emoji is not set, use the emoji from dict */}}
2024-12-14 23:44:10 +00:00
{{- $emoji := .Get "emoji" -}}
{{- if eq $emoji "" -}}
{{- $emoji = index $calloutEmojiDict $type -}}
{{- end -}}
{{/* Also allow using "icon" */}}
2024-12-14 23:44:10 +00:00
{{- $icon := .Get "icon" -}}
{{- $content := .InnerDeindent | markdownify -}}
2023-07-27 23:26:07 +01:00
2025-03-29 12:51:42 +00:00
{{- $defaultClass := "hx:border-orange-100 hx:bg-orange-50 hx:text-orange-800 hx:dark:border-orange-400/30 hx:dark:bg-orange-400/20 hx:dark:text-orange-300" -}}
2023-07-27 23:26:07 +01:00
{{- $styleClass := newScratch -}}
{{- $styleClass.Set "info" "hx:border-blue-200 hx:bg-blue-100 hx:text-blue-900 hx:dark:border-blue-200/30 hx:dark:bg-blue-900/30 hx:dark:text-blue-200" -}}
{{- $styleClass.Set "warning" "hx:border-yellow-100 hx:bg-yellow-50 hx:text-yellow-900 hx:dark:border-yellow-200/30 hx:dark:bg-yellow-700/30 hx:dark:text-yellow-200" -}}
{{- $styleClass.Set "error" "hx:border-red-200 hx:bg-red-100 hx:text-red-900 hx:dark:border-red-200/30 hx:dark:bg-red-900/30 hx:dark:text-red-200" -}}
{{- $class := or ($styleClass.Get $type) $defaultClass -}}
2023-07-27 23:26:07 +01:00
2024-12-14 23:44:10 +00:00
{{- partial "shortcodes/callout.html" (dict "content" $content "emoji" $emoji "icon" $icon "class" $class) -}}