เครื่องมือสร้างไดอะแกรม D2 เพิ่มฟีเจอร์แสดงผล ASCII แต่พบบั๊กโหมดมืดใน Playground

ทีมชุมชน BigGo
เครื่องมือสร้างไดอะแกรม D2 เพิ่มฟีเจอร์แสดงผล ASCII แต่พบบั๊กโหมดมืดใน Playground

D2 เครื่องมือสร้างไดอะแกรมแบบ diagram-as-code ที่ได้รับความนิยม ได้เปิดตัวเวอร์ชัน 0.7.1 ที่มาพร้อมกับความสามารถในการแสดงผลแบบข้อความ ASCII ฟีเจอร์ใหม่นี้ช่วยให้นักพัฒนาสามารถสร้างไดอะแกรมแบบข้อความที่สามารถฝังไว้ในคอมเมนต์ของซอร์สโค้ดและเอกสารได้โดยตรง

การแสดงผล ASCII นำไดอะแกรมเข้าสู่ไฟล์ข้อความ

อัปเดตล่าสุดนำเสนอวิธีง่ายๆ ในการสร้างไดอะแกรม ASCII โดยใช้นามสกุลไฟล์ .txt เมื่อผู้ใช้รันคำสั่ง d2 in.d2 out.txt เครื่องมือจะเปลี่ยนไปใช้โหมดการแสดงผล ASCII โดยอัตโนมัติ ฟีเจอร์นี้รองรับทั้งอักขระ Unicode box-drawing เป็นค่าเริ่มต้นและอักขระ ASCII มาตรฐานเพื่อความเข้ากันได้สูงสุดในระบบต่างๆ

ตัวแสดงผล ASCII ทำงานโดยการย่อขนาดเลย์เอาต์จากเอนจิ้นเลย์เอาต์ ELK และใช้การประมวลผลหลังเพื่อทำให้ผลลัพธ์กะทัดรัดมากขึ้น วิธีการนี้ทำให้สามารถรวมไดอะแกรมภาพไว้ในที่ที่รูปแบบภาพแบบดั้งเดิมใช้ไม่ได้ เช่น คอมเมนต์ในโค้ดหรือเอกสารข้อความธรรมดา

คำสั่ง ASCII Output ของ D2

  • การใช้งานพื้นฐาน: d2 in.d2 out.txt
  • โหมด ASCII มาตรฐาน: d2 in.d2 out.txt --ascii-mode=standard
  • ค่าเริ่มต้น: อักขระวาดกรอบแบบ Unicode
  • นามสกุลไฟล์: .txt จะเรียกใช้ตัวเรนเดอร์ ASCII โดยอัตโนมัติ

ชุมชนค้นพบปัญหาใน Playground

ผู้ใช้งานรุ่นแรกระบุปัญหาของฟีเจอร์ใหม่ได้อย่างรวดเร็ว ผู้ใช้รายงานว่าผลลัพธ์ ASCII แสดงเป็นข้อความสีดำบนพื้นหลังสีดำเมื่อใช้โหมดมืดใน playground ของ D2 ทำให้ไดอะแกรมมองไม่เห็นเลย ทีมพัฒนายอมรับความผิดพลาดนี้และกำลังดำเนินการแก้ไข

แม้จะมีปัญหาโหมดมืด แต่นักพัฒนาแสดงความสนใจในศักยภาพของฟีเจอร์นี้สำหรับการจัดทำเอกสารโค้ด ความสามารถในการแทนที่คำอธิบายข้อความที่ยาวเหยียดด้วยโฟลว์ภาพที่ชัดเจนโดยตรงในคอมเมนต์ซอร์สโค้ดอาจปรับปรุงความสามารถในการอ่านโค้ดได้อย่างมีนัยสำคัญ

เวอร์ชันบนเบราว์เซอร์พร้อมใช้งานแล้ว

การพัฒนาที่น่าสนใจเกิดขึ้นจากการสนทนาของชุมชนเกี่ยวกับความสามารถเว็บของ D2 ขณะนี้เครื่องมือทำงานได้ทั้งหมดในเบราว์เซอร์ผ่าน d2.js ซึ่งเป็นพอร์ต WebAssembly ที่ไม่จำเป็นต้องใช้เซิร์ฟเวอร์แบ็กเอนด์ การเปลี่ยนแปลงนี้แก้ไขข้อจำกัดก่อนหน้าที่ออนไลน์ playground ต้องการการประมวลผลฝั่งเซิร์ฟเวอร์สำหรับการสร้างไดอะแกรม

ข้อจำกัดของ ASCII Renderer

  • สไตล์: ไม่รองรับแอนิเมชัน ฟอนต์ และธีม
  • การจัดระยะห่าง: การจัดระยะห่างไม่สม่ำเสมอเนื่องจากพิกัดแบบไม่ต่อเนื่อง
  • ความเป็นไปได้ในอนาคต: สีสำหรับการแสดงผลใน terminal เส้นขอบคู่ และหลายสไตล์
  • สถานะ: อยู่ในขั้นตอน Alpha พร้อมการรายงานข้อผิดพลาดอย่างต่อเนื่อง

ข้อจำกัดปัจจุบันและแผนอนาคต

ตัวแสดงผล ASCII ยังคงอยู่ในขั้นตอนอัลฟ่าพร้อมข้อจำกัดที่ทราบหลายประการ ฟีเจอร์สไตล์เช่น แอนิเมชัน ฟอนต์ และธีมไม่ได้รับการสนับสนุน แม้ว่าตัวเลือกสไตล์พื้นฐานบางอย่างเช่น สีสำหรับเอาต์พุตเทอร์มินัลอาจถูกเพิ่มในรีลีสในอนาคต พื้นที่พิกัดแบบไม่ต่อเนื่องของการแสดงผล ASCII ยังสามารถส่งผลให้เกิดการเว้นวรรคที่ไม่สม่ำเสมอเมื่อเปรียบเทียบกับเอาต์พุต SVG

ทีมพัฒนากำลังรวบรวมความคิดเห็นและรายงานบั๊กอย่างแข็งขันขณะที่พวกเขาทำงานเพื่อปรับปรุงความเสถียรของฟีเจอร์และขยายความสามารถ

ASCII: American Standard Code for Information Interchange - มาตรฐานการเข้ารหัสอักขระสำหรับข้อความWebAssembly (WASM): รูปแบบคำสั่งไบนารีที่ช่วยให้โค้ดทำงานในเว็บเบราว์เซอร์ด้วยความเร็วใกล้เคียงกับเนทีฟ

อ้างอิง: ASCII output