c43daf45fUpdate build-options.md3ebbfedd4Build options: Improve readability5091bf6a0Improve safeHTMLAttr explanationb64cbce2eFix description of collections.Apply6ea264b9cnetlify: Hugo 0.115.4b42e7c542Revert "config: Remove disableLiveReload"35ce2290eRemove excess spaces in configuration docs2edf761deUpdate listed titleCaseStyle default value887f6fb97config: Remove disableLiveReloadc9f49fb26Fix typo37d8569acRemove tools associated with Atom871d11b72Fix URL in postprocess docsbbb17d29fUpdate GitLab workflowbc53ea5ceUse sentence-style capitalization for headings7ca578786netlify: Hugo 0.115.3c5e010bd0Merge branch 'tempv0.115.3'c885604bfRemove starter kits page4c0fe269eUpdate mention of Netlify CMS to Decap CMS05067175cConsistently use file name instead of filename763dd6404Improve multilingual config example and descriptionse5aa61ec5Use lowercase when referring to front matter (#2132)7ba3d0c72docs: Refresh docs.jsonde8bddedfUpdate description of timeout configuration valuee1245d9f8netify: Hugo 0.115.2153a36bdfMerge branch 'tempv0.115.2'707cec754Fix typo in figure example in shortcodes.md128cbe1e5Improve taxonomy template examples4e743ec36Improve highlight function examplef96fa6805transpile sass: Fixes typoe4a8a21f7Compile Sass to CSS, not SCSSc1538bd00docs: Regenerate CLI docsbd4e33436Add titleCaseStyle none and firstupper6ff93d478Update quick-start.md5c6653cb1Update build config examples and explanation1458d9a43Remove the `url` parameter6a1e92044netlify: Hugo 0.115.1a9d5d6f2fMerge branch 'tempv0.115.1'4c4882384docs: Regen docs helperd1aa1c1f5Add link to PowerShell vs Windows PowerShell documentation6e3b70c21Fix link to Git installation instructions4f8a9ca38Clarify resources.Copy argumentsee86dd121Update themedc7c305cfUpdate theme60c23920bClarify caching for resources.FromString (#2120)5bf2fef6dnetlify: Hugo 0.115.046bde87c5Merge branch 'tempv0.115.0'42cc48c16Specify target path caching for resources.ExecuteAsTemplate (#2027)a54bf4cd0Correct the sample code of mermaid (#2119)8c49b06fcdocs: Update permalinks documentationa4818d99bPage bundles: link to info about single vs. list page templates (#2116)3fc7744d7snap: Document removable media accessdbd08f58aUpdate themedf5b88633netlify: Hugo 0.114.16b859834aFix typo9ec92cf68Improve Dart Sass example for Netlify2d294ece9Add Dart Sass installation and usage documentation4c6b77d6cFix placement of curly braces897812a50Update template-debugging.md to include a jsonify example22bca519bUpdate GitHub Pages hosting instructions (#2109)a964d93ceDocument math functions new in v0.114.0 (#2108)9f4cb040enetlify: Hugo 0.114.055b4d9221Merge branch 'tempv0.114.0'93c4dcf93docs: Regen docshelper96f03c77fdocs: Regen CLI docs8e22a228aClarify resource media type variables (#2106)2652da8d4Update transform.Unmarshal.md (#2105)92657177aUpdate theme4601c1d65Update themea216f3145Merge commit '3c1deaf201a35de08d23cc58f8f03682cace3349'eed8794f5cache: Set default cache path based on $USER git-subtree-dir: docs git-subtree-split:c43daf45fd
6.1 KiB
title, description, categories, keywords, menu, weight, aliases, toc
| title | description | categories | keywords | menu | weight | aliases | toc | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Basic usage | Hugo's command line interface (CLI) is fully featured but simple to use, even for those with limited experience working from the command line. |
|
|
|
30 |
|
true |
Test your installation
After installing Hugo, test your installation by running:
hugo version
You should see something like:
hugo v0.105.0-0e3b42b4a9bdeb4d866210819fc6ddcf51582ffa+extended linux/amd64 BuildDate=2022-10-28T12:29:05Z VendorInfo=snap:0.105.0
Display available commands
To see a list of the available commands and flags:
hugo help
To get help with a subcommand, use the --help flag. For example:
hugo server --help
Build your site
To build your site, cd into your project directory and run:
hugo
The hugo command builds your site, publishing the files to the public directory. To publish your site to a different directory, use the --destination flag or set publishDir in your site configuration.
{{% note %}}
Hugo does not clear the public directory before building your site. Existing files are overwritten, but not deleted. This behavior is intentional to prevent the inadvertent removal of files that you may have added to the public directory after the build.
Depending on your needs, you may wish to manually clear the contents of the public directory before every build. {{% /note %}}
Draft, future, and expired content
Hugo allows you to set draft, date, publishDate, and expiryDate in the front matter of your content. By default, Hugo will not publish content when:
- The
draftvalue istrue - The
dateis in the future - The
publishDateis in the future - The
expiryDateis in the past
You can override the default behavior when running hugo or hugo server with command line flags:
hugo --buildDrafts # or -D
hugo --buildExpired # or -E
hugo --buildFuture # or -F
Although you can also set these values in your site configuration, it can lead to unwanted results unless all content authors are aware of, and understand, the settings.
{{% note %}}
As noted above, Hugo does not clear the public directory before building your site. Depending on the current evaluation of the four conditions above, after the build your public directory may contain extraneous files from a previous build.
A common practice is to manually clear the contents of the public directory before each build to remove draft, expired, and future content.
{{% /note %}}
Develop and test your site
To view your site while developing layouts or creating content, cd into your project directory and run:
hugo server
The hugo server command builds your site into memory, and serves your pages using a minimal HTTP server. When you run hugo server it will display the URL of your local site:
Web Server is available at http://localhost:1313/
While the server is running, it watches your project directory for changes to assets, configuration, content, data, layouts, translations, and static files. When it detects a change, the server rebuilds your site and refreshes your browser using LiveReload.
Most Hugo builds are so fast that you may not notice the change unless you are looking directly at your browser.
LiveReload
While the server is running, Hugo injects JavaScript into the generated HTML pages. The LiveReload script creates a connection from the browser to the server via web sockets. You do not need to install any software or browser plugins, nor is any configuration required.
Automatic redirection
When editing content, if you want your browser to automatically redirect to the page you last modified, run:
hugo server --navigateToChanged
Deploy your site
{{% note %}} As noted above, Hugo does not clear the public directory before building your site. Manually clear the contents of the public directory before each build to remove draft, expired, and future content. {{% /note %}}
When you are ready to deploy your site, run:
hugo
This builds your site, publishing the files to the public directory. The directory structure will look something like this:
public/
├── categories/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── post/
│ ├── my-first-post/
│ │ └── index.html
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── tags/
│ ├── index.html
│ └── index.xml <-- RSS feed for this section
├── index.html
├── index.xml <-- RSS feed for the site
└── sitemap.xml
In a simple hosting environment, where you typically ftp, rsync, or scp your files to the root of a virtual host, the contents of the public directory are all that you need.
Most of our users deploy their sites using a CI/CD workflow, where a push1 to their GitHub or GitLab repository triggers a build and deployment. Popular providers include AWS Amplify, CloudCannon, Cloudflare Pages, GitHub Pages, GitLab Pages, and Netlify.
Learn more in the hosting and deployment section.
-
The Git repository contains the entire project directory, typically excluding the public directory because the site is built after the push. ↩︎