4.0.0 • Published 17 days ago
datocms-structured-text-to-plain-text v4.0.0
datocms-structured-text-to-plain-text
Plain text renderer for the Structured Text document.
Installation
Using npm:
npm install datocms-structured-text-to-plain-text
Using yarn:
yarn add datocms-structured-text-to-plain-text
Usage
import { render } from 'datocms-structured-text-to-plain-text';
const structuredText = {
value: {
schema: 'dast',
document: {
type: 'root',
children: [
{
type: 'heading',
level: 1,
children: [
{
type: 'span',
value: 'This\nis a\ntitle!',
},
],
},
],
},
},
};
render(structuredText); // -> "This is a title!"
You can also pass custom renderers for itemLink
, inlineItem
, block
as optional parameters like so:
import { render } from 'datocms-structured-text-to-plain-text';
const graphqlResponse = {
value: {
schema: 'dast',
document: {
type: 'root',
children: [
{
type: 'paragraph',
children: [
{
type: 'span',
value: 'A ',
},
{
type: 'itemLink',
item: '344312',
children: [
{
type: 'span',
value: 'record hyperlink',
},
],
},
{
type: 'span',
value: ' and an inline record: ',
},
{
type: 'inlineItem',
item: '344312',
},
],
},
{
type: 'block',
item: '812394',
},
],
},
},
blocks: [
{
id: '812394',
image: { url: 'http://www.datocms-assets.com/1312/image.png' },
},
],
links: [{ id: '344312', title: 'Foo', slug: 'foo' }],
};
const options = {
renderBlock({ record }) {
return `[Image ${record.image.url}]`;
},
renderInlineRecord({ record, adapter: { renderNode } }) {
return `[Inline ${record.slug}]${children}[/Inline]`;
},
renderLinkToRecord({ record, children, adapter: { renderNode } }) {
return `[Link to ${record.slug}]${children}[/Link]`;
},
};
render(document, options);
// -> A [Link to foo]record hyperlink[/Link] and an inline record: [Inline foo]Foo[/Inline]
// [Image http://www.datocms-assets.com/1312/image.png]
4.0.0
17 days ago
3.0.2
2 months ago
3.0.1
2 months ago
3.0.0
4 months ago
2.1.12
4 months ago
2.0.3
2 years ago
2.0.4
2 years ago
1.2.3-alpha.0
2 years ago
1.2.3-alpha.1
2 years ago
1.3.0
2 years ago
1.2.3-alpha.3
2 years ago
2.0.1
2 years ago
2.0.0
2 years ago
1.2.0
3 years ago
1.1.1
3 years ago
1.1.0
3 years ago
1.1.4
3 years ago
1.1.3
3 years ago
1.1.2
3 years ago
1.1.0-alpha.1
3 years ago
1.0.15
3 years ago
1.0.14
3 years ago
1.0.13
3 years ago
1.0.12
3 years ago
1.0.11
3 years ago
1.0.9
3 years ago
1.0.8
3 years ago
1.0.7
3 years ago
1.0.10
3 years ago
1.0.6
3 years ago
1.0.5
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.1
3 years ago
0.1.0-alpha.27
3 years ago
0.1.0-alpha.23
3 years ago
0.1.0-alpha.25
3 years ago
0.1.0-alpha.24
3 years ago
0.1.0-alpha.26
3 years ago
0.1.0-alpha.21
3 years ago
0.1.0-alpha.20
3 years ago
0.1.0-alpha.22
3 years ago
0.1.0-alpha.19
3 years ago
0.1.0-alpha.17
3 years ago
0.1.0-alpha.16
3 years ago