From 724f11cfcbedb2f779ead9f2386af9de13e98d8f Mon Sep 17 00:00:00 2001 From: David Evans Date: Mon, 30 Apr 2018 22:32:11 +0100 Subject: [PATCH] Allow custom font directory via environment variables when running as server --- lib/sequence-diagram.js | 24 +++++++++++++----------- scripts/svg/VirtualTextSizer.mjs | 24 +++++++++++++----------- spec/support/eslintrc.js | 2 +- spec/support/karma.conf.js | 2 -- 4 files changed, 27 insertions(+), 25 deletions(-) diff --git a/lib/sequence-diagram.js b/lib/sequence-diagram.js index c1edfb8..bf55907 100644 --- a/lib/sequence-diagram.js +++ b/lib/sequence-diagram.js @@ -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'; diff --git a/scripts/svg/VirtualTextSizer.mjs b/scripts/svg/VirtualTextSizer.mjs index aa99d69..876eb08 100644 --- a/scripts/svg/VirtualTextSizer.mjs +++ b/scripts/svg/VirtualTextSizer.mjs @@ -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'; diff --git a/spec/support/eslintrc.js b/spec/support/eslintrc.js index 3bf4158..a5526ce 100644 --- a/spec/support/eslintrc.js +++ b/spec/support/eslintrc.js @@ -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'], diff --git a/spec/support/karma.conf.js b/spec/support/karma.conf.js index 21807e3..875177a 100644 --- a/spec/support/karma.conf.js +++ b/spec/support/karma.conf.js @@ -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