|
1 | 1 | $(function () {
|
| 2 | + function parseLines (lines) { |
| 3 | + lines = lines.split(/\s*,\s*/); |
| 4 | + var all_lines = []; |
| 5 | + for (var i = 0; i < lines.length; i++) { |
| 6 | + var line = lines[i]; |
| 7 | + var res = line.match(/^\s*(\d+)\s*(-\s*(\d+)\s*)?$/); |
| 8 | + if (res) { |
| 9 | + var start = res[1]*1; |
| 10 | + var end = (res[3] || res[1])*1; |
| 11 | + for (var l = start; l <= end; l++) { |
| 12 | + all_lines.push(l); |
| 13 | + } |
| 14 | + } |
| 15 | + } |
| 16 | + return all_lines; |
| 17 | + } |
| 18 | + |
2 | 19 | // Allow tilde in url (#1118). Orig: /\w+:\/\/[\w-.\/?%&=:@;#]*/g,
|
3 | 20 | SyntaxHighlighter.regexLib['url'] = /\w+:\/\/[\w-.\/?%&=:@;#~]*/g;
|
4 | 21 |
|
@@ -123,39 +140,21 @@ $(function () {
|
123 | 140 | }
|
124 | 141 | var lines = pre.attr('data-line');
|
125 | 142 | if (lines) {
|
126 |
| - lines = lines.split(/,/); |
127 |
| - var all_lines = []; |
128 |
| - for (var i = 0; i < lines.length; i++) { |
129 |
| - var line = lines[i].trim(); |
130 |
| - var res = line.match(/(\d+)-(\d+)/); |
131 |
| - if (res) { |
132 |
| - for (var l = res[1]; l <= res[2]; l++) { |
133 |
| - all_lines.push(l); |
134 |
| - } |
135 |
| - } |
136 |
| - else { |
137 |
| - all_lines.push(line); |
138 |
| - } |
139 |
| - } |
140 |
| - config.highlight = all_lines; |
| 143 | + config.highlight = parseLines(lines); |
141 | 144 | }
|
142 | 145 |
|
143 | 146 | SyntaxHighlighter.highlight(config, source);
|
144 |
| - }); |
145 |
| -}); |
146 | 147 |
|
147 |
| -function setPodLines (lines) { |
148 |
| - if (!lines || !lines.length) return; |
149 |
| - for (var i = 0; i < lines.length; i++) { |
150 |
| - var start = lines[i][0]; |
151 |
| - var length = lines[i][1]; |
152 |
| - var selectors = []; |
153 |
| - for (var x = start; x < start + length; x++) { |
154 |
| - selectors.push('.number' + (x+1)); |
| 148 | + var pod_lines = pre.attr('data-pod-lines'); |
| 149 | + if (pod_lines) { |
| 150 | + var selector = $.map( |
| 151 | + parseLines(pod_lines), |
| 152 | + function (e, i) { return '.number' + e } |
| 153 | + ).join(', '); |
| 154 | + pre.find('.syntaxhighlighter .line').filter(selector).addClass('pod-line'); |
155 | 155 | }
|
156 |
| - $('#source .syntaxhighlighter .line').filter(selectors.join(', ')).addClass('pod-line'); |
157 |
| - } |
158 |
| -} |
| 156 | + }); |
| 157 | +}); |
159 | 158 |
|
160 | 159 | function togglePod() {
|
161 | 160 | $('.syntaxhighlighter').toggleClass('pod-hidden');
|
|
0 commit comments