Tài liệu (webmail)
Tài liệu là bộ ứng dụng văn phòng cộng tác tích hợp trong webmail HiTechCloud. Nó cho phép các
hộp thư c ủa cùng một tài khoản hosting tạo và sửa tài liệu, bảng tính và bản trình chiếu
cùng nhau theo thời gian thực, xem lại thay đổi của nhau, thảo luận ngay trong tài liệu, chia sẻ với
khách bằng liên kết, và trao đổi tệp với Microsoft Office ở định dạng .docx, .xlsx và .pptx.
Mọi thứ chạy trên máy chủ của chính bạn: backend Node của webmail và PostgreSQL. Không có dịch vụ bên thứ ba nào được liên hệ ở bất kỳ thời điểm nào.
Bật tính năng
Tài liệu là một plugin webmail bật theo mặc định: mục Tài liệu xuất hiện trong
thanh bên webmail và tại /docs. Người dùng không muốn dùng có thể tắt nó tại
Cài đặt → Plugin → Tài liệu.
Làm việc với tài liệu
Trang chủ Tài liệu hiển thị ba danh sách — Gần đây, Tài liệu của tôi và Được chia sẻ với tôi — và cho phép tạo một Tài liệu, Bảng tính hoặc Bản trình chiếu mới, hoặc Tải lên một tệp để nhập (kéo và thả cũng được).
| Loại | Trình soạn thảo | Bạn có gì |
|---|---|---|
| Tài liệu | Trình soạn thảo văn bản giàu định dạng (TipTap) | Tiêu đề, danh sách, danh sách việc cần làm, bảng, hình ảnh, liên kết, tô sáng, màu sắc, căn lề, mã, trích dẫn |
| Bảng tính | Lưới có công thức | Nhiều trang tính, công thức kiểu Excel (=SUM(A1:A9), =IF(...), =VLOOKUP(...), vài trăm hàm), sao chép/dán vùng, cột đổi kích thước được |
| Bản trình chiếu | Trình soạn thảo slide | Danh sách slide, bố cục (tiêu đề, tiêu đề + nội dung, hai cột, trống), hộp văn bản và hình ảnh di chuyển/đổi kích thước được, ghi chú diễn giả, chế độ Trình chiếu toàn màn hình |
Cộng tác thời gian thực
Mỗi tài liệu là một CRDT (Yjs). Mỗi người cộng tác sửa một bản sao cục bộ được hợp nhất với bản của mọi người khác một cách tự động — không có khoá và không có nút "lưu". Các chỉnh sửa được đẩy lên máy chủ ngay khi xảy ra và được lưu vào PostgreSQL tức thì, nên một sự cố hay mất kết nối không bao giờ làm mất công việc đã được chấp nhận; một người sửa ngoại tuyến sẽ đồng bộ lại khi có kết nối trở lại.
Những người cộng tác thấy nhau dưới dạng ảnh đại diện có màu ở phần đầu, dưới dạng con trỏ có tên trong tài liệu, dưới dạng đường viền ô có màu trong bảng tính và dưới dạng một chấm trên slide họ đang xem.
Theo dõi thay đổi (chế độ xem xét)
Mở Xem xét trong một tài liệu để:
- bật Chế độ đề xuất — nội dung bạn gõ và xoá được ghi lại thành các đề xuất (phần chèn màu xanh lá, phần xoá gạch ngang màu đỏ) gán cho bạn thay vì thay đổi văn bản trực tiếp;
- chấp nhận hoặc từ chối từng đề xuất, hoặc tất cả cùng lúc;
- chuyển chế độ xem giữa Đánh dấu, Có thay đổi (như thể mọi thứ đã được chấp nhận) và Bản gốc (như thể mọi thứ đã bị từ chối). Khi xuất ra dùng chế độ xem "Có thay đổi".
Chế độ đề xuất theo dõi việc chèn và xoá văn bản bên trong đoạn. Các chỉnh sửa cấu trúc (tách hoặc gộp đoạn, biến văn bản thành danh sách, định dạng) được áp dụng trực tiếp.
Phiên bản và phê duyệt
Phiên bản lưu một bản chụp có tên của toàn bộ tài liệu bất cứ lúc nào, xem trước bất kỳ phiên bản đã lưu nào, và khôi phục nó (trạng thái hiện tại được lưu thành một phiên bản trước, nên không mất gì). Một người xem xét có thể phê duyệt một phiên bản để đánh dấu nó là trạng thái cuối cùng đã được chấp thuận; phần phê duyệt cho biết ai đã chấp thuận và khi nào.
Bình luận và thảo luận
- Bình luận neo một chuỗi vào phần văn bản đã chọn (chọn văn bản, nhấn 💬). Có thể trả lời, đánh dấu đã giải quyết và mở lại chuỗi; nhấn vào một chuỗi sẽ nhảy tới văn bản.
- Trò chuyện là một bảng thảo luận cho cả tài liệu. Tin nhắn được lưu cùng tài liệu và hiện trực tiếp cho mọi người đang mở nó.
Chia sẻ
Chủ sở hữu mở Chia sẻ để:
- chia sẻ với đồng nghiệp — các hộp thư khác trong cùng tài khoản hosting — với quyền Có thể xem hoặc Có thể sửa. Việc chia sẻ chỉ hoạt động khi cả hai hộp thư thuộc cùng một tài khoản hosting; điều này được kiểm tra lại ở mỗi yêu cầu, nên một tên miền đổi chủ sẽ ngừng chia sẻ ngay lập tức;
- tạo liên kết cho khách (
/docs/s/<token>) với quyền xem hoặc sửa, một mật khẩu tuỳ chọn và một thời hạn tuỳ chọn. Khách không cần tài khoản: họ nhập tên hiển thị (và mật khẩu) rồi tham gia như bất kỳ người cộng tác nào khác. Thu hồi hoặc hết hạn một liên kết sẽ cắt quyền của những khách đã tham gia.
Nhập và xuất
Việc chuyển đổi diễn ra trên máy chủ, bằng Node. Không có gì được tải lên nơi nào khác.
| Định dạng | Nhập | Xuất |
|---|---|---|
Word .docx | Có (mammoth) — tiêu đề, đoạn văn, đậm/nghiêng/gạch chân/gạch ngang, danh sách, bảng, liên kết, hình ảnh nhúng | Có (docx) — tiêu đề, định dạng, danh sách, danh sách việc cần làm, bảng, hình ảnh, liên kết, căn lề, tô sáng, màu sắc |
Excel .xlsx (cả .xlsm, .xls, .csv, .ods) | Có (SheetJS) — giá trị và văn bản công thức của mọi trang tính, độ rộng cột | Có (SheetJS) — giá trị, công thức và độ rộng cột; công thức được ghi cùng giá trị đã tính trong bộ nhớ đệm từ trình soạn thảo và fullCalcOnLoad, nên Excel/LibreOffice tính lại khi mở |
PowerPoint .pptx | Cố gắng tối đa — hộp văn bản (văn bản, cỡ chữ, đậm, căn lề, vị trí) và hình ảnh của từng slide | Có (pptxgenjs) — mỗi slide một slide, hộp văn bản với cỡ chữ/kiểu/màu/căn lề, hình ảnh, màu nền, ghi chú diễn giả |
| HTML / văn bản | Có | JSON |
Hạn chế về độ trung thực (xin đọc kỹ)
Tài liệu là một trình soạn thảo có mô hình tài liệu riêng, không phải bản sao của Microsoft Office. Các tệp được chuyển đi chuyển lại theo nội dung, không phải từng chi tiết của cách trình bày:
- Word: bố cục trang (lề, cột, phần, đầu trang/chân trang, số trang), kiểu ngoài tiêu đề, phông nhúng trong tệp, chú thích cuối trang, trường, hình vẽ/SmartArt/biểu đồ và thay đổi được theo dõi và bình luận của chính Word không được nhập (các phần chèn được theo dõi của Word được giữ như văn bản thường, phần xoá bị bỏ). Tệp xuất ra dùng một kiểu mặc định gọn gàng.
- Excel: kiểu ô, định dạng số, ô gộp, định dạng có điều kiện, kiểm tra
dữ liệu, biểu đồ, hình ảnh, bảng tổng hợp (pivot) và macro không được mang theo — bản cộng đồng
SheetJS chỉ đọc giá trị và công thức, và một sổ làm việc xuất từ Tài liệu
không bao giờ chứa chúng. Công thức được lưới trong trình duyệt tính; một hàm mà lưới không
biết sẽ hiện
#ERROR!trong Tài liệu nhưng vẫn được xuất ra đúng như đã viết. - PowerPoint: giao diện, bố cục chủ, hiệu ứng, chuyển cảnh, biểu đồ, bảng, SmartArt và hình khối được nhóm không được tái tạo khi nhập; văn bản và hình ảnh được đặt tại vị trí ban đầu. Bản trình chiếu xuất ra chứa các hộp văn bản thuần và hình ảnh.
Với quy trình cần độ trung thực Office chính xác từng điểm ảnh, có thể cắm thêm máy chủ tài liệu OnlyOffice hoặc Collabora
về sau: Tài liệu giữ giao diện nhập/xuất ở mức tệp
(/api/docs/:id/export, /api/docs/import) mà một máy chủ như vậy sẽ thay thế.
Dành cho quản trị viên
- Lưu trữ: các bảng
docs_*trong cơ sở dữ liệu webmail (migration9130_docs.sql). Nội dung trực tiếp là một nhật ký cập nhật Yjs (docs_updates) được nén thành một bản chụp (docs_documents.state) sau mỗi 100 cập nhật và khi người cộng tác cuối cùng rời đi; các phiên bản là bản chụp đầy đủ. - Thời gian thực: WebSocket tại
/ws/docs/<docId>(cùng nguồn gốc và cookie phiên với socket thư; phiên của khách mang quyền từ liên kết của họ). Nginx đã proxy/ws. - Giới hạn: nhập tối đa 30 MB; hình ảnh nhúng tối đa 4 MB mỗi ảnh; nhập bảng tính tối đa 200.000 ô.
- Tích hợp: các plugin webmail khác có thể mở hoặc tạo tài liệu qua
window.hitechcloudDocs.open(id),.create(kind, title),.startShared({ title })(cũng tạo một liên kết sửa cho khách, dùng cho các cuộc họp) hoặc các sự kiện plugindocs:open,docs:create,docs:start-shared. Các thanh công cụ của trình soạn thảo cung cấp một vị trídocs-editor-toolbarcho trợ lý AI.