4 điểm bởi nemorize 2025-07-20 | 4 bình luận | Chia sẻ qua WhatsApp

Tôi bắt đầu dự án này với mục tiêu xây dựng một blog không phục vụ bất kỳ đoạn mã JS nào ở phía frontend.

Blog hiện tại đã có tính năng bình luận dùng giscus,
nên việc triển khai bình luận mà không dùng JS là một trở ngại khá lớn.

Tôi đã triển khai tính năng bình luận bằng Cloudflare Workers và GitHub Actions.

Hệ thống hoạt động theo luồng dưới đây.

  1. Hiển thị biểu mẫu bình luận được host trên Cloudflare Worker.
  2. Người dùng đăng nhập bằng tài khoản GitHub thông qua biểu mẫu đó và gửi bình luận.
  3. Worker escape nội dung bình luận đã nhận, rồi chuyển nội dung đó lên GitHub thông qua workflow dispatches API của GitHub Actions.
  4. GitHub Actions dựa trên nội dung đã nhận để thêm mã bình luận vào file HTML của bài viết và commit thay đổi đó.
  5. Kết quả đã được commit sẽ được đưa vào production theo quy trình triển khai của GitHub Pages Actions.

Do được áp dụng theo quy trình ở bước 3-5 nên sẽ có một chút độ trễ để phản ánh thay đổi...

Tôi đã xử lý gọn bằng cách đơn giản là thêm một dòng thông báo. Trên các nền tảng blog như WordPress, những tính năng kiểu "bình luận chỉ hiển thị sau khi quản trị viên duyệt" vốn đã rất phổ biến, nên tôi cứ coi như khoảng trễ đó là lúc quản trị viên đang giả vờ kiểm duyệt. Chỉ cần bạn đang đọc bài này vờ như không biết là được.

Về mặt UX thì coi như đã giải quyết xong rồi haha

Đây chỉ là một hướng đi có ý nghĩa khi bạn thực sự muốn tránh dùng JS cho một blog cá nhân quy mô nhỏ, nên mong mọi người xem cho vui thôi nhé😅

Bạn có thể tự mình thử trực tiếp ở liên kết bên dưới!
https://nemorize.me/blog/202507/blog-renewal

4 bình luận

 
kylian 2025-07-21

Chỉ bằng cách thêm một câu thông báo hướng dẫn là coi như xong. Trên các nền tảng blog như WordPress, những tính năng kiểu "chỉ công khai bình luận sau khi quản trị viên duyệt" vốn đã rất phổ biến, nên mức độ trễ đó thì cứ giả vờ như quản trị viên đang kiểm duyệt là được. Chỉ cần mỗi bạn đang đọc bài này giả bộ không biết là ổn. <<

Thiên tài thật chứ..?haha

 
aqqnucs 2025-07-22

Chợt nhiên mình cũng tò mò không biết liệu LLM có làm được chuyện này không nữa haha

 
huiya 2025-07-21

Cách giải quyết độ trễ thật mới lạ và thú vị 👏

 
halfenif 2025-07-21

Có phải kiểu headless CMS không nhỉ? Thú vị đấy.