@@ -135,13 +135,12 @@ var codeInput = {
135
135
136
136
/* Create pre code */
137
137
let code = document . createElement ( "code" ) ;
138
- if ( this . template . isCode && lang != null ) code . classList . add ( "language-" + lang ) ;
139
- code . innerText = value ;
140
-
141
138
let pre = document . createElement ( "pre" ) ;
142
139
pre . setAttribute ( "aria-hidden" , "true" ) ; // Hide for screen readers
143
140
pre . append ( code ) ;
144
141
this . append ( pre ) ;
142
+
143
+ if ( this . template . isCode && lang != undefined ) code . classList . add ( "language-" + lang ) ;
145
144
146
145
/* Add code from value attribute - useful for loading from backend */
147
146
this . update ( value , this ) ;
@@ -175,11 +174,24 @@ var codeInput = {
175
174
case "lang" :
176
175
let code = this . querySelector ( "pre code" ) ;
177
176
let textarea = this . querySelector ( "textarea" ) ;
177
+
178
+ // Case insensitive
179
+ oldValue = oldValue . toLowerCase ( ) ;
180
+ newValue = newValue . toLowerCase ( ) ;
178
181
179
- if ( newValue != null ) code . className = ( "language-" + newValue ) ;
180
- else code . className = "" ;
182
+ // Remove old language class and add new
183
+ console . log ( "REMOVE" , "language-" + oldValue ) ;
184
+ code . classList . remove ( "language-" + oldValue ) ; // From CODE
185
+ code . parentElement . classList . remove ( "language-" + oldValue ) ; // From PRE
186
+ code . classList . remove ( "language-none" ) ; // Prism
187
+ code . parentElement . classList . remove ( "language-none" ) ; // Prism
188
+
189
+ if ( newValue != undefined && newValue != "" ) {
190
+ code . classList . add ( "language-" + newValue ) ;
191
+ console . log ( "ADD" , "language-" + newValue ) ;
192
+ }
181
193
182
- if ( textarea . placeholder == oldValue ) textarea . placeholder = newValue
194
+ if ( textarea . placeholder == oldValue ) textarea . placeholder = newValue ;
183
195
184
196
this . update ( this . value ) ;
185
197
}
0 commit comments