UNPKG

@telefonica/markdown-confluence-sync

Version:

Creates/updates/deletes Confluence pages based on markdown files in a directory. Supports Mermaid diagrams and per-page configuration using frontmatter metadata. Works great with Docusaurus

52 lines (51 loc) 2.15 kB
import type { LoggerInterface } from "@mocks-server/logger"; import type { DocusaurusDocPageInterface, DocusaurusDocPageMeta } from "../pages/DocusaurusDocPage.types"; import { ContentPreprocessor, FilesMetadata, FilesPattern } from "../../MarkdownConfluenceSync.types"; export interface DocusaurusDocTreeOptions { cwd: string; /** Logger */ logger?: LoggerInterface; /** Files metadata */ filesMetadata?: FilesMetadata; /** Files ignore */ filesIgnore?: FilesPattern; /** Content preprocessor */ contentPreprocessor?: ContentPreprocessor; } /** Creates a DocusaurusDocTree interface */ export interface DocusaurusDocTreeConstructor { /** Returns DocusaurusDocTree interface * @param {string} path - Path to the docs directory * @param {DocusaurusDocTreeOptions} [options] - Options * @returns DocusaurusDocTree instance * @example const docusaurusDocTree = new DocusaurusDocTree("./docs"); */ new (path: string, options: DocusaurusDocTreeOptions): DocusaurusDocTreeInterface; } export interface DocusaurusDocTreeInterface { /** Returns an array of all Docusaurus tree nodes in prefix order to be synchronize * @async * @returns {Promise<DocusaurusDocTreeItem>} An array of all Docusaurus tree nodes in prefix order to be synchronize * @example * const docusaurusDocTree = new DocusaurusDocTree("./docs"); * const tree = await docusaurusDocTree.flatten(); */ flatten(): Promise<DocusaurusDocTreeItem[]>; } /** Docusaurus Tree Item */ export interface DocusaurusDocTreeItem extends DocusaurusDocPageInterface { /** * Returns items children. * * In case of a category, it returns the category children. * Otherwise, it returns an array containing itself. * * @async * @returns {Promise<DocusaurusDocTreeItem[]>} An array of DocusaurusDocTreeItem * @see {@link DocusaurusDocTreeCategory#visit} * @see {@link DocusaurusDocTreePage#visit} */ visit(): Promise<DocusaurusDocTreeItem[]>; } /** Docusaurus Tree Item metadata */ export type DocusaurusDocTreeItemMeta = DocusaurusDocPageMeta;