Obiz Solutions

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