loading

마크다운 파일을 notion으로 업로드하기


markdown file to notion

Published on January 30, 2023 by JunYoung

blog notion markdown

2 min READ

요즘따라 느끼는 사실은 github blog가 자유도는 높지만 그만큼 용량 제한이나 여러모로 사용하는데 불편함이 있다는 점이 많다는 것이다. 가장 주요하게 작용하는 단점은 Velog나 티스토리와 같이 마크다운 기반 사이트와 함께 사용하기엔 좋지만 notion과 함께 활용하기엔 부적절하다는 점인데, notion에서 markdown 파일을 추출하는 건 간단하지만 반대로 markdown에서 notion으로 포스팅하는 것이 불편하기 때문이다.


How to markdown to notion?

이런 저런 방법들을 찾아보다가 결국 또다른 누군가의 도움을 받기로 했다. 참고 사이트는 아래 이미지를 클릭하거나 참고 링크를 누르면 된다(참고 링크).

참고 링크도 누르기 귀찮은 사람들을 위해서 간략하게 정리해보면, 단순히 터미널을 켜고 원하는 가상환경에 다음과 같이 모듈을 설치해준다.

pip install md2notion

설치가 완료되었다면, notion web을 본인 계정으로 로그인한 뒤, 개발자 도구(f12)를 통해 다음과 같이 화면을 띄운다.
여기서 중요한 점은 노션 어플리케이션으로 접속하는게 아니라 크롬 등 웹으로 접속해서 개발자 도구를 열어야 한다.

들어가서 Application $\rightarrow$ Cookies $\rightarrow$ https://www.notion.so에 가게 되면 token_v2의 value를 확인할 수 있는데 이 값을 메모장이나 스티커 메모 등 쉽게 확인할 수 있는 곳에 저장해둔다.
저장을 했다면 이제 추출한 markdown을 notion 페이지로 임포트를 할 노션 주소를 복사해온다. 예를 들어 본인은 “toNotion”이라는 임시 페이지를 만들어서 해당 페이지를 임포트용 페이지로 사용할 것이다.

사용할 페이지의 웹 주소인 notion.so/toNotion~~을 그대로 복사해오면 된다. 이제 준비는 모두 마쳤고, 실제로 임포트할 마크다운 파일의 path를 MD_PATH라고 했을 때, 다음과 같이 커맨드를 입력하면 된다.

python -m md2notion {token_v2} {import_page_url} {MD_PATH}

위의 커맨드에서 확인할 수 있는 token_v2, import_page_url은 위에서 구했던 token 값과 웹 노션 주소를 입력해주고, MD_PATH에는 현재 로컬 상에서 notion으로 올릴 마크다운의 위치를 입력해주면 된다. 대부분 큰 오류없이 진행되겠지만 다음과 같이 HTTPError가 뜨는 경우가 있다.

requests.exceptions.HTTPError: Invalid input.

찾아보니 라이브러리 자체의 문제라서 다음과 같이 추가된 내용을 패키지에 적용하면 문제없이 실행할 수 있다.

pip3 install -e git+https://github.com/c0j0s/notion-py#egg=notion

결과는?

솔직히 냉정하게 평가하자면 생각보다는 그렇게 좋진 않았다. 뭐 물론 완벽하게 해주길 바랐던 건 아니지만, 블로그에 들어갔던 이미지나 수식 모두 반환이 되지 않았다. 본인 블로그에 맞게 소스 코드를 수정해서 사용하는 법도 있겠지만 사실 이걸 하고자 했던 건 단순 복붙보다는 시간 절약을 위해서기 때문에 짜잘한 것들은 직접 바꿔주는게 낫겠다 싶었다.

A n o t h e r p o s t i n c a t e g o r y