Loading views...
Texonom Notion Export 연구노트

Texonom Notion Export 연구노트

Date
Date
2023 Aug 5 0:0 → 2023 Aug 10 0:0
Created by
Created by
Seonglae ChoSeonglae Cho
Created time
Created time
2023 Aug 5 4:2
Last edited by
Last edited by
Seonglae ChoSeonglae Cho
Last edited time
Last edited time
2023 Aug 11 20:1
Refs
Refs
Markdown
Markdown

데이터가 커질수록 그 실체보다 알고리즘이 훨신 중요하다

생각보다 markdown 변환이 까다롭다
저번주에 아이디어낸 notion property를 markdown property로 하는 건 좋다
raw 와 비 raw를 구분하여 raw json으로 notion_user등 dictionary를 folder형태로 export하는 건 좋은 생각인듯
파일 이름을 id로만 할지 title도 넣을지는 고민 (옵션으로 줘도 좋을듯)
id로만 해야겠다 왜냐하면 empty block들의 경우 slug 없어서 통일성 없고 raw 목표에 맞다
손실은 당연히 있다 md면
breadcrumb는 대표적으로 무시해야할듯
 
 
끝나고 나서 prettier 적용여부
 
 

MD

  • 최대한 무조건 데이터 손실 있어도 가독성 위주
parent 도 name으로 하고 날짜도 format해서 넣기

가장 중요한 정보

  • refs
  • children
 
  • parent
 
 
 

Recursive

가로로 column case 만 해결한 다음
base block 모두 해결후
table 구현
Texonom export 시도 (오류만 해결)
 
 

전체 recordmap 부터 일단 만든 다음

pagemap pagetreee descendents
recursive 하게 가지만 없는 것만 notion.getRawBlock으로 가져오기
getPageContentBlockIds이용하여
한 페이지에서 점점 불러오기 스페이스 속한것만, 이미 불러온 것 제외하고
새로 불러온 것들 안에서 새것인 것들 불러오기
concurrency: 35 가 오류 안나는 최대
나중에 그 리스트들 전부 합치고 collection view query 만드는 형태
그리고 없는 애들은 동적으로 불러오기
get-all-pages-in-space with with getBlocks
 
  • 이슈로 parent 는 안가져와서 sub-tree만 생성되는 문제 있었다
    • 그게 아니라 collection fetching 문제였고 여기가 병목
    • 이거는 가속역할이었다 tree 형태로 지수형태로 가져오도록
    • 하지만 한꺼번에 너무 가져오려고 하면 오류나서 오히려 병목 일으켰다
 
pagetree만드는 것에서 collection query 내부 result 가져와야함
save findAncestor 적용
load prefetch
pageMap과 findAncestors로 markdown 만들기
  • eoi
  • p
  • missing column block
json 너무 커서 string Range Error: Invalid string length 오류
github eoi
space user if there is token
other undefined in push down automaton
collection view
update save and validate feature
reuse exported for fetch
[Nodejs] RangeError: Invalid string length
매우 큰 javascript array를 파일로 저장하던 중 out-of-heap 오류가 뜨면서 프로그램이 정지되어서 힙 메모리에 충분한 값을 주고 실행했더니 이번엔 RangeError: Invalid string length 오류가 뜬다. 원인은, js엔진에서 객체 사이즈에 제한을 두고 있다고 한다. array를 JSON.stringify()하는 과정에서 생겨난 string 크기가 해당 사이즈를 넘어버린 것이다. 해결법은 해당 객체를 작은 사이즈로 나누거나 스트림을 이용해 잘게 쪼개어 파싱하면 된다. 참고: https://ohgyun.com/782 Node: String 크기 제한에 의한 RangeError 발생일: 2018.10.22 키워드: JSON.stringify, RangeError, Inva..
[Nodejs] RangeError: Invalid string length
Node: String 크기 제한에 의한 RangeError
발생일: 2018.10.22 키워드: JSON.stringify, RangeError, Invalid string length, max-old-space-size, 메모리 부족, RangeError 문제: 배치 작업 과정 중에 아래와 같은 오류가 발생하면서 프로세스가 종료됐다. RangeError: Invalid string length at JSON.stringify () 메모리 이슈인 것 같아 노드의 max-old-space-size 파라미터로 힙 사이즈를 필요한 만큼 지정해 실행했는데도 동일하게 발생한다. 왜 그런 걸까? 해결책: 확인해보니, V8은 구조적 문제로 객체의 크기를 1.9기가로 제한하고 있다고 한다. 사이즈가 큰 객체를 stringify 하는 과정에서 문자열의 크기가 지나치게 커진 것이..
Node: String 크기 제한에 의한 RangeError
 

가장 어려웠던 부분

collection_view는 getblocks로 못가져와서 collection view block 의 id로 따로 getRawPage시킴
token 가지고 하면 빨리 끊긴다
 
 
 

어려운 부분

  • numbering indent 줄어들 때도 적용
  • indent prefix
  • text decoration
  • 어디다가 \n 넣을 분리 또는 블락간 연결 위해서
  • >로 markdown nested 랑 callout, 등등 구현
 
 

app router 써야 static paths에 사용한 prop사용가능

Pass fetched data from getStaticPaths to getStaticProps · vercel/next.js · Discussion #11272
Edit by @leerob: see updated response here. The SSG documentation recommends to fetch the data for the list of path params in getStaticPaths and fetch data for the individual pages in getStaticProp...
Pass fetched data from getStaticPaths to getStaticProps · vercel/next.js · Discussion #11272
 
 
Basic Syntax | Markdown Guide
The Markdown elements outlined in the original design document.
Basic Syntax | Markdown Guide
Extended Syntax | Markdown Guide
Advanced features that build on the basic Markdown syntax.
Extended Syntax | Markdown Guide
 
 

Recommendations