...
| HTML |
|---|
<!-- Synap Editor --> <script src='/se/resource/synapeditor/synapeditor.config.js'></script> <script src='/se/resource/synapeditor/synapeditor.min.js'></script> <link href='/se/resource/synapeditor/synapeditor.min.css' rel='stylesheet' type='text/css'> <!-- plugins --> <script src="/se/resource/synapeditor/plugins/codeBlockHighlighter/codeBlockHighlighter.min.js"></script> <button<select id="toggleThemeBtn">코드 테마 변경</button>themeSelect"> <option value="light">Light</option> <option value="dark">Dark</option> </select> <div style="background-color: #ffffff; width:99%; height:500px;"> <div id="synapEditor"> <pre class="se-code-block"><code class="hljs"><span class="hljs-keyword">function</span> <span class="hljs-title function_">foo</span>(<span class="hljs-params"></span>) { <span class="hljs-variable language_">console</span>.<span class="hljs-title function_">log</span>(<span class="hljs-string">"HI"</span>); }</code></pre> <p style="margin: 16px 0px; display: block; overflow-wrap: break-word;">코드 하이라이트가 적용된 코드를 보려면 미리보기 버튼을 클릭해 주세요.<br></p> </div> <script> let config = Object.assign(synapEditorConfig, { "editor.license": "/se/resource/license.json", "editor.toolbar": [ "new", "|", "codeBlock", "preview" ], "editor.menu.show": false, "editor.preview.style.urls": ["/se/resource/synapeditor/plugins/codeBlockHighlighter/themes/atom-one-light.min.css", "/se/resource/synapeditor/plugins/codeBlockHighlighter/themes/atom-one-dark.min.css"] }); window.editor = new SynapEditor( "synapEditor", config, document.getElementById('synapEditor').innerHTML ); // editor 기본 설정 end let isLight = true; document.getElementById('toggleThemeBtnthemeSelect').addEventListener('clickchange', (e) => { const selectedTheme = e.target.value; // 'light' | 'dark' const links = window.editor .getElement() .find('.se-contents-preview') .contents() .find('link') .toArray(); console.log(links); links.forEach(link => { const isLightTheme = link.href.includes('atom-one-light'); link.disabled = isLight selectedTheme === 'light' ? !isLightTheme : isLightTheme; }); }); isLight = !isLight; }); </script> |