Last update: March 15, 2023


<aside> <img src="/icons/list_gray.svg" alt="/icons/list_gray.svg" width="40px" /> 목차

</aside>

에디터 적용하기

사용 스펙

에디터 적용 예시 - 게시글 작성 화면

Untitled

<!DOCTYPE html>
<html>
<head xmlns:th="<http://www.thymeleaf.org>">

    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

		<!--  TOAST UI Editor CSS -->
    <link rel="stylesheet" href="<https://uicdn.toast.com/editor/latest/toastui-editor.min.css>" />

</head>
<body>
    
		<!-- 글 등록 -->
    <div class="container">
        <form th:action="@{/posts}" method="post">
            <!-- 제목 -->
            <div class="input-group mb-3">
                <span class="input-group-text" id="inputGroup-sizing-default">제목</span>
                <input name="title" type="text" class="form-control" aria-label="title input"/>
            </div>

            <!-- 본문 -->
            <div id="editor"></div>

						<!-- 버튼 -->
            <div class="d-flex">
                <button type="button" class="btn btn-md btn-primary ms-auto my-3" onclick="submitPost(this)">글 등록
                </button>
                <a class="btn btn-md btn-outline-secondary ms-2 my-3" href="/posts" value="취소">취소</a>
            </div>
            <input type="hidden" name="content">
            <input type="hidden" name="userId" id="userId" th:value="${user.id}"/>
        </form>
    </div>

		<!--  TOAST UI Editor CDN  -->
    <script src="<https://uicdn.toast.com/editor/latest/toastui-editor-all.min.js>"></script>
    <!-- 한국어 패치 -->
    <script src="<https://uicdn.toast.com/editor/latest/i18n/ko-kr.min.js>"></script>

		<script>
		    const Editor = toastui.Editor;
		    const editor = new Editor({
		      el: document.querySelector('#editor'),
		      height: '500px',
		      initialEditType: 'wysiwyg',
		      previewStyle: 'vertical',
		      language: "ko-KR"
		    });
		
		    function submitPost(button) {
		      console.log("submit");
		      let form = button.closest('form');
		      let inputs = form.getElementsByTagName('input');
		      for (let input of inputs) {
		         if(input.name === 'content') {
		           input.value = editor.getHTML();
		         }
		      }
		
		      form.submit();
		    }
    </script>

</body>
</html>