campus-tex-cli
Version:
A CLI to quickly generate latex files for presentations or task assignments, using the unofficial template by the University of Stuttgart.
41 lines (40 loc) • 1.69 kB
JavaScript
import fs from "fs/promises";
import { formatAndHeader } from "../templates/article/formatAndHeader.js";
import { articleTemplate } from "../templates/article/article.js";
import { packages } from "../templates/packages.js";
import { coloredLog } from "../util/coloredLog.js";
import chalk from "chalk";
import { literature } from "../templates/literature.js";
export const handleArticle = async ({ folderName, outputFile, fileName, matriculationNumber = "", topic, userName, useBibTex }) => {
const header = formatAndHeader({
fileName,
matriculationNumber,
topic,
userName,
useBibTex
});
coloredLog({
text: `Writing Header file to ./${folderName}/style/FormatAndHeader.tex`,
highlight: chalk.yellow("INFO:"),
});
await fs.writeFile(`./${folderName}/styles/FormatAndHeader.tex`, header, "utf-8");
coloredLog({
text: `Writing Packages file to ./${folderName}/style/Packages.tex`,
highlight: chalk.yellow("INFO:"),
});
await fs.writeFile(`./${folderName}/styles/Packages.tex`, packages, "utf-8");
coloredLog({
text: `Writing template file to ./${folderName}/${outputFile}`,
highlight: chalk.yellow("INFO:"),
});
await fs.writeFile(`./${folderName}/${outputFile}`, articleTemplate(useBibTex), "utf-8");
if (useBibTex) {
coloredLog({
text: `Writing literature file to ./${folderName}/literature.bib`,
highlight: chalk.yellow("INFO:"),
});
await fs.writeFile(`./${folderName}/literature.bib`, literature, "utf-8");
}
console.log(chalk.green("Successfully created files."));
process.exit(0);
};