Blog

Xin chào từ devblog Gau

Đây là bài viết mẫu để kiểm tra pipeline dựng blog. Bạn có thể xoá file này khi đã sẵn sàng viết bài thật.

Cách dùng

  1. Mỗi bài viết là 1 file .md riêng trong web/blog/posts/, ví dụ toi-uu-fsm.md.
  2. Đầu file cần khối frontmatter: title (bắt buộc), date (bắt buộc), description (tuỳ chọn — chỉ dùng nội bộ, không hiện ra trang).
  3. Không cần khai slug — script tự tạo từ tên file (bỏ dấu, nối gạch ngang). Chỉ cần khai slug: riêng nếu muốn ghi đè.
  4. Viết nội dung bằng markdown thường: ##/### cho tiêu đề phụ, **đậm**, *nghiêng*, [link](url), list -, hoặc code block (rào bằng ba dấu backtick).
  5. Chạy:
python3 web/build-blog.py

Script gộp tất cả bài viết vào 1 trang duy nhất web/blog.html, hiển thị dạng feed — bài có date mới nhất lên trên cùng. Trang chỉ hiện sẵn vài bài đầu, có nút "Xem thêm bài viết" để tải thêm — giống trải nghiệm lướt feed Facebook, không có trang chi tiết riêng cho từng bài.

Mỗi bài vẫn có id neo trên trang (theo slug) nên chia sẻ được link tới đúng bài, ví dụ gau.io.vn/blog.html#xin-chao-tu-devblog-gau.

Gau đã trải qua những bài test chính tả nào?

Làm 1 ứng dụng gõ được ra chữ không hề khó. Nhưng để đảm bảo được nó gõ được qua hàng triệu từ không lỗi thì nó là 1 thử thách khác hẳn.

Trong qua trình xây dựng Gau, có tất cả 4 giai đoạn test chính mà Gau đã phải trải qua.

1. Gõ được các từ cơ bản

Cái này là dễ nhất. Một bộ gõ tiếng Việt đã chạy được và bạn có thể gõ 'đây là tiếng Việt' từ cụm 'ddaay laf tieengs Vieetj' mà ko thấy bị lỗi. Gau trải qua 1 cơ số file test đủ các kiểu từ tiếng Việt. Nó cũng tạm ổn, sau 1 thời gian chỉnh sửa thì nó đã ko báo lỗi, tất cả đi từ những thứ rất đơn giản như là:

("aa", "â"), ("ee", "ê"), ("oo", "ô"),
("aw", "ă"), ("ow", "ơ"), ("uw", "ư"),
("dd", "đ"), ("DD", "Đ"), ("Dd", "Đ"),
("AA", "Â"), ("EE", "Ê"), ("OO", "Ô"),

cho tới

("toasn", "toán"), ("hoasm", "hoám"), ("loangs", "loáng"),
("quasn", "quán"), ("quasng", "quáng"),
("tieesn", "tiến"), ("bieesp", "biếp"),
("muoosn", "muốn"), ("cuoosc", "cuốc"),
("muwowsn", "mướn"), ("luwowsng", "lướng"),
("gisa", "giá"), ("giaf", "già"), ("gioosng", "giống"),

2. Gõ được các từ quái dị

Lúc đầu tôi làm Gau chỉ gõ được tiếng Việt chuẩn. Việc này dựa trên 1 đống set về luật chính tả và tiếng Việt. Rule chung thường là:

phụ âm + nguyên âm + coda VD như từ hán

Tuy nhiên, mở rộng nghiên cứu ra thì nó rất nhiều nữa. VD như danh sách coda cho các nguyên âm cơ bản a e i o u y sẽ gồm:

a = c ch m n ng nh p t
e = c ch m n ng nh p t
i = c ch m n nh p t
o = c m n ng p t
u = c m n ng p t
y = ch n nh p t

Sau đó mới mở rộng ra gõ được các từ khó như là: bík, dzậy, zì, đôu... toàn những thuật ngữ genz+alpha khó chiều. Nhưng chúng hợp lý.