Files
rustycms/schemas/post.schema.json

212 lines
4.9 KiB
JSON

{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": true,
"properties": {
"_slug": {
"description": "Entry identifier (URL slug / filename without extension)",
"type": "string"
},
"content": {
"description": "Post body (Markdown)",
"type": "string"
},
"created": {
"format": "date-time",
"readOnly": true,
"type": "string"
},
"date": {
"description": "Optional display date",
"format": "date-time",
"type": "string"
},
"excerpt": {
"description": "Short summary for previews",
"maxLength": 500,
"type": "string"
},
"headline": {
"type": "string"
},
"icon": {
"type": "string"
},
"important": {
"default": false,
"description": "Mark post as important",
"type": "boolean"
},
"linkName": {
"type": "string"
},
"postImage": {
"description": "Featured image",
"oneOf": [
{
"description": "Reference (slug) to collection 'img'",
"type": "string"
},
{
"properties": {
"description": {
"description": "Alt text / description",
"type": "string"
},
"src": {
"description": "Image URL",
"type": "string"
}
},
"required": [
"src"
],
"type": "object"
}
]
},
"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, Post Overview, HTML, Headline, Image, …)",
"items": {
"description": "Reference (slug) to one of: markdown, post_overview, html, headline, image, quote, youtube_video, image_gallery, iframe, searchable_text, fullwidth_banner, list",
"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 one of: markdown, post_overview, html, headline, image, quote, youtube_video, image_gallery, iframe, searchable_text, fullwidth_banner, list",
"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 one of: markdown, post_overview, html, headline, image, quote, youtube_video, image_gallery, iframe, searchable_text, fullwidth_banner, list",
"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"
},
"showCommentSection": {
"default": true,
"description": "Show comment section (default: true)",
"type": "boolean"
},
"slug": {
"type": "string"
},
"subheadline": {
"type": "string"
}
},
"required": [
"_slug",
"seoTitle",
"slug",
"linkName",
"headline",
"important",
"content"
],
"type": "object"
}