Allow custom font directory via environment variables when running as server

This commit is contained in:
David Evans 2018-04-30 22:32:11 +01:00
parent 51ad974ba5
commit 724f11cfcb
4 changed files with 27 additions and 25 deletions

View File

@ -10258,13 +10258,15 @@
const fs = require('fs');
const opentype = require('opentype.js');
const path = require('path');
const FONTDIR = process.env.FONTDIR || './fonts/';
const FONTS = new Map();
function loadFont(path) {
function loadFont(relativePath) {
// Must be synchronous so that measurements are ready once startup completes
/* eslint-disable no-sync */
const data = fs.readFileSync(path);
const data = fs.readFileSync(path.join(FONTDIR, relativePath));
/* eslint-enable no-sync */
return opentype.parse(data.buffer);
}
@ -10282,19 +10284,19 @@
}
addFont('sans-serif', {
'': 'fonts/liberation-fonts/LiberationSans-Regular.ttf',
'bold': 'fonts/liberation-fonts/LiberationSans-Bold.ttf',
'bold-italic': 'fonts/liberation-fonts/LiberationSans-BoldItalic.ttf',
'italic': 'fonts/liberation-fonts/LiberationSans-Italic.ttf',
'': 'liberation-fonts/LiberationSans-Regular.ttf',
'bold': 'liberation-fonts/LiberationSans-Bold.ttf',
'bold-italic': 'liberation-fonts/LiberationSans-BoldItalic.ttf',
'italic': 'liberation-fonts/LiberationSans-Italic.ttf',
});
addFont('monospace', {
'': 'fonts/liberation-fonts/LiberationMono-Regular.ttf',
'bold': 'fonts/liberation-fonts/LiberationMono-Bold.ttf',
'bold-italic': 'fonts/liberation-fonts/LiberationMono-BoldItalic.ttf',
'italic': 'fonts/liberation-fonts/LiberationMono-Italic.ttf',
'': 'liberation-fonts/LiberationMono-Regular.ttf',
'bold': 'liberation-fonts/LiberationMono-Bold.ttf',
'bold-italic': 'liberation-fonts/LiberationMono-BoldItalic.ttf',
'italic': 'liberation-fonts/LiberationMono-Italic.ttf',
});
addFont('handlee', {
'': 'fonts/handlee/Handlee.ttf',
'': 'handlee/Handlee.ttf',
});
const DEFAULT_FONT = 'sans-serif';

View File

@ -1,12 +1,14 @@
const fs = require('fs');
const opentype = require('opentype.js');
const path = require('path');
const FONTDIR = process.env.FONTDIR || './fonts/';
const FONTS = new Map();
function loadFont(path) {
function loadFont(relativePath) {
// Must be synchronous so that measurements are ready once startup completes
/* eslint-disable no-sync */
const data = fs.readFileSync(path);
const data = fs.readFileSync(path.join(FONTDIR, relativePath));
/* eslint-enable no-sync */
return opentype.parse(data.buffer);
}
@ -24,19 +26,19 @@ function addFont(name, variants) {
}
addFont('sans-serif', {
'': 'fonts/liberation-fonts/LiberationSans-Regular.ttf',
'bold': 'fonts/liberation-fonts/LiberationSans-Bold.ttf',
'bold-italic': 'fonts/liberation-fonts/LiberationSans-BoldItalic.ttf',
'italic': 'fonts/liberation-fonts/LiberationSans-Italic.ttf',
'': 'liberation-fonts/LiberationSans-Regular.ttf',
'bold': 'liberation-fonts/LiberationSans-Bold.ttf',
'bold-italic': 'liberation-fonts/LiberationSans-BoldItalic.ttf',
'italic': 'liberation-fonts/LiberationSans-Italic.ttf',
});
addFont('monospace', {
'': 'fonts/liberation-fonts/LiberationMono-Regular.ttf',
'bold': 'fonts/liberation-fonts/LiberationMono-Bold.ttf',
'bold-italic': 'fonts/liberation-fonts/LiberationMono-BoldItalic.ttf',
'italic': 'fonts/liberation-fonts/LiberationMono-Italic.ttf',
'': 'liberation-fonts/LiberationMono-Regular.ttf',
'bold': 'liberation-fonts/LiberationMono-Bold.ttf',
'bold-italic': 'liberation-fonts/LiberationMono-BoldItalic.ttf',
'italic': 'liberation-fonts/LiberationMono-Italic.ttf',
});
addFont('handlee', {
'': 'fonts/handlee/Handlee.ttf',
'': 'handlee/Handlee.ttf',
});
const DEFAULT_FONT = 'sans-serif';

View File

@ -158,7 +158,7 @@ module.exports = {
'no-octal-escape': ['error'],
'no-param-reassign': ['error'],
'no-path-concat': ['error'],
'no-process-env': ['error'],
'no-process-env': ['off'],
'no-process-exit': ['error'],
'no-proto': ['error'],
'no-prototype-builtins': ['error'],

View File

@ -1,6 +1,4 @@
/* eslint-disable no-process-env */ // Configuration section
const manual = Boolean(process.env.MANUAL);
/* eslint-enable no-process-env */
/*
* Firefox is supported, but tests will fail until version 60 is out