From 734d1f01f0b6d128e89382c9d47b639e056a6176 Mon Sep 17 00:00:00 2001 From: Petr Sloup Date: Thu, 14 Dec 2017 09:55:57 +0100 Subject: [PATCH] Prioritize font fallbacks and try to respect proper font style --- src/utils.js | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/utils.js b/src/utils.js index 6335a40..2dacc6d 100644 --- a/src/utils.js +++ b/src/utils.js @@ -84,7 +84,20 @@ var getFontPbf = function(allowedFonts, fontPath, name, range, fallbacks) { if (err) { console.error('ERROR: Font not found:', name); if (fallbacks && Object.keys(fallbacks).length) { - var fallbackName = Object.keys(fallbacks)[0]; + var fallbackName; + + var fontStyle = name.split(' ').pop(); + if (['Regular', 'Bold', 'Italic'].indexOf(fontStyle) < 0) { + fontStyle = 'Regular'; + } + fallbackName = 'Noto Sans ' + fontStyle; + if (!fallbacks[fallbackName]) { + fallbackName = 'Open Sans ' + fontStyle; + if (!fallbacks[fallbackName]) { + fallbackName = Object.keys(fallbacks)[0]; + } + } + console.error('ERROR: Trying to use', fallbackName, 'as a fallback'); delete fallbacks[fallbackName]; getFontPbf(null, fontPath, fallbackName, range, fallbacks).then(resolve, reject);