blob: ee2fc5f39b5c7f3072c9e2f8bfef00bf2f7a1b36 [file]
const plugin = () => {
const config = require('../../docusaurus.config.js');
const fields = config.customFields || {};
const replacements = {
'@@VERSION@@': fields.version || '',
'@@FLINK_VERSION@@': fields.flinkVersion || '',
'@@BRANCH@@': fields.branch || '',
'@@GITHUB_REPO@@': fields.githubRepo || '',
'@@TRINO_GITHUB_REPO@@': fields.trinoGithubRepo || '',
'@@PRESTO_GITHUB_REPO@@': fields.prestoGithubRepo || '',
'@@SCALA_VERSION@@': fields.scalaVersion || '',
};
const replaceTokens = (str) => {
let result = str;
for (const [token, value] of Object.entries(replacements)) {
result = result.split(token).join(value);
}
return result;
};
const visitNode = (node) => {
if (node.type === 'text' && node.value) {
node.value = replaceTokens(node.value);
}
if (node.type === 'code' && node.value) {
node.value = replaceTokens(node.value);
}
if (node.type === 'inlineCode' && node.value) {
node.value = replaceTokens(node.value);
}
if (node.type === 'link' && node.url) {
node.url = replaceTokens(node.url);
}
if (node.type === 'html' && node.value) {
node.value = replaceTokens(node.value);
}
if (node.children) {
node.children.forEach(visitNode);
}
};
return (tree) => {
visitNode(tree);
};
};
module.exports = plugin;