diff --git a/modules/blox/blox/collection/schema.json b/modules/blox/blox/collection/schema.json index a272c826..5b94932a 100644 --- a/modules/blox/blox/collection/schema.json +++ b/modules/blox/blox/collection/schema.json @@ -47,18 +47,7 @@ "sort_by": { "type": "string", "description": "Field to sort by", - "enum": [ - "Date", - "date", - "Title", - "title", - "Weight", - "weight", - "Lastmod", - "lastmod", - "PublishDate", - "publishdate" - ], + "enum": ["Date", "date", "Title", "title", "Weight", "weight", "Lastmod", "lastmod", "PublishDate", "publishdate"], "default": "Date" }, "sort_ascending": { @@ -68,10 +57,7 @@ }, "order": { "type": "string", - "enum": [ - "asc", - "desc" - ], + "enum": ["asc", "desc"], "description": "Sort order (alternative to sort_ascending)" }, "filters": { @@ -84,9 +70,7 @@ "items": { "type": "string" }, - "default": [ - "page" - ] + "default": ["page"] }, "folders": { "type": "array", @@ -175,17 +159,7 @@ "properties": { "view": { "type": "string", - "enum": [ - "card", - "compact", - "showcase", - "citation", - "list", - "masonry", - "article-grid", - "date-title-summary", - "slides-gallery" - ], + "enum": ["card", "compact", "showcase", "citation", "list", "masonry", "article-grid", "date-title-summary", "slides-gallery"], "description": "Display view type. 'card' shows full cards with images, 'compact' shows minimal list items, 'showcase' highlights featured content, 'citation' for academic publications, 'article-grid' for blog layouts.", "default": "card" }, @@ -220,9 +194,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -235,13 +207,8 @@ "sort_by": "Date", "sort_ascending": false, "filters": { - "folders": [ - "post" - ], - "tags": [ - "alignment", - "evaluations" - ], + "folders": ["post"], + "tags": ["alignment", "evaluations"], "featured_only": true }, "archive": { diff --git a/modules/blox/blox/contact-info/schema.json b/modules/blox/blox/contact-info/schema.json index 11785743..ecf45b9f 100644 --- a/modules/blox/blox/contact-info/schema.json +++ b/modules/blox/blox/contact-info/schema.json @@ -138,14 +138,10 @@ }, "anyOf": [ { - "required": [ - "url" - ] + "required": ["url"] }, { - "required": [ - "link" - ] + "required": ["link"] } ], "additionalProperties": false @@ -181,10 +177,7 @@ "type": "string" } }, - "required": [ - "text", - "url" - ], + "required": ["text", "url"], "additionalProperties": false } }, @@ -213,9 +206,7 @@ "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -225,16 +216,9 @@ "subtitle": "We respond within 2 business days.", "visit_title": "Visit us", "address": { - "lines": [ - "AI Lab, Engineering Building", - "123 Innovation Way", - "Cambridge, MA" - ] + "lines": ["AI Lab, Engineering Building", "123 Innovation Way", "Cambridge, MA"] }, - "office_hours": [ - "Mon\u2013Thu: 10:00\u201316:00", - "Fri: Remote" - ], + "office_hours": ["Mon\u2013Thu: 10:00\u201316:00", "Fri: Remote"], "map_url": "https://maps.google.com/?q=Cambridge", "email": "hello@hugoblox.com", "phone": "+1 415 000 0000", diff --git a/modules/blox/blox/cta-button-list/schema.json b/modules/blox/blox/cta-button-list/schema.json index 9230b10f..f7055e53 100644 --- a/modules/blox/blox/cta-button-list/schema.json +++ b/modules/blox/blox/cta-button-list/schema.json @@ -57,29 +57,19 @@ }, "anyOf": [ { - "required": [ - "text" - ] + "required": ["text"] }, { - "required": [ - "label" - ] + "required": ["label"] }, { - "required": [ - "name" - ] + "required": ["name"] }, { - "required": [ - "url" - ] + "required": ["url"] }, { - "required": [ - "link" - ] + "required": ["link"] } ], "additionalProperties": false @@ -87,15 +77,11 @@ "minItems": 1 } }, - "required": [ - "buttons" - ], + "required": ["buttons"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/cta-card/schema.json b/modules/blox/blox/cta-card/schema.json index e2f6e1b7..59aeba83 100644 --- a/modules/blox/blox/cta-card/schema.json +++ b/modules/blox/blox/cta-card/schema.json @@ -52,18 +52,11 @@ "default": false } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, - "required": [ - "title", - "text", - "button" - ], + "required": ["title", "text", "button"], "additionalProperties": false }, "design": { @@ -83,11 +76,7 @@ }, "text_color": { "type": "string", - "enum": [ - "auto", - "light", - "dark" - ], + "enum": ["auto", "light", "dark"], "description": "Text color mode for optimal contrast (auto detects based on background)", "default": "auto" }, @@ -105,9 +94,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/cta-image-paragraph/schema.json b/modules/blox/blox/cta-image-paragraph/schema.json index ef925ac4..51c8bf18 100644 --- a/modules/blox/blox/cta-image-paragraph/schema.json +++ b/modules/blox/blox/cta-image-paragraph/schema.json @@ -36,10 +36,7 @@ "image": { "type": "string", "description": "Image filename in assets/media/. Responsive images are generated automatically (400-1200px). GIFs are converted to webp.", - "examples": [ - "screenshots/product.png", - "features/demo.jpg" - ] + "examples": ["screenshots/product.png", "features/demo.jpg"] }, "feature_icon": { "type": "string", @@ -66,32 +63,21 @@ "type": "string" } }, - "required": [ - "text", - "url" - ], + "required": ["text", "url"], "additionalProperties": false } }, - "required": [ - "title", - "text", - "image" - ], + "required": ["title", "text", "image"], "additionalProperties": false }, "minItems": 1 } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -103,11 +89,7 @@ "text": "Pair Markdown content with responsive imagery and reusable CTAs.", "image": "screenshots/docs.png", "feature_icon": "hero/check-circle", - "features": [ - "Responsive images generated automatically", - "Markdown-first authoring", - "Works with Netlify, Vercel, and GitHub Pages" - ], + "features": ["Responsive images generated automatically", "Markdown-first authoring", "Works with Netlify, Vercel, and GitHub Pages"], "button": { "text": "Read the guide", "url": "/docs/get-started/" diff --git a/modules/blox/blox/dev-hero/schema.json b/modules/blox/blox/dev-hero/schema.json index 9deba5f1..0570e715 100644 --- a/modules/blox/blox/dev-hero/schema.json +++ b/modules/blox/blox/dev-hero/schema.json @@ -22,10 +22,7 @@ "type": "string", "description": "Author username to pull data from (matches folder name in /authors/)", "default": "me", - "examples": [ - "me", - "admin" - ] + "examples": ["me", "admin"] }, "title": { "type": "string", @@ -44,19 +41,12 @@ "greeting": { "type": "string", "description": "Small greeting text above the name", - "examples": [ - "Hi, I'm", - "Hello, I'm", - "Welcome" - ] + "examples": ["Hi, I'm", "Hello, I'm", "Welcome"] }, "name_prefix": { "type": "string", "description": "Prefix before the name (styled differently)", - "examples": [ - "I'm", - "Hey, I'm" - ] + "examples": ["I'm", "Hey, I'm"] }, "show_status": { "type": "boolean", @@ -72,11 +62,7 @@ "type": "string", "description": "CSS selector for scroll indicator target", "default": "#projects", - "examples": [ - "#projects", - "#about", - "#contact" - ] + "examples": ["#projects", "#about", "#contact"] }, "links": { "type": "array", @@ -87,12 +73,7 @@ "icon": { "type": "string", "description": "Icon identifier", - "examples": [ - "brands/github", - "brands/linkedin", - "brands/x", - "at-symbol" - ] + "examples": ["brands/github", "brands/linkedin", "brands/x", "at-symbol"] }, "url": { "type": "string", @@ -103,10 +84,7 @@ "description": "Link label/title" } }, - "required": [ - "icon", - "url" - ] + "required": ["icon", "url"] } }, "cta_buttons": { @@ -118,35 +96,20 @@ "text": { "type": "string", "description": "Button text", - "examples": [ - "View My Work", - "Download Resume", - "Contact Me" - ] + "examples": ["View My Work", "Download Resume", "Contact Me"] }, "url": { "type": "string", "description": "Button URL", - "examples": [ - "#projects", - "/resume.pdf", - "#contact" - ] + "examples": ["#projects", "/resume.pdf", "#contact"] }, "icon": { "type": "string", "description": "Button icon (optional)", - "examples": [ - "arrow-down", - "document-arrow-down", - "envelope" - ] + "examples": ["arrow-down", "document-arrow-down", "envelope"] } }, - "required": [ - "text", - "url" - ] + "required": ["text", "url"] }, "examples": [ [ @@ -178,21 +141,12 @@ "items": { "type": "string" }, - "examples": [ - [ - "Full-Stack Developer", - "Open Source Contributor", - "Tech Enthusiast" - ] - ] + "examples": [["Full-Stack Developer", "Open Source Contributor", "Tech Enthusiast"]] }, "prefix": { "type": "string", "description": "Static text before the animated part", - "examples": [ - "I'm a", - "I build" - ] + "examples": ["I'm a", "I build"] }, "type_speed": { "type": "integer", @@ -221,19 +175,13 @@ "style": { "type": "string", "description": "Layout style", - "enum": [ - "centered", - "split" - ], + "enum": ["centered", "split"], "default": "centered" }, "avatar_shape": { "type": "string", "description": "Avatar shape", - "enum": [ - "circle", - "rounded" - ], + "enum": ["circle", "rounded"], "default": "circle" }, "animations": { @@ -245,9 +193,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/faq/schema.json b/modules/blox/blox/faq/schema.json index bf9b364a..a14b696f 100644 --- a/modules/blox/blox/faq/schema.json +++ b/modules/blox/blox/faq/schema.json @@ -60,28 +60,16 @@ }, "anyOf": [ { - "required": [ - "question", - "answer" - ] + "required": ["question", "answer"] }, { - "required": [ - "title", - "text" - ] + "required": ["title", "text"] }, { - "required": [ - "question", - "text" - ] + "required": ["question", "text"] }, { - "required": [ - "title", - "answer" - ] + "required": ["title", "answer"] } ], "additionalProperties": false @@ -107,16 +95,11 @@ "description": "Button icon name" } }, - "required": [ - "text", - "url" - ], + "required": ["text", "url"], "additionalProperties": false } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false }, "design": { @@ -134,12 +117,7 @@ "minItems": 4, "maxItems": 4, "description": "Padding [top, right, bottom, left]", - "default": [ - "20px", - "0", - "20px", - "0" - ] + "default": ["20px", "0", "20px", "0"] }, "padding_sm": { "type": "array", @@ -149,10 +127,7 @@ "minItems": 2, "maxItems": 2, "description": "Responsive padding for smaller screens [top, bottom]", - "default": [ - "3rem", - "0" - ] + "default": ["3rem", "0"] }, "margin": { "type": "array", @@ -162,12 +137,7 @@ "minItems": 4, "maxItems": 4, "description": "Margin [top, right, bottom, left]", - "default": [ - "0", - "0", - "0", - "0" - ] + "default": ["0", "0", "0", "0"] } }, "additionalProperties": false @@ -176,9 +146,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -205,12 +173,7 @@ }, "design": { "spacing": { - "padding": [ - "2.5rem", - "0", - "2.5rem", - "0" - ] + "padding": ["2.5rem", "0", "2.5rem", "0"] } } } diff --git a/modules/blox/blox/features/schema.json b/modules/blox/blox/features/schema.json index 5267533f..4e020afe 100644 --- a/modules/blox/blox/features/schema.json +++ b/modules/blox/blox/features/schema.json @@ -47,32 +47,20 @@ "icon": { "type": "string", "description": "Feature icon. Supports hero/ (Heroicons), brands/ (brand logos), devicon/ (dev tools), or custom packs. Format: 'pack/icon-name' or just 'icon-name' for hero.", - "examples": [ - "hero/swatch", - "hero/puzzle-piece", - "brands/github", - "devicon/python" - ] + "examples": ["hero/swatch", "hero/puzzle-piece", "brands/github", "devicon/python"] } }, - "required": [ - "name", - "description" - ], + "required": ["name", "description"], "additionalProperties": false }, "minItems": 1 } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/hero/schema.json b/modules/blox/blox/hero/schema.json index d0846c5f..b5a09704 100644 --- a/modules/blox/blox/hero/schema.json +++ b/modules/blox/blox/hero/schema.json @@ -53,16 +53,11 @@ "description": "Link URL or page anchor" } }, - "required": [ - "text", - "url" - ], + "required": ["text", "url"], "additionalProperties": false } }, - "required": [ - "text" - ], + "required": ["text"], "additionalProperties": false }, "primary_action": { @@ -84,10 +79,7 @@ "description": "Optional button icon (icon pack format: pack/icon-name)" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false }, "secondary_action": { @@ -105,10 +97,7 @@ "format": "textarea" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, @@ -127,9 +116,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/knowledge-categories/schema.json b/modules/blox/blox/knowledge-categories/schema.json index 0a6e20ad..a90ea06f 100644 --- a/modules/blox/blox/knowledge-categories/schema.json +++ b/modules/blox/blox/knowledge-categories/schema.json @@ -72,14 +72,10 @@ }, "anyOf": [ { - "required": [ - "category" - ] + "required": ["category"] }, { - "required": [ - "title" - ] + "required": ["title"] } ], "additionalProperties": false @@ -97,22 +93,15 @@ "type": "string" } }, - "required": [ - "text", - "link" - ], + "required": ["text", "link"], "additionalProperties": false } }, - "required": [ - "categories" - ], + "required": ["categories"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/logos/schema.json b/modules/blox/blox/logos/schema.json index 4e846d22..4b3d7a8d 100644 --- a/modules/blox/blox/logos/schema.json +++ b/modules/blox/blox/logos/schema.json @@ -56,9 +56,7 @@ "default": false } }, - "required": [ - "image" - ], + "required": ["image"], "additionalProperties": false } }, @@ -82,10 +80,7 @@ "type": "string" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, @@ -97,11 +92,7 @@ "properties": { "display_mode": { "type": "string", - "enum": [ - "grid", - "carousel", - "marquee" - ], + "enum": ["grid", "carousel", "marquee"], "description": "Layout style: 'grid' shows all logos statically, 'carousel' scrolls horizontally with pause-on-hover, 'marquee' provides continuous horizontal scroll", "default": "grid" }, @@ -114,9 +105,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/markdown/schema.json b/modules/blox/blox/markdown/schema.json index 0ebcc72e..22cf88c7 100644 --- a/modules/blox/blox/markdown/schema.json +++ b/modules/blox/blox/markdown/schema.json @@ -28,15 +28,11 @@ "format": "textarea" } }, - "required": [ - "text" - ], + "required": ["text"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/portfolio/schema.json b/modules/blox/blox/portfolio/schema.json index a226c076..5fa2a3ae 100644 --- a/modules/blox/blox/portfolio/schema.json +++ b/modules/blox/blox/portfolio/schema.json @@ -21,16 +21,12 @@ "title": { "type": "string", "description": "Section title (supports Markdown)", - "examples": [ - "Featured Projects" - ] + "examples": ["Featured Projects"] }, "subtitle": { "type": "string", "description": "Section subtitle (supports Markdown)", - "examples": [ - "Things I've built" - ] + "examples": ["Things I've built"] }, "count": { "type": "integer", @@ -41,16 +37,7 @@ "sort_by": { "type": "string", "description": "Field to sort by", - "enum": [ - "Date", - "date", - "Title", - "title", - "Weight", - "weight", - "Lastmod", - "lastmod" - ], + "enum": ["Date", "date", "Title", "title", "Weight", "weight", "Lastmod", "lastmod"], "default": "Date" }, "sort_ascending": { @@ -68,15 +55,8 @@ "items": { "type": "string" }, - "default": [ - "projects" - ], - "examples": [ - [ - "projects", - "software" - ] - ] + "default": ["projects"], + "examples": [["projects", "software"]] } }, "additionalProperties": false @@ -90,26 +70,15 @@ "name": { "type": "string", "description": "Button display text", - "examples": [ - "All", - "Frontend", - "Backend" - ] + "examples": ["All", "Frontend", "Backend"] }, "tag": { "type": "string", "description": "Tag to filter by (* for all)", - "examples": [ - "*", - "Frontend", - "Full-Stack" - ] + "examples": ["*", "Frontend", "Full-Stack"] } }, - "required": [ - "name", - "tag" - ] + "required": ["name", "tag"] }, "default": [ { @@ -155,19 +124,12 @@ "link": { "type": "string", "description": "Override archive URL (defaults to the first folder in filters.folders)", - "examples": [ - "/projects/", - "/work/" - ] + "examples": ["/projects/", "/work/"] }, "text": { "type": "string", "description": "Override archive link text (uses i18n 'portfolio_view_all' by default)", - "examples": [ - "View All Projects", - "See My Work", - "Browse Portfolio" - ] + "examples": ["View All Projects", "See My Work", "Browse Portfolio"] } }, "additionalProperties": false @@ -183,30 +145,14 @@ "type": "integer", "description": "Number of columns (2, 3, or 4)", "default": 3, - "enum": [ - 2, - 3, - 4 - ], - "examples": [ - 2, - 3, - 4 - ] + "enum": [2, 3, 4], + "examples": [2, 3, 4] }, "fallback_icon": { "type": "string", "description": "Icon to display when no image is provided. Supports all Hugo Blox icon packs: hero (default), brands, devicon, emoji, or custom packs. Format: 'icon-name' or 'pack/icon-name'", "default": "code-bracket", - "examples": [ - "code-bracket", - "academic-cap", - "beaker", - "paint-brush", - "brands/github", - "devicon/python", - "emoji/rocket" - ] + "examples": ["code-bracket", "academic-cap", "beaker", "paint-brush", "brands/github", "devicon/python", "emoji/rocket"] }, "animations": { "type": "boolean", @@ -217,9 +163,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -230,9 +174,7 @@ "subtitle": "A selection of my recent work", "count": 6, "filters": { - "folders": [ - "projects" - ] + "folders": ["projects"] }, "buttons": [ { diff --git a/modules/blox/blox/research-areas/schema.json b/modules/blox/blox/research-areas/schema.json index 8b7c49f1..de95b43b 100644 --- a/modules/blox/blox/research-areas/schema.json +++ b/modules/blox/blox/research-areas/schema.json @@ -45,9 +45,7 @@ "gradient": { "type": "string", "description": "Tailwind gradient classes for the header", - "examples": [ - "from-primary-400 to-secondary-400" - ] + "examples": ["from-primary-400 to-secondary-400"] }, "image": { "type": "string", @@ -73,17 +71,11 @@ } }, "team_size": { - "type": [ - "string", - "number" - ], + "type": ["string", "number"], "description": "Team size metric displayed in the footer" }, "publications": { - "type": [ - "string", - "number" - ], + "type": ["string", "number"], "description": "Publication count metric" }, "funding": { @@ -103,17 +95,11 @@ "format": "textarea" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, - "required": [ - "name", - "description" - ], + "required": ["name", "description"], "additionalProperties": false }, "minItems": 1 @@ -134,16 +120,11 @@ "type": "string" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false }, "design": { @@ -152,11 +133,7 @@ "properties": { "layout": { "type": "string", - "enum": [ - "cards", - "hexagon", - "timeline" - ], + "enum": ["cards", "hexagon", "timeline"], "description": "Layout style: 'cards' shows rich detail cards with images/icons and metrics, 'hexagon' displays a visual swarm of octagonal shapes, 'timeline' presents areas in an alternating vertical timeline", "default": "cards" } @@ -164,9 +141,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -185,11 +160,7 @@ "gradient": "from-primary-400 to-secondary-400", "icon": "hero/shield-check", "status": "active", - "topics": [ - "evals", - "interpretability", - "tooling" - ], + "topics": ["evals", "interpretability", "tooling"], "team_size": "6", "publications": "12", "funding": "$3.2M", diff --git a/modules/blox/blox/resume-awards/schema.json b/modules/blox/blox/resume-awards/schema.json index 47fea60b..2611b742 100644 --- a/modules/blox/blox/resume-awards/schema.json +++ b/modules/blox/blox/resume-awards/schema.json @@ -44,20 +44,14 @@ "type": "string", "description": "Date format for award dates (Go time layout)", "default": "January 2006", - "examples": [ - "2006", - "Jan 2006", - "January 2, 2006" - ] + "examples": ["2006", "Jan 2006", "January 2, 2006"] } }, "additionalProperties": true, "$comment": "Award items in the author profile support: title, icon, url, awarder, date/date_start, summary, certificate_url." } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/resume-biography-3/schema.json b/modules/blox/blox/resume-biography-3/schema.json index 6abbe453..03a7a7a0 100644 --- a/modules/blox/blox/resume-biography-3/schema.json +++ b/modules/blox/blox/resume-biography-3/schema.json @@ -62,10 +62,7 @@ "format": "textarea" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, @@ -81,23 +78,13 @@ "properties": { "size": { "type": "string", - "enum": [ - "small", - "medium", - "large", - "xl", - "xxl" - ], + "enum": ["small", "medium", "large", "xl", "xxl"], "description": "Avatar display size. Sizes: small (150px), medium (200px), large (320px), xl (400px), xxl (500px). Images are generated at 2x for retina displays.", "default": "large" }, "shape": { "type": "string", - "enum": [ - "circle", - "square", - "rounded" - ], + "enum": ["circle", "square", "rounded"], "description": "Avatar shape", "default": "circle" } @@ -132,13 +119,7 @@ "properties": { "size": { "type": "string", - "enum": [ - "xs", - "sm", - "md", - "lg", - "xl" - ], + "enum": ["xs", "sm", "md", "lg", "xl"], "description": "Heading size for the profile name. Responsive sizing from xs (text-xl to text-3xl) up to xl (text-5xl to text-7xl).", "default": "lg" } @@ -149,9 +130,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/resume-biography/schema.json b/modules/blox/blox/resume-biography/schema.json index 642f52da..b4bd50a6 100644 --- a/modules/blox/blox/resume-biography/schema.json +++ b/modules/blox/blox/resume-biography/schema.json @@ -41,10 +41,7 @@ "format": "textarea" } }, - "required": [ - "url", - "text" - ], + "required": ["url", "text"], "additionalProperties": false } }, @@ -59,23 +56,13 @@ "properties": { "size": { "type": "string", - "enum": [ - "small", - "medium", - "large", - "xl", - "xxl" - ], + "enum": ["small", "medium", "large", "xl", "xxl"], "description": "Avatar display size. Sizes: small (150px), medium (200px), large (320px), xl (400px), xxl (500px). Images are generated at 2x for retina displays.", "default": "medium" }, "shape": { "type": "string", - "enum": [ - "circle", - "square", - "rounded" - ], + "enum": ["circle", "square", "rounded"], "description": "Avatar shape", "default": "circle" } @@ -98,9 +85,7 @@ "style": { "type": "string", "description": "Inline CSS style applied to the bio text wrapper", - "examples": [ - "max-width: 60ch;" - ] + "examples": ["max-width: 60ch;"] } }, "additionalProperties": false @@ -109,9 +94,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/resume-experience/schema.json b/modules/blox/blox/resume-experience/schema.json index 683ae1bc..bc21f673 100644 --- a/modules/blox/blox/resume-experience/schema.json +++ b/modules/blox/blox/resume-experience/schema.json @@ -39,11 +39,7 @@ "type": "string", "description": "Date format for experience and education entries (Go time layout)", "default": "Jan 2006", - "examples": [ - "Jan 2006", - "January 2006", - "2006" - ] + "examples": ["Jan 2006", "January 2006", "2006"] }, "is_education_first": { "type": "boolean", @@ -55,9 +51,7 @@ }, "$comment": "Experience and education items in the author profile support: role/position, org/company_name, start/date_start, end/date_end, summary, icon, tags (array), and button (object with url, text, icon)." }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/resume-languages/schema.json b/modules/blox/blox/resume-languages/schema.json index 078b4aef..921ea751 100644 --- a/modules/blox/blox/resume-languages/schema.json +++ b/modules/blox/blox/resume-languages/schema.json @@ -37,9 +37,7 @@ }, "$comment": "Language items in the author profile support: name (string), level (1-5 numeric or text like 'Native'), label (display label), percent (0-100 override). Numeric levels are converted to percentage (level * 20)." }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/resume-skills/schema.json b/modules/blox/blox/resume-skills/schema.json index 1b90f2a7..c6cb5b4d 100644 --- a/modules/blox/blox/resume-skills/schema.json +++ b/modules/blox/blox/resume-skills/schema.json @@ -46,19 +46,14 @@ "default": 2, "minimum": 1, "maximum": 5, - "examples": [ - 2, - 3 - ] + "examples": [2, 3] } }, "additionalProperties": true, "$comment": "Skill groups in the author profile support: name, description, color (progress bar fill), color_border, items (array). Each item supports: label/name, description, icon, level (1-5 for progress bar)." } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/search-hero/schema.json b/modules/blox/blox/search-hero/schema.json index e9503fb0..22cfddb4 100644 --- a/modules/blox/blox/search-hero/schema.json +++ b/modules/blox/blox/search-hero/schema.json @@ -33,9 +33,7 @@ "default": false } }, - "required": [ - "text" - ], + "required": ["text"], "additionalProperties": false }, "title": { @@ -57,13 +55,7 @@ "items": { "type": "string" }, - "examples": [ - [ - "Get started", - "Deploy with Hugo Blox", - "Tailwind customization" - ] - ] + "examples": [["Get started", "Deploy with Hugo Blox", "Tailwind customization"]] }, "stats": { "type": "array", @@ -80,23 +72,16 @@ "description": "Stat label" } }, - "required": [ - "value", - "label" - ], + "required": ["value", "label"], "additionalProperties": false } } }, - "required": [ - "title" - ], + "required": ["title"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { @@ -106,10 +91,7 @@ "gradient_mesh": { "enable": true, "style": "waves", - "colors": [ - "primary-500/25", - "secondary-500/25" - ], + "colors": ["primary-500/25", "secondary-500/25"], "animation": "float" } } @@ -122,10 +104,7 @@ "title": "Master ==AI tools==. Find answers faster.", "subtitle": "Search our docs, playbooks, and notebooks.", "search_placeholder": "Search documentation...", - "suggestions": [ - "Get started", - "Deploy with Hugo Blox" - ], + "suggestions": ["Get started", "Deploy with Hugo Blox"], "stats": [ { "value": "250+", diff --git a/modules/blox/blox/stats/schema.json b/modules/blox/blox/stats/schema.json index 00639b76..cc01768a 100644 --- a/modules/blox/blox/stats/schema.json +++ b/modules/blox/blox/stats/schema.json @@ -35,18 +35,9 @@ "type": "object", "properties": { "statistic": { - "type": [ - "string", - "number" - ], + "type": ["string", "number"], "description": "The statistic value/number. Can include formatting like '120+', '5M', or '$3.2M'. Animated counter extracts numeric portion.", - "examples": [ - "120+", - "5M", - "$3.2M", - 42, - 3.2 - ] + "examples": ["120+", "5M", "$3.2M", 42, 3.2] }, "description": { "type": "string", @@ -61,18 +52,13 @@ "description": "Additional context or sub-metric (supports Markdown)" } }, - "required": [ - "statistic", - "description" - ], + "required": ["statistic", "description"], "additionalProperties": false }, "minItems": 1 } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false }, "design": { @@ -81,11 +67,7 @@ "properties": { "layout": { "type": "string", - "enum": [ - "cards", - "compact", - "minimal" - ], + "enum": ["cards", "compact", "minimal"], "description": "Display layout style", "default": "cards" } @@ -93,9 +75,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/team-showcase/schema.json b/modules/blox/blox/team-showcase/schema.json index a52a643b..caddd112 100644 --- a/modules/blox/blox/team-showcase/schema.json +++ b/modules/blox/blox/team-showcase/schema.json @@ -55,18 +55,13 @@ "description": "Per-group override of sort direction" } }, - "required": [ - "name" - ], + "required": ["name"], "additionalProperties": false } ] }, "examples": [ - [ - "Principal Investigators", - "PhD Students" - ], + ["Principal Investigators", "PhD Students"], [ { "name": "Alumni", @@ -80,16 +75,7 @@ "sort_by": { "type": "string", "description": "Field to sort authors by. Common values: 'name_family' (last name), 'weight', 'graduation_year'. The legacy 'Params.' prefix is optional for compatibility.", - "enum": [ - "name_family", - "name.family", - "family", - "last_name", - "family_name", - "weight", - "graduation_year", - "title" - ], + "enum": ["name_family", "name.family", "family", "last_name", "family_name", "weight", "graduation_year", "title"], "default": "name_family" }, "sort_ascending": { @@ -116,10 +102,7 @@ "description": "Optional icon name (e.g., 'hero/user-plus')" } }, - "required": [ - "text", - "url" - ], + "required": ["text", "url"], "additionalProperties": false } }, @@ -158,20 +141,13 @@ "align": { "type": "string", "description": "Align the section header and CTA", - "enum": [ - "center", - "left" - ], + "enum": ["center", "left"], "default": "center" }, "max_columns": { "type": "integer", "description": "Maximum number of columns on wide screens (2-4)", - "enum": [ - 2, - 3, - 4 - ], + "enum": [2, 3, 4], "default": 4 }, "show_empty_groups": { @@ -183,9 +159,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/tech-stack/schema.json b/modules/blox/blox/tech-stack/schema.json index 49c24266..27224c20 100644 --- a/modules/blox/blox/tech-stack/schema.json +++ b/modules/blox/blox/tech-stack/schema.json @@ -21,17 +21,12 @@ "title": { "type": "string", "description": "Section title (supports Markdown)", - "examples": [ - "Tech Stack", - "Skills & Technologies" - ] + "examples": ["Tech Stack", "Skills & Technologies"] }, "subtitle": { "type": "string", "description": "Section subtitle (supports Markdown)", - "examples": [ - "Technologies I work with daily" - ] + "examples": ["Technologies I work with daily"] }, "categories": { "type": "array", @@ -42,12 +37,7 @@ "name": { "type": "string", "description": "Category name", - "examples": [ - "Languages", - "Frontend", - "Backend", - "DevOps" - ] + "examples": ["Languages", "Frontend", "Backend", "DevOps"] }, "items": { "type": "array", @@ -58,45 +48,25 @@ "name": { "type": "string", "description": "Technology name", - "examples": [ - "TypeScript", - "React", - "Node.js" - ] + "examples": ["TypeScript", "React", "Node.js"] }, "icon": { "type": "string", "description": "Icon identifier (supports devicon/, brands/, or hero icons)", - "examples": [ - "devicon/typescript", - "devicon/react", - "brands/github" - ] + "examples": ["devicon/typescript", "devicon/react", "brands/github"] }, "level": { "type": "string", "description": "Proficiency level (optional)", - "enum": [ - "expert", - "advanced", - "intermediate", - "beginner" - ], - "examples": [ - "expert", - "advanced" - ] + "enum": ["expert", "advanced", "intermediate", "beginner"], + "examples": ["expert", "advanced"] } }, - "required": [ - "name" - ] + "required": ["name"] } } }, - "required": [ - "items" - ] + "required": ["items"] }, "examples": [ [ @@ -119,9 +89,7 @@ ] } }, - "required": [ - "categories" - ], + "required": ["categories"], "additionalProperties": false }, "design": { @@ -131,10 +99,7 @@ "style": { "type": "string", "description": "Display style", - "enum": [ - "grid", - "list" - ], + "enum": ["grid", "list"], "default": "grid" }, "show_levels": { @@ -151,9 +116,7 @@ "additionalProperties": true } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/testimonials/schema.json b/modules/blox/blox/testimonials/schema.json index bbe871b0..f0a4941c 100644 --- a/modules/blox/blox/testimonials/schema.json +++ b/modules/blox/blox/testimonials/schema.json @@ -50,30 +50,20 @@ "image": { "type": "string", "description": "Avatar filename in assets/media/. Image is processed to 96x96 (displayed at 48x48 for retina).", - "examples": [ - "people/casey.jpg", - "testimonials/avatar.png" - ] + "examples": ["people/casey.jpg", "testimonials/avatar.png"] } }, - "required": [ - "text", - "name" - ], + "required": ["text", "name"], "additionalProperties": false }, "minItems": 1 } }, - "required": [ - "items" - ], + "required": ["items"], "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { diff --git a/modules/blox/blox/trending-questions/schema.json b/modules/blox/blox/trending-questions/schema.json index 186ed7af..bc03835a 100644 --- a/modules/blox/blox/trending-questions/schema.json +++ b/modules/blox/blox/trending-questions/schema.json @@ -64,22 +64,13 @@ "type": "string" }, "views": { - "type": [ - "string", - "number" - ] + "type": ["string", "number"] }, "upvotes": { - "type": [ - "integer", - "number" - ] + "type": ["integer", "number"] } }, - "required": [ - "question", - "link" - ], + "required": ["question", "link"], "additionalProperties": false } }, @@ -95,31 +86,21 @@ "type": "string" } }, - "required": [ - "text", - "link" - ], + "required": ["text", "link"], "additionalProperties": false } }, "additionalProperties": false } }, - "required": [ - "content" - ], + "required": ["content"], "additionalProperties": true, "examples": [ { "block": "trending-questions", "design": { "spacing": { - "padding": [ - "3rem", - "0", - "3rem", - "0" - ] + "padding": ["3rem", "0", "3rem", "0"] } }, "content": { diff --git a/templates/resume/pnpm-lock.yaml b/templates/resume/pnpm-lock.yaml index 1e2b1af4..35fa51ad 100644 --- a/templates/resume/pnpm-lock.yaml +++ b/templates/resume/pnpm-lock.yaml @@ -14,6 +14,9 @@ importers: '@tailwindcss/typography': specifier: ^0.5.10 version: 0.5.16(tailwindcss@4.1.13) + pagefind: + specifier: ^1.4.0 + version: 1.4.0 preact: specifier: ^10.27.2 version: 10.27.2 @@ -43,6 +46,36 @@ packages: '@jridgewell/trace-mapping@0.3.30': resolution: {integrity: sha512-GQ7Nw5G2lTu/BtHTKfXhKHok2WGetd4XYcVKGx00SjAk8GMwgJM3zr6zORiPGuOE+/vkc90KtTosSSvaCjKb2Q==} + '@pagefind/darwin-arm64@1.4.0': + resolution: {integrity: sha512-2vMqkbv3lbx1Awea90gTaBsvpzgRs7MuSgKDxW0m9oV1GPZCZbZBJg/qL83GIUEN2BFlY46dtUZi54pwH+/pTQ==} + cpu: [arm64] + os: [darwin] + + '@pagefind/darwin-x64@1.4.0': + resolution: {integrity: sha512-e7JPIS6L9/cJfow+/IAqknsGqEPjJnVXGjpGm25bnq+NPdoD3c/7fAwr1OXkG4Ocjx6ZGSCijXEV4ryMcH2E3A==} + cpu: [x64] + os: [darwin] + + '@pagefind/freebsd-x64@1.4.0': + resolution: {integrity: sha512-WcJVypXSZ+9HpiqZjFXMUobfFfZZ6NzIYtkhQ9eOhZrQpeY5uQFqNWLCk7w9RkMUwBv1HAMDW3YJQl/8OqsV0Q==} + cpu: [x64] + os: [freebsd] + + '@pagefind/linux-arm64@1.4.0': + resolution: {integrity: sha512-PIt8dkqt4W06KGmQjONw7EZbhDF+uXI7i0XtRLN1vjCUxM9vGPdtJc2mUyVPevjomrGz5M86M8bqTr6cgDp1Uw==} + cpu: [arm64] + os: [linux] + + '@pagefind/linux-x64@1.4.0': + resolution: {integrity: sha512-z4oddcWwQ0UHrTHR8psLnVlz6USGJ/eOlDPTDYZ4cI8TK8PgwRUPQZp9D2iJPNIPcS6Qx/E4TebjuGJOyK8Mmg==} + cpu: [x64] + os: [linux] + + '@pagefind/windows-x64@1.4.0': + resolution: {integrity: sha512-NkT+YAdgS2FPCn8mIA9bQhiBs+xmniMGq1LFPDhcFn0+2yIUEiIG06t7bsZlhdjknEQRTSdT7YitP6fC5qwP0g==} + cpu: [x64] + os: [win32] + '@parcel/watcher-android-arm64@2.5.1': resolution: {integrity: sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==} engines: {node: '>= 10.0.0'} @@ -368,6 +401,10 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + pagefind@1.4.0: + resolution: {integrity: sha512-z2kY1mQlL4J8q5EIsQkLzQjilovKzfNVhX8De6oyE6uHpfFtyBaqUpcl/XzJC/4fjD8vBDyh1zolimIcVrCn9g==} + hasBin: true + picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -433,6 +470,24 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.5 + '@pagefind/darwin-arm64@1.4.0': + optional: true + + '@pagefind/darwin-x64@1.4.0': + optional: true + + '@pagefind/freebsd-x64@1.4.0': + optional: true + + '@pagefind/linux-arm64@1.4.0': + optional: true + + '@pagefind/linux-x64@1.4.0': + optional: true + + '@pagefind/windows-x64@1.4.0': + optional: true + '@parcel/watcher-android-arm64@2.5.1': optional: true @@ -680,6 +735,15 @@ snapshots: node-addon-api@7.1.1: {} + pagefind@1.4.0: + optionalDependencies: + '@pagefind/darwin-arm64': 1.4.0 + '@pagefind/darwin-x64': 1.4.0 + '@pagefind/freebsd-x64': 1.4.0 + '@pagefind/linux-arm64': 1.4.0 + '@pagefind/linux-x64': 1.4.0 + '@pagefind/windows-x64': 1.4.0 + picocolors@1.1.1: {} picomatch@2.3.1: {}