Typed에서 구현한 Selector와 Range를 활용한 하이라이트 기능에 대해
대외비임 ㅎ
gatsby.js의 mdx의 사례
gatsby.js를 만지다보니 재미있는 점을 발견했다. mdx가 파싱되는 꼴을 보자.
const saltyDuckEgg = 'chinese preserved food product'
@mdx-js/react의 MDXProvider로 감싸고, prev 태그의 props를 출력하려고 보았을 때 아래와 같은 꼴을 하고 있다.
props: {
children: {
props: {
children: [
{props: children: ...},
{props: " saltyDuckEgg "},
{props: children: ...},
{props: " "},
]
}
}
}
최말단의 children들은 각각 "const", " saltyDuckEgg ", "=", " ", "'chinese preserved food product'"를 가지고 있다.
결론적으로, prev 내부 문자로서의 코드들을 적절하게 구조화한 것이다.
HTML DOM Parsing에 대해
웹 사이트 network 요청이 오면 어째저째 다음과 같은 과정을 거쳐 브라우저에 표시된다고 알고 있다.
HTML -> DOM 트리 + CSS -> CSSOM -> Render Tree -> Layout -> Paint
그러나 여기서 알고 싶은 건 Parsing이다.
(이 과정은 bytes -> 문자화 -> 토큰화 -> 노드화 -> DOM 트리 완성)
그렇다면 에디터를 구현해야 한다면 어떻게?
reference)
https://yceffort.kr/2021/05/ast-for-javascript
'Programming Language > 🟨 Javascript' 카테고리의 다른 글
ArrayBuffer, Typed Arrays, DataView : raw binary data를 핸들링해보자 (0) | 2021.11.15 |
---|---|
예시로 공부하는 javascript 정규식 (0) | 2021.05.27 |
js의 Number, BigInt 타입과 정밀한 숫자 계산에 대하여 (0) | 2021.04.20 |
throttle과 debounce를 통해 중복된 요청을 줄여보자 (0) | 2021.03.16 |
Date 타입과 ISO, UNIX (0) | 2021.02.17 |