{{/* Performance chart shortcode for consistent chart styling */}} {{- $title := .Get "title" -}} {{- $labelsRaw := .Get "labels" -}} {{- $datasetsRaw := .Get "datasets" -}} {{- $xAxisLabel := .Get "xAxisLabel" | default "Time (ms)" -}} {{/* Load chart configuration */}} {{- $config := site.Data.chart_presets -}} {{- $defaults := $config.defaults -}} {{- $colors := $config.colors -}} {{/* Parse labels - split by comma */}} {{- $labels := split $labelsRaw "," -}} {{/* Parse datasets parameter: "Label:color:values" */}} {{- $parsedDatasets := slice -}} {{- if $datasetsRaw -}} {{- $datasetList := split $datasetsRaw "|" -}} {{- range $datasetList -}} {{- $parts := split . ":" -}} {{- if ge (len $parts) 3 -}} {{- $label := index $parts 0 -}} {{- $preset := index $parts 1 -}} {{- $valuesStr := index $parts 2 -}} {{- $values := split $valuesStr "," -}} {{- $colorRgb := index $colors $colorName -}} {{- if $colorRgb -}} {{- $backgroundColor := printf "rgba(%s, %.1f)" $colorRgb $defaults.backgroundOpacity -}} {{- $borderColor := printf "rgba(%s, %.1f)" $colorRgb $defaults.borderOpacity -}} {{- $dataset := dict "label" $label "data" $values "backgroundColor" $backgroundColor "borderColor" $borderColor "borderWidth" $defaults.borderWidth "barThickness" $defaults.barThickness -}} {{- $parsedDatasets = $parsedDatasets | append $dataset -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{/* Generate unique ID */}} {{- $id := printf "chart-%d" (now.UnixNano) -}}