Add explicit type checking and proper trimming for status icon extraction
to match the more robust pattern used in resume-biography-3.
Fixes issue where users couldn't omit the emoji status badge.
Previous commits broke the 2-column grid layout by prematurely closing
the grid container after the image, leaving the text content outside
the grid. Now both image and text are properly wrapped within the same
md:grid md:grid-cols-2 container.
Fixes regression where image and paragraph appeared stacked vertically
instead of side-by-side on medium+ screens.
Add visual pronunciation guides (pinyin, furigana, IPA) displayed as ruby text annotations above the profile name in biography blocks.
- Add conditional ruby rendering in resume-biography and resume-biography-3
- Include browser fallback for non-ruby-supporting browsers
Usage: Set `name.pronunciation` in author YAML (e.g., "Wáng Wěi")
- Refactor build into reusable workflow (DRY)
- Add deploy.host config to control deployment target
- Upgrade to latest action versions (Node 22, Go 1.23, Python 3.13)
- Add timeout-minutes and concurrency groups for safety
- Use github.run_id for unique PR branch names
- Fix package_json_path for standalone repo compatibility
- Scope GITHUB_TOKEN to specific steps for security
Introduces a Hugo Content Adapter ([content/authors/_content.gotmpl](templates/startup-landing-page/content/authors/_content.gotmpl:0:0-0:0)) to the Startup template. This automatically generates author pages for every entry in `data/authors/*.yaml`, ensuring that team members without published content effectively possess a profile page instead of returning a 404 error. This is critical for Organization/Team sites where all members are displayed in the Team block.
Refactor the sidebar component logic to correctly handle the `no_sidebar` parameter.
Previously, `default true` treated an explicit `false` value as empty, causing the sidebar
to be hidden unintentionally. Replaced with an explicit inequality check.
- Add branding overlays: logo, title, author, and footer text
- Use Reveal.js theme CSS variables for automatic color adaptation
- Inline SVGs for currentColor support on any theme
- Per-slide control via HTML comments:
- <!-- no-branding -->: hide all elements
- <!-- no-header -->: hide logo + title
- <!-- no-footer -->: hide author + footer
- Fix body-level CSS selectors for proper visibility
- Add comprehensive documentation in example slides
- Update 'resume-biography', 'research-areas', 'logos', and 'cta-image-paragraph' blocks
- Add support for remote images (http/https) via resources.GetRemote
- Add support for Page Resources (bundles) via .Resources.GetMatch
- Normalize paths to handle 'assets/', 'media/', './' prefixes consistently
- Maintain backward compatibility with global assets and static URLs
- Support image resolution from Page Bundles, Remote URLs, and Global Assets
- Normalize paths to correctly handle 'assets/', 'media/', and './' prefixes
- Add fallback to static URLs if resource processing fails
- Fixes issue where avatar images failed to load in certain templates
- 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