排序XML片段 排序规则: 1. 首先按 layer_level 升序(小的在底层,先写入XML) 2. 同层级内按面积降序(大的在下,先写入) DrawIO的Z轴规则:先写入的在底层,后写入的在顶层
(self, fragments: List[XMLFragment])
| 336 | return fragments |
| 337 | |
| 338 | def _sort_fragments(self, fragments: List[XMLFragment]) -> List[XMLFragment]: |
| 339 | """ |
| 340 | 排序XML片段 |
| 341 | |
| 342 | 排序规则: |
| 343 | 1. 首先按 layer_level 升序(小的在底层,先写入XML) |
| 344 | 2. 同层级内按面积降序(大的在下,先写入) |
| 345 | |
| 346 | DrawIO的Z轴规则:先写入的在底层,后写入的在顶层 |
| 347 | """ |
| 348 | return sorted( |
| 349 | fragments, |
| 350 | key=lambda f: (f.layer_level, -f.area) # layer升序,area降序 |
| 351 | ) |
| 352 | |
| 353 | def _build_xml_structure(self, |
| 354 | canvas_width: int, |