4 คะแนน โดย nemorize 2025-07-20 | 4 ความคิดเห็น | แชร์ทาง WhatsApp

เริ่มต้นจากการตั้งเป้าว่าจะทำบล็อกที่ไม่เสิร์ฟโค้ด JS ใด ๆ จากฝั่งฟรอนต์เอนด์เลย

บล็อกเดิมมีฟีเจอร์คอมเมนต์ที่ใช้ giscus อยู่
ดังนั้นการทำระบบคอมเมนต์โดยไม่ใช้ JS จึงเป็นอุปสรรคใหญ่ทีเดียว

ผมจึงใช้ Cloudflare Workers และ GitHub Actions เพื่อทำฟีเจอร์คอมเมนต์ขึ้นมา

มันทำงานตามลำดับด้านล่างนี้

  1. แสดงฟอร์มคอมเมนต์ที่โฮสต์อยู่บน Cloudflare Worker
  2. ผู้ใช้ล็อกอินด้วยบัญชี GitHub ผ่านฟอร์มคอมเมนต์นั้น แล้วส่งคอมเมนต์
  3. Worker จะ escape เนื้อหาคอมเมนต์ที่ส่งเข้ามา แล้วส่งต่อไปยัง GitHub ผ่าน workflow dispatches API ของ GitHub Actions
  4. GitHub Actions จะนำข้อมูลที่ได้รับมา เพิ่มโค้ดคอมเมนต์ลงในไฟล์ HTML ของโพสต์ และ commit การเปลี่ยนแปลงนั้น
  5. ผลลัพธ์ที่ถูก commit แล้วจะถูกนำขึ้นโปรดักชันตามขั้นตอน deploy ของ GitHub Pages Actions

จึงมีดีเลย์เล็กน้อยกว่าขั้นตอนข้อ 3-5 จะสะท้อนผล

ก็แก้แบบง่าย ๆ ด้วยการเพิ่มข้อความแจ้งไว้บรรทัดหนึ่ง บนแพลตฟอร์มบล็อกอย่าง WordPress มักมีฟีเจอร์ประมาณว่า "จะแสดงคอมเมนต์หลังผู้ดูแลตรวจสอบ" อยู่แล้ว ก็เลยทำเป็นว่าดีเลย์ระดับนั้นคือผู้ดูแลกำลังตรวจสอบอยู่ คุณที่กำลังอ่านบทความนี้ช่วยทำเป็นไม่รู้ไม่ชี้ก็พอ

แก้ปัญหาในมุม UX ได้...มั้งครับ ฮ่า ๆ

แนวทางนี้จะมีความหมายก็ต่อเมื่อเป็นบล็อกเล็ก ๆ ระดับบุคคลที่ยืนยันจะไม่ใช้ JS จริง ๆ เท่านั้น เลยมองกันแบบขำ ๆ สนุก ๆ ก็พอครับ 😅

ลองทดสอบได้โดยตรงจากลิงก์ด้านล่าง!
https://nemorize.me/blog/202507/blog-renewal

4 ความคิดเห็น

 
kylian 2025-07-21

ก็แค่เพิ่มข้อความแนะนำสักอันแล้วทำเป็นจบ ๆ ไป แพลตฟอร์มบล็อกอย่าง WordPress ก็มีฟังก์ชันอย่าง "เผยแพร่คอมเมนต์หลังผู้ดูแลตรวจสอบ" กันเป็นเรื่องปกติอยู่แล้ว ดังนั้นดีเลย์ประมาณนั้นก็ทำเป็นว่าผู้ดูแลกำลังตรวจสอบอยู่ก็แล้วกัน คนที่อ่านโพสต์นี้ก็แค่ช่วยทำเป็นไม่รู้ไม่ชี้ก็พอ <<

อัจฉริยะนี่นา..? 5555555555

 
aqqnucs 2025-07-22

จู่ ๆ ก็เกิดความสงสัยขึ้นมาว่า llm จะทำเรื่องแบบนี้ได้ไหมเหมือนกันนะ 555

 
huiya 2025-07-21

วิธีแก้ปัญหาเวลาแฝงแปลกใหม่และน่าสนุกมาก 👏

 
halfenif 2025-07-21

เป็น CMS แบบ headless ประเภทหนึ่งหรือเปล่าครับ? น่าสนใจดีครับ