- 新增可复用的 markdown-echarts 工作区,支持安全的 YAML 围栏、默认值、语义校验、错误占位和 SVG 渲染 - 将 ECharts 接入统一 Markdown、快速预览、精确预览与 PDF 链路,并复用 Mermaid 的不可跨页和超高图单页适配策略 - 默认示例加入 ECharts,增加源文本折叠、顶部文档状态、页码输入跳转与滚动同步 - 快速预览改用外层容器滚动,使滚动条与精确预览统一贴在预览区域右侧,并兼容显示缩放 - 完善 Docker 工作区复制、可配置 Compose 镜像、测试覆盖和进度文档
72 lines
1.5 KiB
TypeScript
72 lines
1.5 KiB
TypeScript
import type { ExportConfig } from "./export-config.js";
|
|
import type { ThemeFeature } from "./theme.js";
|
|
|
|
export interface MarkdownDocumentMetadata {
|
|
title: string;
|
|
author: string;
|
|
subject: string;
|
|
keywords: string[];
|
|
language: string;
|
|
}
|
|
|
|
export interface RenderedMarkdownDocument {
|
|
rendererVersion: number;
|
|
articleHtml: string;
|
|
bodyHtml: string;
|
|
metadata: MarkdownDocumentMetadata;
|
|
features: ThemeFeature[];
|
|
warnings: string[];
|
|
}
|
|
|
|
export interface PagedDocumentPayload {
|
|
articleHtml: string;
|
|
fileName: string;
|
|
metadata: MarkdownDocumentMetadata;
|
|
features: ThemeFeature[];
|
|
themeCss: string;
|
|
exportConfig: ExportConfig;
|
|
}
|
|
|
|
export interface CreatePagedDocumentPayloadOptions {
|
|
document: RenderedMarkdownDocument;
|
|
fileName: string;
|
|
themeCss: string;
|
|
exportConfig: ExportConfig;
|
|
}
|
|
|
|
export function createPagedDocumentPayload({
|
|
document,
|
|
fileName,
|
|
themeCss,
|
|
exportConfig
|
|
}: CreatePagedDocumentPayloadOptions): PagedDocumentPayload {
|
|
return {
|
|
articleHtml: document.articleHtml,
|
|
fileName,
|
|
metadata: document.metadata,
|
|
features: document.features,
|
|
themeCss,
|
|
exportConfig
|
|
};
|
|
}
|
|
|
|
export interface PagedDocumentTimings {
|
|
setupMs: number;
|
|
echartsMs: number;
|
|
echartsFitMs: number;
|
|
mermaidMs: number;
|
|
mermaidFitMs: number;
|
|
mermaidConversionMs: number;
|
|
resourceWaitMs: number;
|
|
paginationMs: number;
|
|
finalizeMs: number;
|
|
totalMs: number;
|
|
}
|
|
|
|
export interface PagedDocumentRenderResult {
|
|
pageCount: number;
|
|
echartsErrors: string[];
|
|
mermaidErrors: string[];
|
|
timings: PagedDocumentTimings;
|
|
}
|