Monodraw: โปรแกรมแก้ไข ASCII art สำหรับ Mac
(monodraw.helftone.com)- Monodraw เป็นโปรแกรมแก้ไข ASCII art สำหรับ Mac ที่ทำให้สามารถวาดไดอะแกรม โฟลว์ชาร์ต และโครงสร้างข้อมูลเป็น ข้อความธรรมดา เพื่อให้อ่านได้โดยตรงภายในเอกสารทางเทคนิคและโค้ด
- เนื่องจากผลลัพธ์เป็นข้อความ จึงคัดลอกและวางได้ง่าย และเมื่อจำเป็นก็สามารถสร้างเป็นรูปภาพได้ด้วย การส่งออก PNG·SVG
- รองรับตั้งแต่ mind map, ER diagram ไปจนถึงการทำแบนเนอร์ โดยเน้นที่ การสร้างภาพเพื่อการจัดทำเอกสาร มากกว่าการแก้ไขข้อความแบบธรรมดา
- มี FIGlet และ ฟอนต์ 148 แบบ มาให้โดยพื้นฐาน พร้อมฟีเจอร์อย่างเส้น สี่เหลี่ยม ไกด์การจัดแนว กลุ่ม และคีย์ลัด ที่ช่วยลดงานทำ text art ซ้ำๆ
- ต้องใช้ macOS 11 Big Sur ขึ้นไป และเครื่องมือบรรทัดคำสั่งดาวน์โหลดได้โดยตรงจากเว็บไซต์ โดยรวมอยู่เฉพาะเวอร์ชันที่ซื้อจากสโตร์เท่านั้น
เครื่องมือสร้างภาพสำหรับ Mac ที่วาดด้วยข้อความ
- Monodraw เป็นเอดิเตอร์สำหรับสร้าง ASCII art บน Mac
- สามารถเขียนโครงสร้างอย่างไดอะแกรม เลย์เอาต์ และโฟลว์ชาร์ตในรูปแบบข้อความได้
- ใช้สำหรับ จัดระเบียบให้เห็นภาพ ของสิ่งที่เข้าใจได้ยากหากดูจากโค้ดอย่างเดียว เช่น อัลกอริทึม โครงสร้างข้อมูล และฟอร์แมตไบนารี
- เนื่องจากผลลัพธ์เป็นข้อความธรรมดา จึงสามารถแทรกลงในเอกสาร โค้ด และสเปกได้แทบจะตรงๆ
- หากต้องการรูปภาพ ก็สามารถส่งออกเป็น PNG และ SVG ได้
การแสดงเอกสารทางเทคนิคและโมเดลข้อมูล
- text diagram ที่อยู่ในโค้ดและสเปกมีไว้เพื่อช่วยให้เข้าใจโครงสร้างได้รวดเร็ว
- การทำภาพของโครงสร้างข้อมูล อัลกอริทึม และฟอร์แมตข้อมูล มีความสำคัญต่อการช่วยให้ผู้อ่านมองเห็นความสัมพันธ์และลำดับการไหล
- เนื่องจากเวลาอ่านโค้ดมีมากกว่าเวลาเขียน แผนภาพข้อความจึงอาจช่วยได้ในกระบวนการดูแลรักษาและรีวิว
-
Mind map
- ผสานความเรียบง่ายของข้อความธรรมดาเข้ากับวิธีการแบบ mind map
- สามารถย้ายข้อความไปยังตำแหน่งที่ต้องการบนแคนวาสไร้ขีดจำกัดได้
- ไม่ถูกผูกไว้กับโครงสร้างเชิงเส้นของไฟล์ข้อความ
-
ER diagram
- แสดงโมเดลข้อมูลเป็นแผนภาพ entity-relationship แบบเรียบง่าย
- รองรับสัญลักษณ์ Crow’s Foot 3 แบบย่อย
ฟีเจอร์สำหรับสร้าง text art
- แบนเนอร์ สามารถสร้างได้ด้วยการคลิกเพียงครั้งเดียว
- มี FIGlet ติดตั้งมาในตัว และมี ฟอนต์ 148 แบบ รวมมาให้โดยพื้นฐาน
- รองรับฟอนต์แบบกำหนดเอง
- สามารถปรับขนาดกล่องข้อความ เปลี่ยนฟอนต์ และปรับการจัดแนวแบบอินเทอร์แอ็กทีฟได้โดยไม่ต้องใช้เทอร์มินัล
- เครื่องมือข้อความ ทำงานด้วยเอนจินข้อความแบบกำหนดเองที่อิง CoreText
- สามารถปรับการจัดแนว ตำแหน่ง ทิศทางการเดินบรรทัด และการเลื่อนบรรทัดได้
- สามารถเพิ่มเส้นขอบรอบข้อความได้ด้วยการคลิกครั้งเดียว
- เครื่องมือเส้น ช่วยให้การเชื่อมรูปร่างทำได้ง่าย และรองรับทั้งเส้นตั้งฉากและเส้นแบบขั้นบันได
- สามารถตั้งค่ารูปแบบเส้นประของเส้นได้
- สามารถยึดเส้นเข้ากับรูปร่างอื่นแบบไดนามิกผ่านจุดเชื่อมต่อ ทำให้ลดภาระการจัดวางใหม่หลังย้ายรูปร่าง
- เครื่องมือสี่เหลี่ยม เป็นฟังก์ชันสำหรับสร้างกล่องที่ใช้บ่อยใน text art
- สามารถกำหนดเส้นขอบและพื้นหลังได้ด้วยการคลิกไม่กี่ครั้ง
- สามารถเพิ่มเงาได้
- สามารถยึดเส้นเข้ากับตำแหน่งที่แม่นยำผ่านจุดเชื่อมต่อแบบกำหนดเอง
ฟีเจอร์เสริมที่ช่วยลดงานบนแคนวาส
- มี เครื่องมือวาดพื้นฐาน ได้แก่ Pencil, Eraser, Bucket Fill และ Picker
- สามารถวางภาพซ้อนบนแคนวาสเพื่อใช้เป็นแนวในการลอกแบบได้
- ฟีเจอร์ กลุ่ม ช่วยรวมหลายรูปร่างเป็นหนึ่งเดียว เพื่อให้คัดลอกและย้ายได้ง่าย
- ไกด์การจัดแนว ช่วยให้ไม่ต้องนับจำนวนตัวอักษรเองเวลาจัดวางเนื้อหาและปรับขนาด
- ฟีเจอร์ โฟกัส ช่วยให้ล็อกหรือซ่อนรูปร่างอื่นเมื่ออยากจดจ่อกับบางส่วนของแคนวาส
- สามารถซูมเพื่อโฟกัสกับองค์ประกอบที่มองเห็นอยู่ในขณะนั้นได้
- ทุกฟีเจอร์เข้าถึงได้ด้วย คีย์ลัด
- สามารถเลือกเครื่องมือได้อย่างรวดเร็วด้วยการกดปุ่มเดี่ยวโดยไม่ต้องใช้คีย์เสริม
การรองรับ macOS และเงื่อนไขของเครื่องมือบรรทัดคำสั่ง
- Monodraw ถูกออกแบบเป็น แอปเนทีฟสำหรับ macOS ตั้งแต่เอนจินจัดวางข้อความไปจนถึงอินเทอร์เฟซ
- text art สามารถส่งออกได้ด้วยวิธีคัดลอกไปวางในโปรแกรมแก้ไขข้อความที่ต้องการ
- ความต้องการของระบบคือ macOS 11 Big Sur ขึ้นไป
- สำหรับ macOS รุ่นเก่ากว่า สามารถใช้ Monodraw v1.3 ได้ โดยต้องใช้ macOS 10.10 Yosemite ขึ้นไป
- Monodraw v1.5 ต้องใช้ macOS 10.14 Mojave ขึ้นไป
- อินเทอร์เฟซบรรทัดคำสั่งรวมอยู่เฉพาะใน เวอร์ชันดาวน์โหลดโดยตรง เท่านั้น
- รวมอยู่ในเวอร์ชันที่ดาวน์โหลดโดยตรงจากเว็บไซต์และซื้อจาก สโตร์
- เวอร์ชัน Mac App Store ไม่สามารถรวมเครื่องมือบรรทัดคำสั่งได้เนื่องจากข้อจำกัดของ App Sandbox
- สามารถนำไปใช้ร่วมกับ version control hook เพื่อสร้างเอกสารอัตโนมัติขณะ commit ได้
- รองรับเอาต์พุต JSON ด้วย จึงนำไปใช้ในโปรแกรมได้ง่าย
- Monodraw ระบุว่าไม่มีการเก็บรวบรวมข้อมูลใดๆ เลย
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สุดท้ายก็กลับมาที่ Monodraw อยู่ดี
แอปอื่น ๆ มีฟีเจอร์และตัวเลือกสไตล์เยอะเกินไปจนโฟกัสกับเนื้อหาจริง ๆ ได้ยาก แต่ Monodraw ไม่ทำให้เสียสมาธิ
ถึงอย่างนั้นก็ยังมีฟีเจอร์มากพอให้ทำอะไรได้เยอะ และชอบ anchors เป็นพิเศษ: https://tamasruss.com/articles/monodraw-anchors
แต่เทคนิคนี้ก็เนี้ยบดี
นี่เป็นหนึ่งในแอปที่ชอบมากจริง ๆ และก็จ่ายเงินทันทีที่มันเปิดตัว
เคยใช้ทำเอกสารแบบนี้หลายครั้ง: https://github.com/ivank/potygen/blob/main/packages/potygen/...
ASCII อเนกประสงค์มาก เลยช่วยแทรกรูปที่ดูดีในจุดที่คาดไม่ถึงและทำให้เข้าใจง่ายขึ้น
ตัวอักษรยังปกติ แต่ดูเหมือนการเลือกฟอนต์ของ github จะจัดการ “ช่องว่างที่มีความหมาย” ในส่วนขยายได้ไม่ดี
กำลังดูแลลิสต์ เครื่องมือ text-to-diagram แบบเว็บ อยู่: https://xosh.org/text-to-diagram/
ตัวเลือกบนเว็บสำหรับเครื่องมือวาด ASCII แบบนี้ก็มี https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io เป็นต้น
เป็นเครื่องมือที่ผู้สร้าง SQLite ทำขึ้น: https://pikchr.org/home/doc/trunk/doc/userman.md
ในลิสต์นี้เหมือนจะมีแค่ https://textik.com/ ที่จัดการ เส้นทแยงมุม ได้ และเหมือนจะยังไม่มีฟีเจอร์เติมพื้นที่ด้วย
ไดอะแกรมที่ตั้งใจจะวาดก็เป็นประมาณนี้: https://pastebin.com/NPXFS1Fi
ผมทำกล่องกับสามเหลี่ยมใน textik.com ได้ แต่ต้องมานั่งแก้มุมหลายจุดด้วยมือและต้องเติมด้านในเอง
ถึง Monodraw จะราคาแค่ 10 ดอลลาร์ แต่ก็ยังไม่แน่ใจว่าจะจ่ายไหม เพราะเป็น แอปเนทีฟสำหรับ Mac เท่านั้น
ผมทำงานบนเว็บเยอะ ใช้หลายอุปกรณ์ และวาดไดอะแกรมแค่ปีละไม่กี่ครั้ง เลยรู้สึกว่าแบบเว็บหรือปลั๊กอิน VSCode น่าจะเหมาะกว่า
อาจมีเครื่องมือที่น่าสนใจอยู่
ชอบเครื่องมือนี้มากจริง ๆ
ใช้มันทำไดอะแกรมของ Mapless: https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
และยังใช้ทำเอกสารการตั้งค่า Pharo VM Plugin builder ด้วย: https://github.com/sebastianconcept/PharoPluginBuilder
สำหรับการวาดแค่สี่เหลี่ยมไม่กี่อัน มันดูอ้อมเกินไปหน่อย มีวิธีที่ง่ายกว่านี้ไหม?
ถ้ามันเป็น cross-platform จะดีมาก
อยากใช้บน Linux ด้วย
เข้าใจดีว่าการทำแอปที่ขัดเกลามาดีต้องใช้ความพยายามมาก แต่ก็อยากให้เครื่องมือทำแอปเดสก์ท็อปหันมารองรับ Linux, Windows, Mac ให้ดีกว่านี้
น่าจะเป็นหนึ่งในเหตุผลใหญ่ที่ทำให้เว็บแอปเพิ่มขึ้นเรื่อย ๆ
มันเหมาะกับแอปประเภทนี้มาก
เป็นเครื่องมือที่เจ๋งมาก
ถ้าอยากได้ทางเลือกแบบเว็บ ก็มี https://github.com/tuanchauict/MonoSketch ที่เพื่อนผมทำด้วย Kotlin
ส่วนผมก็ทำเวอร์ชันที่ยังไม่สมบูรณ์นักไว้ด้วย Rust: https://github.com/huytd/ascii-d
ดูดีนะ
https://asciiflow.com/ เป็นทางเลือกแบบเว็บ และเป็นเครื่องมือที่ใช้เป็นหลักมาราว 10 ปีแล้ว
แต่ก็ยังหาวิธีทำให้เบราว์เซอร์เรนเดอร์ฟอนต์แบบ fixed-width ได้อย่างถูกต้องไม่เจอสักที
ดูได้จากไดอะแกรมตัวอย่างในหน้านี้: http://uggly.bytester.net/#how-it-works
นี่เป็นแอปประเภทที่ถึงจะใช้แค่เป็นครั้งคราว ก็ยังอยากซื้อไว้และเก็บไว้ตลอด
ถ้าเคยใช้จริงก็อยากฟังด้วยว่านำไดอะแกรมที่สร้างไปใช้อย่างไร
พอนึกภาพสกรีนช็อตของไดอะแกรมออก แต่ต้นฉบับแบบข้อความน่าจะใหญ่เกินกว่าจะเอาไปใส่ในอะไรอย่างเทอร์มินัล
แอปนี้เข้าสู่ โหมดบำรุงรักษา ตั้งแต่ปี 2018 แล้ว หลังจากนั้นมีอะไรเปลี่ยนไปบ้างไหม? https://blog.helftone.com/monodraw-maintenance-mode/
ขอบคุณสำหรับเสียงตอบรับที่ดีต่อแอป
ช่วงนี้เวลาน้อยมาก เลยออกอัปเดตเพิ่มเติมได้ไม่มาก
กำลังทำฟีเจอร์ที่มีคนขอกันมากอยู่ไม่กี่อย่าง แต่ยังสัญญาไม่ได้ว่าจะปล่อยเมื่อไร
ปกติจะค่อย ๆ ทำให้คืบหน้าตอนช่วงวันหยุด
ถึงอย่างนั้นก็จะยังแก้ปัญหาที่เกิดจากการอัปเกรด OS ต่อไป และตั้งใจจะดูแลให้ผลิตภัณฑ์ยังใช้งานได้ต่อเนื่อง
เขาให้เหตุผลว่าการดูแลโปรเจกต์โอเพนซอร์สเป็นภาระใหญ่ และถ้าเปิดซอร์สผลิตภัณฑ์ที่เสร็จสมบูรณ์แล้ว ก็อาจมีการนำโคลนไปขายให้ลูกค้าที่ไม่รู้เรื่องได้
แต่ถ้าโอเพนซอร์ส ก็อาจมีผู้ร่วมพัฒนามาช่วยรับงานบางส่วนได้ และไลเซนส์บางประเภทก็สามารถป้องกันการขายโคลนแบบนั้นได้
เคยใช้เมื่อก่อนและชอบมาก
ถ้าจำไม่ผิด ข้อเสียอย่างหนึ่งคือถ้าจะเก็บฟีเจอร์เจ๋ง ๆ อย่าง anchor หรือกล่องที่ปรับขนาดได้ ก็ต้องใช้ฟอร์แมตไฟล์ภายในของมันเอง
การที่มันอ้างถึงภาพ ASCII ในเอกสาร Markdown โดยตรง ไม่ได้แปลว่าฟีเจอร์ทั้งหมดจะมีตามมาโดยอัตโนมัติ
ถ้าต้องการจริง ๆ ก็น่าจะแก้ได้ระดับหนึ่งด้วยอัลกอริทึมที่ฉลาดและ LLM และจริง ๆ ก็ใช้ LLM ช่วยร่างไดอะแกรม ASCII อยู่บ่อยพอสมควร และก็ได้ผลอยู่บ้าง
แต่ก็ยังหาสมดุลที่ดีไม่ได้ระหว่างการบำรุงรักษาได้ง่าย คือความสามารถในการจัดการกล่องให้เป็นกล่องและย้ายแล้วเส้นเชื่อมตามไปด้วย กับความพกพาได้ คือทุกอย่างเป็นข้อความล้วน
ถ้า Monodraw เวอร์ชันล่าสุดต่างออกไป หรือมีเครื่องมืออื่นที่แก้ปัญหานี้ได้ ก็อยากรู้เหมือนกัน
อย่างน้อย Monodraw ก็เหมาะกับผมมากกว่า artist mode ของ Emacs
สงสัยว่ามีไดอะแกรมเดิมที่อยากจัดการต่อเยอะไหม
ถ้าเริ่มทำตั้งแต่แรก ผมกลับคาดหวังว่าจะมี รูปแบบไฟล์เชิงนามธรรม แบบนี้อยู่แล้ว และมองมันคล้ายความสัมพันธ์ระหว่างไฟล์ต้นฉบับอย่าง PSD กับผลลัพธ์ที่เรนเดอร์แล้วอย่าง PNG
หรือจะมองว่าเหมือนความสัมพันธ์ระหว่างซอร์สโค้ดกับไบนารีก็ได้
การพาร์สผลลัพธ์กลับให้เป็นรูปแบบนามธรรมที่ยังมีความหมายอีกครั้ง น่าจะทำได้ยากมากถ้าจะให้สมบูรณ์แบบ