- Ferrite là một trình soạn thảo văn bản dựa trên Rust giúp chỉnh sửa nhanh và nhẹ các tệp Markdown, JSON, YAML, TOML
- Sử dụng framework egui để mang lại độ phản hồi ở mức native và môi trường chạy đa nền tảng
- Hỗ trợ nhiều tính năng như xem trước WYSIWYG, kết xuất sơ đồ MermaidJS, tích hợp Git, chế độ workspace
- Toàn bộ mã Rust và tài liệu của dự án đều được tạo bởi AI (Claude by Anthropic), con người phụ trách khâu rà soát và kiểm thử
- Là một ví dụ áp dụng thực tế của phát triển có hỗ trợ AI, cho thấy khả năng cộng tác giữa hệ sinh thái Rust và phát triển bằng AI
Tổng quan về Ferrite
- Ferrite là trình soạn thảo văn bản tốc độ cao, nhẹ hỗ trợ các tệp Markdown, JSON, YAML, TOML
- Được viết bằng Rust và egui, bảo đảm độ phản hồi ở mức native và chạy đa nền tảng
- Được phát triển và kiểm thử chủ yếu trên Windows, đồng thời có thể hoạt động trên Linux và macOS
- Cung cấp binary dựng sẵn cho Windows, Linux(.deb, tar.gz), macOS(Intel/ARM)
Phát triển dựa trên AI
- Toàn bộ mã Rust, tài liệu và tệp cấu hình của Ferrite đều do AI (Claude by Anthropic) viết
- Nhà phát triển đảm nhiệm việc định hướng sản phẩm, kiểm thử và điều phối quá trình phát triển cùng AI
- Mã được chấp nhận sau khi trải qua rà soát và kiểm thử, đồng thời công khai minh bạch quy trình AI tạo ra
- Dự án nhằm mục đích khám phá giới hạn và tiềm năng của phát triển có hỗ trợ AI
Tính năng chính
- Hỗ trợ xem trước Markdown thời gian thực (WYSIWYG) và tô sáng cú pháp
- Hỗ trợ nhiều định dạng: Markdown, JSON, YAML, TOML
- Với Tree Viewer, có thể duyệt cấu trúc JSON/YAML/TOML theo phân cấp và chỉnh sửa inline
- Bao gồm các tính năng tăng năng suất như tìm kiếm/thay thế bằng regex, di chuyển dòng (Alt+↑/↓), nhân bản dòng (Ctrl+Shift+D)
- Cung cấp tự động đóng ngoặc và dấu nháy, tự động lưu, thiết lập độ rộng dòng, minimap, code folding
Kết xuất sơ đồ MermaidJS
- Kết xuất native 11 loại sơ đồ bằng MermaidJS
- Flowchart, Sequence, Pie, State, Mindmap, Class, ER, Git Graph, Gantt, Timeline, User Journey
- Có thể trực tiếp trực quan hóa bên trong phần xem trước Markdown
Workspace và môi trường chỉnh sửa
- Với Workspace Mode, hỗ trợ mở theo thư mục, duyệt cây tệp, chuyển tệp nhanh (Ctrl+P), tìm kiếm toàn cục (Ctrl+Shift+F)
- Tích hợp Git để hiển thị trực quan trạng thái tệp đã sửa, đã thêm, bị bỏ qua
- Tính năng khôi phục phiên giúp phục hồi tab, vị trí con trỏ và trạng thái cuộn khi khởi động lại
- Zen Mode mang lại môi trường viết tập trung, còn Split View cho phép xem đồng thời nội dung gốc và kết xuất
1 bình luận
Ý kiến trên Hacker News
Tôi từng kỳ vọng sẽ thấy tiến triển ở Zed, nhưng dự án này cũng khá thú vị
Tôi là người dùng Obsidian khá nặng, nhưng sẽ rất vui nếu có một lựa chọn thay thế thực sự tập trung vào nền tảng cốt lõi
Tôi tò mò mục tiêu cuối cùng là gì. Sẽ tiếp tục theo dõi
Vẫn chưa sẵn sàng để đăng lên Show HN, nhưng tôi muốn nghe phản hồi ban đầu
Khởi chạy tức thì mà không cần Electron hay công nghệ web; trong v0.3.0, Mermaid sẽ được tách thành một crate riêng, và tôi dự định tạo một widget tùy chỉnh vượt qua các giới hạn của TextEdit trong egui
Về lâu dài, mục tiêu là phát triển nó thành một thư viện headless editor dựa trên Rust
Xem ROADMAP.md để biết thêm chi tiết
Thật thú vị khi Ferrite chủ yếu được phát triển và kiểm thử trên Windows
Dạo này người dùng Windows thường có cảm giác như công dân hạng hai, nên điều này khá đáng mừng
Nhưng tôi hơi bất ngờ khi thấy dòng “mã của dự án này được tạo 100% bằng AI”
Dù vậy, tôi đánh giá cao việc công khai thẳng thắn
Có vẻ chỉ sau khi một số người dùng chỉ ra rằng tác giả đã che giấu việc sử dụng AI thì nó mới được thêm vào
Tôi muốn tranh thủ quảng bá nhẹ ứng dụng Octarine của mình
Đây là một ứng dụng ghi chú Markdown kiểu WYSIWYG được viết bằng Rust(Tauri), lưu toàn bộ dữ liệu cục bộ
Không phải kiểu “vibe coded” :)
Gần đây HN có rất nhiều nội dung do AI tạo ra, và bài này dường như cũng đầy mã và bình luận do AI tạo
Có lẽ vì nó chạm đúng vào những chủ đề đang được quan tâm
Chữ trong ảnh chụp màn hình quá nhỏ, gần như cần kính lúp mới xem được
Ảnh chụp màn hình nên được lấy ở kích thước không quá to cũng không quá nhỏ, sao cho nội dung nhìn rõ
Đặc biệt ở độ phân giải cao, quá nhiều khoảng trắng còn làm giảm khả năng đọc
Tôi đã chụp ở độ phân giải cao nên trên màn hình nhỏ rất khó đọc
Tôi sẽ chụp lại với kích thước cửa sổ nhỏ hơn và giảm bớt khoảng trắng
Tôi sẵn sàng trả tiền cho Typora
Nó chỉ hỗ trợ Markdown, nhưng mảng này vẫn còn rất nhiều tiềm năng
Đặc biệt bây giờ khi các LLM tạo ra rất nhiều văn bản có cấu trúc và sơ đồ, tôi càng nghĩ như vậy
Hơn nữa còn là mã nguồn mở
Hiếm khi thấy một dự án egui mà không mang đậm phong cách đặc trưng của egui như thế này
Tôi tò mò trải nghiệm làm việc với egui ra sao
Vì là immediate mode nên việc quản lý trạng thái khá đơn giản
Tuy nhiên TextEdit không dành cho trình soạn thảo mã nên không có multi-cursor hay code folding
Vì vậy trong v0.3.0 tôi sẽ thay nó bằng một widget tùy chỉnh
Việc theme mặc định quá “đậm chất egui” được giải quyết bằng theme tùy chỉnh
Thật vui khi thấy dùng kết xuất Markdown native
Tôi thích việc nó không dùng kiểu khởi chạy Chromium rồi chụp ảnh màn hình như một số thư viện khác
Khi chia sẻ, nội dung có thể trông khác đi
Bên trong Ferrite thì không có vấn đề gì, còn cho mục đích chia sẻ thì trong v0.3.0 tôi dự định thêm tính năng xuất SVG
Tôi tò mò vì sao cấu hình và hướng dẫn cho AI agent lại bị xóa khỏi kho mã (.gitignore có nhắc đến)
Tuy nhiên các tệp cấu hình AI không cần thiết cho dự án nên tôi đã loại trừ chúng
Tôi sẽ thêm vào README nội dung nói rằng có nhận hỗ trợ từ AI
Mã đã được xem xét trước khi áp dụng, chứ không chấp nhận vô điều kiện
Chỉ có 10 commit, và một số commit lại đầy các tài liệu markdown ngập emoji
Sẽ rất hữu ích nếu phần phân tích cú pháp và layout của Mermaid được tách thành một crate riêng
Sẽ tốt hơn nữa nếu có một công cụ CLI nhanh để xuất SVG/PDF/PNG
Tôi dự định tách bộ kết xuất Mermaid dài khoảng 7000 dòng thành một crate độc lập, đồng thời thêm hỗ trợ xuất SVG/PNG và CLI
Nó được viết hoàn toàn bằng Rust nên cũng có thể tương thích WASM. Mong bạn đón chờ