@prismicio/richtext
Version:
A parser and serializer for Prismic's Rich Text format
27 lines (23 loc) • 818 B
text/typescript
import { RichTextField, RTTextNode } from "@prismicio/types";
/**
* Serializes a rich text or title field to a plain text string
*
* @param richTextField - A rich text or title field from Prismic
* @param separator - Separator used to join each element, defaults to a space
*
* @returns Plain text equivalent of the provided rich text or title field
* @see Templating rich text and title fields from Prismic {@link https://prismic.io/docs/technologies/templating-rich-text-and-title-fields-javascript}
*/
export const asText = (
richTextField: RichTextField,
separator = " ",
): string => {
let result = "";
for (let i = 0; i < richTextField.length; i++) {
if ("text" in richTextField[i]) {
result +=
(result ? separator : "") + (richTextField[i] as RTTextNode).text;
}
}
return result;
};