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