feat: add Dev HUD & 15 Obsidian callouts; more collection filters

Dev tools
- Add HBX Dev HUD (floating button + panel) with live log viewer
- Add get-build-id helper to dedupe logs per build (during `hugo server` refreshes)

Callouts
- Implement Obsidian-compatible callouts (15+ types) with shared renderer
- Add i18n title translations (en, es, fr) for all callout types
- Deprecate `callout` shortcode with suppressible warning; keep working
- Migrate starters to Markdown callouts (>[!TYPE]) and update docs

Logging
- Centralize logging in partial `functions/logger` with info/warn/error levels
- Use fmt.Warnidf for suppressible warnings (consistent IDs)
- Only show info in Dev HUD/JSON (no longer use warnf for info logging); warn/error still printed in CLI
- Include source metadata and build ID on each entry

Blocks – Collection
- Add support for `content.filters.kinds`
- Add `content.filters.tags` (array) alongside existing `filters.tag` (string)

Build/Tailwind/JS
- Fix missing Tailwind v4 styles in Hugo render: include preact-built assets, extract classes from JSX/TSX to `@sources`
- Load Preact client per block, publish source maps in dev; on-demand Alpine

CI
- Re-implement fast fails with panicOnWarning now that info logging as warnf removed
- Fix package splitter change detection: strip trailing slashes; collapse paths to starter roots

Starters/Docs
- Restructure courses under `courses/hugo-blox/`
- Update menus and landing pages
- Replace deprecated callout usage in content and docs
- Replace missing hero icon `download` with `arrow-down-tray` in academic-cv guide

Icons
- Improve icon resolver: default pack inference, better fallback, and precise missing-icon warnings (with page ref)
This commit is contained in:
George Cushen committed 2025-09-25 01:58:32 +01:00
1 parent 96f96636fc
commit 787ac94b5d
55 files changed
+1617 -543

No files matched your search

@@ -100,4 +100,4 @@ jobs:
- name: Build ${{ matrix.starter.name }}
working-directory: ${{ matrix.starter.path }}
run: hugo --minify
run: hugo --minify --panicOnWarning
+1 -1
View File
@@ -98,5 +98,5 @@ jobs:
extended: true
- name: Build
run: hugo --minify --templateMetrics --templateMetricsHints
run: hugo --minify --panicOnWarning --templateMetrics --templateMetricsHints
working-directory: test
+14 -3
View File
@@ -83,14 +83,25 @@ jobs:
FIRST=true
# tj-actions outputs space-separated list
for DIR in $CHANGED_DIRS; do
# Normalize potential trailing slash
DIR="${DIR%/}"
# Collapse to the starter root (first two path segments), e.g. starters/landing-page
IFS='/' read -r SEG1 SEG2 _ <<< "$DIR"
if [[ -n "$SEG1" && -n "$SEG2" ]]; then
ROOT="$SEG1/$SEG2"
else
ROOT="$DIR"
fi
# Only process if it's a known starter
if [[ -n "${STARTER_MAP[$DIR]}" ]]; then
if [[ -n "${STARTER_MAP[$ROOT]}" ]]; then
if [ "$FIRST" = true ]; then
FIRST=false
else
JSON+=","
JSON+=","
fi
JSON+="{\"local_path\":\"$DIR\",\"split_repository\":\"${STARTER_MAP[$DIR]}\"}"
JSON+="{\"local_path\":\"$ROOT\",\"split_repository\":\"${STARTER_MAP[$ROOT]}\"}"
fi
done
JSON+="]"