|
@@ -398,23 +398,22 @@ var formatText = (function() {
|
|
|
return formatted ? formatted : this.text;
|
|
return formatted ? formatted : this.text;
|
|
|
}
|
|
}
|
|
|
if (this._parent.checkIsCodeBlock()) {
|
|
if (this._parent.checkIsCodeBlock()) {
|
|
|
- if (typeof hljs !== undefined) {
|
|
|
|
|
- var text = this.text,
|
|
|
|
|
- language,
|
|
|
|
|
- availableLanguages = hljs.listLanguages();
|
|
|
|
|
-
|
|
|
|
|
- for (var i =0, nbLang = availableLanguages.length; i < nbLang; i++) {
|
|
|
|
|
- var l = availableLanguages[i];
|
|
|
|
|
- if (text.substr(0, l.length) === l && isAlphadec(text[l.length])) {
|
|
|
|
|
- language = l;
|
|
|
|
|
- text = text.substr(l.length);
|
|
|
|
|
- break;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (typeof hljs !== "undefined") {
|
|
|
|
|
+ try {
|
|
|
|
|
+ var lang = this.text.match(/^\w+/);
|
|
|
|
|
+
|
|
|
|
|
+ hljs.configure({
|
|
|
|
|
+ "useBR": true,
|
|
|
|
|
+ "tabReplace": " ",
|
|
|
|
|
+ });
|
|
|
|
|
+ if (lang && hljs.getLanguage(lang[0]))
|
|
|
|
|
+ return hljs.fixMarkup(hljs.highlight(lang[0], this.text.substr(lang[0].length)).value);
|
|
|
|
|
+ return hljs.fixMarkup(hljs.highlightAuto(this.text).value);
|
|
|
|
|
+ } catch (e) {
|
|
|
|
|
+ console.error(e);
|
|
|
}
|
|
}
|
|
|
- return hljs.highlight(language, text).value;
|
|
|
|
|
- } else {
|
|
|
|
|
- return this.text.replace(/\n/g, '<br/>'); // TODO syntax highlight https://github.com/isagalaev/highlight.js
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+ return this.text.replace(/\n/g, '<br/>');
|
|
|
}
|
|
}
|
|
|
return opts.textFilter(this.text);
|
|
return opts.textFilter(this.text);
|
|
|
};
|
|
};
|
|
@@ -429,6 +428,7 @@ var formatText = (function() {
|
|
|
,params = '';
|
|
,params = '';
|
|
|
|
|
|
|
|
if (this._parent.checkIsCodeBlock()) {
|
|
if (this._parent.checkIsCodeBlock()) {
|
|
|
|
|
+ tagName = "pre";
|
|
|
classList.push('codeblock');
|
|
classList.push('codeblock');
|
|
|
innerHTML = this.innerHTML();
|
|
innerHTML = this.innerHTML();
|
|
|
} else if (this._parent.checkIsCode()) {
|
|
} else if (this._parent.checkIsCode()) {
|