Repository: EASYME-md/client Branch: main Commit: 39cbe63f7dcf Files: 71 Total size: 72.8 KB Directory structure: gitextract_b5jnwai9/ ├── .gitignore ├── .nvmrc ├── README.md ├── babel.config.js ├── jest.config.js ├── package.json ├── public/ │ ├── _redirects │ ├── index.html │ ├── robots.txt │ └── sitemap.xml └── src/ ├── App.js ├── api/ │ └── index.js ├── assets/ │ └── fonts/ │ └── font.css ├── components/ │ ├── CustomToolbar.js │ ├── CustomTools/ │ │ ├── CustomAllTextRemoval.js │ │ ├── CustomBlockQuote.js │ │ ├── CustomBold.js │ │ ├── CustomCodeBlock.js │ │ ├── CustomCodeInline.js │ │ ├── CustomContents.js │ │ ├── CustomEditorView.js │ │ ├── CustomFirstLetterUppercase.js │ │ ├── CustomFold.js │ │ ├── CustomFullScreen.js │ │ ├── CustomHeader.js │ │ ├── CustomHorizontalRule.js │ │ ├── CustomImageLink.js │ │ ├── CustomItalic.js │ │ ├── CustomLink.js │ │ ├── CustomLowercase.js │ │ ├── CustomMarkdownView.js │ │ ├── CustomOrderedList.js │ │ ├── CustomRedo.js │ │ ├── CustomShare.js │ │ ├── CustomStrikethrough.js │ │ ├── CustomTable.js │ │ ├── CustomUnOrderedList.js │ │ ├── CustomUnderline.js │ │ ├── CustomUndo.js │ │ └── CustomUppercase.js │ ├── Editor.js │ ├── Home.js │ ├── Loading.js │ ├── MarkdownView.js │ ├── ReactHelmet.js │ ├── SharingModal.js │ ├── TextScreen.js │ ├── Title.js │ ├── __test__/ │ │ └── Title.test.js │ └── shared/ │ ├── ErrorPage.js │ ├── SaveBox.js │ ├── SectionLine.js │ ├── TextScreenWrapper.js │ └── __test__/ │ ├── Editor.test.js │ └── ErrorPage.test.js ├── constants/ │ ├── index.js │ └── welcomeMessage.js ├── features/ │ ├── saga.js │ └── slice.js ├── index.css ├── index.js ├── setupTests.js ├── store/ │ └── index.js └── utils/ ├── __test__/ │ └── utils.test.js ├── addTypeBeforeAndAfter.js ├── addTypeCurrentPosition.js ├── addTypeCurrentRow.js ├── addTypeDraggedRows.js ├── draftStorage.js ├── shareDocument.js └── urlShare.js ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. # dependencies /node_modules /.pnp .pnp.js # testing /coverage # production /build # misc .DS_Store .env .env.local .env.development.local .env.test.local .env.production.local npm-debug.log* yarn-debug.log* yarn-error.log* ================================================ FILE: .nvmrc ================================================ 16 ================================================ FILE: README.md ================================================ ![cartoon](public/assets/readme/cartoon.png) # 😉 [EASYME.md](https://www.easy-me.com/) ![Generic badge](https://img.shields.io/badge/version-0.1.0-green.svg) [![Netlify Status](https://api.netlify.com/api/v1/badges/e4b6f69b-eaaf-465e-8a50-218a405dca2f/deploy-status)](https://app.netlify.com/sites/easymemd/deploys) Buy Me a Coffee `#README` `#Markdown` `#리드미` `#빠르고쉽게` `#에디터` README.md를 쉽게 작성하는 방법! **EASYME.md** **사이트 바로 가기 👉 [클릭!](https://www.easy-me.com/)** --- ![cover](public/assets/readme/cover.png) Markdown 문법, 알고는 있는데.. README.md 작성할 때만 되면 버벅거리는 당신. 지금 'Markdown 사용법'이라고 검색하고 계신 거 아니죠? 🤭 이젠 더 이상 그럴 필요가 없어요. **EASYME.md를 통해 쉽게 Markdown을 작성할 수 있거든요.** 왼쪽 화면에 글을 작성하면 오른쪽 화면에 실시간으로 Markdown이 적용된 글을 확인할 수 있어요. Markdown 문법이 잘 기억나지 않는다고요? 괜찮아요! 🙂 툴바창에 다양한 기능을 적용하면 자동으로 Markdown 문법이 적용되니까요. 어때요? 이제 쉽게 README.md를 작성할 수 있겠죠? *(🤙 지금 이 글도 EASYME.md를 통해 작성하였답니다)*
# 📖 Contents - [😉 EASYME.md](#-easymemd) - [📖 Contents](#-contents) - [🌈 Background](#-background) - [🔗 Link](#-link) - [Github Repositories](#github-repositories) - [🔍 Preview](#-preview) - [🛠 Features](#-features) - [📈 Release Note](#-release-note) - [⚠️ Requirement](#️-requirement) - [⚙️ Installation](#️-installation) - [Setup](#setup) - [Client](#client) - [Server](#server) - [🪃 Skills](#-skills) - [Client](#client-1) - [Server](#server-1) - [Test](#test) - [🪛 Project Control](#-project-control) - [🚀 Deployment](#-deployment) - [🧗 Challenges](#-challenges) - [1. React Quill을 선택, 그리고 그 안에서 도전](#1-react-quill을-선택-그리고-그-안에서-도전) - [1) 에디터에 HTML문법이 자동으로 적용되는 현상](#1-에디터에-html문법이-자동으로-적용되는-현상) - [2) GET 요청을 통해 데이터를 받아올 때 적용이 되지 않는 현상](#2-get-요청을-통해-데이터를-받아올-때-적용이-되지-않는-현상) - [2. React Quill을 걷어내다](#2-react-quill을-걷어내다) - [3. Redo, Undo가 작동하지 않다](#3-redo-undo가-작동하지-않다) - [🙏 마무리하며..](#-마무리하며)
# 🌈 Background 팀 프로젝트 때, README를 작성하면서 겪었던 불편함을 해소하기 위해 시작한 프로젝트입니다. Markdown 문법은 알고 있지만 자주 쓰지 않기에 그때 그때 찾아야 하는 번거로움이 있습니다. 이와 비슷한 불편함이 다른 개발자들도 분명 있을거라 생각이 되었습니다. EASYME.md를 통해 조금이라도 개발자들이 README를 작성하는데 겪는 불편함이 해소되길 바라는 마음으로 만들게 되었습니다.
# 🔗 Link - [https://www.easy-me.com](https://www.easy-me.com/) ## Github Repositories - Client: [https://github.com/EASYME-md/client](https://github.com/EASYME-md/client) - Server: [https://github.com/EASYME-md/server](https://github.com/EASYME-md/server)
# 🔍 Preview ![title](public/assets/readme/preview.gif)
# 🛠 Features - Screen - 왼쪽 화면은 직접 텍스트를 작성할 수 있는 Editor입니다. - 오른쪽 화면은 왼쪽 텍스트 작성에 따라 Markdown 문법이 적용된 Preview를 확인할 수 있습니다. - 상단에 Custom Toolbar를 통해 텍스트 Style을 Markdown 문법으로 적용할 수 있습니다. - Custom Toolbar - 커서 위치, 텍스트 드래그를 기준으로 Markdown 기능이 적용됩니다. - 드래그한 영역을 대소문자로 변형을 해줍니다. - 드래그한 영역을 리스트로 만들어줍니다. - 접기, 목차, 테이블 등의 템플릿을 제공합니다. - Editor 화면만 보기, Markdown 화면만 보기, Full Screen 모드를 제공합니다. - 공유하기 / 저장하기 - 공유하기 아이콘 버튼을 클릭하면 작성한 글이 저장되며 링크가 생성됩니다. - 작성한 글을 저장하고 다른 사람에 공유할 수 있습니다. - 작성 도중 단축키 `Ctrl+S(Command+S)`로 글을 저장할 수도 있습니다.
# 📈 Release Note | version | log | | --- | --- | | 0.1.0 | 툴바에 텍스트 전체 삭제 기능 추가, Tab Key 기능 추가 | | ~ 0.0.1 | 기능 적용시 스크롤 최상단으로 가는 현상 개선, 저장 및 공유 기능 개선 |
# ⚠️ Requirement 최신 Chrome Browser 사용을 권장합니다.
# ⚙️ Installation ## Setup - Local 환경에서 실행하기 위해 아래 사전 준비가 필요합니다. - [MongoDB Address](https://www.mongodb.com/ko-kr/cloud/atlas/efficiency) - [Google Analytics Tracking ID](https://analytics.google.com/analytics/web) ## Client ``` git clone https://github.com/EASYME-md/client cd client npm install npm start ``` - root 디렉토리에 `.env` 파일을 생성하고 `<>`에 환경변수를 입력 후 저장해주세요. ``` REACT_APP_SERVER_URI=https://api.easy-me.com REACT_APP_CLIENT_URI=https://easy-me.com REACT_APP_TRACKING_ID= ``` ## Server ``` git clone https://github.com/EASYME-md/server cd server npm install npm start ``` - root 디렉토리에 `.env` 파일을 생성하고 `<>`에 환경변수를 입력 후 저장해주세요. ``` MONGODB_ADDRESS= CLIENT_URI=https://easy-me.com ```
# 🪃 Skills ## Client - ES2015+ - React - React Router - React Helmet - Redux Toolkit - Redux Saga - Google Analytics - Emotion ## Server - ES2015+ - Node.js - Express - MongoDB Atlas - Mongoose ## Test - Client: Jest, Testing Library - Server: Mocha, Chai, Supertest
# 🪛 Project Control - Version Control: Git, Github - Task Control: Notion, Figma
# 🚀 Deployment - Client: Netlify - Server: AWS Elastic Beanstalk
# 🧗 Challenges 2주 동안 기능 개발을 하면서 겪은 어려움 또는 도전은 아래와 같습니다.
## 1. React Quill을 선택, 그리고 그 안에서 도전 초기 에디터 구현은 현재 작업이 완료된 `