콘텐츠로 이동

notion-ml

Notion Markup Language (NML) — 마크다운과 노션 블록 사이의 중간 언어.

소스는 마크다운이다. 노션에만 있는 구조만 <!--@ … --> 지시자로 덧댄다. 편집기에서는 평범한 파일로 읽히고, 필요할 때 블록 단위로 노션에 반영한다.

로컬이 정본이고, 노션은 반영 대상이다. 반영은 세 단계다: 비교(diff) → 선택(add) → 적용(push).

30초 요약

# 설치
uv tool install "git+https://github.com/devcomfort/notion-ml#subdirectory=packages/notionml"

# 노트 저장소 지정
export NOTIONML_STORE="$HOME/notes"

# 원격과 비교 → 고르기 → 반영
nl diff notes/topic/3장_08.md
nl add  notes/topic/3장_08.md#1,3
nl push --apply

왜 필요한가

문제 notion-ml의 답
마크다운으로 노션을 쓰면 표·토글·수식이 깨진다 노션 구조만 지시자로 표현하고, 나머지는 그대로 마크다운
노션에서 누가 고치면 로컬과 갈라진다 블록 단위 3자 비교로 «로컬 변경»과 «원격 변경»을 구분
자동 반영이 문서를 망칠 수 있다 모르면 멈춘다. 댓글 앵커·종류 불일치·표 열 변경은 쓰지 않는다
되돌릴 수단이 없다 쓰기 전 스냅숏, 쓴 뒤 재조회 검증, 저널(WAL) 기록

안전 모델

  • 차단 조건: 원격과 블록 종류 불일치, 표 열 수 변경, 소스 타입 오류, 로컬 재정렬 → 아무것도 쓰지 않음(종료 3).
  • 댓글 달린 블록은 고치지 않는다(앵커 보호).
  • 모호하면 사람이 결정: pull(원격 승) / keep(로컬 승) / rebase(원격 먼저 얹기).

문서

문서 내용
설치 uv·pipx·pip 설치, 토큰, 저장소 지정
명령 아홉 명령의 정확한 동작과 종료 코드
언어 지시자·블록 모델·표·그림 규칙
동작 원리 변경 감지, 콘텐츠 비교, 저장 구조
로드맵 다음 단계와 하지 않는 것