RustyCMS: File-based headless CMS with REST API, admin UI, multilingual support
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
190
schemas/post.schema.json
Normal file
190
schemas/post.schema.json
Normal file
@@ -0,0 +1,190 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"_slug": {
|
||||
"description": "Entry identifier (URL slug / filename without extension)",
|
||||
"type": "string"
|
||||
},
|
||||
"created": {
|
||||
"format": "date-time",
|
||||
"readOnly": true,
|
||||
"type": "string"
|
||||
},
|
||||
"excerpt": {
|
||||
"description": "Short summary for previews",
|
||||
"maxLength": 500,
|
||||
"type": "string"
|
||||
},
|
||||
"headline": {
|
||||
"type": "string"
|
||||
},
|
||||
"icon": {
|
||||
"type": "string"
|
||||
},
|
||||
"linkName": {
|
||||
"type": "string"
|
||||
},
|
||||
"postImage": {
|
||||
"description": "Featured image",
|
||||
"type": "string"
|
||||
},
|
||||
"postTag": {
|
||||
"description": "Associated tags",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection 'tag'",
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"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": {
|
||||
"type": "string"
|
||||
},
|
||||
"subheadline": {
|
||||
"type": "string"
|
||||
},
|
||||
"content": {
|
||||
"description": "Post body (Markdown/HTML)",
|
||||
"type": "string"
|
||||
},
|
||||
"date": {
|
||||
"description": "Optional display date",
|
||||
"format": "date-time",
|
||||
"type": "string"
|
||||
},
|
||||
"important": {
|
||||
"description": "Mark post as important",
|
||||
"type": "boolean"
|
||||
},
|
||||
"showCommentSection": {
|
||||
"default": true,
|
||||
"description": "Show comment section (default: true)",
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_slug",
|
||||
"seoTitle",
|
||||
"slug",
|
||||
"linkName",
|
||||
"headline",
|
||||
"important",
|
||||
"content"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user