RustyCMS: file-based headless CMS — API, Admin UI (content, types, assets), Docker/Caddy, image transform; only demo type and demo content in version control
Made-with: Cursor
This commit is contained in:
258
schemas/post_overview.schema.json
Normal file
258
schemas/post_overview.schema.json
Normal file
@@ -0,0 +1,258 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"additionalProperties": true,
|
||||
"properties": {
|
||||
"_slug": {
|
||||
"description": "Entry identifier (URL slug / filename without extension)",
|
||||
"type": "string"
|
||||
},
|
||||
"allPosts": {
|
||||
"default": false,
|
||||
"description": "Show all posts (otherwise filter)",
|
||||
"type": "boolean"
|
||||
},
|
||||
"design": {
|
||||
"description": "Display as cards or list",
|
||||
"enum": [
|
||||
"cards",
|
||||
"list"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"filterByTag": {
|
||||
"description": "Only posts with these tags",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection 'tag'",
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"headline": {
|
||||
"description": "Headline",
|
||||
"type": "string"
|
||||
},
|
||||
"id": {
|
||||
"description": "Unique post overview ID",
|
||||
"type": "string"
|
||||
},
|
||||
"layout": {
|
||||
"description": "Column width (grid)",
|
||||
"properties": {
|
||||
"breakout": {
|
||||
"default": false,
|
||||
"description": "Breakout layout (full width)",
|
||||
"type": "boolean"
|
||||
},
|
||||
"desktop": {
|
||||
"description": "Width on desktop (optional)",
|
||||
"enum": [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"mobile": {
|
||||
"default": "12",
|
||||
"description": "Width on mobile (1–12)",
|
||||
"enum": [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
"type": "string"
|
||||
},
|
||||
"spaceBottom": {
|
||||
"default": 0,
|
||||
"description": "Space below (rem)",
|
||||
"enum": [
|
||||
0,
|
||||
0.5,
|
||||
1,
|
||||
1.5,
|
||||
2
|
||||
],
|
||||
"type": "number"
|
||||
},
|
||||
"tablet": {
|
||||
"description": "Width on tablet (optional)",
|
||||
"enum": [
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"10",
|
||||
"11",
|
||||
"12"
|
||||
],
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"mobile"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
"numberItems": {
|
||||
"description": "Max. number of displayed entries",
|
||||
"type": "integer"
|
||||
},
|
||||
"posts": {
|
||||
"description": "Fixed list of posts (when not allPosts)",
|
||||
"items": {
|
||||
"description": "Reference (slug) to collection 'post'",
|
||||
"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"
|
||||
},
|
||||
"text": {
|
||||
"description": "Intro text",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"_slug",
|
||||
"seoTitle",
|
||||
"id",
|
||||
"headline"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
Reference in New Issue
Block a user