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

41 lines (40 loc) 1.83 kB
// SPDX-FileCopyrightText: 2024 Telefónica Innovación Digital // SPDX-License-Identifier: Apache-2.0 import { remark } from "remark"; import remarkDirective from "remark-directive"; import remarkFrontmatter from "remark-frontmatter"; import remarkGfm from "remark-gfm"; import remarkMdx from "remark-mdx"; import remarkParseFrontmatter from "remark-parse-frontmatter"; import { readMarkdownAndPatchDocusaurusAdmonitions } from "../util/files.js"; import { DocusaurusDocPage } from "./DocusaurusDocPage.js"; import remarkRemoveMdxCode from "./support/remark/remark-remove-mdx-code.js"; import remarkReplaceAdmonitions from "./support/remark/remark-replace-admonitions.js"; import remarkReplaceTabs from "./support/remark/remark-replace-tabs.js"; import remarkTransformDetails from "./support/remark/remark-transform-details.js"; import remarkValidateFrontmatter from "./support/remark/remark-validate-frontmatter.js"; import { FrontMatterValidator } from "./support/validators/FrontMatterValidator.js"; export const DocusaurusDocPageMdx = class DocusaurusDocPageMdx extends DocusaurusDocPage { _logger; _contentPreprocessor; constructor(path, options) { super(path, options); } _parseFile(path) { return remark() .use(remarkMdx) .use(remarkGfm) .use(remarkFrontmatter) .use(remarkReplaceTabs) .use(remarkTransformDetails) .use(remarkRemoveMdxCode) .use(remarkDirective) .use(remarkParseFrontmatter) .use(remarkValidateFrontmatter, FrontMatterValidator) .use(remarkReplaceAdmonitions) .processSync(readMarkdownAndPatchDocusaurusAdmonitions(path, { logger: this._logger, contentPreprocessor: this._contentPreprocessor, })); } };