Sorry, no results found for "".
If you have Structured Text fields you can use GraphQL fragments to fetch the different blocks.
Suppose a blog_post
model has a Structured Text field called content
, which in turn accepts links to other blog posts and the following embedded blocks:
Block cta_block
: with a label
and url
fields (both Single-line text)
Block carousel_block
: with an Asset Gallery field called gallery
Block mention_block
: with a Single-line text field called username
This GraphQL query will return all the data needed to render it:
query { allBlogPosts { title content { value blocks { __typename ... on RecordInterface { id } ... on CtaBlockRecord { label url } ... on CarouselBlockRecord { gallery { url } } } inlineBlocks { __typename ... on RecordInterface { id } ... on MentionBlockRecord { username } } links { __typename ... on RecordInterface { id } ... on BlogPostRecord { slug title } } } }}
You can then use the result of this query with one of the following libraries to render the result as HTML:
datocms-structured-text-to-plain-text
to render it as plain text;
datocms-structured-text-to-html-string
to render it as an HTML string;
datocms-structured-text-to-dom-nodes
to transform it in a list of DOM nodes;
We also have ready-made components for the most popular frontend frameworks:
If you need to filter records based on the content within their embedded blocks, please refer to the Deep filtering section of this guide, where this scenario is explained in detail.