diff --git a/packages/types/src/config.ts b/packages/types/src/config.ts index 50d6a2f..33b3981 100644 --- a/packages/types/src/config.ts +++ b/packages/types/src/config.ts @@ -1,18 +1,25 @@ -import type { IParagraphStyleOptions } from 'docx' +import type { IStylesOptions } from 'docx' -// Normal paragraphs. -export type ThemeKey = 'normal' | -// Heading. -'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'h7' | 'h8' | 'h9' | -// Table header and imageFooter. -'tableHeader' | 'imageFooter' | -// Title, subtitle, and cover info. -'title' | 'subtitle' | 'coverInfo' | -// Content and abstract. -'contentTitle' | 'abstractTitle' | 'keywords' | -// Code, mark. -'code' | 'mark' +export interface IMarkdownReportConfig { + /** + * Creator of the document. + */ + creator: string + + /** + * Global style options. + */ + styles: IStylesOptions -export interface ThemeConfig extends IParagraphStyleOptions { - id: ThemeKey +} + +export enum StyleName { + 'normal' = 'normal', + 'h1' = 'heading1', + 'h2' = 'heading2', + 'h3' = 'heading3', + 'h4' = 'heading4', + 'h5' = 'heading5', + 'h6' = 'heading6', + 'table' = 'table', } diff --git a/packages/types/src/index.ts b/packages/types/src/index.ts index a7ad1e2..7f630b6 100644 --- a/packages/types/src/index.ts +++ b/packages/types/src/index.ts @@ -1,2 +1 @@ -export * from './types' -export * from './config' +export { IMarkdownReportConfig, StyleName } from './config' diff --git a/packages/types/src/types.ts b/packages/types/src/types.ts deleted file mode 100644 index a6c6a78..0000000 --- a/packages/types/src/types.ts +++ /dev/null @@ -1,40 +0,0 @@ -import type { IRunOptions } from 'docx' - -export interface ReportConfig{ - title: string - logo?: string - subtitle?: string - subtitlePos?: 'up' | 'down' - coverInfo?: Record - disablePageNumber?: boolean - disablePageHeader?: boolean -} - -export interface ReportMarkdown{ - raw: string - frontmatter: ReportConfig - content: ReportMarkdownSection[] -} - -export type MarkdownItTokenType = 'strong_open' | 'em_open' | 's_open' | 'mark_open' | 'html_inline' | 'text' | 'code_inline' - -export interface ContentBase{ - type: string - children?: ContentBase[] -} - -export interface ReportMarkdownSection extends ContentBase { - type: 'section' - children: ReportMarkdownParagraph[] -} - -export interface ReportMarkdownParagraph extends ContentBase{ - type: 'paragraph' | 'heading' - children: ReportMarkdownParagraphChild[] - level?: number -} - -export interface ReportMarkdownParagraphChild extends ContentBase{ - type: 'text' | 'image' - config: IRunOptions -}