parent
1158e63072
commit
0450d69fc6
6 changed files with 142 additions and 4 deletions
|
@ -499,16 +499,26 @@ func (r *rootCommand) IsTestRun() bool {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *rootCommand) Init(cd *simplecobra.Commandeer) error {
|
func (r *rootCommand) Init(cd *simplecobra.Commandeer) error {
|
||||||
|
return r.initRootCommand("", cd)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *rootCommand) initRootCommand(subCommandName string, cd *simplecobra.Commandeer) error {
|
||||||
cmd := cd.CobraCommand
|
cmd := cd.CobraCommand
|
||||||
cmd.Use = "hugo [flags]"
|
commandName := "hugo"
|
||||||
cmd.Short = "hugo builds your site"
|
if subCommandName != "" {
|
||||||
cmd.Long = `hugo is the main command, used to build your Hugo site.
|
commandName = subCommandName
|
||||||
|
}
|
||||||
|
cmd.Use = fmt.Sprintf("%s [flags]", commandName)
|
||||||
|
cmd.Short = fmt.Sprintf("%s builds your site", commandName)
|
||||||
|
cmd.Long = `COMMAND_NAME is the main command, used to build your Hugo site.
|
||||||
|
|
||||||
Hugo is a Fast and Flexible Static Site Generator
|
Hugo is a Fast and Flexible Static Site Generator
|
||||||
built with love by spf13 and friends in Go.
|
built with love by spf13 and friends in Go.
|
||||||
|
|
||||||
Complete documentation is available at https://gohugo.io/.`
|
Complete documentation is available at https://gohugo.io/.`
|
||||||
|
|
||||||
|
cmd.Long = strings.ReplaceAll(cmd.Long, "COMMAND_NAME", commandName)
|
||||||
|
|
||||||
// Configure persistent flags
|
// Configure persistent flags
|
||||||
cmd.PersistentFlags().StringVarP(&r.source, "source", "s", "", "filesystem path to read files relative from")
|
cmd.PersistentFlags().StringVarP(&r.source, "source", "s", "", "filesystem path to read files relative from")
|
||||||
_ = cmd.MarkFlagDirname("source")
|
_ = cmd.MarkFlagDirname("source")
|
||||||
|
|
|
@ -14,6 +14,8 @@
|
||||||
package commands
|
package commands
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
|
|
||||||
"github.com/bep/simplecobra"
|
"github.com/bep/simplecobra"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -21,6 +23,7 @@ import (
|
||||||
func newExec() (*simplecobra.Exec, error) {
|
func newExec() (*simplecobra.Exec, error) {
|
||||||
rootCmd := &rootCommand{
|
rootCmd := &rootCommand{
|
||||||
commands: []simplecobra.Commander{
|
commands: []simplecobra.Commander{
|
||||||
|
newHugoBuildCmd(),
|
||||||
newVersionCmd(),
|
newVersionCmd(),
|
||||||
newEnvCommand(),
|
newEnvCommand(),
|
||||||
newServerCommand(),
|
newServerCommand(),
|
||||||
|
@ -38,3 +41,33 @@ func newExec() (*simplecobra.Exec, error) {
|
||||||
|
|
||||||
return simplecobra.New(rootCmd)
|
return simplecobra.New(rootCmd)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func newHugoBuildCmd() simplecobra.Commander {
|
||||||
|
return &hugoBuildCommand{}
|
||||||
|
}
|
||||||
|
|
||||||
|
// hugoBuildCommand just delegates to the rootCommand.
|
||||||
|
type hugoBuildCommand struct {
|
||||||
|
rootCmd *rootCommand
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hugoBuildCommand) Commands() []simplecobra.Commander {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hugoBuildCommand) Name() string {
|
||||||
|
return "build"
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hugoBuildCommand) Init(cd *simplecobra.Commandeer) error {
|
||||||
|
c.rootCmd = cd.Root.Command.(*rootCommand)
|
||||||
|
return c.rootCmd.initRootCommand("build", cd)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hugoBuildCommand) PreRun(cd, runner *simplecobra.Commandeer) error {
|
||||||
|
return c.rootCmd.PreRun(cd, runner)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *hugoBuildCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args []string) error {
|
||||||
|
return c.rootCmd.Run(ctx, cd, args)
|
||||||
|
}
|
||||||
|
|
|
@ -70,6 +70,7 @@ hugo [flags]
|
||||||
|
|
||||||
### SEE ALSO
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [hugo build](/commands/hugo_build/) - build builds your site
|
||||||
* [hugo completion](/commands/hugo_completion/) - Generate the autocompletion script for the specified shell
|
* [hugo completion](/commands/hugo_completion/) - Generate the autocompletion script for the specified shell
|
||||||
* [hugo config](/commands/hugo_config/) - Print the site configuration
|
* [hugo config](/commands/hugo_config/) - Print the site configuration
|
||||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||||
|
|
74
docs/content/en/commands/hugo_build.md
Normal file
74
docs/content/en/commands/hugo_build.md
Normal file
|
@ -0,0 +1,74 @@
|
||||||
|
---
|
||||||
|
title: "hugo build"
|
||||||
|
slug: hugo_build
|
||||||
|
url: /commands/hugo_build/
|
||||||
|
---
|
||||||
|
## hugo build
|
||||||
|
|
||||||
|
build builds your site
|
||||||
|
|
||||||
|
### Synopsis
|
||||||
|
|
||||||
|
build is the main command, used to build your Hugo site.
|
||||||
|
|
||||||
|
Hugo is a Fast and Flexible Static Site Generator
|
||||||
|
built with love by spf13 and friends in Go.
|
||||||
|
|
||||||
|
Complete documentation is available at https://gohugo.io/.
|
||||||
|
|
||||||
|
```
|
||||||
|
hugo build [flags]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Options
|
||||||
|
|
||||||
|
```
|
||||||
|
-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
|
||||||
|
--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 hugo.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 build
|
||||||
|
--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
|
||||||
|
--logLevel string log level (debug|info|warn|error)
|
||||||
|
--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
|
||||||
|
--renderSegments strings named segments to render (configured in the segments config)
|
||||||
|
-M, --renderToMemory render to memory (mostly useful when running the server)
|
||||||
|
-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
|
||||||
|
-w, --watch watch filesystem for changes and recreate as needed
|
||||||
|
```
|
||||||
|
|
||||||
|
### SEE ALSO
|
||||||
|
|
||||||
|
* [hugo](/commands/hugo/) - hugo builds your site
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Test the gen commands.
|
# Test the gen commands.
|
||||||
# Note that adding new commands will require updating the NUM_COMMANDS value.
|
# Note that adding new commands will require updating the NUM_COMMANDS value.
|
||||||
env NUM_COMMANDS=43
|
env NUM_COMMANDS=44
|
||||||
|
|
||||||
hugo gen -h
|
hugo gen -h
|
||||||
stdout 'A collection of several useful generators\.'
|
stdout 'A collection of several useful generators\.'
|
||||||
|
|
20
testscripts/commands/hugo_build.txt
Normal file
20
testscripts/commands/hugo_build.txt
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# Test the hugo build command (alias for hugo)
|
||||||
|
|
||||||
|
hugo build
|
||||||
|
stdout 'Pages.*|1'
|
||||||
|
stdout 'Total in'
|
||||||
|
checkfile public/index.html
|
||||||
|
checkfile public/p1/index.html
|
||||||
|
grep 'IsServer: false;IsProduction: true' public/index.html
|
||||||
|
|
||||||
|
-- hugo.toml --
|
||||||
|
baseURL = "http://example.org/"
|
||||||
|
disableKinds = ["RSS", "sitemap", "robotsTXT", "404", "taxonomy", "term"]
|
||||||
|
-- layouts/index.html --
|
||||||
|
Home|IsServer: {{ hugo.IsServer }};IsProduction: {{ hugo.IsProduction }}|
|
||||||
|
-- layouts/_default/single.html --
|
||||||
|
Title: {{ .Title }}
|
||||||
|
-- content/p1.md --
|
||||||
|
---
|
||||||
|
title: "P1"
|
||||||
|
---
|
Loading…
Add table
Reference in a new issue