feat: 建立统一语义文档模型

This commit is contained in:
SkyJourney
2026-07-30 23:47:51 +08:00
parent 7f72258126
commit 459a079f3b
22 changed files with 921 additions and 271 deletions
+9 -2
View File
@@ -13,6 +13,7 @@ import {
documentProfileSchema,
isSafeDocumentLink
} from "@md-to-pdf/core";
import { createSemanticDocumentModel } from "@md-to-pdf/semantic-document";
import {
markdownItECharts,
type MarkdownItEChartsErrorContext
@@ -348,12 +349,17 @@ export function renderMarkdown(
};
const rendered = markdown.render(parsed.content, environment);
const bodyHtml = sanitizeHtml(rendered, safeHtmlOptions);
const firstBodyHeading = extractFirstHeading(parsed.content);
const metadata = normalizeMetadata(
parsed.data,
options.language ?? "zh-CN",
extractFirstHeading(parsed.content)
firstBodyHeading
);
const structure = renderDocumentStructure(metadata);
const semanticDocument = createSemanticDocumentModel({
metadata,
firstBodyHeading
});
const structure = renderDocumentStructure(semanticDocument);
const profileAttribute = structure
? ` data-document-profile="${structure.profile}"`
: "";
@@ -364,6 +370,7 @@ export function renderMarkdown(
articleHtml,
bodyHtml,
metadata,
semanticDocument,
features: detectFeatures(bodyHtml),
warnings
};