Support full QWord heading hierarchy in DOCX
This commit is contained in:
@@ -11,6 +11,9 @@ describe("wordOffice helpers", () => {
|
||||
<h1>План проекта</h1>
|
||||
<h2>Задачи</h2>
|
||||
<h3>Контроль качества</h3>
|
||||
<h4>Сценарии</h4>
|
||||
<h5>Шаги</h5>
|
||||
<h6>Детали</h6>
|
||||
<p>Первый абзац.</p>
|
||||
<ul><li>Подготовить документ</li><li>Проверить таблицу</li></ul>
|
||||
`);
|
||||
@@ -19,6 +22,9 @@ describe("wordOffice helpers", () => {
|
||||
{ type: "heading", level: 1, text: "План проекта", runs: [{ text: "План проекта" }] },
|
||||
{ type: "heading", level: 2, text: "Задачи", runs: [{ text: "Задачи" }] },
|
||||
{ type: "heading", level: 3, text: "Контроль качества", runs: [{ text: "Контроль качества" }] },
|
||||
{ type: "heading", level: 4, text: "Сценарии", runs: [{ text: "Сценарии" }] },
|
||||
{ type: "heading", level: 5, text: "Шаги", runs: [{ text: "Шаги" }] },
|
||||
{ type: "heading", level: 6, text: "Детали", runs: [{ text: "Детали" }] },
|
||||
{ type: "paragraph", text: "Первый абзац.", runs: [{ text: "Первый абзац." }] },
|
||||
{
|
||||
type: "list",
|
||||
@@ -181,12 +187,15 @@ describe("wordOffice helpers", () => {
|
||||
expect(documentXml).toMatch(/<w:t[^>]*>Line 1<\/w:t>[\s\S]*<w:br\/>[\s\S]*<w:t[^>]*>Line 2<\/w:t>/);
|
||||
});
|
||||
|
||||
it("записывает h3 как стиль Heading3 в XML экспортированного DOCX", async () => {
|
||||
const blob = await exportDocxBlob("Заголовок3.docx", "<h3>Подраздел</h3>");
|
||||
it("записывает h3-h6 как стили Heading3-Heading6 в XML экспортированного DOCX", async () => {
|
||||
const blob = await exportDocxBlob("Заголовки.docx", "<h3>Раздел</h3><h4>Подраздел</h4><h5>Сценарий</h5><h6>Деталь</h6>");
|
||||
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="Heading3"[^>]*\/>/);
|
||||
expect(documentXml).toMatch(/<w:pStyle\b[^>]*w:val="Heading4"[^>]*\/>/);
|
||||
expect(documentXml).toMatch(/<w:pStyle\b[^>]*w:val="Heading5"[^>]*\/>/);
|
||||
expect(documentXml).toMatch(/<w:pStyle\b[^>]*w:val="Heading6"[^>]*\/>/);
|
||||
});
|
||||
|
||||
it("записывает HTML-разрывы страниц как w:br w:type page в XML экспортированного DOCX", async () => {
|
||||
|
||||
Reference in New Issue
Block a user