C.W.K.
Stream
Lesson 01 of 04 · published

디스크의 마크다운

~10 min · filesystem, canonical, in-place, portable

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Rekindle 은 파일을 제자리에서 편집하고 절대 소유 안 해. 디스크의 .md 가 진실이고, 에디터는 그 위 렌즈일 뿐이야."

제자리에서 편집, 절대 소유 안 함

Rekindle 의 정본 저장소는 가능한 가장 평범한 것이야. 디스크의 마크다운 파일. 파일을 열고, 제자리에서 편집하고, 다시 써 — 노트를 소유하는 사설 포맷으로 절대 복사 안 해. 그 한 결정이 Rekindle 에서 편집하는 파일이 vault 가 보는 같은 파일, grep 이 보는 같은 파일, 다른 어떤 도구가 보는 같은 파일인 이유야. 에디터는 파일 위 렌즈지, 그걸 삼키는 컨테이너가 아냐.

파일은 어디서나 유효해

저장소가 순수 마크다운이라, 문서가 기본으로 이식 가능해. 같은 바이트가 Obsidian vault 에서도, 에세이에서도, 사이트에서도, Sublime 에서도, 앞으로 존재할 어떤 마크다운 도구에서도 유효해. export 단계도, 독점 왕복도, '읽으려면 Rekindle 에서 열어' 도 없어. 오늘 Rekindle 에서 쓴 노트가 어디서나 영원히 읽고 편집 가능해 — 애초에 텍스트 파일 말곤 아무것도 아니었으니까.

#[tauri::command]
fn write_note(path: String, contents: String) -> Result<(), String> {
    // 제자리: vault, grep, 그리고 다른 모든 마크다운 도구가 이미 읽는
    // 그 .md. 사설 포맷 없음, 소유 없음.
    std::fs::write(&path, contents).map_err(|e| e.to_string())
}

파일 위엔 아무것도 안 앉아

규율은 아무것도 파일보다 더 진실한 master 가 아니라는 거야. 데이터베이스도, 클라우드 서비스도, 심지어 CodeMirror 인메모리 문서도 — 그건 파일로 다시 써야 하는 작업 복사본이고, 파일이 권위로 남아. 노트의 진짜 상태를 알고 싶으면 파일을 읽어. 이게 cwkPippa 의 JSONL 진실과 같은 본능, 한 도메인 옆: 내구성 있고, 평범하고, 이식 가능한 산물이 진실이고, 나머지 전부가 거기서 파생돼.

Code

다른 모든 게 읽는 그 파일을 편집·rust
#[tauri::command]
fn read_note(path: String) -> Result<String, String> {
    std::fs::read_to_string(&path).map_err(|e| e.to_string())
}

#[tauri::command]
fn write_note(path: String, contents: String) -> Result<(), String> {
    // 제자리: vault, grep, 에세이, 어떤 마크다운 도구가 이미 보는
    // 그 .md. 사설 포맷 없음. 소유 없음. export 단계 없음.
    std::fs::write(&path, contents).map_err(|e| e.to_string())
}

// 파일이 권위야. 에디터는 그 위 렌즈지,
// 독점 저장소로 삼키는 컨테이너가 아냐.

External links

Exercise

네가 쓰는 노트 앱을 골라 노트가 실제로 어디 사는지 알아내. 아무 에디터로 열 수 있는 순수 파일이야, 아니면 앱 자기 데이터베이스 안이야? 그다음 앱이 내일 사라지면 그 노트가 어떻게 되는지 물어. 'grep 으로 아직 읽을 수 있나' 의 답이 file-canonical 과 own-DB-as-master 의 차이야.
Hint
노트를 디스크의 .md (또는 .txt) 파일로 찾아 어디서나 열 수 있으면, 앱은 file-canonical 이야. 노트가 앱-전용 데이터베이스 안에만 존재하면, 앱이 네 데이터를 소유하고 — 'export' 는 이제 편의가 아니라 네가 의존하는 기능이야.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.