Hugo
Hugo is a static website generator written in Go. Hugo is well known for its speed and claims to be the "worlds fastest" static website generator. It competes successfully against other "heavyweight" content management systems such as WordPress when dynamic content isn't needed.
Hugo website content is written lightweight human readable document description languages such as Markdown or ASCIIDoc. Configuration can be specified in YAML, TOML, or JSON.
Installation
USE flags
USE flags for www-apps/hugo Fast static HTML and CSS website generator
+extended
|
Enable SASS/SCSS and WebP encoding support |
doc
|
Add extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally |
test
|
Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently) |
Emerge
root #
emerge --ask www-apps/hugo
Environment variables
- HUGO_NUMWORKERMULTIPLIER — By default the number of logical CPUs will be used to set the number of hugo worker processes. This variable overrides that behavior.
Invocation
user $
hugo --help
-b, --baseURL string hostname (and path) to the root, e.g. https://spf13.com/ -D, --buildDrafts include content marked as draft -E, --buildExpired include expired content -F, --buildFuture include content with publishdate in the future --cacheDir string filesystem path to cache directory. Defaults: $TMPDIR/hugo_cache/ --cleanDestinationDir remove files from destination not found in static directories --clock string set the clock used by Hugo, e.g. --clock 2021-11-06T22:30:00.00+09:00 --config string config file (default is path/config.yaml|json|toml) --configDir string config dir (default "config") -c, --contentDir string filesystem path to content directory --debug debug output -d, --destination string filesystem path to write files to --disableKinds strings disable different kind of pages (home, RSS etc.) --enableGitInfo add Git revision, date, author, and CODEOWNERS info to the pages -e, --environment string build environment --forceSyncStatic copy all files when static is changed. --gc enable to run some cleanup tasks (remove unused cache files) after the build -h, --help help for hugo --ignoreCache ignores the cache directory --ignoreVendorPaths string ignores any _vendor for module paths matching the given Glob pattern -l, --layoutDir string filesystem path to layout directory --log enable Logging --logFile string log File path (if set, logging enabled automatically) --minify minify any supported output format (HTML, XML etc.) --noBuildLock don't create .hugo_build.lock file --noChmod don't sync permission mode of files --noTimes don't sync modification time of files --panicOnWarning panic on first WARNING log --poll string set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes --printI18nWarnings print missing translations --printMemoryUsage print memory usage to screen at intervals --printPathWarnings print warnings on duplicate target paths etc. --printUnusedTemplates print warnings on unused templates. --quiet build in quiet mode --renderToMemory render to memory (only useful for benchmark testing) -s, --source string filesystem path to read files relative from --templateMetrics display metrics about template executions --templateMetricsHints calculate some improvement hints when combined with --templateMetrics -t, --theme strings themes to use (located in /themes/THEMENAME/) --themesDir string filesystem path to themes directory --trace file write trace to file (not useful in general) -v, --verbose verbose output --verboseLog verbose logging -w, --watch watch filesystem for changes and recreate as needed
Create site
1. Run the following command to create a new site named quickstart
user $
hugo new site quickstart
2. Change into the newly created site directory:
user $
cd quickstart
3. Initialize a new Git repository for version control:
user $
git init
4. Append the following line to the config.toml file to disable any theme:
user $
echo "theme = " >> config.toml
5. Finally, start the Hugo server to preview your site locally:
user $
hugo server
You can now open your web browser and visit http://localhost:1313 to view your Hugo site without any theme applied.
Removal
root #
emerge --ask --depclean --verbose www-apps/hugo