From 0bf7e8b705793f432545c204749526d457547552 Mon Sep 17 00:00:00 2001 From: yosmoc Date: Sat, 4 Nov 2017 01:01:50 +0100 Subject: [PATCH] fix solarized dark/light code block thema bug solarized dark/light shares the same css in CodeMirror. You can see more detail info in commit 5b17808569eea3efc556d71f5c8b37d44cf5a295 We need to treat solarized as a special case in code block also. --- browser/components/MarkdownPreview.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/browser/components/MarkdownPreview.js b/browser/components/MarkdownPreview.js index 785f6078..6f0846a6 100644 --- a/browser/components/MarkdownPreview.js +++ b/browser/components/MarkdownPreview.js @@ -258,7 +258,7 @@ export default class MarkdownPreview extends React.Component { theme = consts.THEMES.some((_theme) => _theme === theme) && theme !== 'default' ? theme : 'elegant' - this.getWindow().document.getElementById('codeTheme').href = `${appPath}/node_modules/codemirror/theme/${theme}.css` + this.getWindow().document.getElementById('codeTheme').href = `${appPath}/node_modules/codemirror/theme/${theme.split(' ')[0]}.css` } rewriteIframe () { @@ -330,7 +330,12 @@ export default class MarkdownPreview extends React.Component { } el.parentNode.appendChild(copyIcon) el.innerHTML = '' - el.parentNode.className += ` cm-s-${codeBlockTheme} CodeMirror` + if (codeBlockTheme.indexOf('solarized') === 0) { + const [refThema, color] = codeBlockTheme.split(' ') + el.parentNode.className += ` cm-s-${refThema} cm-s-${color} CodeMirror` + } else { + el.parentNode.className += ` cm-s-${codeBlockTheme} CodeMirror` + } CodeMirror.runMode(content, syntax.mime, el, { tabSize: indentSize })