@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
TypeScript
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;