StackEdit: trình soạn thảo Markdown trên trình duyệt
StackEdit là trình soạn thảo Markdown chạy trên trình duyệt, xây dựng trên PageDown, cùng bộ phân tích mà Stack Overflow dùng, nên nội dung hiển thị đúng như cách Stack Exchange render. Lý do đáng dùng nhất là lớp đồng bộ: trỏ một tài liệu tới GitHub, Dropbox, Google Drive hoặc WordPress thay vì export rồi dán thủ công. Tự host là có thật, nhưng nghĩa là chạy Helm chart trên Kubernetes và tự cấu hình OAuth, không phải deploy một cú click.
StackEdit là gì?
StackEdit là trình soạn thảo Markdown chạy trên trình duyệt, ghép khung soạn văn bản với khung xem trước render trực tiếp, xây dựng trên thư viện PageDown cũng đang chạy trình soạn thảo của Stack Overflow. Nó có thể đẩy cùng một tài liệu ra GitHub, GitLab, Dropbox, Google Drive, WordPress và các đích khác liệt kê trong topic của repo. Nó chạy dưới dạng app hosted tại stackedit.io, một Chrome app, hoặc bản tự host trên Kubernetes qua Helm chart.
Tính năng chính và tích hợp đám mây
- ✓Xây dựng trên PageDown, cùng thư viện phân tích Markdown mà Stack Overflow và các trang Stack Exchange khác dùng, theo README.
- ✓Khung xem trước render trực tiếp song song với khung soạn văn bản.
- ✓Các đích đồng bộ được liệt kê ngay trong topic của repo: GitHub, GitLab, Dropbox, Google Drive và CouchDB.
- ✓Các đích xuất bản cũng nằm trong topic: WordPress, Blogger, Gist và Zendesk.
- ✓stackedit.js, một project riêng để nhúng trình soạn thảo vào website của bạn, được liên kết từ mục Ecosystem trong README.
- ✓Chrome app và một Chrome extension xây trên stackedit.js, cả hai đều được liên kết từ README.
- ✓Helm chart chính thức để deploy StackEdit lên một cluster Kubernetes, có hỗ trợ ingress và cert-manager.
Chạy StackEdit trên máy cục bộ
Clone repo, chạy `npm install`, rồi `npm start` để có dev server với hot reload tại localhost:8080. `npm run build` tạo bản build production đã minify, còn `npm run build --report` thêm báo cáo bundle analyzer. Để chạy như một dịch vụ thường trực thay vì một bản build tĩnh, project cung cấp Helm chart chính thức: `helm repo add stackedit https://benweet.github.io/stackedit-charts/`, sau đó `helm install --name stackedit stackedit/stackedit` với các giá trị cho `dropboxAppKey`, `googleClientId`, `githubClientId`, `wordpressClientId` và các secret tương ứng. Chart cũng chấp nhận ingress controller và cert-manager issuer của riêng bạn, còn `helm upgrade` / `helm delete --purge` xử lý việc cập nhật và gỡ bỏ.
Điểm mạnh
- ✓Dùng PageDown, cùng bộ phân tích Markdown chạy trình soạn thảo của Stack Overflow, nên định dạng hoạt động đúng như người viết Stack Exchange đã quen.
- ✓Đồng bộ cùng một tài liệu ra nhiều đích, GitHub, GitLab, Dropbox, Google Drive hoặc CouchDB, thay vì khóa bạn vào một backend lưu trữ duy nhất.
- ✓Có Helm chart chính thức, nên một team đã chạy Kubernetes có thể dựng một instance riêng thay vì phải tin tưởng bản hosted.
- ✓Giấy phép Apache-2.0 nghĩa là bạn có thể fork, sửa đổi và phân phối lại, kể cả trong một sản phẩm thương mại.
- ✓stackedit.js mở rộng trình soạn thảo vào website của riêng bạn khi bản ứng dụng độc lập không phù hợp.
Hạn chế cần biết
- △Tự host chỉ có một con đường được tài liệu hóa: Helm chart cho Kubernetes. README không có bản setup single-container hay Docker Compose đơn giản, nên bạn cần sẵn một cluster, một ingress controller và cert-manager.
- △Mỗi tích hợp đồng bộ đều cần đăng ký OAuth app riêng trước. Không có gì kết nối sẵn; bạn tự dán client ID và secret cho Dropbox, Google, GitHub, WordPress vào giá trị Helm.
- △README liệt kê 'offline' như một topic của repo nhưng không mô tả việc soạn thảo offline hay đồng bộ lại sau đó hoạt động thế nào.
- △Không có tài liệu về ứng dụng mobile gốc, chỉ có một Chrome app và một Chrome extension, cả hai đều gắn với trình duyệt desktop.
Lựa chọn thay thế cho StackEdit
Câu hỏi thường gặp
Có, StackEdit được phát hành theo giấy phép Apache-2.0 và mã nguồn công khai trên GitHub, nên bạn có thể đọc, sửa đổi và tự host mà không phải trả phí license.
StackEdit có thể tự host được. Project cung cấp Helm chart chính thức để deploy lên một cluster Kubernetes, kể cả hỗ trợ ingress controller và cert-manager TLS của riêng bạn.
StackEdit được gắn tag là hỗ trợ offline trên repo GitHub, nhưng tài liệu của project không mô tả cụ thể việc lưu trữ offline hay đồng bộ lại sau đó hoạt động ra sao.
StackEdit liệt kê GitHub và GitLab trong số các đích đồng bộ ở topic của repo. Với bản tự host, bạn đăng ký một OAuth app với provider đó rồi đưa client ID và secret vào giá trị cấu hình của Helm chart.
Helm chart của StackEdit nhận credential cho Dropbox, Google Drive, GitHub và WordPress. Các topic trên GitHub của nó còn liệt kê thêm GitLab, Blogger, Gist, Zendesk và CouchDB là các đích được hỗ trợ.
Dữ liệu repo hiện có không bao gồm hoạt động commit gần đây, nên không thể khẳng định mức độ bảo trì chỉ từ dữ liệu này. Hãy kiểm tra trực tiếp lịch sử commit và issue tracker của repo để biết tình trạng hiện tại.
Vấn đề mà StackEdit giải quyết
Các file Markdown thường nằm rải rác giữa một README trên GitHub, một wiki trên GitLab, một folder ghi chú trên Dropbox và một bản nháp trên WordPress, và việc giữ chúng đồng bộ thường phải export rồi dán tay. Cách StackEdit giải quyết là dùng một phiên soạn thảo duy nhất có thể đẩy cùng một tài liệu ra bất kỳ đích nào ở trên, dùng chính bộ phân tích PageDown mà Stack Overflow render, nên phần xem trước bạn thấy khớp với cách GitHub hay một trang Stack Exchange thực sự hiển thị.
Trường hợp sử dụng tốt nhất
- •Soạn và xem trước một README hoặc trang wiki trên GitHub trước khi commit, vì bộ phân tích mô phỏng đúng kiểu Markdown của Stack Overflow.
- •Viết nháp bài đăng cần lên WordPress hoặc Blogger mà không cần thêm một bước publish riêng.
- •Một team muốn dùng chung một trình soạn thảo Markdown tự host, đứng sau ingress Kubernetes của chính họ thay vì một SaaS bên thứ ba.
- •Nhúng một trình soạn thảo Markdown vào công cụ nội bộ qua stackedit.js thay vì tự xây từ đầu.
Nên dùng StackEdit khi nào — và khi nào nên bỏ qua
Nên thử StackEdit nếu bạn thường xuyên viết Markdown phải xuất hiện ở nhiều nơi, một README trên GitHub, một bài trên WordPress, một folder ghi chú đồng bộ qua Dropbox, và muốn một trình soạn thảo duy nhất có xem trước trực tiếp thay vì đổi công cụ theo từng đích. Bỏ qua nếu bạn chỉ cần một trình soạn thảo file Markdown cục bộ đơn giản, không cần đồng bộ gì cả. Cũng nên bỏ qua việc tự host, trừ khi bạn thoải mái chạy một Helm chart trên Kubernetes và đăng ký OAuth app cho từng tích hợp bạn muốn dùng.
Repo liên quan
Muốn nghe thêm một ý kiến về stackedit?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về stackedit.
