Hugo là gì?
Hugo là một static site generator viết bằng Go, build ra HTML/CSS thuần, không cần Node.js hay npm để chạy (chỉ cần 1 binary duy nhất). Điểm nổi bật nhất: tốc độ build — một site vài nghìn trang thường build xong trong vài giây, nhờ Hugo là chương trình Go biên dịch sẵn, không chạy qua máy ảo JS như hầu hết SSG khác (Astro, Next.js, Gatsby…).
Content-first, không có component
Khác với Astro (dùng Islands Architecture, có thể nhúng component
React/Vue), Hugo thuần về template + nội dung: bạn viết bài bằng
Markdown, Hugo render qua Go template (cú pháp {{ .Title }},
{{ range .Pages }}…) để ra HTML. Không có khái niệm “component” hay
JS framework tích hợp sẵn — muốn tương tác thì tự thêm script, Hugo không
quản lý phần đó.
Cấu trúc thư mục
content/ # bài viết Markdown, mỗi thư mục con là 1 "section"
posts/my-post.md
layouts/ # Go template quyết định cách render từng loại nội dung
posts/single.html
_default/list.html
static/ # asset copy nguyên vẹn sang output
themes/ # theme cài sẵn, có thể override từng phần
config.toml # cấu hình site (hoặc .yaml/.json)
Hugo tự nối content/ với layouts/ theo quy ước tên file/section — bài
trong content/posts/ tự động dùng layout layouts/posts/single.html nếu
có, không cần khai báo route thủ công.
Shortcodes
Vì Markdown thuần không nhúng được logic, Hugo có shortcode — cú pháp
kiểu {{< youtube abc123 >}} chèn vào bài Markdown để hiển thị nội dung
phức tạp (video, gallery…) mà không cần viết HTML tay trong file .md.
Taxonomies (tags/categories) có sẵn
Hugo hỗ trợ taxonomies ngay trong core — khai tags: ["aws"] trong
frontmatter là tự có trang liệt kê theo tag, không cần tự dựng logic như
phải làm thủ công ở nhiều SSG khác.
Khi nào nên dùng Hugo
- Site nội dung thuần Markdown, không cần component tương tác
- Site rất nhiều trang (hàng nghìn bài viết trở lên) và build speed là ưu tiên hàng đầu
- Muốn một binary gọn nhẹ, không phụ thuộc hệ sinh thái Node.js
Không hợp nếu bạn cần nhúng component React/Vue/Svelte trực tiếp vào trang (khi đó Astro linh hoạt hơn nhiều), hoặc team đã quen thuộc với JS/TypeScript hơn là cú pháp Go template.
Tài liệu tham khảo
Tài liệu chính thức: gohugo.io/documentation