@cyberskill/cyber-editor 3.7.1 → 3.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +173 -129
- package/dist/assets/index-BjC4rLMK.js +891 -0
- package/dist/assets/index-DIQTJ_cG.css +1 -0
- package/dist/index.html +14 -0
- package/package.json +51 -48
- package/dist/components/btn-add-img.d.ts +0 -1
- package/dist/components/color-picker.d.ts +0 -7
- package/dist/components/index.d.ts +0 -1
- package/dist/components/modal-edit.d.ts +0 -7
- package/dist/cyber-editor.cjs.js +0 -366
- package/dist/cyber-editor.cjs.js.map +0 -1
- package/dist/cyber-editor.es.js +0 -20725
- package/dist/cyber-editor.es.js.map +0 -1
- package/dist/extensions/accordion/accordion-extension.d.ts +0 -12
- package/dist/extensions/accordion/accordion-view.d.ts +0 -1
- package/dist/extensions/accordion/index.d.ts +0 -2
- package/dist/extensions/color/color-picker.d.ts +0 -2
- package/dist/extensions/editor-provider.d.ts +0 -4
- package/dist/extensions/heading/heading-dropdown.d.ts +0 -4
- package/dist/extensions/image/image-extension.d.ts +0 -13
- package/dist/extensions/image/image-view.d.ts +0 -9
- package/dist/extensions/index.d.ts +0 -2
- package/dist/extensions/table/table-selector.d.ts +0 -9
- package/dist/extensions/tool-bar/cyber-extensions.d.ts +0 -2
- package/dist/extensions/tool-bar/index.d.ts +0 -2
- package/dist/extensions/tool-bar/tool-bar-cyber.d.ts +0 -1
- package/dist/extensions/tool-bar/tool-bar-tiptap.d.ts +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/style.css +0 -1
- package/dist/utils/extensions.d.ts +0 -1
- package/dist/utils/index.d.ts +0 -2
- package/dist/utils/interfaces.d.ts +0 -8
package/README.md
CHANGED
|
@@ -1,189 +1,233 @@
|
|
|
1
|
-
# Hướng
|
|
1
|
+
# Hướng Dẫn Sử Dụng Dự Án
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<!-- Mục lục -->
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
-
|
|
9
|
-
-
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
5
|
+
- [Yêu Cầu](#yêu-cầu)
|
|
6
|
+
- [Cài Đặt](#cài-đặt)
|
|
7
|
+
- [Chạy Dự Án](#chạy-dự-án)
|
|
8
|
+
- [Chạy ở môi trường development với Docker](#chạy-ở-môi-trường-development-với-docker)
|
|
9
|
+
- [Chạy ở môi trường development (Local)](#chạy-ở-môi-trường-development-local)
|
|
10
|
+
- [Các Script & Ý Nghĩa](#các-script--ý-nghĩa)
|
|
11
|
+
- [Quy Ước Viết Code & Đặt Tên](#quy-ước-viết-code--đặt-tên)
|
|
12
|
+
- [Quy Ước Đặt Tên](#quy-ước-đặt-tên)
|
|
13
|
+
- [Quy Ước Đặt Tên Chung](#quy-ước-đặt-tên-chung)
|
|
14
|
+
- [Quy Ước Tiền Tố Trong TypeScript](#quy-ước-tiền-tố-trong-typescript)
|
|
15
|
+
- [Quy Ước Đặt Tên Type Trong GraphQL](#quy-ước-đặt-tên-type-trong-graphql)
|
|
16
|
+
- [Quy Ước Đặt Tên Biến Môi Trường](#quy-ước-đặt-tên-biến-môi-trường)
|
|
17
|
+
- [Quy Ước Khi Import](#quy-ước-khi-import)
|
|
18
|
+
- [Quy Ước Viết Code](#quy-ước-viết-code)
|
|
19
|
+
- [Quy Ước Đặt Commit Message](#quy-ước-đặt-commit-message)
|
|
20
|
+
- [Cấu Trúc Thư Mục Và Ý Nghĩa](#cấu-trúc-thư-mục-và-ý-nghĩa)
|
|
21
|
+
- [Quy Trình Làm Việc Với Git](#quy-trình-làm-việc-với-git)
|
|
13
22
|
|
|
14
|
-
|
|
23
|
+
---
|
|
15
24
|
|
|
16
|
-
|
|
25
|
+
## Yêu Cầu
|
|
17
26
|
|
|
18
|
-
|
|
27
|
+
- **nvm (Node Version Manager):**
|
|
28
|
+
- MacOS: [nvm-sh/nvm](https://github.com/nvm-sh/nvm)
|
|
29
|
+
- Windows: [coreybutler/nvm-windows](https://github.com/coreybutler/nvm-windows)
|
|
30
|
+
- **Node.js:** 22.14.0
|
|
31
|
+
_(nvm sẽ tự động cài đặt phiên bản này nếu chưa có)_
|
|
32
|
+
- MacOS: [node-v22.14.0.pkg](https://nodejs.org/dist/v22.14.0/node-v22.14.0.pkg)
|
|
33
|
+
- Windows: [node-v22.14.0-x64.msi](https://nodejs.org/dist/v22.14.0/node-v22.14.0-x64.msi)
|
|
34
|
+
- **Docker:** [Docker Desktop](https://www.docker.com/products/docker-desktop)
|
|
35
|
+
- **Ghi chú:** Dùng **pnpm** để tránh xung đột với các công cụ khác.
|
|
19
36
|
|
|
20
|
-
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Cài Đặt
|
|
40
|
+
|
|
41
|
+
1. **Tạo file cấu hình môi trường:**
|
|
42
|
+
Sao chép file `.env.example` thành `.env`.
|
|
43
|
+
2. **Chỉnh sửa file `.env`:**
|
|
44
|
+
Cập nhật các trường cần thiết phù hợp với môi trường máy.
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## Chạy Dự Án
|
|
49
|
+
|
|
50
|
+
### Chạy ở môi trường development với Docker
|
|
51
|
+
|
|
52
|
+
_(Lưu ý: Hãy bật Docker trước khi chạy)_
|
|
21
53
|
|
|
22
54
|
```bash
|
|
23
55
|
make build-development
|
|
24
56
|
make start-development
|
|
25
57
|
```
|
|
26
58
|
|
|
27
|
-
|
|
59
|
+
### Chạy ở môi trường development (Local)
|
|
28
60
|
|
|
29
61
|
```bash
|
|
30
|
-
|
|
31
|
-
|
|
62
|
+
pnpm i -f
|
|
63
|
+
pnpm run dev
|
|
32
64
|
```
|
|
33
65
|
|
|
34
|
-
|
|
66
|
+
---
|
|
35
67
|
|
|
36
|
-
|
|
37
|
-
VITE v5.4.10 ready in 223 ms
|
|
68
|
+
## Các Script & Ý Nghĩa
|
|
38
69
|
|
|
39
|
-
|
|
40
|
-
➜ Network: http://192.168.2.6:8001/
|
|
41
|
-
➜ press h + enter to show help
|
|
42
|
-
```
|
|
70
|
+
Kiểm tra lỗi lint:
|
|
43
71
|
|
|
44
|
-
|
|
72
|
+
| Script | Ý nghĩa |
|
|
73
|
+
| ---------------- | --------------------------------------- |
|
|
74
|
+
| **lint** | kiểm tra lỗi lint và typescript |
|
|
75
|
+
| **lint:fix** | tự động sửa các lỗi có thể sửa |
|
|
76
|
+
| **lint:inspect** | xem chi tiết các lint rule đang dùng |
|
|
77
|
+
| **reset** | cài đặt lại dependencies |
|
|
78
|
+
| **setup** | nâng cấp dependencies |
|
|
79
|
+
| **inspect** | xem chi tiết các dependencies đang dùng |
|
|
45
80
|
|
|
46
|
-
|
|
47
|
-
npm run lint:check
|
|
48
|
-
```
|
|
81
|
+
---
|
|
49
82
|
|
|
50
|
-
##
|
|
83
|
+
## Quy Ước Viết Code & Đặt Tên
|
|
51
84
|
|
|
52
|
-
|
|
53
|
-
npm run lint:fix
|
|
54
|
-
```
|
|
85
|
+
### Quy Ước Đặt Tên
|
|
55
86
|
|
|
56
|
-
|
|
87
|
+
| Loại | Quy Ước | Ví Dụ |
|
|
88
|
+
| ---------------------- | ------------ | ------------------- |
|
|
89
|
+
| **Tên biến** | `camelCase` | `userName` |
|
|
90
|
+
| **Tên hàm** | `camelCase` | `getUserInfo()` |
|
|
91
|
+
| **Tên biến parameter** | `camelCase` | `id, userData` |
|
|
92
|
+
| **Tên biến argument** | `camelCase` | `fetchData(userId)` |
|
|
93
|
+
| **Tên biến private** | `_camelCase` | `_isHidden` |
|
|
94
|
+
| **Tên class** | `PascalCase` | `UserProfile` |
|
|
95
|
+
| **Tên hằng số** | `UPPER_CASE` | `MAX_RETRY_COUNT` |
|
|
96
|
+
| **Tên file** | `kebab-case` | `user-service.ts` |
|
|
97
|
+
| **Tên thư mục** | `kebab-case` | `services/` |
|
|
57
98
|
|
|
58
|
-
### Quy
|
|
99
|
+
### Quy Ước Đặt Tên Chung
|
|
59
100
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- Tên biến private: `_camelCase`
|
|
65
|
-
- Tên class: `PascalCase`
|
|
66
|
-
- Tên hằng số: `UPPER_CASE`
|
|
67
|
-
- Tên file: `kebab-case`
|
|
68
|
-
- Tên thư mục: `kebab-case`
|
|
101
|
+
| Loại | Tiền Tố | Quy Tắc | Ví Dụ |
|
|
102
|
+
| ------------------------ | ------------- | ----------------------------- | --------------------------- |
|
|
103
|
+
| **Biến đại diện input** | `I_Input_` | Tiền tố + loại + kiểu dữ liệu | `interface I_Input_User` |
|
|
104
|
+
| **Biến đại diện output** | `I_Response_` | Tiền tố + loại + kiểu dữ liệu | `interface I_Response_User` |
|
|
69
105
|
|
|
70
|
-
### Quy
|
|
106
|
+
### Quy Ước Tiền Tố Trong TypeScript
|
|
71
107
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
108
|
+
| Loại | Tiền Tố | Ví Dụ |
|
|
109
|
+
| ------------- | ------- | ------------------ |
|
|
110
|
+
| **Interface** | `I_` | `interface I_User` |
|
|
111
|
+
| **Type** | `T_` | `type T_User` |
|
|
112
|
+
| **Enum** | `E_` | `enum E_User` |
|
|
76
113
|
|
|
77
|
-
### Quy
|
|
114
|
+
### Quy Ước Đặt Tên Type Trong GraphQL
|
|
78
115
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
116
|
+
| Loại | Tiền Tố | Ví Dụ |
|
|
117
|
+
| --------- | ------- | -------------------- |
|
|
118
|
+
| **Type** | `T_` | `type T_User` |
|
|
119
|
+
| **Input** | `I_` | `input I_CreateUser` |
|
|
82
120
|
|
|
83
|
-
### Quy
|
|
121
|
+
### Quy Ước Đặt Tên Biến Môi Trường
|
|
84
122
|
|
|
85
|
-
|
|
86
|
-
|
|
123
|
+
| Loại | Tiền Tố | Ví Dụ |
|
|
124
|
+
| ----------- | -------------- | --------------------- |
|
|
125
|
+
| **React** | `REACT_APP_` | `REACT_APP_API_URL` |
|
|
126
|
+
| **Next.js** | `NEXT_PUBLIC_` | `NEXT_PUBLIC_API_KEY` |
|
|
127
|
+
| **Vite** | `VITE_` | `VITE_API_SECRET` |
|
|
128
|
+
| **Node.js** | `NODE_` | `NODE_ENV` |
|
|
87
129
|
|
|
88
|
-
### Quy
|
|
130
|
+
### Quy Ước Khi Import
|
|
89
131
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
- Dùng tiền tố `NODE_` cho biến môi trường của node
|
|
132
|
+
1. Các thư viện bên ngoài **ở trên cùng**.
|
|
133
|
+
2. Các module/hàm tiện ích **ở dưới**, cách một dòng trắng với phần trên.
|
|
134
|
+
3. Định cấu hình đường dẫn để **import nhanh** trong `tsconfig.json`.
|
|
94
135
|
|
|
95
|
-
|
|
136
|
+
```ts
|
|
137
|
+
import React from 'react'; // Thư viện bên ngoài
|
|
96
138
|
|
|
97
|
-
|
|
98
|
-
|
|
139
|
+
import { formatDate } from '#shared/utils'; // Module nội bộ
|
|
140
|
+
```
|
|
99
141
|
|
|
100
|
-
### Quy
|
|
142
|
+
### Quy Ước Viết Code
|
|
101
143
|
|
|
102
|
-
|
|
103
|
-
- Không dùng `==`
|
|
104
|
-
- Xóa `console.log` trước khi commit
|
|
105
|
-
- Xóa `debugger` trước khi commit
|
|
106
|
-
- Không dùng `any`, `unknown`, `never`
|
|
107
|
-
- Không dùng `@ts-ignore`
|
|
108
|
-
- Không dùng `@ts-nocheck`
|
|
144
|
+
✅ **Làm**
|
|
109
145
|
|
|
110
|
-
|
|
146
|
+
- Dùng `let` và `const` thay vì `var`.
|
|
147
|
+
- Dùng `===` thay vì `==`.
|
|
148
|
+
- Xóa `console.log`, `alert` và `debugger` trước khi commit.
|
|
111
149
|
|
|
112
|
-
|
|
150
|
+
❌ **Không làm**
|
|
113
151
|
|
|
114
|
-
|
|
152
|
+
- Không dùng `any`, `unknown`, `never`.
|
|
153
|
+
- Không dùng `@ts-ignore`, `@ts-nocheck`.
|
|
115
154
|
|
|
116
|
-
|
|
117
|
-
.
|
|
118
|
-
├── .github => cấu hình workflow để chạy CI/CD cho github
|
|
119
|
-
├── docker => cấu hình triển khai docker
|
|
120
|
-
├── node_modules => thư mục chứa các thư viện ngoài
|
|
121
|
-
├── public
|
|
122
|
-
│ ├── assets => Chứa các asset như fonts, images, icons
|
|
123
|
-
├── shared => Các file dùng chung
|
|
124
|
-
│ └── components => Các component dùng chung
|
|
125
|
-
│ ├── index.ts => import tất cả các component con vào index
|
|
126
|
-
│ └── contexts => Các context dùng chung
|
|
127
|
-
│ ├── index.ts => import tất cả các context con vào index
|
|
128
|
-
│ └── hocs => Các hoc dùng chung
|
|
129
|
-
│ ├── index.ts => import tất cả các hoc con vào index
|
|
130
|
-
│ └── hooks => Các hook dùng chung
|
|
131
|
-
│ ├── index.ts => import tất cả các hook con vào index
|
|
132
|
-
│ └── i18n => Dịch thuật của hệ thống
|
|
133
|
-
│ └── layouts => Các layout trong hệ thống
|
|
134
|
-
│ ├── index.ts => import tất cả các layout con vào index
|
|
135
|
-
│ └── typescript => Các typescript dùng chung
|
|
136
|
-
│ ├── index.ts => import tất cả các typescript con vào index
|
|
137
|
-
│ └── utils => Các hàm tiện ích dùng chung
|
|
138
|
-
│ ├── index.ts => import tất cả các util con vào index
|
|
139
|
-
├── .env => biến môi trường (copy từ .env.example)
|
|
140
|
-
├── .env.example => mẫu biến môi trường
|
|
141
|
-
├── .gitignore => cấu hình git
|
|
142
|
-
├── .ncurc.cjs => cấu hình bỏ qua thư viện khi kiểm tra phiên bản mới
|
|
143
|
-
├── .npmrc => cấu hình npm
|
|
144
|
-
├── .nvmrc => phiên bản node
|
|
145
|
-
├── .eslint.config.js => cấu hình kiểm tra cú pháp code
|
|
146
|
-
├── index.html => file đầu vào
|
|
147
|
-
├── Makefile => lệnh make dùng để chạy docker
|
|
148
|
-
├── package-lock.json => cấu hình npm
|
|
149
|
-
├── package.json => cấu hình npm
|
|
150
|
-
├── README.md => hướng dẫn
|
|
151
|
-
└── tsconfig.app.json => cấu hình typescript cho app
|
|
152
|
-
└── tsconfig.json => cấu hình typescript
|
|
153
|
-
└── tsconfig.node.json => cấu hình typescript cho server
|
|
154
|
-
└── vite.config.ts => cấu hình vite
|
|
155
|
-
```
|
|
155
|
+
### Quy Ước Đặt Commit Message
|
|
156
156
|
|
|
157
|
-
|
|
157
|
+
| Loại Commit | Cú Pháp | Ví Dụ |
|
|
158
|
+
| ----------------- | ----------------------- | ------------------------------------------ |
|
|
159
|
+
| **Tính năng mới** | `feat(module): message` | `feat(user): add user login` |
|
|
160
|
+
| **Sửa lỗi** | `fix(module): message` | `fix(auth): incorrect password validation` |
|
|
158
161
|
|
|
159
|
-
|
|
162
|
+
## Cấu trúc thư mục và ý nghĩa
|
|
160
163
|
|
|
161
|
-
```
|
|
162
|
-
|
|
164
|
+
```text
|
|
165
|
+
│── .github/ # Cấu hình GitHub Actions hoặc tài liệu liên quan đến GitHub
|
|
166
|
+
│── dist/ # Thư mục build sau khi chạy `vite build`
|
|
167
|
+
│── node_modules/ # Thư viện và dependency của Node.js
|
|
168
|
+
│── src/ # Thư mục chứa mã nguồn chính
|
|
169
|
+
│ ├── modules/ # Các module chính trong ứng dụng
|
|
170
|
+
│ │ ├── [module-name]/ # Tên module
|
|
171
|
+
│ │ │ ├── module.scss # Styles cho module
|
|
172
|
+
│ │ │ ├── module.component.tsx # Component của module
|
|
173
|
+
│ │ │ ├── module.type.tsx # Typescript của module
|
|
174
|
+
│ │ │ ├── index.tsx # Export các file ngang cấp
|
|
175
|
+
│ ├── shared/ # Các tài nguyên dùng chung
|
|
176
|
+
│ │ ├── assets/
|
|
177
|
+
│ │ │ ├── styles/ # CSS dùng trong dự án
|
|
178
|
+
│ │ ├── components/ # Các component dùng chung giữa nhiều trang
|
|
179
|
+
│ │ ├── configs/ # Các file cấu hình
|
|
180
|
+
│ │ │ ├── env.ts # Cấu hình biến môi trường
|
|
181
|
+
│ │ ├── constants/ # Các hằng số dùng trong dự án
|
|
182
|
+
│ │ ├── providers/ # Providers chung của ứng dụng
|
|
183
|
+
│ │ ├── typescript/ # Kiểu dữ liệu TypeScript dùng trong dự án
|
|
184
|
+
│ ├── index.tsx # File đầu vào của dự án
|
|
185
|
+
│ ├── root.tsx # File khởi tạo React App
|
|
186
|
+
│ ├── vite-env.d.ts # Cấu hình typescript cho Vite
|
|
187
|
+
│── .env # File environment variables (bí mật, không commit lên Git)
|
|
188
|
+
│── .env.example # Mẫu `.env` để tham khảo
|
|
189
|
+
│── .gitignore # Danh sách các file cần bỏ qua khi commit
|
|
190
|
+
│── .ncurc.cjs # Cấu hình kiểm tra cập nhật package
|
|
191
|
+
│── .nvmrc # Cấu hình Node.js version manager
|
|
192
|
+
│── .simple-git-hooks.json # Cấu hình simple git hooks
|
|
193
|
+
│── eslint.config.js # Cấu hình ESLint
|
|
194
|
+
│── index.html # file html chính của dự án
|
|
195
|
+
│── package.json # Danh sách dependencies và scripts của dự án
|
|
196
|
+
│── pnpm-lock.yaml # File lock dependencies của pnpm
|
|
197
|
+
│── README.md # Tài liệu mô tả dự án
|
|
198
|
+
│── tsconfig.app.json # Cấu hình TypeScript cho ứng dụng
|
|
199
|
+
│── tsconfig.json # Cấu hình TypeScript chung
|
|
200
|
+
│── tsconfig.node.json # Cấu hình TypeScript cho Node.js
|
|
201
|
+
│── vite.config.ts # Cấu hình Vite
|
|
163
202
|
```
|
|
164
203
|
|
|
165
|
-
|
|
204
|
+
## Quy Trình Làm Việc Với Git
|
|
205
|
+
|
|
206
|
+
1. **Tạo nhánh mới từ `develop`**:
|
|
166
207
|
|
|
167
208
|
```bash
|
|
168
|
-
git
|
|
209
|
+
git checkout develop
|
|
210
|
+
git pull origin develop
|
|
211
|
+
git checkout -b feature/new-feature
|
|
169
212
|
```
|
|
170
213
|
|
|
171
|
-
|
|
214
|
+
2. **Commit theo chuẩn**:
|
|
172
215
|
|
|
173
216
|
```bash
|
|
174
|
-
git
|
|
217
|
+
git commit -m "feat(module): mô tả ngắn gọn"
|
|
175
218
|
```
|
|
176
219
|
|
|
177
|
-
|
|
220
|
+
3. **Rebase trước khi merge**:
|
|
178
221
|
|
|
179
222
|
```bash
|
|
180
|
-
git
|
|
223
|
+
git checkout develop
|
|
224
|
+
git pull origin develop
|
|
225
|
+
git checkout feature/new-feature
|
|
226
|
+
git rebase develop
|
|
181
227
|
```
|
|
182
228
|
|
|
183
|
-
|
|
229
|
+
4. **Tạo Pull Request (PR)** và đợi review trước khi merge vào `develop`.
|
|
184
230
|
|
|
185
|
-
|
|
231
|
+
---
|
|
186
232
|
|
|
187
|
-
|
|
188
|
-
git push
|
|
189
|
-
```
|
|
233
|
+
> **Ghi chú:** Nếu có bất kỳ thắc mắc nào, vui lòng liên hệ team phát triển!
|