diff --git a/packages/super-editor/src/core/DocxZipper.js b/packages/super-editor/src/core/DocxZipper.js index 4aa52a9928..22f6507bbd 100644 --- a/packages/super-editor/src/core/DocxZipper.js +++ b/packages/super-editor/src/core/DocxZipper.js @@ -149,7 +149,9 @@ class DocxZipper { } Object.keys(docx.files).forEach((name) => { - if (!name.includes('header') && !name.includes('footer')) return; + // Important: We need to filter out .rels files - they should not be included in content types + // Otherwise this generates MS word validation error + if (name.includes('.rels') || (!name.includes('header') && !name.includes('footer'))) return; const hasExtensible = types.elements?.some( (el) => el.name === 'Override' && el.attributes.PartName === `/${name}`, ); diff --git a/packages/super-editor/src/core/super-converter/exporter.js b/packages/super-editor/src/core/super-converter/exporter.js index 862d4d83c3..d4d3108d1d 100644 --- a/packages/super-editor/src/core/super-converter/exporter.js +++ b/packages/super-editor/src/core/super-converter/exporter.js @@ -1922,6 +1922,13 @@ function translateImageNode(params, imageSize) { name: 'wp:wrapTopAndBottom', }); } + + // Important: wp:anchor will break if no wrapping is specified. We need to use wrapNone. + if (attrs.isAnchor && !wrapProp.length) { + wrapProp.push({ + name: 'wp:wrapNone', + }); + } } const drawingXmlns = 'http://schemas.openxmlformats.org/drawingml/2006/main'; @@ -2070,7 +2077,7 @@ function translateImageNode(params, imageSize) { }, [], ); - + return textNode; }