- keep raw front-matter author strings as preferred display when no profile exists
- fall back to title-cased humanized slug only as last resort to avoid lowercase initials
- render authors directly from Params order and resolve links via taxonomy pages when present
Fix https://discord.com/channels/722225264733716590/1457522006462435541/1458539152160067784
Reviewed all 27 block schemas in modules/blox/blox against their block.html implementations and applied best-practice optimizations. Here's what was updated:
Schemas Updated with New Properties
Schema Changes
cta-button-list Added label, name, link aliases; added new_tab boolean; changed required to anyOf for flexibility
dev-hero Added content as required; added design.animations boolean
faq Added title/text aliases for items; added padding_sm and defaults to spacing arrays
knowledge-categories Added link field per category item; added minimum: 0 for count
portfolio Added design.animations boolean; added sort_by enum
tech-stack Added design.animations boolean
Schemas Updated with Improved Descriptions & Enums
Schema Improvements
collection Added sort_by enum; improved view description; changed columns to integer with min/max constraints
resume-experience Added $comment documenting author profile fields (button, tags, etc.)
resume-skills Added $comment documenting skill group structure
resume-awards Added $comment documenting award item fields
resume-languages Added $comment documenting language level conversions
resume-biography Enhanced avatar size description with pixel values
resume-biography-3 Enhanced avatar/name size descriptions
stats Improved statistic description with formatting examples
hero Clarified no_padding description with Tailwind classes
logos Enhanced display_mode description with layout behaviors
research-areas Enhanced layout description with style explanations
team-showcase Added sort_by enum with common values
search-hero Added examples array for suggestions
testimonials Added image processing note and examples
cta-image-paragraph Added responsive image processing note
features Enhanced icon description with pack formats and examples
Schemas Already Well-Aligned
These schemas were already in good shape and required no changes:
contact-info, cta-card, hero, markdown, stats, testimonials, trending-questions
Notes
New alias fields (label/name/link in buttons, title/text in FAQ items) provide backward compatibility with alternate naming conventions used in templates
The $comment fields document author profile data structures that aren't directly in the schema but are consumed by resume blocks
Finished hardening the remaining blocks by guarding content/design maps, normalizing list inputs, coercing numeric/boolean values, and sanitizing links; also tightened scroll target handling in block.html.
Changes
Normalized portfolio tags/tech stacks/links, made archive defaults safe, and ensured filter JS uses JSON-safe tags in block.html.
Validated research area layouts and item fields, added safe media/link handling, and made CTA rendering resilient in block.html.
Hardened resume blocks for profile fields, buttons/links, and dates using try with time in block.html, block.html, and block.html.
Improved numeric parsing and labeling for language/skill meters in block.html and block.html.
Added guarded items and predictable grid classes in block.html.
Sanitized badge/title/suggestions/stats rendering in block.html, normalized tech categories and made list style exclusive in block.html, and hardened testimonials’ items/image handling in block.html.
Normalized dynamic/static question data, badges, and safe links in block.html.
- default to last-name sort with numeric-friendly keys for weight/graduation_year
- support per-group sorting, optional empty-state, and role fallback to affiliation
- add grid/interest caps, alignment controls, and avatar initial placeholders
- expose graduation_year/weight/name_family_pref in profiles; update schema/README
- retain raw front-matter author strings as display names when no profile data is present
- title-case humanized slug only as last-resort fallback to avoid lowercase surnames
- reduce need for author profile files while keeping names correctly capitalized
Fixes https://discord.com/channels/722225264733716590/1457522006462435541
BREAKING CHANGE:
Standardize event metadata by introducing event_start, event_end, event_all_day, and event_name, keep Hugo’s built-in date for publication, and update all layouts/partials/JSON-LD/views to read the new names; demo event content now reflects the renamed params so event listings show their true schedule instead of the page creation date.
Add missing @type "ListItem" to breadcrumb items and restructure item field
from URL string to object with @id and name properties. Resolves "Invalid
object type for field 'itemListElement'" errors reported in Google Search Console.
See https://discord.com/channels/722225264733716590/1451194469637427272
Also, updated workspace config in hugo-blox-builder.code-workspace:
Removed disused plugins
Map all HTML/HTM under modules, templates, and test to the hugo language for proper templating support.
Enable Tailwind IntelliSense within Hugo files and Alpine class bindings via tailwindCSS.includeLanguages and tailwindCSS.experimental.classRegex.
Re-enable HTML formatting for non-Hugo files using Prettier while keeping Hugo formatting off.
Recommend the Tailwind CSS VS Code extension alongside existing recommendations.
Unified terminology - All 11 theme packs now use surfaces: instead of ui (see prev commit)
Fixed empty value overrides - Empty strings ("") no longer override theme colors
Proper checking - Only non-empty values are applied
Re-implements theme engine in Tailwind from the previous Bootstrap version.
Re-organizes appearance params in `params.yaml`.
Also,
- edit Readme
- add popular front matter alias `description` for `summary`
- Created a new helper function: get_summary.html
- Implements the priority order: .Params.summary > .Params.description > .Params.abstract > .Summary.
- clamp abstract in date-title-summary view
- default gradient mesh block bg to primary-secondary gradient from theme pack
- improve inline code styling - remove backticks around code
BREAKING CHANGE:
`params.yaml` data structure has changed - see docs and latest templates for example
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.