File size: 3,360 Bytes
a771826
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Import MindManager (.mmap) Files to Drawnix

Tính năng này cho phép bạn import file MindManager (.mmap) vào Drawnix và chuyển đổi chúng thành các phần tử vẽ (geometries và lines).

## Cách sử dụng

1. Nhấp vào biểu tượng **Menu** (☰) ở góc trên bên trái
2. Chọn **Open** > **Import MindManager (.mmap)**
3. Chọn file .mmap từ máy tính của bạn
4. File sẽ được giải nén (unzip), parse XML và chuyển đổi thành mind map trên canvas

## Lưu ý kỹ thuật

File .mmap thực chất là một **ZIP archive** chứa nhiều file bên trong:
- `Document.xml` - Chứa cấu trúc mind map chính (được sử dụng)
- `Preview.png` - Hình ảnh preview
- Các binary files khác cho attachments, icons, etc.

Ứng dụng sẽ:
1. Unzip file .mmap bằng JSZip library
2. Extract file `Document.xml` 
3. Parse XML để lấy topics và cấu trúc
4. Chuyển đổi sang Drawnix elements

## Tính năng được hỗ trợ

### Được chuyển đổi:
- ✅ Text của topics
- ✅ Cấu trúc phân cấp (parent-child relationships)
- ✅ Màu fill (background)
- ✅ Màu stroke (border)
- ✅ Font styling (bold, size, font name)
- ✅ Tạo kết nối tự động giữa parent và child topics

### Chưa được chuyển đổi:
- ❌ Icons/Markers
- ❌ Attachments (files đính kèm)
- ❌ Notes (ghi chú chi tiết)
- ❌ Task information (priority, completion, dates)
- ❌ Relationships (liên kết ngang giữa topics)
- ❌ Boundaries
- ❌ Images nhúng trong topics

## Cấu trúc file được tạo

Mỗi topic trong MindManager sẽ được chuyển thành:
- 1 rectangle (hình chữ nhật) với text
- Các line (đường kẻ) nối từ parent đến children

## Ví dụ

File XML từ MindManager (.mmap):
```xml

<ap:Topic>

  <ap:Text PlainText="Kế hoạch dự án"/>

  <ap:SubTopics>

    <ap:Topic>

      <ap:Text PlainText="Giai đoạn 1"/>

    </ap:Topic>

    <ap:Topic>

      <ap:Text PlainText="Giai đoạn 2"/>

    </ap:Topic>

  </ap:SubTopics>

</ap:Topic>

```

Sẽ được chuyển thành:
- 1 rectangle "Kế hoạch dự án" (ở vị trí trung tâm)
- 2 rectangles "Giai đoạn 1" và "Giai đoạn 2" (ở bên phải)
- 2 lines kết nối từ "Kế hoạch dự án" đến các giai đoạn

## Xử lý lỗi

Nếu file không thể import, bạn sẽ nhận được thông báo lỗi. Các nguyên nhân có thể:
- File không phải là XML hợp lệ
- File không phải là định dạng MindManager
- File bị hỏng hoặc không đọc được

## Files liên quan

- `packages/drawnix/src/data/mmap.ts` - Parser, ZIP extractor và converter
- `packages/drawnix/src/components/toolbar/app-toolbar/app-menu-items.tsx` - Menu item
- `packages/drawnix/src/constants.ts` - MIME type definition

## Dependencies

- **jszip** - Để giải nén file .mmap (là ZIP archive)

## Phát triển trong tương lai

Có thể mở rộng để hỗ trợ:
- Export từ Drawnix sang MindManager
- Giữ thêm metadata (notes, icons, etc.)
- Sử dụng PlaitMind elements thay vì geometry elements để có trải nghiệm mind map tốt hơn
- Hỗ trợ các định dạng mind map khác (XMind, FreeMind, etc.)