76 lines
2.1 KiB
TypeScript
76 lines
2.1 KiB
TypeScript
import {defineType, defineArrayMember} from 'sanity'
|
||
|
||
/**
|
||
* This is the schema type for block content used in the post document type
|
||
* Importing this type into the studio configuration's `schema` property
|
||
* lets you reuse it in other document types with:
|
||
* {
|
||
* name: 'someName',
|
||
* title: 'Some title',
|
||
* type: 'blockContent'
|
||
* }
|
||
*/
|
||
|
||
export default defineType({
|
||
title: 'Block Content',
|
||
name: 'blockContent',
|
||
type: 'array',
|
||
of: [
|
||
defineArrayMember({
|
||
title: 'Block',
|
||
type: 'block',
|
||
// Styles let you define what blocks can be marked up as. The default
|
||
// set corresponds with HTML tags, but you can set any title or value
|
||
// you want, and decide how you want to deal with it where you want to
|
||
// use your content.
|
||
styles: [
|
||
{title: 'Normal', value: 'normal'},
|
||
{title: 'H1', value: 'h1'},
|
||
{title: 'H2', value: 'h2'},
|
||
{title: 'H3', value: 'h3'},
|
||
{title: 'H4', value: 'h4'},
|
||
{title: 'Quote', value: 'blockquote'},
|
||
],
|
||
lists: [{title: 'Bullet', value: 'bullet'}],
|
||
// Marks let you mark up inline text in the Portable Text Editor
|
||
marks: {
|
||
// Decorators usually describe a single property – e.g. a typographic
|
||
// preference or highlighting
|
||
decorators: [
|
||
{title: 'Strong', value: 'strong'},
|
||
{title: 'Emphasis', value: 'em'},
|
||
],
|
||
// Annotations can be any object structure – e.g. a link or a footnote.
|
||
annotations: [
|
||
{
|
||
title: 'URL',
|
||
name: 'link',
|
||
type: 'object',
|
||
fields: [
|
||
{
|
||
title: 'URL',
|
||
name: 'href',
|
||
type: 'url',
|
||
},
|
||
],
|
||
},
|
||
],
|
||
},
|
||
}),
|
||
// You can add additional types here. Note that you can't use
|
||
// primitive types such as 'string' and 'number' in the same array
|
||
// as a block type.
|
||
defineArrayMember({
|
||
type: 'image',
|
||
options: {hotspot: true},
|
||
fields: [
|
||
{
|
||
name: 'alt',
|
||
type: 'string',
|
||
title: 'Alternative Text',
|
||
}
|
||
]
|
||
}),
|
||
],
|
||
})
|