# Completions for Hugo (https://gohugo.io) # Functions function __fish_hugo_command set -l tokens (commandline -opc) test (count $tokens) -le 1; and return 1 set -l command "" set -l skip 1 for token in $tokens[2..-1] if test $skip -eq 0 set skip 1 else switch $token case "--config" "--logFile" set skip 0 case "-*" case "*" set command (string trim -l "$command $token") end end end test (count $command) -eq 0; and return 1 echo $command end function __fish_hugo_using_command set -l command (__fish_hugo_command) test "$command" = "$argv" end function __fish_hugo_using_main_like_command set -l command (__fish_hugo_command) switch "$command" case "" benchmark server return 0 end return 1 end # Global options complete -c hugo -l config -f -d "Configuration file" complete -c hugo -l debug -f -d "Debug output" complete -c hugo -l log -f -d "Enable logging" complete -c hugo -l logFile -r -d "Log file" complete -c hugo -l quiet -f -d "Quiet mode" complete -c hugo -s v -l verbose -f -d "Verbose output" complete -c hugo -l verboseLog -f -d "Verbose logging" # Main-like commands complete -c hugo -n "__fish_hugo_using_main_like_command" -s b -l baseURL -r -d "Hostname and path to the root" complete -c hugo -n "__fish_hugo_using_main_like_command" -s B -l buildDrafts -f -d "Include content marked as draft" complete -c hugo -n "__fish_hugo_using_main_like_command" -s E -l buildExpired -f -d "Include expired content" complete -c hugo -n "__fish_hugo_using_main_like_command" -s F -l buildFuture -f -d "Include content with publishdate in the future" complete -c hugo -n "__fish_hugo_using_main_like_command" -l cacheDir -f -a "(__fish_complete_directories (commandline -ct) 'Cache directory')" -d "Cache directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -l canonifyURLs -f -d "Canonicalize all relative URLs using baseurl" complete -c hugo -n "__fish_hugo_using_main_like_command" -l cleanDestinationDir -f -d "Remove files from destination not found in static directories" complete -c hugo -n "__fish_hugo_using_main_like_command" -s c -l contentDir -f -a "(__fish_complete_directories (commandline -ct) 'Content directory')" -d "Content directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -s d -l destination -f -a "(__fish_complete_directories (commandline -ct) 'Destination directory')" -d "Destination directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -l disable404 -f -d "Do not build 404 page" complete -c hugo -n "__fish_hugo_using_main_like_command" -l disableKinds -r -d "Disable different kinds of pages" complete -c hugo -n "__fish_hugo_using_main_like_command" -l disableRSS -f -d "Do not build RSS files" complete -c hugo -n "__fish_hugo_using_main_like_command" -l disableSitemap -f -d "Do not build sitemap files" complete -c hugo -n "__fish_hugo_using_main_like_command" -l enableGitInfo -f -d "Add Git revision, date and author info to the pages" complete -c hugo -n "__fish_hugo_using_main_like_command" -l forceSyncStatic -f -d "Copy all files when static is changed" complete -c hugo -n "__fish_hugo_using_main_like_command" -s h -l help -f -d "Help for hugo" complete -c hugo -n "__fish_hugo_using_main_like_command" -l i18n-warnings -f -d "Print missing translations" complete -c hugo -n "__fish_hugo_using_main_like_command" -l ignoreCache -f -d "Ignore the cache directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -s l -l layoutDir -f -a "(__fish_complete_directories (commandline -ct) 'Layout directory')" -d "Layout directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -l noChmod -f -d "Do not sync permission mode of files" complete -c hugo -n "__fish_hugo_using_main_like_command" -l noTimes -f -d "Do not sync modification time of files" complete -c hugo -n "__fish_hugo_using_main_like_command" -l pluralizeListTitles -f -d "Pluralize titles in lists using inflect" complete -c hugo -n "__fish_hugo_using_main_like_command" -l preserveTaxonomyNames -f -d "Preserve taxonomy names as written" complete -c hugo -n "__fish_hugo_using_main_like_command" -l renderToMemory -f -d "Render to memory" complete -c hugo -n "__fish_hugo_using_main_like_command" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -l stepAnalysis -f -d "Display memory and timing of different steps of the program" complete -c hugo -n "__fish_hugo_using_main_like_command" -l templateMetrics -f -d "Display metrics about template executions" complete -c hugo -n "__fish_hugo_using_main_like_command" -l templateMetricsHints -f -d "Calculate some improvement hints when combined with --templateMetrics" complete -c hugo -n "__fish_hugo_using_main_like_command" -s t -l theme -r -d "Theme to use" complete -c hugo -n "__fish_hugo_using_main_like_command" -l themesDir -f -a "(__fish_complete_directories (commandline -ct) 'Themes directory')" -d "Themes directory" complete -c hugo -n "__fish_hugo_using_main_like_command" -l uglyURLs -f -d "Use /filename.html instead of /filename/" complete -c hugo -n "__fish_hugo_using_main_like_command" -s w -l watch -f -d "Watch filesystem for changes and recreate as needed" # Commands # benchmark complete -c hugo -n "not __fish_hugo_command" -f -a benchmark -d "Benchmark Hugo by building the site a number of times" complete -c hugo -n "__fish_hugo_using_command benchmark" -s n -l count -f -d "Number of times to build the site" complete -c hugo -n "__fish_hugo_using_command benchmark" -l cpuprofile -r -d "CPU profile file" complete -c hugo -n "__fish_hugo_using_command benchmark" -s h -l help -f -d "Help for benchmark" complete -c hugo -n "__fish_hugo_using_command benchmark" -l memprofile -r -d "Memory profile file" complete -c hugo -n "__fish_hugo_using_command benchmark" -l renderToMemory -f -d "Render to memory" complete -c hugo -n "__fish_hugo_using_command benchmark" -l stepAnalysis -f -d "Display memory and timing of different steps of the program" complete -c hugo -n "__fish_hugo_using_command benchmark" -l templateMetrics -f -d "Display metrics about template executions" complete -c hugo -n "__fish_hugo_using_command benchmark" -l templateMetricsHints -f -d "Calculate some improvement hints when combined with --templateMetrics" # check complete -c hugo -n "not __fish_hugo_command" -f -a check -d "Perform some verification checks" complete -c hugo -n "__fish_hugo_using_command check" -s h -l help -f -d "Help for check" # check ulimit complete -c hugo -n "__fish_hugo_using_command check" -f -a ulimit -d "Check system ulimit settings" complete -c hugo -n "__fish_hugo_using_command check ulimit" -s h -l help -f -d "Help for ulimit" # config complete -c hugo -n "not __fish_hugo_command" -f -a config -d "Print the site configuration" complete -c hugo -n "__fish_hugo_using_command config" -s h -l help -f -d "Help for config" # convert complete -c hugo -n "not __fish_hugo_command" -f -a convert -d "Convert the content to different formats" complete -c hugo -n "__fish_hugo_using_command convert" -s h -l help -f -d "Help for convert" complete -c hugo -n "__fish_hugo_using_command convert" -s o -l output -f -a "(__fish_complete_directories (commandline -ct) 'Output directory')" -d "Output directory" complete -c hugo -n "__fish_hugo_using_command convert" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory" complete -c hugo -n "__fish_hugo_using_command convert" -l unsafe -f -d "Enable less safe operations" # convert toJSON complete -c hugo -n "__fish_hugo_using_command convert" -f -a toJSON -d "Convert front matter to JSON" complete -c hugo -n "__fish_hugo_using_command convert toJSON" -s h -l help -f -d "Help for toJSON" # convert toTOML complete -c hugo -n "__fish_hugo_using_command convert" -f -a toTOML -d "Convert front matter to TOML" complete -c hugo -n "__fish_hugo_using_command convert toTOML" -s h -l help -f -d "Help for toTOML" # convert toYAML complete -c hugo -n "__fish_hugo_using_command convert" -f -a toYAML -d "Convert front matter to YAML" complete -c hugo -n "__fish_hugo_using_command convert toYAML" -s h -l help -f -d "Help for toYAML" # env complete -c hugo -n "not __fish_hugo_command" -f -a env -d "Print Hugo version and environment info" complete -c hugo -n "__fish_hugo_using_command env" -s h -l help -f -d "Help for env" # gen complete -c hugo -n "not __fish_hugo_command" -f -a gen -d "Collection of several useful generators" complete -c hugo -n "__fish_hugo_using_command gen" -s h -l help -f -d "Help for gen" # gen autocomplete complete -c hugo -n "__fish_hugo_using_command gen" -f -a autocomplete -d "Generate shell autocompletion script for Hugo" complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -l completionfile -r -d "Autocompletion file" complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -s h -l help -f -d "Help for autocomplete" complete -c hugo -n "__fish_hugo_using_command gen autocomplete" -l type -f -a bash -d "Autocompletion type" # gen chromastyles complete -c hugo -n "__fish_hugo_using_command gen" -f -a chromastyles -d "Generate CSS stylesheet for the Chroma code highlighter" complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -s h -l help -f -d "Help for chromastyles" complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l highlightStyle -r -d "Style used for highlighting lines" complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l lineStyle -r -d "Style used for line numbers" complete -c hugo -n "__fish_hugo_using_command gen chromastyles" -l style -r -d "Highlighter style" # gen doc complete -c hugo -n "__fish_hugo_using_command gen" -f -a doc -d "Generate Markdown documentation for the Hugo CLI" complete -c hugo -n "__fish_hugo_using_command gen doc" -l dir -f -a "(__fish_complete_directories (commandline -ct) 'Doc directory')" -d "Doc directory" complete -c hugo -n "__fish_hugo_using_command gen doc" -s h -l help -f -d "Help for doc" # gen man complete -c hugo -n "__fish_hugo_using_command gen" -f -a man -d "Generate man pages for the Hugo CLI" complete -c hugo -n "__fish_hugo_using_command gen man" -l dir -f -a "(__fish_complete_directories (commandline -ct) 'Man pages directory')" -d "Man pages directory" complete -c hugo -n "__fish_hugo_using_command gen man" -s h -l help -f -d "Help for man" # import complete -c hugo -n "not __fish_hugo_command" -f -a import -d "Import your site from others" complete -c hugo -n "__fish_hugo_using_command import" -s h -l help -f -d "Help for import" # import jekyll complete -c hugo -n "__fish_hugo_using_command import" -f -a jekyll -d "Import from Jekyll" complete -c hugo -n "__fish_hugo_using_command import jekyll" -l force -f -d "Allow import into non-empty target directory" complete -c hugo -n "__fish_hugo_using_command import jekyll" -s h -l help -f -d "Help for jekyll" # list complete -c hugo -n "not __fish_hugo_command" -f -a list -d "List various types of content" complete -c hugo -n "__fish_hugo_using_command list" -s h -l help -f -d "Help for list" complete -c hugo -n "__fish_hugo_using_command list" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory" # list drafts complete -c hugo -n "__fish_hugo_using_command list" -f -a drafts -d "List all drafts" complete -c hugo -n "__fish_hugo_using_command list drafts" -s h -l help -f -d "Help for drafts" # list expired complete -c hugo -n "__fish_hugo_using_command list" -f -a expired -d "List all expired posts" complete -c hugo -n "__fish_hugo_using_command list expired" -s h -l help -f -d "Help for expired" # list future complete -c hugo -n "__fish_hugo_using_command list" -f -a future -d "List all posts dated in the future" complete -c hugo -n "__fish_hugo_using_command list future" -s h -l help -f -d "Help for future" # new complete -c hugo -n "not __fish_hugo_command" -f -a new -d "Create new content" complete -c hugo -n "__fish_hugo_using_command new" -l editor -r -d "Editor to use" complete -c hugo -n "__fish_hugo_using_command new" -s h -l help -f -d "Help for new" complete -c hugo -n "__fish_hugo_using_command new" -s k -l kind -r -d "Content type to create" complete -c hugo -n "__fish_hugo_using_command new" -s s -l source -f -a "(__fish_complete_directories (commandline -ct) 'Source directory')" -d "Source directory" # new site complete -c hugo -n "__fish_hugo_using_command new" -f -a site -d "Create a new site" complete -c hugo -n "__fish_hugo_using_command new site" -l force -f -d "Create site inside non-empty directory" complete -c hugo -n "__fish_hugo_using_command new site" -s f -l format -r -d "Config and front matter format" complete -c hugo -n "__fish_hugo_using_command new site" -s h -l help -f -d "Help for site" # new theme complete -c hugo -n "__fish_hugo_using_command new" -f -a theme -d "Create a new theme" complete -c hugo -n "__fish_hugo_using_command new theme" -s h -l help -f -d "Help for theme" # server complete -c hugo -n "not __fish_hugo_command" -f -a server -d "Start high performance web server" complete -c hugo -n "__fish_hugo_using_command server" -l appendPort -f -d "Append port to baseurl" complete -c hugo -n "__fish_hugo_using_command server" -l bind -r -d "Interface to which the server will bind" complete -c hugo -n "__fish_hugo_using_command server" -l disableFastRender -f -d "Enable full re-renders on changes" complete -c hugo -n "__fish_hugo_using_command server" -l disableLiveReload -f -d "Watch without enabling live browser reload on rebuild" complete -c hugo -n "__fish_hugo_using_command server" -s h -l help -f -d "Help for server" complete -c hugo -n "__fish_hugo_using_command server" -l liveReloadPort -r -d "Port for live reloading" complete -c hugo -n "__fish_hugo_using_command server" -l meminterval -f -d "Interval to poll memory usage" complete -c hugo -n "__fish_hugo_using_command server" -l memstats -f -d "Memory usage log file" complete -c hugo -n "__fish_hugo_using_command server" -l navigateToChanged -f -d "Navigate to changed content file on live browser reload" complete -c hugo -n "__fish_hugo_using_command server" -l noHTTPCache -f -d "Prevent HTTP caching" complete -c hugo -n "__fish_hugo_using_command server" -s p -l port -r -d "Port on which the server will listen" complete -c hugo -n "__fish_hugo_using_command server" -l renderToDisk -r -d "Render to destination directory" # undraft complete -c hugo -n "not __fish_hugo_command" -f -a undraft -d "Reset the content draft status" complete -c hugo -n "__fish_hugo_using_command undraft" -s h -l help -f -d "Help for undraft" # version complete -c hugo -n "not __fish_hugo_command" -f -a version -d "Print the version number of Hugo" complete -c hugo -n "__fish_hugo_using_command version" -s h -l help -f -d "Help for version"