EpicEditor
EpicEditor copied to clipboard
Issue with code highlighting using highlightjs
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
Should probably look into some of the async vs sync highlighting suggestions on https://github.com/chjj/marked#highlight
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');