Added a way to add html to content

This commit is contained in:
2023-09-04 00:24:56 +02:00
parent 4f5d822e11
commit a2e9c105ba
10 changed files with 269 additions and 25 deletions

View File

@@ -7,17 +7,30 @@ import { PageBlocksContent } from "../../tina/__generated__/types";
import { tinaField } from "tinacms/dist/react";
import { PageBlockFunction } from "../blocks-renderer";
import inlineComponents, { richTextTemplates } from "../inline/inline-definitions";
import sanitizeHtml from "sanitize-html";
const HTMLInline = (props: { value: string }) => {
const createSanitizedMarkup = (text: string) => {
return { __html: sanitizeHtml(text, {
allowedAttributes: {
div: [ "class" ]
}
}) };
};
return <span dangerouslySetInnerHTML={ createSanitizedMarkup(props.value) } />;
};
export const Content: PageBlockFunction<PageBlocksContent> = ({ data }) => {
return (
<Section>
<Container
className={ "prose prose-lg" }
className={ "" }
data-tina-field={ tinaField(data, "body") }
size="large"
width="medium"
>
<TinaMarkdown components={ inlineComponents } content={ data.body } />
<TinaMarkdown components={ { ...inlineComponents, html: props => <HTMLInline { ...props } /> } } content={ data.body } />
</Container>
</Section>
);