Files
MorphDoc/packages/core/src/document.ts
T
SkyJourney f5a46f79f1 feat: 增加 ECharts 渲染与预览交互增强
- 新增可复用的 markdown-echarts 工作区,支持安全的 YAML 围栏、默认值、语义校验、错误占位和 SVG 渲染
- 将 ECharts 接入统一 Markdown、快速预览、精确预览与 PDF 链路,并复用 Mermaid 的不可跨页和超高图单页适配策略
- 默认示例加入 ECharts,增加源文本折叠、顶部文档状态、页码输入跳转与滚动同步
- 快速预览改用外层容器滚动,使滚动条与精确预览统一贴在预览区域右侧,并兼容显示缩放
- 完善 Docker 工作区复制、可配置 Compose 镜像、测试覆盖和进度文档
2026-07-27 16:05:14 +08:00

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;
}