| 
30 | 30 | 	let previewCode = $state('');  | 
31 | 31 | 	let previewLanguage = $state('text');  | 
32 | 32 | 
  | 
33 |  | -	const previewableLanguages = new Set(['html', 'htm', 'javascript', 'js']);  | 
34 |  | -
  | 
35 | 33 | 	function loadHighlightTheme(isDark: boolean) {  | 
36 | 34 | 		if (!browser) return;  | 
37 | 35 | 
  | 
 | 
123 | 121 | 
  | 
124 | 122 | 			const rawCode = codeElement.textContent || '';  | 
125 | 123 | 			const codeId = `code-${Date.now()}-${index}`;  | 
126 |  | -			const normalizedLanguage = language.toLowerCase();  | 
127 |  | -
  | 
128 | 124 | 			codeElement.setAttribute('data-code-id', codeId);  | 
129 | 125 | 			codeElement.setAttribute('data-raw-code', rawCode);  | 
130 |  | -			codeElement.setAttribute('data-language', normalizedLanguage);  | 
131 | 126 | 
  | 
132 | 127 | 			const wrapper = document.createElement('div');  | 
133 | 128 | 			wrapper.className = 'code-block-wrapper';  | 
 | 
154 | 149 | 
  | 
155 | 150 | 			actions.appendChild(copyButton);  | 
156 | 151 | 
  | 
157 |  | -			if (previewableLanguages.has(normalizedLanguage)) {  | 
 | 152 | +			if (language.toLowerCase() === 'html') {  | 
158 | 153 | 				const previewButton = document.createElement('button');  | 
159 | 154 | 				previewButton.className = 'preview-code-btn';  | 
160 | 155 | 				previewButton.setAttribute('data-code-id', codeId);  | 
 | 
229 | 224 | 			return null;  | 
230 | 225 | 		}  | 
231 | 226 | 
  | 
232 |  | -		const language = codeElement.getAttribute('data-language') || 'text';  | 
 | 227 | +		const languageLabel = wrapper.querySelector<HTMLElement>('.code-language');  | 
 | 228 | +		const language = languageLabel?.textContent?.trim() || 'text';  | 
233 | 229 | 
  | 
234 | 230 | 		return { rawCode, language };  | 
235 | 231 | 	}  | 
 | 
0 commit comments