mirror of
https://github.com/borbann-platform/end-of-semester-report.git
synced 2025-12-18 22:34:04 +01:00
68 lines
2.6 KiB
JavaScript
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
|