Files
HugoBlox-kit/modules/blox-tailwind/blox/shared/schemas/landing-page.json
T

104 lines
2.5 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://hugoblox.com/schemas/landing-page.json",
"title": "Hugo Blox Landing Page Schema",
"description": "Schema for Hugo Blox landing page front matter",
"type": "object",
"properties": {
"title": {
"type": "string",
"description": "Page title"
},
"summary": {
"type": "string",
"description": "Page summary/description"
},
"date": {
"type": "string",
"format": "date-time",
"description": "Page publication date"
},
"lastmod": {
"type": "string",
"format": "date-time",
"description": "Page last modified date"
},
"draft": {
"type": "boolean",
"description": "Whether the page is a draft",
"default": false
},
"featured": {
"type": "boolean",
"description": "Whether the page is featured",
"default": false
},
"authors": {
"type": "array",
"description": "Page authors",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"description": "Page tags",
"items": {
"type": "string"
}
},
"categories": {
"type": "array",
"description": "Page categories",
"items": {
"type": "string"
}
},
"type": {
"const": "landing",
"description": "Page type (must be 'landing' for landing pages)"
},
"sections": {
"$ref": "./sections.json",
"description": "Array of content blocks for the landing page"
},
"design": {
"type": "object",
"description": "Global page design options",
"properties": {
"spacing": {
"type": "string",
"description": "Default section spacing"
}
}
},
"header": {
"type": "object",
"description": "Page-specific header configuration",
"properties": {
"navbar": {
"type": "object",
"properties": {
"enable": {
"type": "boolean",
"description": "Enable/disable navbar for this page"
},
"block": {
"type": "string",
"description": "Header block to use (e.g., 'navbar', 'navbar-simple')"
},
"blox": {
"type": "string",
"description": "Legacy header block parameter (deprecated, use 'block')",
"deprecated": true
}
}
}
}
}
},
"required": ["type", "sections"],
"additionalProperties": true
}