EpicEditor icon indicating copy to clipboard operation
EpicEditor copied to clipboard

Issue with code highlighting using highlightjs

Open derberg opened this issue 10 years ago • 2 comments

added usage for highlight.js

var editor = new EpicEditor(opts).load();
editor.on('update', function () {
document.querySelector('#epiceditor-preview').innerHTML = this.exportFile(null, 'html');
$(document).ready(function() {
  $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
});
}).emit('update');

almost all if fine except of "no-highlight" usage it just doesn't work because of the problem with one regex in epiceditor.js

I had to add/change the following to accept "-" as well:

block.gfm = merge({}, block.normal, {
  fences: /^ *(`{3,}|~{3,}) *(\w+|\w+\-\w+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,
  paragraph: /^/
});

It is still some kind of workaround because epiceditor.js is adding languages reference in the following way: lang-no-highlight hljs css

  • css is random, it sometimes it is ruby or json
  • lang-no-highlight should not be there

correct generated class should be:

  • hljs no-highlight

derberg avatar Jul 25 '14 18:07 derberg

Should probably look into some of the async vs sync highlighting suggestions on https://github.com/chjj/marked#highlight

zethussuen avatar Apr 15 '15 06:04 zethussuen

Is this fixed?

I tested with your code and it worked perfectly.

      editor.on('update', function () {
        document.querySelector('#epiceditor-preview').innerHTML = this.exportFile(null, 'html');
        $(document).ready(function() {
          $('pre code').each(function(i, e) {hljs.highlightBlock(e)});
        });
      }).emit('update');

paulocheque avatar Mar 11 '16 21:03 paulocheque