내가 친 바이트만 저장되도록 파일을 진실로 삼았다
git diff에 내가 고치지 않은 표가 올라온 적이 있나요. mote는 문서 모델이 아니라 파일을 진실로 두고, 저장할 때 타이핑한 바이트만 디스크로 내보내요.

마크다운 표에서 단어 하나만 고쳤는데, Git에는 문서 전체가 바뀐 것처럼 보일 때가 있어요.
에디터가 저장하면서 표의 간격과 줄바꿈을 다시 정리했기 때문이에요. 사용자가 입력하지 않은 공백까지 파일에 쓴 거죠. Typora가 표의 열 폭을 맞추느라 파이프 사이를 공백으로 채우는 것이 그런 예예요.
mote는 다르게 저장해요. 파일의 원문을 그대로 두고, 굵은 글씨와 표, 수식 같은 화면 효과만 그 위에 보여 줘요. 그래서 저장할 때는 사용자가 바꾼 바이트만 달라져요.
저장 전에 변경량을 확인할 수 있어요
mote는 저장하면 바뀔 바이트 수를 상태 줄에 보여 줘요.
파일을 처음 열었을 때의 원본과 현재 내용을 비교해 실제로 달라진 부분만 계산해요. 편집하면 17 B 저장 대기 중이라고 표시하고, 모두 되돌리면 저장된 파일과 같음으로 바뀌어요. 저장한 뒤에는 저장 완료 · 17 B가 다음 편집 전까지 남아요.

이 숫자는 Git과 관계없이 동작해요. Git 저장소가 아닌 폴더에서도 볼 수 있고, 스테이징이나 커밋 상태에도 영향을 받지 않아요.
다만 Git diff에 나타날 변경량과 같아요. 저장하기 전부터 내가 고친 것만 바뀌는지 확인할 수 있죠.
표 한 칸을 고치면, 그 한 칸만 바뀌어요
차이는 표를 편집할 때 가장 잘 보여요.
라이브 모드(Live)에서는 표가 격자로 보여요. 커서가 있는 칸만 원문으로 바뀌고요. 그 안의 단어 하나를 고쳐 저장하면 상태 줄에는 +8 −6 B가 나타나요. Git diff에도 해당 행만 올라가요.

열 정렬과 파이프 사이의 공백은 그대로예요. * 글머리 기호나 줄 끝의 공백 두 칸도 건드리지 않아요. 마지막 줄바꿈이 없던 파일에는 줄바꿈을 새로 넣지 않고요.
붙여 넣기도 같아요. 클립보드의 텍스트를 다른 형식으로 바꾸지 않고 그대로 넣어요. 추가된 양은 상태 줄에서 바로 확인할 수 있어요. 마음에 들지 않으면 한 번 되돌려 저장된 파일과 같은 상태로 돌아갈 수 있고요.
파일의 다른 특징도 유지해요. CRLF는 CRLF로 남고, LF와 CRLF가 섞인 파일도 그대로 저장돼요. BOM과 마지막 줄바꿈도 원본을 따라요. 릴리스마다 왕복 저장 테스트로 이 동작을 확인해요.
파일 변경은 사용자의 동작에서만 시작해요
mote가 문서에 바이트를 추가하는 경우는 세 가지예요.
사용자가 글을 입력하거나 붙여 넣을 때, 클립보드의 이미지를 확인한 뒤 저장해 링크를 넣을 때, 이미지 모서리를 끌어 크기를 바꾸고 그 값을 대체 텍스트에 기록할 때예요.
모두 사용자가 직접 시작한 편집이에요. 무엇이 바뀌었는지도 변경 기록에서 확인할 수 있어요.
문서 옆에 별도의 파일을 만들지도 않아요. 표의 열 너비처럼 마크다운에 담을 수 없는 정보는 따로 저장하지 않고, 해당 기능을 제공하지 않아요.
설정과 최근 파일, 백업 20개 같은 앱 정보는 사용자 홈의 상태 폴더에만 저장해요. 덕분에 문서 폴더는 Git이나 Dropbox, Syncthing에서 mote가 없는 것처럼 동작해요.
대신 파일을 알아서 고쳐 주지는 않아요
파일을 그대로 지킨다는 건, 잘못된 문법도 마음대로 고치지 않는다는 뜻이에요.
깨진 표나 닫히지 않은 코드 펜스, 어긋난 목록 들여쓰기는 CommonMark가 해석한 모습 그대로 보여 줘요. 원하는 모양과 다르다면 소스 모드(Source)에서 직접 고쳐야 해요.
저장하면서 무엇이 바뀌는지 모르는 에디터는 파일을 빌려 써요. mote는 내가 건넨 파일을 그대로 돌려줘요.