오늘은 Toast UI Editor 라이브러리의 사용법과 적용기에 대해 포스팅해 보려 합니다.
npm i @toast-ui/react-editor
import React, { useRef } from 'react';
import styled from '@emotion/styled';
import { Editor } from '@toast-ui/react-editor';
import '@toast-ui/editor/dist/toastui-editor.css';
const Container = styled.div`
box-sizing: border-box;
width: 100%;
height: 100vh;
display: flex;
flex-direction: column;
padding: 30px 25px;
`;
const ButtonContainer = styled.div`
height: 60px;
display: flex;
justify-content: space-between;
align-items: center;
margin-top: 15px;
`;
const Button = styled.button`
border-radius: 15px;
width: 150px;
height: 60px;
outline: none;
border: none;
background-color: skyblue;
font-size: 20px;
font-weight: 700;
cursor: pointer;
&:hover {
opacity: 0.5;
}
`;
const MarkDownExample = `
## Hello World
### Happy Hacking
> React Programming
`;
function App() {
const editorRef = useRef<Editor>(null);
const onSubmitBtnClick = () => {
const txt = editorRef.current?.getInstance().getMarkdown();
alert(txt);
};
const onChangeBtnClick = () => {
editorRef.current?.getInstance().setMarkdown(MarkDownExample, false);
};
return (
<Container>
<Editor
previewStyle="vertical"
height="100%"
initialValue=" "
language="ko-KR"
previewHighlight={false}
ref={editorRef}
/>
<ButtonContainer>
<Button onClick={onChangeBtnClick}>Change</Button>
<Button onClick={onSubmitBtnClick}>Submit</Button>
</ButtonContainer>
</Container>
);
}
export default App;
import React from 'react';
import styled from '@emotion/styled';
import { Viewer } from '@toast-ui/react-editor';
import '@toast-ui/editor/dist/toastui-editor.css';
const Container = styled.div`
box-sizing: border-box;
width: 100%;
height: 100vh;
padding: 30px 50px;
`;
const MarkDownExample = `
## Hello World
### Happy Hacking
> React Programming
`;
function App() {
return (
<Container>
<Viewer initialValue={MarkDownExample} />
</Container>
);
}
export default App;