Files
HugoBlox-kit/modules/blox-tailwind/blox/hero/schema.json
T
George Cushen d5d2f04c2d chore: adopt Biome + Stylelint, modernize CI/CD, add security/support docs, minor JS fixes
- Linting/format
  - Replace ESLint/Prettier with Biome; remove old configs; add `biome.json`; update scripts
  - Tailwind-friendly `.stylelintrc.yaml`; Stylelint and Biome pass
  - Enable Biome across `modules/**`; prune legacy JS globals; ignore oversized `devicon.json`

- Code fixes
  - `hb-theme.js`: avoid assignment-in-expressions; clearer dataset updates
  - `hugoblox-slides.js`: fix inner var scope (var → let); apply formatting

- CI/CD
  - Split lint/build workflows; add path filters; Node via Corepack (pnpm from package.json)
  - Hugo pinned to env `HUGO_VERSION`; add consistency check vs `starters/academic-cv/hugoblox.yaml`
  - Nightly starters matrix build (academic-cv, landing-page); CodeQL weekly; resource caches

- Workflows/Community
  - Greeter: switch to `pull_request_target`; add Contributor Guide to PR message
  - PR labeler for path-based labels

- Repo policies/docs
  - `CODEOWNERS` for `@gcushen`
  - `SECURITY.md`, `SUPPORT.md`
  - Documented branch protection in `.github/settings.yml`
  - Move `CODE_OF_CONDUCT.md` to `.github/`

- docs(zh): update `README.zh.md` translation

Notes:
- pnpm is sourced from `package.json: packageManager` via Corepack; no hard-coded pnpm versions in CI.
2025-09-17 03:17:38 +01:00

94 lines
2.9 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://hugoblox.com/schemas/blocks/hero.json",
"title": "Hero Block Schema",
"description": "Schema for the Hero block - displays prominent hero sections with title, text, and call-to-action buttons",
"allOf": [
{
"$ref": "../shared/schemas/base-block.json"
},
{
"type": "object",
"properties": {
"block": {
"const": "hero"
},
"content": {
"type": "object",
"description": "Content configuration for the hero block",
"properties": {
"title": {
"type": "string",
"description": "Main hero title (supports Markdown)"
},
"text": {
"type": "string",
"description": "Hero description text (supports Markdown)"
},
"announcement": {
"type": "object",
"description": "Optional announcement banner",
"properties": {
"text": {
"type": "string",
"description": "Announcement text (supports Markdown)"
},
"link": {
"type": "object",
"description": "Optional announcement link",
"properties": {
"text": {
"type": "string",
"description": "Link text"
},
"url": {
"type": "string",
"description": "Link URL"
}
},
"required": ["text", "url"]
}
},
"required": ["text"]
},
"primary_action": {
"type": "object",
"description": "Primary call-to-action button",
"properties": {
"url": {
"type": "string",
"description": "Button URL"
},
"text": {
"type": "string",
"description": "Button text (supports Markdown)"
},
"icon": {
"type": "string",
"description": "Optional button icon (icon pack format: pack/icon-name)"
}
},
"required": ["url", "text"]
},
"secondary_action": {
"type": "object",
"description": "Secondary call-to-action link",
"properties": {
"url": {
"type": "string",
"description": "Link URL"
},
"text": {
"type": "string",
"description": "Link text (supports Markdown)"
}
},
"required": ["url", "text"]
}
}
}
}
}
]
}