feat: 增加 ECharts 渲染与预览交互增强
- 新增可复用的 markdown-echarts 工作区,支持安全的 YAML 围栏、默认值、语义校验、错误占位和 SVG 渲染 - 将 ECharts 接入统一 Markdown、快速预览、精确预览与 PDF 链路,并复用 Mermaid 的不可跨页和超高图单页适配策略 - 默认示例加入 ECharts,增加源文本折叠、顶部文档状态、页码输入跳转与滚动同步 - 快速预览改用外层容器滚动,使滚动条与精确预览统一贴在预览区域右侧,并兼容显示缩放 - 完善 Docker 工作区复制、可配置 Compose 镜像、测试覆盖和进度文档
This commit is contained in:
@@ -149,6 +149,8 @@ function createPdfServerTiming(
|
||||
`navigation;dur=${milliseconds(timings.navigationMs)}`,
|
||||
`document-render;dur=${milliseconds(timings.documentRenderMs)}`,
|
||||
`runtime-setup;dur=${milliseconds(timings.runtimeSetupMs)}`,
|
||||
`echarts;dur=${milliseconds(timings.echartsMs)}`,
|
||||
`echarts-fit;dur=${milliseconds(timings.echartsFitMs)}`,
|
||||
`mermaid;dur=${milliseconds(timings.mermaidMs)}`,
|
||||
`mermaid-fit;dur=${milliseconds(timings.mermaidFitMs)}`,
|
||||
`mermaid-conversion;dur=${milliseconds(
|
||||
@@ -397,6 +399,10 @@ export function buildApp(options: BuildAppOptions = {}) {
|
||||
.header("cache-control", "no-store")
|
||||
.header("server-timing", serverTiming)
|
||||
.header("x-pdf-page-count", String(generated.pageCount))
|
||||
.header(
|
||||
"x-echarts-error-count",
|
||||
String(generated.echartsErrors.length)
|
||||
)
|
||||
.header(
|
||||
"x-mermaid-error-count",
|
||||
String(generated.mermaidErrors.length)
|
||||
|
||||
@@ -10,6 +10,7 @@ export type PdfRenderPayload = PagedDocumentPayload;
|
||||
export interface PdfGenerationResult {
|
||||
pdf: Buffer;
|
||||
pageCount: number;
|
||||
echartsErrors: string[];
|
||||
mermaidErrors: string[];
|
||||
timings: PdfGenerationTimings;
|
||||
}
|
||||
@@ -21,6 +22,8 @@ export interface PdfGenerationTimings {
|
||||
navigationMs: number;
|
||||
documentRenderMs: number;
|
||||
runtimeSetupMs: number;
|
||||
echartsMs: number;
|
||||
echartsFitMs: number;
|
||||
mermaidMs: number;
|
||||
mermaidFitMs: number;
|
||||
mermaidConversionMs: number;
|
||||
@@ -59,6 +62,8 @@ interface PdfDocumentResult
|
||||
| "navigationMs"
|
||||
| "documentRenderMs"
|
||||
| "runtimeSetupMs"
|
||||
| "echartsMs"
|
||||
| "echartsFitMs"
|
||||
| "mermaidMs"
|
||||
| "mermaidFitMs"
|
||||
| "mermaidConversionMs"
|
||||
@@ -469,11 +474,14 @@ export class PlaywrightPdfGenerator implements PdfGenerator {
|
||||
return {
|
||||
pdf,
|
||||
pageCount: renderResult.pageCount,
|
||||
echartsErrors: renderResult.echartsErrors,
|
||||
mermaidErrors: renderResult.mermaidErrors,
|
||||
timings: {
|
||||
navigationMs,
|
||||
documentRenderMs,
|
||||
runtimeSetupMs: renderResult.timings.setupMs,
|
||||
echartsMs: renderResult.timings.echartsMs,
|
||||
echartsFitMs: renderResult.timings.echartsFitMs,
|
||||
mermaidMs: renderResult.timings.mermaidMs,
|
||||
mermaidFitMs: renderResult.timings.mermaidFitMs,
|
||||
mermaidConversionMs:
|
||||
|
||||
Reference in New Issue
Block a user