From df68daaabaa7daf6ad346590612c4735a747a8f2 Mon Sep 17 00:00:00 2001 From: CHaBou Date: Sun, 10 Sep 2017 13:46:59 +0200 Subject: [PATCH] Translate automatically hterm css class in config Change css class name in config after plugin decoration for partial backward compatibility --- app/config.js | 17 +++++++++++++++++ app/plugins.js | 4 +++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/config.js b/app/config.js index 78fd1215..dcd7ef02 100644 --- a/app/config.js +++ b/app/config.js @@ -106,3 +106,20 @@ const checkDeprecatedConfig = function () { const deprecatedStr = deprecated.join(', '); notify('Configuration warning', `Your configuration uses some deprecated CSS classes (${deprecatedStr})`) } + +exports.htermConfigTranslate = (config) => { + const cssReplacements = { + 'x-screen x-row([ \{\.\[])': '.xterm-rows > div$1', + '.cursor-node([ \{\.\[])': '.terminal-cursor$1', + '::selection([ \{\.\[])': '.terminal .xterm-selection div$1', + 'x-screen a([ \{\.\[])': '.terminal a$1', + 'x-row a([ \{\.\[])': '.terminal a$1' + } + Object.keys(cssReplacements).forEach(pattern => { + const searchvalue = new RegExp(pattern, 'g'); + const newvalue = cssReplacements[pattern]; + config.css = config.css.replace(searchvalue, newvalue); + config.termCSS = config.termCSS.replace(searchvalue, newvalue); + }) + return config; +} diff --git a/app/plugins.js b/app/plugins.js index e503d1f1..5a75f9ce 100644 --- a/app/plugins.js +++ b/app/plugins.js @@ -332,7 +332,9 @@ exports.getDecoratedEnv = function (baseEnv) { exports.getDecoratedConfig = function () { const baseConfig = config.getConfig(); - return decorateObject(baseConfig, 'decorateConfig'); + const decoratedConfig = decorateObject(baseConfig, 'decorateConfig'); + const translatedConfig = config.htermConfigTranslate(decoratedConfig); + return translatedConfig; }; exports.getDecoratedBrowserOptions = function (defaults) {