@thetimes/methode-parser
v7.1.0
Published
<h1>Times legacy content parser</h1>
Downloads
2,182
Readme
The purpose of this package is to convert data into ASTs.
This function converts arrays of elements of the form,
[
{
type: "paragraph",
data: {
attributes: {},
text:
"I love cheese. I have always loved cheese. Cheese tastes a lot better than dirty socks."
}
},
{
type: "paragraph",
data: {
attributes: {},
text: "I had a <i>dream</i> <b>today</b>"
}
},
{
type: "image",
data: {
caption: "caption",
credits: "credits",
display: "primary",
height: "200",
horizontalOffset: "1",
imageId: "id.jpg",
ratio: "3:2",
verticalOffset: "1",
width: "200"
}
},
...
]
into fully parsed markup elements, leaving no string unparsed.
In particular, paragraphs with rich text will be turned into markup of the form,
[
{
"name": "paragraph",
"children": [
{
"name": "text",
"attributes": {
"value": "Some ",
},
"children": []
},
{
"name": "italic",
"children": [
{
"name": "text",
"attributes": {
"value": "styled",
},
"children": []
}
]
},
{
"name": "text",
"attributes": {
"value": " text within ",
},
"children": []
},
{
"name": "bold",
"children": [
{
"attributes": {
"value": "the",
},
"children": [],
"name": "text",
}
]
},
{
"name": "text",
"attributes": {
"value": " paragraph",
},
"children": []
}
]
}
]
This function turns text containing an author name into markup elements.
Example input,
const authorSlugs = [
"john-doe",
"sponge-bob"
];
const authorDescription = "Sponge Bob, Jane Doe and John Doe";
authorToByline(authorDescription);
Example output,
[
{
"name": "author",
"attributes": {
"slug": "sponge-bob",
},
"children": [
{
"name": "text",
"attributes": {
"value": "Sponge Bob",
},
"children": [],
},
],
},
{
"name": "inline",
"children": [
{
"attributes": {
"value": ", Jane Doe and ",
},
"children": [],
"name": "text",
},
],
},
{
"name": "author",
"attributes": {
"slug": "john-doe",
},
"children": [
{
"name": "text",
"attributes": {
"value": "John Doe",
},
"children": []
}
]
}
]