trilium/src/routes/api/fonts.js

40 lines
1.4 KiB
JavaScript

const optionService = require('../../services/options');
function getFontCss(req, res) {
res.setHeader('Content-Type', 'text/css');
if (!optionService.getOptionBool('overrideThemeFonts')) {
res.send('');
return;
}
const optionsMap = optionService.getOptionMap();
const mainFontFamilyOverridden = optionsMap.mainFontFamily !== 'theme';
const treeFontFamilyOverridden = optionsMap.treeFontFamily !== 'theme';
const detailFontFamilyOverridden = optionsMap.detailFontFamily !== 'theme';
const monospaceFontFamilyOverridden = optionsMap.monospaceFontFamily !== 'theme';
// 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);
}
module.exports = {
getFontCss
};