Add WebPage/CollectionPage schema, BreadcrumbList, and configurable llms.txt output for better rich results and AI crawling.
New `marketing.seo.llm` params added to `params.yaml` to config llm scraping prefs.
For contact-info, logos, research-areas, team-showcase
Update:
- hero block: to prevent wide sub-title text on large screen
- stats block: re-designed stats block with new styles
- Add search-hero block with ==highlight== syntax and gradient mesh backgrounds
- Add knowledge-categories block with dynamic Hugo taxonomy counts
- Add trending-questions block with content-driven trending system
- Add FAQ/questions layouts with Alpine.js accordions and search integration
- Redesign search modal using Pagefind headless API to create custom UI design
- Add gradient mesh background system (orbs, waves, dots, grid) to framework
- Add i18n support for new blocks
- Fix video backgrounds regression in parse_block_v3.html
- Add QAPage/FAQPage structured data for SEO optimization
Add `icon` option to `organizations` and `education` data structures in author profiles.
Use the standard icon feature to apply a custom brand icon e.g. `icon: 'brands/my_company' and place `my_company.svg` in your `assets/media/icons/brands/` folder.
Co-authored-by: Olaf Lipinski <5785856+olipinski@users.noreply.github.com>
Closes#3281
During previous refactoring, the {{with}} was refactored to {{if}} leading to missing icon resource context, and hence custom icons were no longer rendering.
Fixes#3278
- Add preact dependency to all 6 starter package.json files for proper js.Build resolution
- Use automatic JSX runtime (JSX: "automatic", JSXImportSource: "preact") in libraries.html
- Restore proper ES module imports in hero/client.jsx and Icon.jsx components
- Remove vendored preact script loading since preact is now bundled via js.Build
- Fixes CI build failures with "Could not resolve preact/jsx-runtime" errors
- Provides cleaner, more standard JS tooling for users extending with custom components
BREAKING CHANGE: Starters now require `preact` in `package.json`to resolve preact dependency before hugo build
landing-page starter, which uses preact blocks, was only working only in monorepo due to Preact installed in root package.json but not starter package.json.
- Switch js.Build to classic JSX with global factory in `modules/blox-tailwind/layouts/_partials/libraries.html` (JSX=transform, JSXFactory=preact.h, JSXFragment=preact.Fragment)
- Update `modules/blox-tailwind/blox/hero/client.jsx` to call `preact.render` and remove `preact` import
- Remove `preact` import from `modules/blox-tailwind/blox/shared/js/components/Icon.jsx` (classic JSX uses global `preact.h`)
- Keep vendored `assets/dist/lib/preact/preact.min.js` and load it only when `needs_preact` is set
- Fixes CI error “Could not resolve preact/jsx-runtime” without requiring `preact` in each starter
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)
Implements Hugo's new blockquote render hooks (v0.132.0+) to support standard
Markdown alert syntax, improving content portability across platforms.
Features:
- 5 alert types: note, tip, important, warning, caution
- Custom titles with `> [!TYPE]+ Custom Title` syntax
- Multilingual support (EN, ES, FR, DE, ZH) with `callout_*` i18n keys
- Shared renderer for both shortcodes and render hooks
- Backward compatibility with deprecated `{{< callout >}}` shortcode
Example usage:
```markdown
> [!NOTE]
> This is a note callout with important information.
> [!WARNING]+ Custom Warning Title
> This warning has a custom title instead of just "Warning".
> [!TIP]
> Here's a helpful tip for better workflow!
```
Breaking changes: None (backward compatible)
Deprecation: `{{< callout >}}` shortcode now shows warning, use standard syntax
Configuration required (already applied to all sites by default):
```yaml
markup:
goldmark:
parser:
attribute:
block: true
```
- Convert singular to plural: project→projects, publication→publications, event→events
- Rename: post→blog, teaching→courses (with "blog" being the justified exception to plural rule)
- Update i18n translations (en, zh, zh-Hant, de, nl, fr, es, pt)
- Fix template references to use new content type names
- Update section IDs to maintain compatibility with menu references
- Fix debug template to better handle variable log structures
This change provides a more intuitive content structure with URL paths that match
common expectations, following standard practices where collection types use plural
names (with blog as the standard exception).
- Centralize logger: warnf/errorf for normal pages; HTML comments for adapters
- Add dev console logs and export structured logs to /hbx-debug.json
- Remove --panicOnWarning from dev scripts; builds no longer fail on warnings
- Fix prior lint/format issues across scripts and templates
- Add dynamic JavaScript loading system for blocks
- Implement multi-layer background support (texture + gradient)
- Add Tailwind color variable conversion in templates
- Support light/dark background color modes
- Prevent framework CSS conflicts with custom styles
- Fix Hugo documentation inconsistency: mount hugo_stats.json to match @source directive
- Module provides all Tailwind v4 configuration - zero user config required
- Add comprehensive color variables safelist for dynamic YAML usage
- Enable build stats and cachebusters for optimal performance
- Maintain hugo_stats.json in .gitignore (auto-generated per site)
Benefits:
- Automatic Tailwind v4 support for all existing users (no breaking changes)
- Proper Hugo Stats content detection with corrected paths
- Module handles all complexity - users just import and use
Fix progress bar display in resume-languages block: Correct stroke-dashoffset calculation to show accurate progress. Previously, progress bars displayed the gap segment (remaining progress) starting from the first quadrant, whereas for 80% progress it should appear in the 4th quadrant, causing the visual representation to appear inverted.
See #3252
Change 'items-center' to 'items-start' to prevent shorter content from centering vertically, ensuring the Skills and Hobbies categories align at the same top level regardless of content size/height differences.
- Refactor card layout with glassmorphism, improved shadows, and micro-interactions
- Add structured content_meta support (content_type, difficulty, prerequisites, trending)
- Implement trending overlay badge on image with i18n support
- Add configurable metadata display (show_date, show_read_time, show_read_more)
- Optimize for mobile with responsive metadata hiding and layout stacking
- Enhance image handling with fill_image toggle and AVIF/WebP support
- Unify article-grid and card views for consistency across theme
- Add reading time calculation and improved accessibility (ARIA labels, focus states)
- Support primary color category pills and author avatars with proper sizing