สวัสดีครับ ตอนนี้ผมกำลังทำ CLI tool ชื่อ mdpresent ที่จัดโครงสร้างเอกสาร Markdown ให้เป็นสื่อพรีเซนเทชัน แล้วเรนเดอร์ออกเป็น PPTX, HTML, PDF

GitHub: https://github.com/ch040602/MdPr
ตัวอย่างพรีวิวธีม: https://ch040602.github.io/MdPr/theme-preview/

[IMG] mdpresent cover

พอใช้งานเครื่องมือ Markdown-to-PPTX แบบเดิม ๆ ไปสักพัก ผมรู้สึกว่ามันใกล้เคียงกับการ “ยัดเอกสาร Markdown ลงไปเป็นสไลด์ตรง ๆ” มากกว่า ทำให้ควบคุมการแยกสไลด์ เลย์เอาต์ การล้นของเนื้อหา และการแสดงผลเชิงไดอะแกรมได้อย่างเสถียรค่อนข้างยาก

mdpresent จึงไม่ใช่แค่เครื่องมือที่แปลง Markdown เป็น PPTX โดยตรง แต่เป็นแนวทางที่แปลง Markdown ไปเป็น Presentation IR ก่อน จากนั้นสร้าง Layout IR แล้วให้ renderer สร้าง PPTX / HTML / PDF ออกมา

[IMG] mdpresent pipeline

จุดที่เน้นมีดังนี้

  • NO LLM runtime: ไม่เรียกใช้ LLM/API ภายนอกในกระบวนการ parsing, splitting, layout, validation, rendering
  • คง Markdown ไว้เป็นต้นฉบับ: แม้ไฟล์พรีเซนเทชันจะเป็นผลลัพธ์ที่สร้างขึ้น แต่เอกสารต้นฉบับก็ยังคงเป็น Markdown ที่มนุษย์อ่านและแก้ไขต่อได้
  • การแยกแบบอิงโครงสร้าง: แบ่งสไลด์โดยดูจาก heading, density, list count, sentence unit, diagram signal เป็นต้น
  • PPTX ที่แก้ไขได้: ไม่ใช้วิธีแปลงให้แบนเป็นรูปภาพ แต่พยายามสร้างข้อความ รูปร่าง การเน้น และป้ายหมายเลข ให้เป็นอ็อบเจ็กต์ที่แก้ไขได้มากที่สุด
  • เปรียบเทียบธีม/พรีเซ็ต: สามารถเรนเดอร์โครงสร้างพรีเซนเทชันเดียวกันด้วยดีไซน์พรีเซ็ตหลายแบบเพื่อเปรียบเทียบได้

[IMG] mdpresent markdown semantics

ตัวอย่างเช่น ผมพยายามไม่ทำให้ list, emphasis, block quote และการแสดง pipeline แบบใช้ลูกศรใน Markdown ถูก flatten กลายเป็นข้อความธรรมดา แต่เก็บรักษาไว้เป็นข้อมูลเชิงความหมายที่จำเป็นต่อการพรีเซนต์

ตัวอย่างการใช้งานแบบง่ายมีดังนี้

ตอนนี้ยังอยู่ในช่วงเริ่มต้น จึงอาจใกล้เคียงกับ เอนจินแบบ rule-based ที่ตีความ Markdown เป็นโครงสร้างสำหรับการพรีเซนต์ มากกว่าจะเป็นเครื่องมือสร้าง PPT อเนกประสงค์ที่สมบูรณ์ โดยเฉพาะผมมองถึงเวิร์กโฟลว์ที่เอเจนต์อย่าง Codex/Claude Code สร้างร่าง Markdown ขึ้นมา แล้วให้ local CLI เรนเดอร์ไฟล์พรีเซนเทชันออกมาแบบ deterministic เพื่อใช้เป็นทักษะเสริมด้านอัตโนมัติ

ประเด็นที่อยากขอฟีดแบ็กมีดังนี้

  1. ในไวยากรณ์ Markdown ยังมีโครงสร้างอะไรอีกไหมที่ควรถูกเก็บรักษาไว้เมื่อทำเป็นสื่อพรีเซนเทชัน
  2. ในการส่งออกเป็น PPTX ควรวางสมดุลระหว่าง ความสามารถในการแก้ไข กับ ความสมบูรณ์ด้านภาพ ไว้ตรงไหน
  3. ถ้าจะเลือกการแยกสไลด์/เลย์เอาต์แบบ rule-based โดยไม่ใช้ LLM เกณฑ์แบบไหนจึงจะฟังดูสมเหตุสมผล

ขอบคุณครับ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น