1
1
( function ( ) {
2
+
3
+ var angularJsUrl ;
4
+ var scripts = document . getElementsByTagName ( "script" ) ;
5
+ var filename = / ( .* \/ ) a n g u l a r ( [ ^ \/ ] * ) / ;
6
+ for ( var j = 0 ; j < scripts . length ; j ++ ) {
7
+ var src = scripts [ j ] . src ;
8
+ if ( src && src . match ( filename ) ) {
9
+ angularJsUrl = src ;
10
+ }
11
+ }
12
+
13
+
2
14
var HTML_TEMPLATE =
3
- '<!DOCTYPE HTML >\n' +
15
+ '<!doctype html >\n' +
4
16
'<html xmlns:ng="http://angularjs.org">\n' +
5
- ' <head>\n' +
6
- ' <title>Angular Example</title>\n' +
7
- ' <script type="text/javascript"\n' +
8
- ' src="../angular.js" ng:autobind></script>\n' +
9
- ' </head>\n' +
10
- ' <body>\n' +
17
+ ' <script type="text/javascript" ng:autobind\n' +
18
+ ' src="' + angularJsUrl + '"></script>\n' +
19
+ ' <body>\n' +
11
20
'_HTML_SOURCE_\n' +
12
- ' </body>\n' +
21
+ ' </body>\n' +
13
22
'</html>' ;
14
23
15
24
angular . widget ( 'doc:example' , function ( element ) {
20
29
exampleSrc = example . text ( ) ,
21
30
scenario = element . find ( 'doc\\:scenario' ) . eq ( 0 ) ;
22
31
32
+ var code = indent ( exampleSrc ) ;
23
33
var tabs = angular . element (
24
34
'<ul class="doc-example">' +
25
35
'<li class="doc-example-heading"><h3>Source</h3></li>' +
26
- '<li class="doc-example-source" ng:non-bindable><pre class="brush: js; brush: xml;"></pre></li>' +
36
+ '<li class="doc-example-source" ng:non-bindable>' +
37
+ '<pre class="brush: js; html-script: true; highlight: [' +
38
+ code . hilite + ']; toolbar: false;"></pre></li>' +
27
39
'<li class="doc-example-heading"><h3>Live Preview</h3></li>' +
28
40
'<li class="doc-example-live">' + exampleSrc + '</li>' +
29
41
'<li class="doc-example-heading"><h3>Scenario Test</h3></li>' +
30
42
'<li class="doc-example-scenario"><pre class="brush: js">' + scenario . text ( ) + '</pre></li>' +
31
43
'</ul>' ) ;
32
- tabs . find ( 'li.doc-example-source > pre' ) . text ( exampleSrc ) ;
44
+
45
+ tabs . find ( 'li.doc-example-source > pre' ) . text ( HTML_TEMPLATE . replace ( '_HTML_SOURCE_' , code . html ) ) ;
33
46
34
47
element . html ( '' ) ;
35
48
element . append ( tabs ) ;
46
59
SyntaxHighlighter . highlight ( ) ;
47
60
} ;
48
61
} ) ;
62
+
63
+ function indent ( text ) {
64
+ var lines = text . split ( / \n / ) ;
65
+ var lineNo = [ ] ;
66
+ while ( lines [ 0 ] . match ( / ^ \s * $ / ) ) lines . shift ( ) ;
67
+ while ( lines [ lines . length - 1 ] . match ( / ^ \s * $ / ) ) lines . pop ( ) ;
68
+ for ( var i = 0 ; i < lines . length ; i ++ ) {
69
+ lines [ i ] = ' ' + lines [ i ] ;
70
+ lineNo . push ( 6 + i ) ;
71
+ }
72
+ return { html : lines . join ( '\n' ) , hilite : lineNo . join ( ',' ) } ;
73
+ } ;
74
+
49
75
} ) ( ) ;
0 commit comments