Я не могу получить длинное текстовое поле в Contenful для правильного вывода в Гэтсби.
Я пробовал:
const ProjectPost = ({ data }) => {
const { title, body } = data.contentfulProject
return (
<Layout>
<SEO title={title} />
<div className="blogpost">
<h1>{title}</h1>
<div>{body.body}</div>
</div>
</Layout>
)
}
export default ProjectPost
export const pageQuery = graphql`
query($slug: String!) {
contentfulProject(slug: { eq: $slug }) {
title
slug
body {
body
}
}
}
`
, что {body.body} выводит содержимое без разметки. Это всего лишь несколько абзацев, заключенных в кавычки.
Если я это сделаю:
import React from "react"
import { graphql } from "gatsby"
import Layout from "../components/layout"
import SEO from "../components/seo"
const ProjectPost = ({ data }) => {
const { title, body } = data.contentfulProject
return (
<Layout>
<SEO title={title} />
<div className="blogpost">
<h1>{title}</h1>
<div>{body.childMarkdownRemark.html}</div>
</div>
</Layout>
)
}
export default ProjectPost
export const pageQuery = graphql`
query($slug: String!) {
contentfulProject(slug: { eq: $slug }) {
title
slug
body {
childMarkdownRemark {
html
}
}
}
}
`
выводит HTML, заключенный в кавычки, но не анализируется как HTML в браузере. Что я делаю не так?