diff --git a/src/_h5ai/client/css/inc/preview-txt.less b/src/_h5ai/client/css/inc/preview-txt.less index 3b7372cd..8c6c8f7a 100644 --- a/src/_h5ai/client/css/inc/preview-txt.less +++ b/src/_h5ai/client/css/inc/preview-txt.less @@ -28,7 +28,7 @@ #pv-txt-text { word-break: break-all; - .syntaxhighlighter { + &.highlighted { tr:hover { background-color: rgba(0,0,0,0.05); diff --git a/src/_h5ai/client/js/inc/ext/preview-txt.js b/src/_h5ai/client/js/inc/ext/preview-txt.js index 65fbe370..304d5de5 100644 --- a/src/_h5ai/client/js/inc/ext/preview-txt.js +++ b/src/_h5ai/client/js/inc/ext/preview-txt.js @@ -46,12 +46,49 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource', '' + '', - templateText = '
', + templateText = '', templateMarkdown = '', currentEntries = [], currentIdx = 0, + // adapted from SyntaxHighlighter + getHighlightedLines = function (sh, alias, content) { + + var brushes = sh.vars.discoveredBrushes, + Brush, brush; + + if (!brushes) { + brushes = {}; + + _.each(sh.brushes, function (info, brush) { + + var aliases = info.aliases; + + if (aliases) { + info.brushName = brush.toLowerCase(); + + for (var i = 0; i < aliases.length; i += 1) { + brushes[aliases[i]] = brush; + } + } + }); + + sh.vars.discoveredBrushes = brushes; + } + + Brush = sh.brushes[brushes[alias || 'plain']]; + + if (!Brush) { + return $(); + } + + brush = new Brush(); + brush.init({toolbar: false, gutter: false}); + + return $(brush.getHtml(content)).find('.line'); + }, + loadScript = function (url, globalId, callback) { if (window[globalId]) { @@ -134,7 +171,7 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource', var $nText; if (current.type === 'markdown') { - $nText = $(templateMarkdown).hide(); + $nText = $(templateMarkdown).hide().text(content); $text.replaceWith($nText); loadMarkdown(function (md) { @@ -144,28 +181,22 @@ modulejs.define('ext/preview-txt', ['_', '$', 'core/settings', 'core/resource', } }); } else { - $nText = $(templateText).hide().addClass('toolbar: false; brush:').addClass(settings.types[current.type] || 'plain').text(content); + $nText = $(templateText).hide().text(content); $text.replaceWith($nText); loadSyntaxhighlighter(function (sh) { if (sh) { - sh.highlight({}, $nText[0]); + var $table = $('