Lewati ke konten
Kembali ke Blog

Cara Setup Hugo Static Site Generator

Β· Β· 3 menit baca

Hugo adalah static site generator tercepat yang ditulis dalam Go. Mari pelajari cara setup dan penggunaannya.

Installing Hugo

Ubuntu/Debian

# Using apt
sudo apt install hugo

wget https://github.com/gohugoio/hugo/releases/download/v0.121.0/hugo_extended_0.121.0_linux-amd64.deb sudo dpkg -i hugo_extended_0.121.0_linux-amd64.deb

macOS

brew install hugo

Verify Installation

hugo version

Creating New Site

Initialize Project

# Create new site
hugo new site mysite

Navigate to directory

cd mysite

Project Structure

mysite/
β”œβ”€β”€ archetypes/
β”œβ”€β”€ assets/
β”œβ”€β”€ content/
β”œβ”€β”€ data/
β”œβ”€β”€ layouts/
β”œβ”€β”€ static/
β”œβ”€β”€ themes/
└── hugo.toml

Adding Theme

Install Theme

# Initialize git
git init

Add theme as submodule

git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke

Configure Theme

# hugo.toml
baseURL = 'https://example.org/'
languageCode = 'id'
title = 'My Website'
theme = 'ananke'

Creating Content

New Post

hugo new posts/my-first-post.md

Post Structure

---
title: "My First Post"
date: 2026-01-07T00:00:00+07:00
draft: false
tags: ["tag1", "tag2"]
categories: ["category1"]
---

Content goes here...

Content Organization

content/
β”œβ”€β”€ _index.md
β”œβ”€β”€ about.md
β”œβ”€β”€ posts/
β”‚   β”œβ”€β”€ _index.md
β”‚   β”œβ”€β”€ first-post.md
β”‚   └── second-post.md
└── projects/
    └── project-1.md

Running Development Server

Start Server

# Start dev server
hugo server -D

With live reload on localhost:1313

Options

# Different port
hugo server -p 3000

Include drafts

hugo server -D

Bind to all interfaces

hugo server --bind 0.0.0.0

Hugo Templates

Base Template

<!-- layouts/_default/baseof.html -->
<!DOCTYPE html>
<html lang="{{ .Site.LanguageCode }}">
  <head>
    <meta charset="UTF-8" />
    <title>{{ .Title }} | {{ .Site.Title }}</title>
  </head>
  <body>
    {{ block "main" . }}{{ end }}
  </body>
</html>

Single Template

<!-- layouts/_default/single.html -->
{{ define "main" }}
<article>
  <h1>{{ .Title }}</h1>
  <time>{{ .Date.Format "2 January 2006" }}</time>
  {{ .Content }}
</article>
{{ end }}

List Template

<!-- layouts/_default/list.html -->
{{ define "main" }}
<h1>{{ .Title }}</h1>
{{ range .Pages }}
<article>
  <a href="{{ .Permalink }}">{{ .Title }}</a>
</article>
{{ end }} {{ end }}

Configuration

hugo.toml

baseURL = 'https://example.org/'
languageCode = 'id'
title = 'My Website'
theme = 'ananke'

[params] description = "My personal website" author = "John Doe"

[menu] [[menu.main]] name = "Home" url = "/" weight = 1 [[menu.main]] name = "Posts" url = "/posts/" weight = 2

Building for Production

Build Command

# Build static files
hugo

Output in public/ directory

Deployment Options

# Build with minification
hugo --minify

Build to custom directory

hugo -d dist/

Shortcodes

Built-in Shortcodes

<!-- YouTube embed -->

{{ </ youtube VIDEO_ID />}}

<!-- Twitter embed -->

{{ </ tweet USER STATUS_ID />}}

<!-- Figure with caption -->

{{ </ figure src="/images/photo.jpg" title="Caption" />}}

Custom Shortcode

<!-- layouts/shortcodes/alert.html -->
<div class="alert alert-{{ .Get 0 }}">{{ .Inner }}</div>
{{ </* alert warning */>}}
This is a warning message.
{{ </* /alert */>}}

Kesimpulan

Hugo menyediakan kecepatan build yang luar biasa dengan flexibility dalam templating. Perfect untuk blog, documentation, dan portfolio sites.

Ditulis oleh

Hendra Wijaya

Hanya hamba Allah Ta'ala yang berusaha berbuat baik..

Tinggalkan Komentar

Email tidak akan ditampilkan.