ส่วนขยายที่สร้างขึ้นเพื่อลดงานจุกจิกที่เกิดขึ้นระหว่างการเขียน Markdown ใน VS Code และ Windsurf

รวมการรับรู้บริบทจากคลิปบอร์ด, พรีวิวแบบสองทิศทาง, และความสามารถในการวิเคราะห์เอกสารไว้ในแพ็กเกจเดียว
Windsurf เป็นฟอร์กที่อิงจาก VS Code จึงรองรับทั้งสองฝั่งด้วย API เดียวกัน


เหตุผลที่สร้าง

ปัญหาที่คอนเทนต์ที่คัดลอกจากเว็บ/Word ถูกวางมาเป็น HTML ที่เสียรูปหรือ plain text
ต้องพึ่งพาเว็บไซต์แปลงภายนอกเมื่อป้อนข้อมูลตาราง
ต้นทุนในการเลื่อนหาเพิ่มขึ้นจากการไม่มีการซิงก์ตำแหน่งระหว่างพรีวิวกับเอดิเตอร์


ฟีเจอร์หลัก

  • Smart Paste

HTML → Markdown: ใช้เอนจิน Turndown พร้อม override กฎสำหรับตาราง GFM และ code block
แปลง TSV อัตโนมัติ: แทนที่ตารางที่คัดลอกจาก Excel/Google Sheets ให้เป็นตาราง Markdown ด้วย pipeline ที่อิง regex
เมื่อวาง URL ทับบนข้อความที่เลือกไว้ จะถูกครอบอัตโนมัติเป็นรูปแบบ [selected](url)

  • Bi-directional Preview

เมื่อมีการเปลี่ยนแปลง การเรนเดอร์ใหม่ทั้งหน้า → ทำให้เกิดปัญหา KaTeX กะพริบและสกรอลล์กระโดด
เปลี่ยนเป็นวิธี incremental update (incremental DOM patch)
ในขั้นตอนคอมไพล์ มีการแทรกแอตทริบิวต์ data-line ให้แต่ละ HTML node เพื่อแมปกับบรรทัดต้นฉบับ
เมื่อคลิกพรีวิว จะส่งหมายเลขบรรทัดไปยังเอดิเตอร์ผ่าน postMessage → ย้ายเคอร์เซอร์

  • Document X-Ray (แดชบอร์ดแถบด้านข้าง)

ประเมินจำนวนอักขระ/เวลาอ่านสำหรับเอกสารที่ผสมภาษาเกาหลี-อังกฤษ (อิงเกณฑ์ภาษาอังกฤษ 200wpm, ภาษาเกาหลี 500 ตัวอักษร/นาที)
โครงร่างเอกสารจากการพาร์ส heading tree + การนำทางด้วยการคลิก
ตรวจสุขภาพ 404 ของลิงก์ภายนอกในเอกสารแบบ asynchronous


ขอบเขตการรองรับปัจจุบัน

การรวม linter/formatter
การเรนเดอร์ KaTeX, Mermaid
การส่งออก HTML/PDF


แผนในอนาคต

ปรับปรุงประสิทธิภาพสำหรับเอกสารขนาดใหญ่ (incremental parsing)
เชื่อมต่อ AI assist (สรุป, ปรับแก้ประโยค)
โหมดเข้ากันได้กับ Obsidian Vault


บันทึกทางเทคนิค

Webview ของ VS Code Extension API เป็น sandbox ที่แยกจากเอดิเตอร์
หากไม่มีการทำ debouncing และ message batching ในการสื่อสารสองทิศทาง จะเกิดประสิทธิภาพลดลงในเอกสารขนาดใหญ่
แม้เป็นฟังก์ชันเดียวกัน แต่ประสิทธิภาพอาจต่างกันมากตามการออกแบบสถาปัตยกรรม


ลิงก์

GitHub: https://github.com/RAKKUNN/Marksmith
Page: https://rakkunn.github.io/MarkSmith/


รบกวนช่วยส่งฟีดแบ็กและรีวิวกันเยอะ ๆ ด้วยครับ!!
ขอบคุณครับ

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

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