Monodraw: Trình chỉnh sửa ASCII art cho Mac
(monodraw.helftone.com)- Monodraw là trình chỉnh sửa ASCII art cho Mac, dùng để vẽ sơ đồ, lưu đồ và cấu trúc dữ liệu bằng văn bản thuần túy để có thể đọc trực tiếp trong tài liệu kỹ thuật và mã nguồn
- Vì kết quả đầu ra là văn bản nên rất dễ sao chép và dán, và khi cần cũng có thể tạo dưới dạng hình ảnh bằng cách xuất PNG·SVG
- Hỗ trợ cả mind map, sơ đồ ER và tạo banner, tập trung vào trực quan hóa phục vụ tài liệu hóa hơn là chỉ chỉnh sửa văn bản đơn thuần
- Cung cấp FIGlet cùng 148 phông chữ mặc định, đường kẻ, hình chữ nhật, căn chỉnh guide, nhóm và phím tắt để giảm bớt các tác vụ text art lặp đi lặp lại
- Yêu cầu macOS 11 Big Sur trở lên, và công cụ dòng lệnh phải được tải trực tiếp từ website, chỉ đi kèm với phiên bản mua từ store
Công cụ trực quan hóa cho Mac vẽ bằng văn bản
- Monodraw là trình chỉnh sửa để tạo ASCII art trên Mac
- Có thể soạn các cấu trúc như sơ đồ, bố cục và lưu đồ theo kiểu dựa trên văn bản
- Được dùng để sắp xếp trực quan những đối tượng khó nắm bắt chỉ bằng mã nguồn như thuật toán, cấu trúc dữ liệu và định dạng nhị phân
- Vì đầu ra là văn bản thuần túy nên có thể chèn gần như nguyên trạng vào tài liệu, mã nguồn và đặc tả
- Khi cần hình ảnh, có thể xuất ra PNG và SVG
Biểu diễn tài liệu kỹ thuật và mô hình dữ liệu
- Sơ đồ văn bản được đưa vào mã nguồn và đặc tả giúp hiểu cấu trúc nhanh hơn
- Việc trực quan hóa cấu trúc dữ liệu, thuật toán và định dạng dữ liệu rất quan trọng để người đọc nắm được mối quan hệ và luồng xử lý
- Vì thời gian đọc mã thường nhiều hơn thời gian viết, sơ đồ văn bản có thể hữu ích trong quá trình bảo trì và review
-
Mind map
- Kết hợp sự đơn giản của văn bản thuần túy với cách làm mind map
- Có thể di chuyển văn bản đến vị trí mong muốn trên canvas vô hạn
- Không bị ràng buộc bởi cấu trúc tuyến tính của tệp văn bản
-
Sơ đồ ER
- Trực quan hóa mô hình dữ liệu bằng sơ đồ thực thể - quan hệ đơn giản
- Hỗ trợ ký pháp Crow’s Foot với 3 biến thể
Tính năng tạo text art
- Có thể tạo banner chỉ với một lần nhấp
- Tích hợp sẵn FIGlet và bao gồm 148 phông chữ mặc định
- Hỗ trợ cả phông chữ tùy chỉnh
- Có thể xử lý tương tác việc thay đổi kích thước hộp văn bản, đổi phông và điều chỉnh căn lề mà không cần terminal
- Công cụ văn bản hoạt động trên một text engine tùy chỉnh dựa trên CoreText
- Có thể điều chỉnh căn lề, vị trí, hướng tiến của dòng và việc dịch dòng
- Có thể thêm viền quanh văn bản chỉ với một lần nhấp
- Công cụ đường kẻ giúp tạo kết nối giữa các hình dễ dàng, hỗ trợ đường trực giao và đường bậc thang
- Có thể thiết lập mẫu nét đứt cho đường kẻ
- Có thể gắn động đường kẻ vào hình khác bằng các điểm kết nối, giảm công sức sắp xếp lại sau khi di chuyển hình
- Công cụ hình chữ nhật dùng để tạo các hộp thường thấy trong text art
- Có thể chỉ định viền và nền chỉ với vài lần nhấp
- Có thể thêm bóng đổ
- Có thể gắn đường kẻ vào vị trí chính xác bằng các điểm kết nối tùy chỉnh
Các tính năng hỗ trợ giúp giảm thao tác trên canvas
- Cung cấp các công cụ vẽ cơ bản như Pencil, Eraser, Bucket Fill, Picker
- Có thể phủ một hình ảnh lên canvas để dùng cho mục đích tracing
- Tính năng nhóm giúp gom nhiều hình thành một để dễ sao chép và di chuyển
- Guide căn chỉnh giúp không cần phải tự đếm số ký tự khi bố trí nội dung và thay đổi kích thước
- Tính năng focus cho phép khóa hoặc ẩn các hình còn lại khi muốn tập trung vào một phần cụ thể của canvas
- Có thể phóng to để tập trung vào các phần tử hiện đang hiển thị
- Mọi tính năng đều có thể truy cập bằng phím tắt
- Có thể chọn công cụ nhanh bằng một phím đơn mà không cần phím bổ trợ
Hỗ trợ macOS và điều kiện của công cụ dòng lệnh
- Monodraw được thiết kế là ứng dụng native cho macOS, từ text layout engine đến giao diện
- Có thể xuất text art bằng cách sao chép và dán vào trình soạn thảo văn bản mong muốn
- Yêu cầu hệ thống là macOS 11 Big Sur trở lên
- Trên các phiên bản macOS cũ hơn có thể dùng Monodraw v1.3, yêu cầu macOS 10.10 Yosemite trở lên
- Monodraw v1.5 yêu cầu macOS 10.14 Mojave trở lên
- Giao diện dòng lệnh chỉ có trong phiên bản tải trực tiếp
- Có trong phiên bản tải trực tiếp từ website và mua tại store
- Phiên bản Mac App Store không thể bao gồm công cụ dòng lệnh do giới hạn của App Sandbox
- Có thể dùng với hook của hệ thống quản lý phiên bản để tự động tạo tài liệu khi commit
- Cũng hỗ trợ đầu ra JSON để chương trình dễ xử lý
- Monodraw cho biết họ hoàn toàn không thu thập dữ liệu
1 bình luận
Các ý kiến trên Hacker News
Cuối cùng lúc nào cũng quay lại với Monodraw
Các ứng dụng khác có quá nhiều tính năng và lựa chọn phong cách, khiến khó tập trung vào nội dung thực sự, còn Monodraw thì không làm mình bị phân tâm
Dù vậy nó vẫn có đủ tính năng để tạo được khá nhiều thứ, và tôi đặc biệt thích anchor: https://tamasruss.com/articles/monodraw-anchors
Dù vậy bản thân kỹ thuật này khá gọn gàng
Công cụ này là một trong những ứng dụng tôi rất thích, và tôi đã trả tiền ngay khi nó ra mắt
Tôi đã dùng nó nhiều lần cho kiểu tài liệu như thế này: https://github.com/ivank/potygen/blob/main/packages/potygen/...
ASCII rất đa dụng, giúp chèn các hình minh họa đẹp ở những chỗ không ngờ tới để dễ hiểu hơn
Ký tự thì bình thường, nhưng có vẻ lựa chọn phông chữ của github không xử lý tốt phần “khoảng trắng có ý nghĩa” ở phần mở rộng
Tôi đang duy trì một danh sách các công cụ văn bản-thành-sơ đồ trên web: https://xosh.org/text-to-diagram/
Các lựa chọn web thay thế cho những công cụ vẽ ASCII kiểu này gồm https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io và vài công cụ khác
Đây là công cụ do tác giả SQLite tạo ra: https://pikchr.org/home/doc/trunk/doc/userman.md
Trong danh sách, có vẻ chỉ https://textik.com/ xử lý được đường chéo, và dường như nó cũng không có chức năng tô nền
Sơ đồ tôi định vẽ có dạng như thế này: https://pastebin.com/NPXFS1Fi
Tôi đã tạo được hộp và tam giác trên textik.com, nhưng phải tự sửa nhiều góc và tự tô phần bên trong
Dù Monodraw chỉ có 10 đô la, vì là ứng dụng native chỉ dành cho Mac nên tôi không chắc có trả tiền hay không
Tôi làm việc nhiều trên web, dùng nhiều thiết bị, và mỗi năm chỉ vẽ sơ đồ vài lần, nên công cụ nền web hoặc plugin VSCode có vẻ tốt hơn
Có thể có công cụ thú vị
Tôi rất thích công cụ này
Tôi đã dùng nó để viết sơ đồ cho Mapless: https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
Và cũng dùng để ghi tài liệu cấu hình builder cho Pharo VM Plugin: https://github.com/sebastianconcept/PharoPluginBuilder
Cách đó trông hơi vòng vèo chỉ để vẽ vài hình chữ nhật; có cách nào dễ hơn không?
Giá mà nó đa nền tảng thì thật tuyệt
Tôi cũng muốn dùng trên Linux
Tôi hiểu công sức để tạo ra một ứng dụng có độ hoàn thiện cao, nhưng vẫn mong các công cụ ứng dụng desktop nhắm tới Linux, Windows, Mac tốt hơn
Có lẽ đây cũng là một lý do lớn khiến ứng dụng nền web ngày càng nhiều
Nó thực sự rất phù hợp với loại ứng dụng này
Công cụ hay
Một lựa chọn thay thế bản web là https://github.com/tuanchauict/MonoSketch do bạn tôi viết bằng Kotlin
Tôi cũng có một phiên bản kém hoàn thiện hơn viết bằng Rust: https://github.com/huytd/ascii-d
Trông có vẻ ổn
https://asciiflow.com/ là một lựa chọn thay thế dựa trên web, và là công cụ tôi chủ yếu dùng suốt 10 năm qua
Chỉ có điều tôi vẫn chưa tìm ra cách làm cho trình duyệt render đúng phông chữ monospace
Có thể xem sơ đồ ví dụ trên trang này: http://uggly.bytester.net/#how-it-works
Đây là kiểu ứng dụng mà dù chỉ thỉnh thoảng dùng, bạn vẫn sẽ mua và giữ lại mãi
Nếu đã trực tiếp dùng, tôi cũng muốn nghe bạn đã dùng các sơ đồ tạo ra như thế nào
Tôi có thể hình dung việc dùng ảnh chụp màn hình của sơ đồ, nhưng phần văn bản gốc thì có vẻ quá lớn để đưa vào những nơi như terminal
Ứng dụng này đã chuyển sang chế độ bảo trì vào năm 2018, từ đó đến nay có gì thay đổi không? https://blog.helftone.com/monodraw-maintenance-mode/
Cảm ơn mọi phản hồi tích cực về ứng dụng
Tôi cực kỳ thiếu thời gian nên chưa thể phát hành nhiều bản cập nhật hơn
Tôi đang làm một vài tính năng được yêu cầu nhiều, nhưng không thể hứa khi nào sẽ công bố
Thường thì tôi tranh thủ tiến triển từng chút trong các kỳ nghỉ
Dù vậy, tôi vẫn sẽ tiếp tục sửa các lỗi phát sinh do nâng cấp OS và duy trì để sản phẩm tiếp tục hoạt động
Họ nêu lý do rằng việc duy trì một dự án mã nguồn mở là gánh nặng lớn, và nếu công bố sản phẩm hoàn chỉnh dưới dạng mã nguồn mở thì có thể xảy ra chuyện các bản clone được bán cho những khách hàng không hay biết
Nhưng nếu mở mã nguồn, người đóng góp có thể đảm nhận một phần công việc, và một số giấy phép nhất định có thể ngăn việc bán các bản clone như vậy
Trước đây tôi đã dùng thử và thấy tốt
Theo tôi nhớ, một điểm không hài lòng là để giữ các tính năng hay như anchor hoặc hộp có thể thay đổi kích thước, bạn phải dùng định dạng tệp tích hợp riêng của nó
Việc chỉ trỏ thẳng tới một hình ASCII trong tài liệu Markdown không tự động đem lại tất cả các tính năng đó
Nếu thật sự muốn, có lẽ có thể giải quyết phần nào bằng các thuật toán thông minh và LLM; thực tế tôi đã dùng LLM khá nhiều để phác thảo sơ đồ ASCII và đạt được một số thành công
Nhưng tôi vẫn chưa tìm được sự cân bằng tốt giữa khả năng bảo trì — tức là xử lý hộp như một hộp và khi di chuyển thì các đường nối cũng đi theo — với tính di động, tức là mọi thứ đều là văn bản thuần
Nếu Monodraw phiên bản mới khác đi, hoặc có công cụ khác giải quyết được điều này, tôi rất muốn biết
Ít nhất thì Monodraw hợp với tôi hơn artist mode của Emacs
Tôi tò mò không biết bạn có nhiều sơ đồ hiện có muốn quản lý hay không
Nếu tạo từ đầu, tôi lại kỳ vọng có một định dạng tệp trừu tượng như vậy, và muốn xem nó giống quan hệ giữa tệp gốc kiểu PSD với kết quả render kiểu PNG
Hoặc cũng tương tự quan hệ giữa mã nguồn và tệp nhị phân
Tôi nghĩ việc phân tích ngược sản phẩm đầu ra thành một dạng trừu tượng có ý nghĩa là điều khó làm hoàn hảo