Initial website — Astro + Tailwind + Sanity schema, 9 pages
This commit is contained in:
38
sanity/schemas/project.ts
Normal file
38
sanity/schemas/project.ts
Normal file
@@ -0,0 +1,38 @@
|
||||
import { defineType, defineField } from "sanity";
|
||||
|
||||
export default defineType({
|
||||
name: "project",
|
||||
title: "Projekte",
|
||||
type: "document",
|
||||
fields: [
|
||||
defineField({ name: "title", title: "Projektname", type: "string", validation: (r) => r.required() }),
|
||||
defineField({ name: "slug", title: "URL-Slug", type: "slug", options: { source: "title" }, validation: (r) => r.required() }),
|
||||
defineField({ name: "date", title: "Zeitraum", type: "string", description: 'z.B. "Sommer 2024" oder "März–Mai 2024"' }),
|
||||
defineField({ name: "summary", title: "Kurzbeschreibung", type: "text", rows: 3, validation: (r) => r.required() }),
|
||||
defineField({
|
||||
name: "body",
|
||||
title: "Ausführliche Beschreibung",
|
||||
type: "array",
|
||||
of: [{ type: "block" }, { type: "image", options: { hotspot: true } }],
|
||||
}),
|
||||
defineField({ name: "image", title: "Hauptbild", type: "image", options: { hotspot: true } }),
|
||||
defineField({ name: "targetGroup", title: "Für wen", type: "string", description: 'z.B. "Alle Kinder" oder "Gruppe Schmetterlinge"' }),
|
||||
defineField({ name: "featured", title: "Auf Startseite hervorheben?", type: "boolean", initialValue: false }),
|
||||
defineField({
|
||||
name: "status",
|
||||
title: "Status",
|
||||
type: "string",
|
||||
options: {
|
||||
list: [
|
||||
{ title: "Geplant", value: "planned" },
|
||||
{ title: "Laufend", value: "active" },
|
||||
{ title: "Abgeschlossen", value: "done" },
|
||||
],
|
||||
},
|
||||
initialValue: "done",
|
||||
}),
|
||||
],
|
||||
preview: {
|
||||
select: { title: "title", subtitle: "date", media: "image" },
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user