feat: 建立 DOCX 主题映射引擎

This commit is contained in:
SkyJourney
2026-07-30 20:28:47 +08:00
parent e7c688df6e
commit 6fed666f44
15 changed files with 851 additions and 25 deletions
+31 -11
View File
@@ -234,25 +234,45 @@ export function resolveDocxThemeStyle(
preset: inferDocxStylePreset(manifest)
}
);
const preset = presetOverrides[declared.preset];
const presetName =
declared.basePreset ??
declared.preset ??
inferDocxStylePreset(manifest);
const preset = presetOverrides[presetName];
const overrides = declared.overrides;
const base = {
...baseStyle,
...preset
};
return {
preset: declared.preset,
body: mergeSection(base.body, declared.body),
headings: mergeSection(base.headings, declared.headings),
code: mergeSection(base.code, declared.code),
preset: presetName,
body: mergeSection(
mergeSection(base.body, declared.body),
overrides?.body
),
headings: mergeSection(
mergeSection(base.headings, declared.headings),
overrides?.headings
),
code: mergeSection(
mergeSection(base.code, declared.code),
overrides?.code
),
blockQuote: mergeSection(
base.blockQuote,
declared.blockQuote
mergeSection(base.blockQuote, declared.blockQuote),
overrides?.blockQuote
),
table: mergeSection(
mergeSection(base.table, declared.table),
overrides?.table
),
caption: mergeSection(
mergeSection(base.caption, declared.caption),
overrides?.caption
),
table: mergeSection(base.table, declared.table),
caption: mergeSection(base.caption, declared.caption),
hyperlink: mergeSection(
base.hyperlink,
declared.hyperlink
mergeSection(base.hyperlink, declared.hyperlink),
overrides?.hyperlink
)
};
}