All I Know 에디터

All I Know 사이트를 위한 에디터를 만들었습니다. 저는 개발툴을 이용해서 블로깅을 하는 게 익숙하지만 같이 글을 쓰는 다른 사람들은 개발자가 아니다보니 글 쓰는 걸 어려워했습니다. All I Know 사이트들은 Hugo를 이용해서 만들었는데, 마크다운부터가 문제였습니다. 가장 문제였던 건 이미지 입력이었고, 이 문제를 해결하기 위해 빠르게 편집기를 만들었습니다. 빠르게 구현하는 게 제 1 목표였던 만큼 글 관리 기능은 상당히 조잡하지만, 글 편집 기능은 오픈소스의 힘으로 나쁘지 않은 수준입니다.


편집기는 데스크탑용 앱이고 플러터로 만들었고, flutter_quill 이라는 라이브러리를 썼습니다. 먼저 편집기를 만든 뒤에 이미지 첨부 기능을 구현했는데요, 이미지 업로드는 구글 클라우드 스토리지를 활용했습니다. 코드도 상당히 조잡하지만... 뭐 어때요? 이 프로젝트에서 가장 중요한 건 첫 구현까지 걸리는 시간이지 클린 코드가 아닌걸요.

flutter_quill이 문서의 데이터를 JSON으로 저장하는 걸 지원하길래 이 기능을 적극 활용했습니다. 글을 JSON으로 저장했다가 Raw HTML로 마크다운 파일에 때려넣는 방식을 사용했습니다. 시간 날때마다 틈틈히 버그도 고치고 기능도 개선하고 그럴 생각입니다.