-
Notifications
You must be signed in to change notification settings - Fork 234
Expand file tree
/
Copy pathsyntax.js
More file actions
87 lines (75 loc) · 2.4 KB
/
Copy pathsyntax.js
File metadata and controls
87 lines (75 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
(function ($) {
var files = {
'shBrushAppleScript.js':['applescript'],
'shBrushAS3.js': ['actionscript3','as3'],
'shBrushBash.js': ['bash','shell'],
'shBrushColdFusion.js': ['coldfusion','cf'],
'shBrushCpp.js': ['cpp','c'],
'shBrushCSharp.js': ['c#','c-sharp','csharp'],
'shBrushCss.js': ['css'],
'shBrushDelphi.js': ['delphi','pascal'],
'shBrushDiff.js': ['diff','patch','pas'],
'shBrushErlang.js': ['erl','erlang'],
'shBrushGroovy.js': ['groovy'],
'shBrushJava.js': ['java'],
'shBrushJavaFX.js': ['jfx','javafx'],
'shBrushJScript.js': ['js','jscript','javascript'],
'shBrushPerl.js': ['perl','pl'],
'shBrushPhp.js': ['php'],
'shBrushPlain.js': ['text','plain'],
'shBrushPython.js': ['py','python'],
'shBrushRuby.js': ['ruby','rails','ror','rb'],
'shBrushSass.js': ['sass','scss'],
'shBrushScala.js': ['scala'],
'shBrushSql.js': ['sql'],
'shBrushVb.js': ['vb','vbnet'],
'shBrushXml.js': ['xml','xhtml','xslt','html'],
},
scripts = {},
urls = {};
for (i in files) {
for (j in files[i]) {
urls[files[i][j]] = url(i);
}
}
function url(file) {
return 'external/syntaxhighlighter_3.0.83/scripts/' + file;
}
function loadScript(url, callback) {
if (scripts[url]) {
return callback();
}
var script = document.createElement('script'),
done = false;
script.type = 'text/javascript';
script.language = 'javascript';
script.onload = script.onreadystatechange = function () {
if (!done && (!this.readyState || this.readyState == 'loaded' || this.readyState == 'complete')) {
done = true;
scripts[url] = true;
// Handle memory leak in IE
script.onload = script.onreadystatechange = null;
script.parentNode.removeChild(script);
delete SyntaxHighlighter.vars.discoveredBrushes;
callback();
}
};
script.src = url;
// sync way of adding script tags to the page
document.body.appendChild(script);
};
/**
* Override highlighter to first load language-specific script.
*/
var h = SyntaxHighlighter.highlight;
SyntaxHighlighter.highlight = function (p, e) {
var m, that = this;
if (m = /brush: ([a-z]+)/.exec(e.getAttribute('class'))) {
if (urls[m[1]]) {
loadScript(urls[m[1]], function () {
h.call(that, p, e);
});
}
}
};
})(jQuery);