aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Code/Blocks/syntax/src/shLegacy.js')
-rw-r--r--Code/Blocks/syntax/src/shLegacy.js157
1 files changed, 157 insertions, 0 deletions
diff --git a/Code/Blocks/syntax/src/shLegacy.js b/Code/Blocks/syntax/src/shLegacy.js
new file mode 100644
index 0000000..36951c9
--- /dev/null
+++ b/Code/Blocks/syntax/src/shLegacy.js
@@ -0,0 +1,157 @@
1/**
2 * SyntaxHighlighter
3 * http://alexgorbatchev.com/SyntaxHighlighter
4 *
5 * SyntaxHighlighter is donationware. If you are using it, please donate.
6 * http://alexgorbatchev.com/SyntaxHighlighter/donate.html
7 *
8 * @version
9 * 3.0.83 (July 02 2010)
10 *
11 * @copyright
12 * Copyright (C) 2004-2010 Alex Gorbatchev.
13 *
14 * @license
15 * Dual licensed under the MIT and GPL licenses.
16 */
17var dp = {
18 SyntaxHighlighter : {}
19};
20
21dp.SyntaxHighlighter = {
22 parseParams: function(
23 input,
24 showGutter,
25 showControls,
26 collapseAll,
27 firstLine,
28 showColumns
29 )
30 {
31 function getValue(list, name)
32 {
33 var regex = new XRegExp('^' + name + '\\[(?<value>\\w+)\\]$', 'gi'),
34 match = null
35 ;
36
37 for (var i = 0; i < list.length; i++)
38 if ((match = regex.exec(list[i])) != null)
39 return match.value;
40
41 return null;
42 };
43
44 function defaultValue(value, def)
45 {
46 return value != null ? value : def;
47 };
48
49 function asString(value)
50 {
51 return value != null ? value.toString() : null;
52 };
53
54 var parts = input.split(':'),
55 brushName = parts[0],
56 options = {},
57 straight = { 'true' : true }
58 reverse = { 'true' : false },
59 result = null,
60 defaults = SyntaxHighlighter.defaults
61 ;
62
63 for (var i in parts)
64 options[parts[i]] = 'true';
65
66 showGutter = asString(defaultValue(showGutter, defaults.gutter));
67 showControls = asString(defaultValue(showControls, defaults.toolbar));
68 collapseAll = asString(defaultValue(collapseAll, defaults.collapse));
69 showColumns = asString(defaultValue(showColumns, defaults.ruler));
70 firstLine = asString(defaultValue(firstLine, defaults['first-line']));
71
72 return {
73 brush : brushName,
74 gutter : defaultValue(reverse[options.nogutter], showGutter),
75 toolbar : defaultValue(reverse[options.nocontrols], showControls),
76 collapse : defaultValue(straight[options.collapse], collapseAll),
77 // ruler : defaultValue(straight[options.showcolumns], showColumns),
78 'first-line' : defaultValue(getValue(parts, 'firstline'), firstLine)
79 };
80 },
81
82 HighlightAll: function(
83 name,
84 showGutter /* optional */,
85 showControls /* optional */,
86 collapseAll /* optional */,
87 firstLine /* optional */,
88 showColumns /* optional */
89 )
90 {
91 function findValue()
92 {
93 var a = arguments;
94
95 for (var i = 0; i < a.length; i++)
96 {
97 if (a[i] === null)
98 continue;
99
100 if (typeof(a[i]) == 'string' && a[i] != '')
101 return a[i] + '';
102
103 if (typeof(a[i]) == 'object' && a[i].value != '')
104 return a[i].value + '';
105 }
106
107 return null;
108 };
109
110 function findTagsByName(list, name, tagName)
111 {
112 var tags = document.getElementsByTagName(tagName);
113
114 for (var i = 0; i < tags.length; i++)
115 if (tags[i].getAttribute('name') == name)
116 list.push(tags[i]);
117 }
118
119 var elements = [],
120 highlighter = null,
121 registered = {},
122 propertyName = 'innerHTML'
123 ;
124
125 // for some reason IE doesn't find <pre/> by name, however it does see them just fine by tag name...
126 findTagsByName(elements, name, 'pre');
127 findTagsByName(elements, name, 'textarea');
128
129 if (elements.length === 0)
130 return;
131
132 for (var i = 0; i < elements.length; i++)
133 {
134 var element = elements[i],
135 params = findValue(
136 element.attributes['class'], element.className,
137 element.attributes['language'], element.language
138 ),
139 language = ''
140 ;
141
142 if (params === null)
143 continue;
144
145 params = dp.SyntaxHighlighter.parseParams(
146 params,
147 showGutter,
148 showControls,
149 collapseAll,
150 firstLine,
151 showColumns
152 );
153
154 SyntaxHighlighter.highlight(params, element);
155 }
156 }
157};
Powered by cgit v1.2.3 (git 2.41.0)