mirror of
https://github.com/tiennm99/HugoBlox-kit.git
synced 2026-10-12 14:14:48 +00:00
BREAKING CHANGE Module paths moved to `github.com/HugoBlox/kit` with new names: - core `blox-tailwind` → `blox` - analytics → `analytics` - netlify → `integrations/netlify` - slides (reveal) → `slides` Update go.mod, module.yaml/params, scripts, tests, and v0.11 migration guide accordingly.
52 lines
2.0 KiB
HTML
52 lines
2.0 KiB
HTML
{{/*
|
|
Hugo Blox Logger: A pragmatic, centralized logging helper for Hugo.
|
|
|
|
This partial is the single source of truth for all build-time logging.
|
|
Hugo's template logging is limited to WARN and ERROR. INFO is only shown in the Dev HUD/JSON, not the CLI.
|
|
|
|
Usage:
|
|
{{ partial "functions/logger" (dict
|
|
"page" .
|
|
"level" "info" | "warn" | "error" (default: "info")
|
|
"message" "Your log message here."
|
|
"id" "a-unique-id" (optional, for suppressible warnings)
|
|
"source" (dict "type" "shortcode|partial|template" "name" "callout|sections" ) (optional)
|
|
) }}
|
|
*/}}
|
|
{{- $level := lower (.level | default "info") -}}
|
|
{{- $message := .message | default "" -}}
|
|
{{- $id := .id | default "" -}}
|
|
{{- $source := .source | default dict -}}
|
|
{{- $page := .page | default . -}}
|
|
{{- $isDev := hugo.IsServer -}}
|
|
|
|
{{/* Store log entry for future debug widget/JSON, regardless of environment. */}}
|
|
{{- with $page -}}
|
|
{{- with .Store -}}
|
|
{{- $buildId := partialCached "functions/get-build-id.html" "hbx-build-id" -}}
|
|
{{- $log_entry := dict "level" $level "message" $message "page" ($.RelPermalink | default "/") "timestamp" now.Unix "id" $id "source" $source "buildId" $buildId -}}
|
|
{{- $current_logs := .Get "hbx_logs" | default slice -}}
|
|
{{- $currentBuildId := .Get "hbx_build_id" | default "" -}}
|
|
{{/* Clear logs if this is a new build cycle */}}
|
|
{{- if ne $currentBuildId $buildId -}}
|
|
{{- .Set "hbx_build_id" $buildId -}}
|
|
{{- $current_logs = slice -}}
|
|
{{- end -}}
|
|
{{- .Set "hbx_logs" ($current_logs | append $log_entry) -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/* Emit to CLI using fmt with proper severity. Do not print INFO to CLI. */}}
|
|
{{- if eq $level "error" -}}
|
|
{{- fmt.Errorf "HBX ERROR: %s" $message -}}
|
|
{{- else if eq $level "warn" -}}
|
|
{{- if $id -}}
|
|
{{- fmt.Warnidf $id "HBX WARN: %s" $message -}}
|
|
{{- else -}}
|
|
{{- fmt.Warnf "HBX WARN: %s" $message -}}
|
|
{{- end -}}
|
|
{{- else -}}
|
|
{{/* info: no CLI output; visible via Dev HUD/JSON only */}}
|
|
{{- end -}}
|
|
{{- "" -}}
|