Notes/src/routes/api/fonts.ts

41 lines
1.5 KiB
TypeScript
Raw Normal View History

2024-04-05 22:24:21 +03:00
import { Request, Response } from 'express';
import optionService from "../../services/options.js";
2021-09-27 21:01:56 +02:00
2024-04-05 22:24:21 +03:00
function getFontCss(req: Request, res: Response) {
2021-09-27 21:01:56 +02:00
res.setHeader('Content-Type', 'text/css');
if (!optionService.getOptionBool('overrideThemeFonts')) {
res.send('');
return;
}
2023-06-29 22:10:13 +02:00
const optionsMap = optionService.getOptionMap();
2021-09-27 21:01:56 +02:00
const mainFontFamilyOverridden = optionsMap.mainFontFamily !== 'theme';
const treeFontFamilyOverridden = optionsMap.treeFontFamily !== 'theme';
const detailFontFamilyOverridden = optionsMap.detailFontFamily !== 'theme';
const monospaceFontFamilyOverridden = optionsMap.monospaceFontFamily !== 'theme';
2021-09-27 21:01:56 +02:00
// using body to be more specific than themes' :root
let style = 'body {';
if (mainFontFamilyOverridden) style += `--main-font-family: ${optionsMap.mainFontFamily};`;
if (treeFontFamilyOverridden) style += `--tree-font-family: ${optionsMap.treeFontFamily};`;
if (detailFontFamilyOverridden) style += `--detail-font-family: ${optionsMap.detailFontFamily};`;
if (monospaceFontFamilyOverridden) style += `--monospace-font-family: ${optionsMap.monospaceFontFamily};`;
style += `--main-font-size: ${optionsMap.mainFontSize}%;`;
style += `--tree-font-size: ${optionsMap.treeFontSize}%;`;
style += `--detail-font-size: ${optionsMap.detailFontSize}%;`;
style += `--monospace-font-size: ${optionsMap.monospaceFontSize}%;`;
style += '}';
res.send(style);
2021-09-27 21:01:56 +02:00
}
export default {
2021-09-27 21:01:56 +02:00
getFontCss
};