antora-confluence
Version:
A tool to convert and publish Antora documentation to Confluence
36 lines (35 loc) • 1.59 kB
JavaScript
;
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("<", "<")
.replaceAll(">", ">")
.replaceAll("&", "&");
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;