UNPKG

antora-confluence

Version:

A tool to convert and publish Antora documentation to Confluence

36 lines (35 loc) 1.59 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const node_html_parser_1 = __importDefault(require("node-html-parser")); const Enum_1 = require("../constants/Enum"); const rewriteCDATASections = (content) => { let contentString = content.removeWhitespace().toString(); let cdataStart = contentString.indexOf(Enum_1.Placeholder.CDATA_PLACEHOLDER_START); while (cdataStart > -1) { const cdataEnd = contentString.indexOf(Enum_1.Placeholder.CDATA_PLACEHOLDER_END, cdataStart); if (cdataEnd > -1) { const prefix = contentString.substring(0, cdataStart) + Enum_1.Placeholder.CDATA_PLACEHOLDER_START; const suffix = contentString.substring(cdataEnd); const unescaped = contentString .substring(cdataStart + Enum_1.Placeholder.CDATA_PLACEHOLDER_START.length, cdataEnd) .replaceAll("&lt;", "<") .replaceAll("&gt;", ">") .replaceAll("&amp;", "&"); contentString = prefix + unescaped + suffix; } cdataStart = contentString.indexOf(Enum_1.Placeholder.CDATA_PLACEHOLDER_START, cdataStart + 1); } return { content: (0, node_html_parser_1.default)(contentString, { blockTextElements: { code: true }, voidTag: { closingSlash: true, }, }), }; }; exports.default = rewriteCDATASections;