end-of-semester-report/node_modules/@unified-latex/unified-latex-util-environments/index.cjs
2025-05-14 16:14:35 +07:00

68 lines
2.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const unifiedLatexUtilRenderInfo = require("@unified-latex/unified-latex-util-render-info");
const unifiedLatexUtilArguments = require("@unified-latex/unified-latex-util-arguments");
const unifiedLatexUtilMatch = require("@unified-latex/unified-latex-util-match");
const unifiedLatexUtilVisit = require("@unified-latex/unified-latex-util-visit");
const unifiedLatexUtilPrintRaw = require("@unified-latex/unified-latex-util-print-raw");
function processEnvironment(envNode, envInfo) {
if (envInfo.signature && envNode.args == null) {
const { args } = unifiedLatexUtilArguments.gobbleArguments(envNode.content, envInfo.signature);
envNode.args = args;
}
unifiedLatexUtilRenderInfo.updateRenderInfo(envNode, envInfo.renderInfo);
if (typeof envInfo.processContent === "function") {
envNode.content = envInfo.processContent(envNode.content);
}
}
function processEnvironments(tree, environments) {
const isRelevantEnvironment = unifiedLatexUtilMatch.match.createEnvironmentMatcher(environments);
unifiedLatexUtilVisit.visit(
tree,
{
leave: (node) => {
const envName = unifiedLatexUtilPrintRaw.printRaw(node.env);
const envInfo = environments[envName];
if (!envInfo) {
throw new Error(
`Could not find environment info for environment "${envName}"`
);
}
processEnvironment(node, envInfo);
}
},
{ test: isRelevantEnvironment }
);
}
const unifiedLatexProcessEnvironments = function unifiedLatexAttachMacroArguments(options) {
const { environments = {} } = options || {};
const isRelevantEnvironment = unifiedLatexUtilMatch.match.createEnvironmentMatcher(environments);
return (tree) => {
if (Object.keys(environments).length === 0) {
console.warn(
"Attempting to attach macro arguments but no macros are specified."
);
}
unifiedLatexUtilVisit.visit(
tree,
{
leave: (node) => {
const envName = unifiedLatexUtilPrintRaw.printRaw(node.env);
const envInfo = environments[envName];
if (!envInfo) {
throw new Error(
`Could not find environment info for environment "${envName}"`
);
}
processEnvironment(node, envInfo);
}
},
{ test: isRelevantEnvironment }
);
};
};
exports.processEnvironment = processEnvironment;
exports.processEnvironments = processEnvironments;
exports.unifiedLatexProcessEnvironments = unifiedLatexProcessEnvironments;
//# sourceMappingURL=index.cjs.map