Preserve QWord quote style in DOCX
This commit is contained in:
@@ -46,6 +46,20 @@ describe("wordOffice helpers", () => {
|
||||
]);
|
||||
});
|
||||
|
||||
it("разбирает HTML blockquote как цитату QWord", () => {
|
||||
const blocks = htmlToWordBlocks('<blockquote id="Quote1">Цитата <strong>важная</strong></blockquote>');
|
||||
|
||||
expect(blocks).toEqual([
|
||||
{
|
||||
type: "paragraph",
|
||||
text: "Цитата важная",
|
||||
runs: [{ text: "Цитата " }, { text: "важная", bold: true }],
|
||||
bookmark: "Quote1",
|
||||
quote: true
|
||||
}
|
||||
]);
|
||||
});
|
||||
|
||||
it("сохраняет базовое inline-форматирование текста для DOCX", () => {
|
||||
const blocks = htmlToWordBlocks(`
|
||||
<p>Обычный <strong>полужирный</strong> <em>курсив</em> <u>подчеркнутый</u> <span style="font-weight: 700; font-style: italic; text-decoration-line: underline; color: #0f5fae; background-color: rgb(255, 242, 204);">все стили</span></p>
|
||||
@@ -198,6 +212,15 @@ describe("wordOffice helpers", () => {
|
||||
expect(documentXml).toMatch(/<w:pStyle\b[^>]*w:val="Heading6"[^>]*\/>/);
|
||||
});
|
||||
|
||||
it("записывает blockquote как стиль Quote в XML экспортированного DOCX", async () => {
|
||||
const blob = await exportDocxBlob("Цитата.docx", "<blockquote>Важная цитата</blockquote>");
|
||||
const zip = await JSZip.loadAsync(await blob.arrayBuffer());
|
||||
const documentXml = await zip.file("word/document.xml")?.async("string");
|
||||
|
||||
expect(documentXml).toMatch(/<w:pStyle\b[^>]*w:val="Quote"[^>]*\/>/);
|
||||
expect(documentXml).toContain("Важная цитата");
|
||||
});
|
||||
|
||||
it("записывает HTML-разрывы страниц как w:br w:type page в XML экспортированного DOCX", async () => {
|
||||
const blob = await exportDocxBlob("Разрыв.docx", '<p>Before<span data-qoffice-page-break="true"></span>After</p>');
|
||||
const zip = await JSZip.loadAsync(await blob.arrayBuffer());
|
||||
|
||||
Reference in New Issue
Block a user