@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
JavaScript
// 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,
}));
}
};