From 82c043d2da50f8cb81eeec86a0de3f8b94707367 Mon Sep 17 00:00:00 2001 From: Alex Wu Date: Mon, 8 Feb 2016 18:38:39 +0800 Subject: [PATCH 1/2] add option to force insert line breaks to highlighting code. --- src/common/markdown-render.js | 1 + src/common/marked.js | 4 ++++ src/common/options-store.js | 6 +++++- src/common/options.html | 12 ++++++++++++ src/common/options.js | 9 +++++++-- 5 files changed, 29 insertions(+), 3 deletions(-) diff --git a/src/common/markdown-render.js b/src/common/markdown-render.js index c11ad8bf..50f5b4a9 100644 --- a/src/common/markdown-render.js +++ b/src/common/markdown-render.js @@ -85,6 +85,7 @@ function markdownRender(mdText, userprefs, marked, hljs) { // so we'll add it by sneaking it into this config field. langPrefix: 'hljs language-', math: userprefs['math-enabled'] ? mathify : null, + highlightForceBreaks: userprefs['highlight-line-breaks-enabled'], highlight: function(codeText, codeLanguage) { if (codeLanguage && hljs.getLanguage(codeLanguage.toLowerCase())) { diff --git a/src/common/marked.js b/src/common/marked.js index 3305cfd3..4196e555 100644 --- a/src/common/marked.js +++ b/src/common/marked.js @@ -778,6 +778,9 @@ Renderer.prototype.code = function(code, lang, escaped) { var out = this.options.highlight(code, lang); if (out != null && out !== code) { escaped = true; + if (this.options.highlightForceBreaks) { + out = out.replace(/\n/g, '
'); + } code = out; } } @@ -1248,6 +1251,7 @@ marked.defaults = { smartLists: false, silent: false, highlight: null, + highlightForceBreaks: false, langPrefix: 'lang-', smartypants: false, headerPrefix: '', diff --git a/src/common/options-store.js b/src/common/options-store.js index 853ed550..82d24d2f 100644 --- a/src/common/options-store.js +++ b/src/common/options-store.js @@ -22,7 +22,8 @@ var DEFAULTS = { 'hotkey': { shiftKey: false, ctrlKey: true, altKey: true, key: 'M' }, 'forgot-to-render-check-enabled': false, 'header-anchors-enabled': false, - 'gfm-line-breaks-enabled': true + 'gfm-line-breaks-enabled': true, + 'highlight-line-breaks-enabled': false }; /*? if(platform!=='mozilla'){ */ @@ -129,6 +130,7 @@ var ChromeOptionsStore = { 'hotkey': DEFAULTS['hotkey'], 'forgot-to-render-check-enabled': DEFAULTS['forgot-to-render-check-enabled'], 'header-anchors-enabled': DEFAULTS['header-anchors-enabled'], + 'highlight-line-breaks-enabled': DEFAULTS['highlight-line-breaks-enabled'], 'gfm-line-breaks-enabled': DEFAULTS['gfm-line-breaks-enabled'] }, @@ -293,6 +295,7 @@ var MozillaOptionsStore = { 'hotkey': DEFAULTS['hotkey'], 'forgot-to-render-check-enabled': DEFAULTS['forgot-to-render-check-enabled'], 'header-anchors-enabled': DEFAULTS['header-anchors-enabled'], + 'highlight-line-breaks-enabled': DEFAULTS['highlight-line-breaks-enabled'], 'gfm-line-breaks-enabled': DEFAULTS['gfm-line-breaks-enabled'] }, @@ -481,6 +484,7 @@ var SafariOptionsStore = { 'hotkey': DEFAULTS['hotkey'], 'forgot-to-render-check-enabled': DEFAULTS['forgot-to-render-check-enabled'], 'header-anchors-enabled': DEFAULTS['header-anchors-enabled'], + 'highlight-line-breaks-enabled': DEFAULTS['highlight-line-breaks-enabled'], 'gfm-line-breaks-enabled': DEFAULTS['gfm-line-breaks-enabled'] } }; diff --git a/src/common/options.html b/src/common/options.html index 1c0b2dad..1d5a3404 100644 --- a/src/common/options.html +++ b/src/common/options.html @@ -634,6 +634,18 @@


+
+ + +
+

+ try to add line breaks <br> when in some case CSS "white-space:pre" not work. +

+
+
+
diff --git a/src/common/options.js b/src/common/options.js index e99bfe9a..0490a13d 100644 --- a/src/common/options.js +++ b/src/common/options.js @@ -16,6 +16,7 @@ var cssEdit, cssSyntaxEdit, cssSyntaxSelect, rawMarkdownIframe, savedMsg, mathEnable, mathEdit, hotkeyShift, hotkeyCtrl, hotkeyAlt, hotkeyKey, forgotToRenderCheckEnabled, headerAnchorsEnabled, gfmLineBreaksEnabled, + highlightLineBreaksEnabled, loaded = false; function onLoad() { @@ -41,6 +42,7 @@ function onLoad() { forgotToRenderCheckEnabled = document.getElementById('forgot-to-render-check-enabled'); headerAnchorsEnabled = document.getElementById('header-anchors-enabled'); gfmLineBreaksEnabled = document.getElementById('gfm-line-breaks-enabled'); + highlightLineBreaksEnabled = document.getElementById('highlight-line-breaks-enabled'); // // Syntax highlighting styles and selection @@ -91,6 +93,8 @@ function onLoad() { gfmLineBreaksEnabled.checked = prefs['gfm-line-breaks-enabled']; + highlightLineBreaksEnabled.checked = prefs['highlight-line-breaks-enabled']; + // Start watching for changes to the styles. setInterval(checkChange, 100); }); @@ -209,7 +213,7 @@ function checkChange() { mathEnable.checked + mathEdit.value + hotkeyShift.checked + hotkeyCtrl.checked + hotkeyAlt.checked + hotkeyKey.value + forgotToRenderCheckEnabled.checked + headerAnchorsEnabled.checked + - gfmLineBreaksEnabled.checked; + gfmLineBreaksEnabled.checked + highlightLineBreaksEnabled.checked; if (newOptions !== lastOptions) { // CSS has changed. @@ -240,7 +244,8 @@ function checkChange() { }, 'forgot-to-render-check-enabled': forgotToRenderCheckEnabled.checked, 'header-anchors-enabled': headerAnchorsEnabled.checked, - 'gfm-line-breaks-enabled': gfmLineBreaksEnabled.checked + 'gfm-line-breaks-enabled': gfmLineBreaksEnabled.checked, + 'highlight-line-breaks-enabled': highlightLineBreaksEnabled.checked }, function() { updateMarkdownRender(); From d0c9e0b6164cfcd26facd8245c2875cbef88289c Mon Sep 17 00:00:00 2001 From: Alex Wu Date: Wed, 27 Nov 2024 08:23:25 +0800 Subject: [PATCH 2/2] Sign CLA --- contributors/dindinw.md | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 contributors/dindinw.md diff --git a/contributors/dindinw.md b/contributors/dindinw.md new file mode 100644 index 00000000..2b29daf3 --- /dev/null +++ b/contributors/dindinw.md @@ -0,0 +1,9 @@ +2024-11-27 + +I hereby agree to the terms of the "Markdown Here Individual Contributor License Agreement", with MD5 checksum dda72cea89d55de9fda0a102494134b4. + +I furthermore declare that I am authorized and able to make this agreement and sign this declaration. + +Signed, + +Alex Wu https://github.com/dindinw