diff --git a/lib/highlight.js b/lib/highlight.js
index f97d73fd..6e7d5fd7 100644
--- a/lib/highlight.js
+++ b/lib/highlight.js
@@ -1,6 +1,6 @@
'use strict';
-var hljs = require('highlight.js/lib/highlight');
+var hljs = require('highlight.js');
var Entities = require('html-entities').XmlEntities;
var entities = new Entities();
var alias = require('../highlight_alias.json');
@@ -89,30 +89,11 @@ function replaceTabs(str, tab) {
});
}
-function loadLanguage(lang) {
- hljs.registerLanguage(lang, require('highlight.js/lib/languages/' + lang));
-}
-
-function tryLanguage(lang) {
- if (hljs.getLanguage(lang)) return true;
- if (!alias.aliases[lang]) return false;
-
- loadLanguage(alias.aliases[lang]);
- return true;
-}
-
-function loadAllLanguages() {
- alias.languages.filter(function(lang) {
- return !hljs.getLanguage(lang);
- }).forEach(loadLanguage);
-}
-
function highlight(str, options) {
var lang = options.lang;
var autoDetect = options.hasOwnProperty('autoDetect') ? options.autoDetect : false;
if (!lang && autoDetect) {
- loadAllLanguages();
lang = (function() {
var result = hljs.highlightAuto(str);
if (result.relevance > 0 && result.language) return result.language;
@@ -133,7 +114,7 @@ function highlight(str, options) {
return result;
}
- if (!tryLanguage(result.language)) {
+ if (!alias.aliases[result.language]) {
result.language = 'plain';
return result;
}
diff --git a/test/scripts/highlight.js b/test/scripts/highlight.js
index 5553b23b..32f4c1fc 100644
--- a/test/scripts/highlight.js
+++ b/test/scripts/highlight.js
@@ -192,6 +192,18 @@ describe('highlight', function() {
result.should.include('<repository url>');
validateHtmlAsync(result, done);
});
+
+ it('highlight sublanguages', function (done) {
+ var str = '';
+ var result = highlight(str, {lang: 'xml'});
+ result.should.eql([
+ '',
+ gutter(1, 1),
+ code('<node><?php echo "foo"; ?></node>', null),
+ end
+ ].join(''));
+ validateHtmlAsync(result, done);
+ });
it('parse multi-line strings correctly', function(done) {
var str = [