import { defineType, defineArrayMember } from 'sanity' export const blockContentType = defineType({ name: 'blockContent', title: 'Контент', type: 'array', of: [ defineArrayMember({ type: 'block', title: 'Блок', styles: [ { title: 'Обычный', value: 'normal' }, { title: 'Заголовок 2', value: 'h2' }, { title: 'Заголовок 3', value: 'h3' }, { title: 'Заголовок 4', value: 'h4' }, { title: 'Цитата', value: 'blockquote' }, ], lists: [ { title: 'Маркированный', value: 'bullet' }, { title: 'Нумерованный', value: 'number' }, ], marks: { decorators: [ { title: 'Жирный', value: 'strong' }, { title: 'Курсив', value: 'em' }, { title: 'Подчёркнутый', value: 'underline' }, { title: 'Зачёркнутый', value: 'strike-through' }, { title: 'Код', value: 'code' }, ], annotations: [ { name: 'link', type: 'object', title: 'Ссылка', fields: [ { name: 'href', type: 'url', title: 'URL', validation: (Rule) => Rule.uri({ allowRelative: true, scheme: ['http', 'https', 'mailto', 'tel'], }), }, { name: 'blank', type: 'boolean', title: 'Открывать в новой вкладке', initialValue: false, }, ], }, ], }, }), defineArrayMember({ type: 'image', title: 'Изображение', options: { hotspot: true }, fields: [ { name: 'alt', type: 'string', title: 'Альтернативный текст', description: 'Важно для SEO и доступности', }, { name: 'caption', type: 'string', title: 'Подпись', }, ], }), defineArrayMember({ type: 'code', title: 'Код', options: { language: 'typescript', languageAlternatives: [ { title: 'TypeScript', value: 'typescript' }, { title: 'JavaScript', value: 'javascript' }, { title: 'HTML', value: 'html' }, { title: 'CSS', value: 'css' }, { title: 'Python', value: 'python' }, { title: 'Bash', value: 'bash' }, { title: 'JSON', value: 'json' }, ], withFilename: true, }, }), ], })