|
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