69 lines
1.5 KiB
TypeScript
69 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;
|
|
mermaidMs: number;
|
|
mermaidFitMs: number;
|
|
mermaidConversionMs: number;
|
|
resourceWaitMs: number;
|
|
paginationMs: number;
|
|
finalizeMs: number;
|
|
totalMs: number;
|
|
}
|
|
|
|
export interface PagedDocumentRenderResult {
|
|
pageCount: number;
|
|
mermaidErrors: string[];
|
|
timings: PagedDocumentTimings;
|
|
}
|