in scripts/merge_md.js [222:261]
function adjustHeaders(mdContent, level) {
const match = mdContent.match(/{[^}]*}/);
const specialTitle = `{ "title": "What's Apache Doris", "language": "en" }`;
const mainTitle = JSON.parse(match[0] === specialTitle ? match[0] : match[0].replace(/'/g, '"')).title;
const lines = mdContent.split('\n');
let hasMainTitle = false;
let firstSeparatorIndex = -1;
let secondSeparatorIndex = -1;
for (let i = 0; i < lines.length; i++) {
const line = lines[i];
if (line.startsWith('# ')) {
hasMainTitle = true;
break;
}
if (line.trim() === '---') {
if (firstSeparatorIndex === -1) {
firstSeparatorIndex = i;
} else {
secondSeparatorIndex = i;
break;
}
}
}
const adjustedLines = lines.map(line => {
if (line.startsWith('#')) {
const numHashes = line.match(/^#+/)[0].length;
return '#'.repeat(numHashes + level) + line.slice(numHashes);
}
return line;
});
if (!hasMainTitle && secondSeparatorIndex !== -1) {
adjustedLines.splice(secondSeparatorIndex + 2, 0, `${'#'.repeat(level + 1)} ${mainTitle}`);
}
return adjustedLines.join('\n');
}