STUDY πŸ“š/FrontEnd

[FrontEnd] ν† μŠ€νŠΈ UI 에디터 - μ½”λ“œ syntax ν•˜μ΄λΌμ΄ν„° ν”ŒλŸ¬κ·ΈμΈ 적용

daxx0ne 2023. 3. 7. 11:23

링크

 

GitHub - nhn/tui.editor: πŸžπŸ“ Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible.

πŸžπŸ“ Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible. - GitHub - nhn/tui.editor: πŸžπŸ“ Markdown WYSIWYG Editor. GFM Standard + Chart & UML Extensible.

github.com


μ½”λ“œ

HTML

<script src="https://uicdn.toast.com/editor/latest/toastui-editor-all.min.js"></script>
<link rel="stylesheet" href="https://uicdn.toast.com/editor/latest/toastui-editor.min.css" />

<!-- μ‹ νƒμŠ€ ν•˜μ΄λΌμ΄ν„° ν”ŒλŸ¬κ·ΈμΈ 라이브러리 μ‹œμž‘ -->
<link rel="stylesheet" href="https://uicdn.toast.com/editor-plugin-code-syntax-highlight/latest/toastui-editor-plugin-code-syntax-highlight.min.css">
<script src="https://uicdn.toast.com/editor-plugin-code-syntax-highlight/latest/toastui-editor-plugin-code-syntax-highlight-all.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism.min.css">
<!-- μ‹ νƒμŠ€ ν•˜μ΄λΌμ΄ν„° ν”ŒλŸ¬κ·ΈμΈ 라이브러리 끝 -->

<template id="viewer-1-template">
  # μ•ˆλ…•ν•˜μ„Έμš”.
  ## λ°˜κ°€μ›Œμš”.
  - ν•˜ν•˜
  - 호호
  - 히히

  # μžλ°”
  ```java
  // μ£Όμ„μž…λ‹ˆλ‹€.
  int a = 10;
  int b = 20;
  System.out.println(a + b);
  ```

  ```html
  <script src="경둜"></script>
  ```
</template>
<div id="viewer-1"></div>

 

CSS

body {
  margin: 0;
}
@font-face {
  font-family: "GmarketSansMedium";
  src: url("https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2001@1.1/GmarketSansMedium.woff")
    format("woff");
  font-weight: normal;
  font-style: normal;
}
#viewer-1 {
  padding: 0 10px;
}
html > body,
html > body .toastui-editor-contents {
  font-family: "GmarketSansMedium";
}

 

JS

console.clear();

const Editor = toastui.Editor;

// idκ°€ 'viewer-1-template' 인 μ—˜λ¦¬λ¨ΌνŠΈλ₯Ό μ°ΎλŠ”λ‹€.
const viewer1TemplateEl = document.querySelector("#viewer-1-template");
const viewer1MarkdownSource = viewer1TemplateEl.innerHTML; // ν¬ν•¨ν•˜κ³  μžˆλŠ” λ‚΄μš©

console.log("viewer1MarkdownSource : " + viewer1MarkdownSource);

const viewer1 = Editor.factory({
  el: document.querySelector("#viewer-1"),
  viewer: true,
  initialValue: viewer1MarkdownSource,
  plugins: [[toastui.Editor.plugin.codeSyntaxHighlight, { highlighter: Prism }]]
});

μ‹€ν–‰ κ²°κ³Ό