5.1 레이아웃 트리
4장에서 만든 Layout 객체를 BlockLayout으로 바꾸고 DocumentLayout을 통해 BlockLayout들을 만들어가는 것이 목표입니다.
5.1의 코드만 수정한 후 실행이 되려면 다음과 같은 코드가 추가로 필요합니다.
@@ -210,7 +216,7 @@ class Layout:
self.size = 12
self.line = []
- self.recurse(tree)
+ self.recurse(self.node)
self.flush()
@@ -286,7 +303,9 @@ class Browser:
def load(self, url):
body = url.request()
self.nodes = HTMLParser(body).parse()
- self.display_list = Layout(self.nodes).display_list
+ self.document = DocumentLayout(self.nodes)
+ self.document.layout()
+ self.display_list = self.document.children[0].display_list
self.draw()
def draw(self)
self.display_list 를 변경하는 것은 5.5장까지 진도를 나가면 paint_tree를 통해 순회하는 방법이 등장합니다.

반응형
'browser engineering 관련' 카테고리의 다른 글
| 8장. 서버로 정보 보내기 추가 설명 (0) | 2025.08.31 |
|---|---|
| 에러 상황들 (0) | 2025.08.31 |
| 단순링크: 웹개발의 역사 (0) | 2025.08.22 |
| DuckyPy 설치시 externally-managed-environment (0) | 2025.07.19 |
| 브라우저 개발자 모임 (0) | 2025.06.05 |