How to Use the "of" property in a "block" schema type

5 replies
Last updated: Apr 2, 2020
I'm struggling to find guides/tutorials relating to the "block" schema type using the "of" property? I seem to be missing a trick. Can anyone point me in the right direction? Thanks.

https://www.sanity.io/docs/block-type#of-d0f97ffa1dd9
Apr 1, 2020, 7:30 PM
something like this?

{
      title: "Body Copy",
      name: "bodyCopy",
      type: "array",
      of: [{ type: "block" }, { type: "inlineImage" }]
    }
Apr 1, 2020, 7:39 PM
to really use portable text its an
array
type
of
... then add your types ... in this example that is
block
and a custom object i made called
inlineImage
Apr 1, 2020, 7:40 PM
user N
Thanks for the quick response!
I'm looking at
inline
content within
block
type.
From the docs the
block
type
of
property states:"An array of inline content types that you can place in running text from the Insert menu."

What types are considered inline? I thought
string
would be one? I can't use type
span
for some reason.
The example in the docs has:

{
title: 'Rich text',
type: 'array',
of: [
{
type: 'block',
of: [
{type: 'footnote'}
]
}
]
}

But no explanation of
footnote
type.
I was hoping to inject like a placeholder. For example, you want to inject the site name without the need to manually enter it.

I tried the following:

blot.js

`{
title: 'Blot',
name: 'blot',
type: 'string',
options: {
list: [
{ title:
My Site Name
, value: 'site_name' }, ...

     
]}`

document.js


{
  title: 'Body Text',
  name: 'body',

type: 'array',
  of: [
    {
      type: 'block',
      of: [
        {type: 'blot'}
      ]
    }
  ]
}
Apr 1, 2020, 9:52 PM
ahh, i'm tracking .. i think
blot
in this case would likely need to be another type in the array, possibly even as a
reference
type, since that's what you're actually trying to do.. reference the type of
blot
Apr 1, 2020, 10:15 PM
Thanks
user N
that worked like a charm!
I changed it to the following:


{
  type: 'block'
  of: [
     { type: 'reference', to: [{ type: 'some_document'}] }
  ]
}

Apr 2, 2020, 8:09 AM

Sanity.io – build remarkable experiences at scale

Sanity is a customizable solution that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.