Fix homepage spotlight teaser dropping italic formatting

SpotlightText's minimal Lexical converter only checked format bit 1
(bold) — bit 2 (italic) was silently ignored, so Tasse "Die Pause"'s
italicized quote ("Nur noch schnell … Nein.") rendered as plain text
on the homepage despite showing correctly in the admin's richText
editor.
This commit is contained in:
Marco
2026-08-26 21:24:26 +00:00
parent 56fae6ff13
commit 0fea84f362
+11 -2
View File
@@ -21,8 +21,17 @@ type LexicalNode = { type: string; text?: string; format?: number; children?: Le
function renderInline(node: LexicalNode, key: number): ReactNode {
if (node.type === "text") {
const textNode = node as LexicalTextNode;
const bold = typeof textNode.format === "number" && (textNode.format & 1) === 1;
return bold ? <strong key={key}>{textNode.text}</strong> : <Fragment key={key}>{textNode.text}</Fragment>;
const format = typeof textNode.format === "number" ? textNode.format : 0;
const bold = (format & 1) === 1;
// 2 = italic in Lexical's format bitmask — was silently dropped here,
// so italic spans (e.g. Tasse "Die Pause"'s spotlightText) rendered as
// plain text on the homepage despite showing correctly in the admin's
// richText editor.
const italic = (format & 2) === 2;
let el: ReactNode = textNode.text;
if (italic) el = <em>{el}</em>;
if (bold) el = <strong>{el}</strong>;
return <Fragment key={key}>{el}</Fragment>;
}
if (node.type === "linebreak") return <br key={key} />;
// Any other inline node (link, etc.) — render its text children without