Hugo is a powerful and fast static site generator written in Go. It's perfect for blogs, portfolios, company websites, and much more.
Prerequisites
Before you begin, make sure you have the following installed:
Step 1: Installing Hugo
To install Hugo on your system, use the following commands based on your operating system:
macOS
brew install hugoWindows (with Chocolatey)
choco install hugo -confirmLinux (with snap)
sudo snap install hugoStep 2: Creating a New Site
Once Hugo is installed, you can create a new site using the following command:
hugo new site mysiteReplace "mysite" with the name of your website.
This will create a new directory with the basic structure of a Hugo site.
Step 3: Adding Content
To add new content to your site, use the new command. For example, to create a new post:
cd mysite
hugo new posts/my-first-post.mdThis will create a new Markdown file under the posts directory. You can open this file and start writing your first post.
Step 4: Applying a Theme
Hugo uses themes to determine the look and feel of your site. There are many themes available on the Hugo Themes website.
To add a theme, you need to clone it into the themes directory of your Hugo site. For example, to install the Ananke theme:
git clone https://github.com/budparr/gohugo-theme-ananke.git themes/anankeThen, add the theme to your site's configuration file (the new updated Hugo changed the file name to hugo.toml):
echo 'theme = "ananke"' >> hugo.tomlStep 5: Building and Running Your Site
Once you've added content and chosen a theme, you can build your site and run it locally using the following command:
hugo server -DYou can then open your web browser and go to http://localhost:1313 to see your site.
Congratulations! You have now created your first Hugo website. Enjoy exploring Hugo's many features and creating more complex and interesting sites.
Step 6: Publish Your Website
I use github.io for my own website and connect it to my own domain. What you will need to do is run the command below so Hugo will package what it needs to a new folder called public and you can just base your repo root folder to be in that folder.
hugo -F --cleanDestinationDir