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

32 lines (31 loc) 1.07 kB
// SPDX-FileCopyrightText: 2024 Telefónica Innovación Digital // SPDX-License-Identifier: Apache-2.0 import { ZodError } from "zod"; /** * UnifiedPlugin to validate FrontMatter metadata with given schema. * * @throws {Error} if the admonitions is not well constructed. * * @see {@link https://docusaurus.io/docs/markdown-features/admonitions | Docusaurus Admonitions} */ const remarkValidateFrontmatter = function remarkRemoveAdmonitions(schema) { return function (_tree, file) { try { if (!file.data.frontmatter) { file.data.frontmatter = {}; return; } file.data.frontmatter = schema.parse(file.data.frontmatter); } catch (e) { if (e instanceof ZodError) { const message = e.errors.map((error) => error.message).join("\n"); file.fail(message, undefined, "remark-validate-frontmatter"); } else { throw e; } } }; }; export default remarkValidateFrontmatter;