1
- /*! X-rayHTML - v2.0.0 - 2015-10-28
1
+ /*! X-rayHTML - v2.0.1 - 2015-10-29
2
2
* https://github.com/filamentgroup/x-rayhtml
3
3
* Copyright (c) 2015 ; Licensed MIT */
4
4
@@ -9,12 +9,16 @@ window.jQuery = window.jQuery || window.shoestring;
9
9
o = {
10
10
text : {
11
11
open : "View Source" ,
12
- close : "View Demo"
12
+ close : "View Demo" ,
13
+ titlePrefix : "Example" ,
14
+ antipattern : "Do Not Use"
13
15
} ,
14
16
classes : {
15
17
button : "btn btn-small" ,
16
18
open : "view-source" ,
17
- sourcepanel : "source-panel"
19
+ sourcepanel : "source-panel" ,
20
+ title : "xraytitle" ,
21
+ antipattern : "antipattern"
18
22
} ,
19
23
initSelector : "[data-" + pluginName + "]" ,
20
24
defaultReveal : "inline"
@@ -67,18 +71,42 @@ window.jQuery = window.jQuery || window.shoestring;
67
71
. insertBefore ( el ) ;
68
72
} ,
69
73
_createSource : function ( ) {
70
- var el = this ,
71
- preel = document . createElement ( "pre" ) ,
72
- codeel = document . createElement ( "code" ) ,
73
- wrap = document . createElement ( "div" ) ,
74
- sourcepanel = document . createElement ( "div" ) ,
75
- // remove empty value attributes
76
- code = el . innerHTML . replace ( / \= \" \" / g, '' ) ,
77
- leadingWhiteSpace = code . match ( / ( ^ [ \s ] + ) / ) ,
78
- lineWSRE = new RegExp ( leadingWhiteSpace [ 1 ] , "gmi" ) ,
79
- source ;
80
-
81
- code = code . replace ( lineWSRE , "\n" ) ,
74
+ var el = this ;
75
+ var getPrefixText = function ( ) {
76
+ if ( el . className . match ( new RegExp ( "\\b" + o . classes . antipattern + "\\b" , "gi" ) ) ) {
77
+ return o . text . antipattern ;
78
+ }
79
+ return o . text . titlePrefix ;
80
+ } ;
81
+ var title = el . getElementsByClassName ( o . classes . title ) ;
82
+ var deprecatedTitle ;
83
+ var preel = document . createElement ( "pre" ) ;
84
+ var codeel = document . createElement ( "code" ) ;
85
+ var wrap = document . createElement ( "div" ) ;
86
+ var sourcepanel = document . createElement ( "div" ) ;
87
+ var code ;
88
+ var leadingWhiteSpace ;
89
+ var source ;
90
+
91
+ if ( title . length ) {
92
+ title = title [ 0 ] ;
93
+ title . parentNode . removeChild ( title ) ;
94
+ title . innerHTML = getPrefixText ( ) + ": " + title . innerHTML ;
95
+ } else {
96
+ deprecatedTitle = el . getAttribute ( "data-title" ) ;
97
+ title = document . createElement ( "div" ) ;
98
+ title . className = o . classes . title ;
99
+ title . innerHTML = getPrefixText ( ) + ( deprecatedTitle ? ": " + deprecatedTitle : "" ) ;
100
+ }
101
+
102
+ // remove empty value attributes
103
+ code = el . innerHTML . replace ( / \= \" \" / g, '' ) ;
104
+ leadingWhiteSpace = code . match ( / ( ^ [ \s ] + ) / ) ;
105
+
106
+ if ( leadingWhiteSpace ) {
107
+ code = code . replace ( new RegExp ( leadingWhiteSpace [ 1 ] , "gmi" ) , "\n" ) ;
108
+ }
109
+
82
110
source = document . createTextNode ( code ) ;
83
111
84
112
wrap . setAttribute ( "class" , "snippet" ) ;
@@ -92,6 +120,7 @@ window.jQuery = window.jQuery || window.shoestring;
92
120
sourcepanel . appendChild ( preel ) ;
93
121
94
122
this . appendChild ( sourcepanel ) ;
123
+ this . insertBefore ( title , this . firstChild ) ;
95
124
}
96
125
} ;
97
126
0 commit comments