요새 Notion이 무료이용 시 1000블록 제한이 없어지면서 많은 분들이 관심가지실 것 같습니다.
velog 이용하시는 분들은 특히나 넘쳐흐르는 정보들을 주체하지못해서 Notion을 이용한 개인 wiki의 구축을 하고자 하는 분들도 있을 것 같은데요,
기존에 작성해놓은 마크다운 파일들을 import할 때에 저와 같은 문제를 겪으시는 분들이 있을 것 같아, 제가 해결한 방법을 공유하고자 합니다!🥰
Import는 notion의 데스크탑 버전 혹은 Web버전에서 할 수 있는데요, 우측 상단에 ...
을 누르시고, Import
를 클릭하신 후에 몇가지 옵션중에 Text & Markdown
을 선택하시면 됩니다.
이후 열리는 업로드 창에서, 여러개의 .md
파일들을 선택하여 OK
를 하면 한 번에 업로드할 수 있습니다. import한 후에는 하나의 별개의 page로 작성됩니다.
자, 여기서 문제가 발생합니다.
구글링을 하다보니, 이미 어느 유저가 python으로 notion용 마크다운 파일 importer를 만들어놓은 것이었습니다....!!
https://github.com/Cobertos/md2notion
기존에 다른 유저가 작성해놓은, API를 이용하여 Notion을 작성하는 notion-py 라는 client code를 사용하여 import해준다고 합니다.
README.MD
에도 기재되어있듯, Code block을 제대로 살려주면서 (개행포함) 제대로 된 언어를 인식하도록 해준다! 라고 되어있습니다. (Notion이 지원하지 않는 언어면, 최대한 가까운 언어로.)
감사한 마음으로 star🌟를 찍어주고 바로 실행해보았습니다.
저는 터미널로 진행하였으며, notion에서 정보를 얻기 위해서는 Web으로 접속하셔야합니다. 🙏🏻
pip install md2notion
cookie값은 notion web에 접속하신 후 아래와 같은 순서로 확인해줍니다.
개발자도구 > Cookies > notion 선택 > token_v2
선택
token_v2
값을 잘 복사해서 어딘가에 보관해주세요.
import할 마크다운 파일들이 포함될, parent page의 URL을 확인해줍니다.
저는 특정 폴더 내부에 있는 모든 파일을 import할 것이기 때문에,
해당 폴더경로에 뒤에 다시 /*.md
를 지정해주겠습니다.
실행 커맨드는 아래와 같습니다.
python -m md2notion {token_v2} {parent_page_url} {filepath}
python3를 설치했는데, python 으로 커맨드 실행 시 에러가 나신다면 기본 인터프리터가
python3
로 되어있지 않을 수 있습니다. 그럴때는python3 -m md2notion
으로 실행해보세요.
실행하면은, 자동으로 읽어들이기 시작합니다. 특정 문서안에 h5
를 선언해놓았는데, notion은 h5
가 없어서 제일 작은 값인 h3
로 formatting되나봅니다.
자 요로코롬 잘 읽어들여서 파일제목을 페이지의 제목으로 변환하여서 import하고 있습니다.
여담으로 저는 기존의 Github pages
의 파일을 import하였는데요, 사용하던 jekyll template이 업로드를 하려면 파일명에 날짜를 작성해야해서 파일명에 다 날짜가 있습니다.
본 글의 위쪽에도 파일을 첨부하였는데요, 개행이 깨져있던 code block이나 정체불명의 테이블도 없이, 깨끗하고 깔끔하게 import되었습니다.
이후 작업은 제목의 수정이나 List Page
를 작성해서 import한 파일들을 옮긴 후에 tagging 작업정도를 해주면 될 것 같습니다.
저는 평소에 Bear
로 금방금방 휘갈기고 있었는데요, Bear
에서 Export할 폴더를 미리 생성해준 다음, python
이나 Bash
같은 스크립트로 만들어주면 길게길게 입력할 필요는 없을 것 같아요!
parameter로 import하고자하는 URL정도만 입력해주면 되겠죠?
끝!