RustyCMS: File-based headless CMS with REST API, admin UI, multilingual support
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
114
schemas/page.schema.json
Normal file
114
schemas/page.schema.json
Normal file
@@ -0,0 +1,114 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"_slug": {
|
||||
"description": "Entry identifier (URL slug / filename without extension)",
|
||||
"type": "string"
|
||||
},
|
||||
"headline": {
|
||||
"type": "string"
|
||||
},
|
||||
"icon": {
|
||||
"description": "Icon identifier (optional)",
|
||||
"type": "string"
|
||||
},
|
||||
"linkName": {
|
||||
"description": "Display name in navigation",
|
||||
"type": "string"
|
||||
},
|
||||
"name": {
|
||||
"description": "Internal page name",
|
||||
"type": "string"
|
||||
},
|
||||
"row1AlignItems": {
|
||||
"default": "stretch",
|
||||
"description": "Align items for row 1",
|
||||
"enum": ["start", "end", "center", "baseline", "stretch"],
|
||||
"type": "string"
|
||||
},
|
||||
"row1Content": {
|
||||
"description": "Content components for row 1 (Markdown blocks)",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection 'markdown'",
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"row1JustifyContent": {
|
||||
"default": "start",
|
||||
"description": "Justify content for row 1",
|
||||
"enum": ["start", "end", "center", "between", "around", "evenly"],
|
||||
"type": "string"
|
||||
},
|
||||
"row2AlignItems": {
|
||||
"default": "stretch",
|
||||
"enum": ["start", "end", "center", "baseline", "stretch"],
|
||||
"type": "string"
|
||||
},
|
||||
"row2Content": {
|
||||
"description": "Content components for row 2",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection '?'",
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"row2JustifyContent": {
|
||||
"default": "start",
|
||||
"enum": ["start", "end", "center", "between", "around", "evenly"],
|
||||
"type": "string"
|
||||
},
|
||||
"row3AlignItems": {
|
||||
"default": "stretch",
|
||||
"enum": ["start", "end", "center", "baseline", "stretch"],
|
||||
"type": "string"
|
||||
},
|
||||
"row3Content": {
|
||||
"description": "Content components for row 3",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection '?'",
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"row3JustifyContent": {
|
||||
"default": "start",
|
||||
"enum": ["start", "end", "center", "between", "around", "evenly"],
|
||||
"type": "string"
|
||||
},
|
||||
"seoDescription": {
|
||||
"description": "Meta description for search engines",
|
||||
"maxLength": 160,
|
||||
"type": "string"
|
||||
},
|
||||
"seoMetaRobots": {
|
||||
"default": "index, follow",
|
||||
"description": "Robots meta directive",
|
||||
"enum": [
|
||||
"index, follow",
|
||||
"noindex, follow",
|
||||
"index, nofollow",
|
||||
"noindex, nofollow"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"seoTitle": {
|
||||
"description": "SEO page title",
|
||||
"type": "string"
|
||||
},
|
||||
"slug": {
|
||||
"description": "URL slug",
|
||||
"type": "string"
|
||||
},
|
||||
"subheadline": {
|
||||
"type": "string"
|
||||
},
|
||||
"topFullwidthBanner": {
|
||||
"description": "Hero banner at the top",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": ["_slug", "seoTitle", "slug", "name", "linkName", "headline"],
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user