diff --git a/packages/text-to-speech/src/htmlToSsml.ts b/packages/text-to-speech/src/htmlToSsml.ts
index 581959543..19db626f1 100644
--- a/packages/text-to-speech/src/htmlToSsml.ts
+++ b/packages/text-to-speech/src/htmlToSsml.ts
@@ -1,9 +1,6 @@
-
-
-
import { parseHTML } from 'linkedom'
-// this code needs to be kept in sync with the
+// this code needs to be kept in sync with the
// frontend code in: useReadingProgressAnchor
const ANCHOR_ELEMENTS_BLOCKED_ATTRIBUTES = [
@@ -12,16 +9,10 @@ const ANCHOR_ELEMENTS_BLOCKED_ATTRIBUTES = [
'data-instagram-id',
]
-function ssmlTagsForTopLevelElement(element: Element) {
- // if (element.nodeName == 'BLOCKQUOTE') {
- // return {
- // opening: ` `,
- // closing: `
`, - closing: `
` + closing: ``, } } @@ -67,13 +58,20 @@ function emit(textItems: string[], text: string) { textItems.push(text) } -function cleanTextNode(textNode: ChildNode): String { +function cleanTextNode(textNode: ChildNode): string { return (textNode.textContent ?? '').replace(/\s+/g, ' ') } -function emitTextNode(textItems: string[], cleanedText: String, textNode: ChildNode) { - const ssmlElement = textNode.parentNode?.nodeName === 'B' ? "emphasis" : undefined - if (!cleanedText) { return } +function emitTextNode( + textItems: string[], + cleanedText: string, + textNode: ChildNode +) { + const ssmlElement = + textNode.parentNode?.nodeName === 'B' ? 'emphasis' : undefined + if (!cleanedText) { + return + } if (ssmlElement) { emit(textItems, `<${ssmlElement}>`) @@ -84,12 +82,16 @@ function emitTextNode(textItems: string[], cleanedText: String, textNode: ChildN } } -function emitElement(textItems: string[], element: Element, isTopLevel: Boolean) { +function emitElement( + textItems: string[], + element: Element, + isTopLevel: boolean +) { const SKIP_TAGS = ['SCRIPT', 'STYLE', 'IMG', 'FIGURE', 'FIGCAPTION', 'IFRAME'] - - const topLevelTags = ssmlTagsForTopLevelElement(element) + + const topLevelTags = ssmlTagsForTopLevelElement() const idx = element.getAttribute('data-omnivore-anchor-idx') - var maxVisitedIdx = Number(idx) + let maxVisitedIdx = Number(idx) if (isTopLevel) { emit(textItems, topLevelTags.opening) @@ -100,9 +102,13 @@ function emitElement(textItems: string[], element: Element, isTopLevel: Boolean) continue } - if (child.nodeType == 3 /* Node.TEXT_NODE */ && (child.textContent?.length ?? 0) > 0 ) { + if ( + child.nodeType == 3 /* Node.TEXT_NODE */ && + (child.textContent?.length ?? 0) > 0 + ) { const cleanedText = cleanTextNode(child) - if (cleanedText.length > 1) { // Make sure its more than just a space + if (idx && cleanedText.length > 1) { + // Make sure its more than just a space emit(textItems, `