50%
index.html ×
📚 Code Snippets
ast('❌ Failed to import: ' + e.message, 'error'); } } function showShareModal() { const code = editor.getValue(); const compressed = LZString.compressToEncodedURIComponent(code); const url = window.location.origin + window.location.pathname + '?code=' + compressed; document.getElementById('shareUrl').value = url; // Generate QR Code const qrContainer = document.getElementById('qrcode'); qrContainer.innerHTML = ''; new QRCode(qrContainer, { text: url, width: 150, height: 150, colorDark: '#1a1a2e', colorLight: '#ffffff' }); document.getElementById('shareModal').classList.add('active'); } async function saveToGist() { showToast('âŗ Saving to GitHub Gist...', 'info'); const code = editor.getValue(); const fileName = tabs[activeTab].name; const gistData = { description: 'Created with Pro HTML Editor', public: true, files: { [fileName]: { content: code } } }; try { const response = await fetch('https://api.github.com/gists', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(gistData) }); const data = await response.json(); if (data.html_url) { window.open(data.html_url, '_blank'); showToast('✓ Saved to Gist!', 'success'); } else { throw new Error('Failed to create gist'); } } catch(e) { showToast('❌ ' + e.message, 'error'); } } function showSettingsModal() { document.getElementById('settingsModal').classList.add('active'); } function saveSettings() { const settings = { fontSize: document.getElementById('fontSizeSelector').value, fontFamily: document.getElementById('fontFamilySelector').value, tabSize: document.getElementById('tabSizeSetting').value, indentUnit: document.getElementById('indentUnitSetting').value, lineHeight: document.getElementById('lineHeightSetting').value, wordWrap: document.getElementById('wordWrapSetting').value, autoSave: document.getElementById('autoSaveSetting').checked, emmet: document.getElementById('emmetSetting').checked, activeLine: document.getElementById('activeLineSetting').checked, darkMode: isDarkMode }; localStorage.setItem('pro-editor-settings', JSON.stringify(settings)); // Apply settings editor.setOption('tabSize', parseInt(settings.tabSize)); editor.setOption('indentUnit', parseInt(settings.tabSize)); editor.setOption('lineWrapping', settings.wordWrap === 'true'); editor.setOption('styleActiveLine', settings.activeLine); editor.getWrapperElement().style.lineHeight = settings.lineHeight; if (settings.emmet && typeof emmet !== 'undefined') { emmetCodeMirror(editor); } editor.refresh(); closeModal(); showToast('✓ Settings saved!', 'success'); } function loadSettings() { const saved = localStorage.getItem('pro-editor-settings'); if (saved) { try { const settings = JSON.parse(saved); document.getElementById('fontSizeSelector').value = settings.fontSize || '14'; document.getElementById('fontFamilySelector').value = settings.fontFamily || "'JetBrains Mono', monospace"; document.getElementById('tabSizeSetting').value = settings.tabSize || '4'; document.getElementById('indentUnitSetting').value = settings.indentUnit || 'spaces'; document.getElementById('lineHeightSetting').value = settings.lineHeight || '1.4'; document.getElementById('wordWrapSetting').value = settings.wordWrap || 'true'; document.getElementById('autoSaveSetting').checked = settings.autoSave !== false; document.getElementById('emmetSetting').checked = settings.emmet !== false; document.getElementById('activeLineSetting').checked = settings.activeLine !== false; // Apply font settings editor.getWrapperElement().style.fontSize = settings.fontSize + 'px'; editor.getWrapperElement().style.fontFamily = settings.fontFamily; editor.getWrapperElement().style.lineHeight = settings.lineHeight; // Apply editor settings editor.setOption('tabSize', parseInt(settings.tabSize)); editor.setOption('indentUnit', parseInt(settings.tabSize)); editor.setOption('lineWrapping', settings.wordWrap === 'true'); editor.setOption('styleActiveLine', settings.activeLine); if (settings.darkMode === false) { toggleDarkMode(false); } } catch(e) {} } } function showHelpModal() { document.getElementById('helpModal').classList.add('active'); } function showAboutModal() { document.getElementById('aboutModal').classList.add('active'); } function closeModal(e) { if (!e || e.target.classList.contains('modal-overlay')) { document.querySelectorAll('.modal-overlay').forEach(m => m.classList.remove('active')); } } function copyShareUrl() { document.getElementById('shareUrl').select(); document.execCommand('copy'); showToast('✓ Link copied to clipboard!', 'success'); } function openDonate() { document.getElementById('donateModal').classList.add('active'); } function showToast(msg, type = 'info') { const toast = document.getElementById('toast'); toast.textContent = msg; toast.className = 'toast ' + type; toast.classList.add('show'); setTimeout(() => toast.classList.remove('show'), 3000); } window.addEventListener('resize', () => { setTimeout(() => { initSplit(); editor.refresh(); }, 200); }); window.addEventListener('beforeunload', () => { saveTabs(); }); window.addEventListener('DOMContentLoaded', init);