8f64fb1eea
Features added: - KeyStatic Core and Astro integration installed - Markdoc integration for content rendering - keystatic.config.ts with blog post schema - Local storage mode for content management - Conditional loading via SKIP_KEYSTATIC env var - Netlify build command updated to skip KeyStatic in production KeyStatic Admin UI available at: - Local: http://localhost:4321/keystatic - Production: Disabled for security Co-Authored-By: Claude <noreply@anthropic.com>
70 lines
1.8 KiB
TypeScript
70 lines
1.8 KiB
TypeScript
import { config, fields, collection } from '@keystatic/core';
|
||
|
||
export default config({
|
||
storage: {
|
||
kind: 'local',
|
||
},
|
||
collections: {
|
||
post: collection({
|
||
label: 'Blog Yazıları',
|
||
slugField: 'title',
|
||
path: 'src/data/post/*',
|
||
format: { contentField: 'body' },
|
||
schema: {
|
||
title: fields.slug({
|
||
name: {
|
||
label: 'Başlık',
|
||
description: 'Blog yazısının başlığı',
|
||
},
|
||
}),
|
||
date: fields.datetime({
|
||
label: 'Yayın Tarihi',
|
||
description: 'Yazının yayınlanma tarihi',
|
||
}),
|
||
author: fields.text({
|
||
label: 'Yazar',
|
||
description: 'Çağrı işareti veya yazar adı',
|
||
default: 'TA1SPH',
|
||
}),
|
||
categories: fields.array(
|
||
fields.text({
|
||
label: 'Kategori',
|
||
})
|
||
, {
|
||
label: 'Kategoriler',
|
||
description: 'Blog yazısının kategorileri',
|
||
}),
|
||
tags: fields.array(
|
||
fields.text({
|
||
label: 'Etiket',
|
||
})
|
||
, {
|
||
label: 'Etiketler',
|
||
description: 'Blog yazısının etiketleri',
|
||
}),
|
||
layout: fields.text({
|
||
label: 'Düzen',
|
||
default: 'post',
|
||
}),
|
||
image: fields.image({
|
||
label: 'Öne Çıkan Görsel',
|
||
description: 'Blog yazısı için kapak görseli',
|
||
}),
|
||
publishDate: fields.datetime({
|
||
label: 'Yayınlanma Tarihi',
|
||
description: 'Content collection için yayın tarihi',
|
||
}),
|
||
excerpt: fields.text({
|
||
label: 'Özet',
|
||
description: 'Blog yazısının kısa özeti',
|
||
multiline: true,
|
||
}),
|
||
body: fields.markdoc({
|
||
label: 'İçerik',
|
||
description: 'Blog yazısının ana içeriği',
|
||
}),
|
||
},
|
||
}),
|
||
},
|
||
});
|