@@ -135,13 +135,12 @@ var codeInput = {
135135
136136 /* Create pre code */
137137 let code = document . createElement ( "code" ) ;
138- if ( this . template . isCode && lang != null ) code . classList . add ( "language-" + lang ) ;
139- code . innerText = value ;
140-
141138 let pre = document . createElement ( "pre" ) ;
142139 pre . setAttribute ( "aria-hidden" , "true" ) ; // Hide for screen readers
143140 pre . append ( code ) ;
144141 this . append ( pre ) ;
142+
143+ if ( this . template . isCode && lang != undefined ) code . classList . add ( "language-" + lang ) ;
145144
146145 /* Add code from value attribute - useful for loading from backend */
147146 this . update ( value , this ) ;
@@ -175,11 +174,24 @@ var codeInput = {
175174 case "lang" :
176175 let code = this . querySelector ( "pre code" ) ;
177176 let textarea = this . querySelector ( "textarea" ) ;
177+
178+ // Case insensitive
179+ oldValue = oldValue . toLowerCase ( ) ;
180+ newValue = newValue . toLowerCase ( ) ;
178181
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+ }
181193
182- if ( textarea . placeholder == oldValue ) textarea . placeholder = newValue
194+ if ( textarea . placeholder == oldValue ) textarea . placeholder = newValue ;
183195
184196 this . update ( this . value ) ;
185197 }
0 commit comments