diff --git a/printers/docx/src/printer.ts b/printers/docx/src/printer.ts index cce17e3..cc31ab1 100644 --- a/printers/docx/src/printer.ts +++ b/printers/docx/src/printer.ts @@ -386,7 +386,7 @@ export async function createWordPicture( export function createWordPictureLabel( index: number, - text: string, + text: docx.XmlComponent[], ): PrinterFunctionResult { return { result: [ @@ -394,8 +394,9 @@ export function createWordPictureLabel( style: 'picture-caption', children: [ new docx.TextRun({ - text: `Рисунок ${index} – ${text}`, + text: `Рисунок ${index} – `, }), + ...text, ], }), ], diff --git a/printers/docx/src/visitors.ts b/printers/docx/src/visitors.ts index a61ef5c..e8a3f48 100644 --- a/printers/docx/src/visitors.ts +++ b/printers/docx/src/visitors.ts @@ -133,9 +133,11 @@ export const processingVisitors: ProcessingVisitors = { [NodeType.Code]: internalUnparsableNodeType, [ProcessedNodeType.CodeProcessed]: async (printer, node) => { + const resultName = await printer.processNodeList(printer, node.name); + const resultCaption = createWordPictureLabel( node.index + 1, - node.label.text, + resultName.result, ); return { @@ -167,7 +169,7 @@ export const processingVisitors: ProcessingVisitors = { }), ...resultCaption.result, ], - diagnostic: [...resultCaption.diagnostic], + diagnostic: [...resultName.diagnostic, ...resultCaption.diagnostic], }; }, [NodeType.Heading]: async (printer, node) => { @@ -322,10 +324,12 @@ export const processingVisitors: ProcessingVisitors = { [NodeType.Link]: internalTODO, [NodeType.Image]: internalUnparsableNodeType, [ProcessedNodeType.PictureProcessed]: async (printer, node) => { + const resultName = await printer.processNodeList(printer, node.name); + const resultPicture = await createWordPicture(node); const resultCaption = createWordPictureLabel( node.index + 1, - node.label.text, + resultName.result, ); return { @@ -338,6 +342,7 @@ export const processingVisitors: ProcessingVisitors = { ...resultCaption.result, ], diagnostic: [ + ...resultName.diagnostic, ...resultPicture.diagnostic, ...resultCaption.diagnostic, ],