mirror of
https://github.com/gohugoio/hugo.git
synced 2026-08-27 16:58:53 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4c3347a77f | |||
| a3a00016fb |
@@ -14,7 +14,9 @@ jobs:
|
||||
environment: &buildenv
|
||||
GOMODCACHE: /root/project/gomodcache
|
||||
steps:
|
||||
- setup_remote_docker
|
||||
- &remote-docker
|
||||
setup_remote_docker:
|
||||
version: 20.10.14
|
||||
- checkout:
|
||||
path: hugo
|
||||
- &git-config
|
||||
|
||||
+10
-14
@@ -3,8 +3,7 @@
|
||||
# Website: https://gohugo.io/
|
||||
|
||||
ARG GO_VERSION="1.23.2"
|
||||
ARG ALPINE_VERSION="3.20"
|
||||
ARG DART_SASS_VERSION="1.79.3"
|
||||
ARG ALPINE_VERSION=3.20
|
||||
|
||||
FROM --platform=$BUILDPLATFORM tonistiigi/xx:1.5.0 AS xx
|
||||
FROM --platform=$BUILDPLATFORM golang:${GO_VERSION}-alpine${ALPINE_VERSION} AS gobuild
|
||||
@@ -46,15 +45,6 @@ RUN --mount=target=. \
|
||||
xx-verify /usr/bin/hugo
|
||||
EOT
|
||||
|
||||
# dart-sass downloads the dart-sass runtime dependency
|
||||
FROM alpine:${ALPINE_VERSION} AS dart-sass
|
||||
ARG TARGETARCH
|
||||
ARG DART_SASS_VERSION
|
||||
ARG DART_ARCH=${TARGETARCH/amd64/x64}
|
||||
WORKDIR /out
|
||||
ADD https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-${DART_ARCH}.tar.gz .
|
||||
RUN tar -xf dart-sass-${DART_SASS_VERSION}-linux-${DART_ARCH}.tar.gz
|
||||
|
||||
FROM gorun AS final
|
||||
|
||||
COPY --from=build /usr/bin/hugo /usr/bin/hugo
|
||||
@@ -64,13 +54,14 @@ RUN apk add --no-cache \
|
||||
libc6-compat \
|
||||
git \
|
||||
runuser \
|
||||
curl \
|
||||
nodejs \
|
||||
npm
|
||||
|
||||
RUN mkdir -p /var/hugo/bin /cache && \
|
||||
RUN mkdir -p /var/hugo/bin && \
|
||||
addgroup -Sg 1000 hugo && \
|
||||
adduser -Sg hugo -u 1000 -h /var/hugo hugo && \
|
||||
chown -R hugo: /var/hugo /cache && \
|
||||
chown -R hugo: /var/hugo && \
|
||||
# For the Hugo's Git integration to work.
|
||||
runuser -u hugo -- git config --global --add safe.directory /project && \
|
||||
# See https://github.com/gohugoio/hugo/issues/9810
|
||||
@@ -80,11 +71,15 @@ VOLUME /project
|
||||
WORKDIR /project
|
||||
USER hugo:hugo
|
||||
ENV HUGO_CACHEDIR=/cache
|
||||
ARG BUILDARCH
|
||||
ENV BUILDARCH=${BUILDARCH}
|
||||
ENV PATH="/var/hugo/bin:$PATH"
|
||||
|
||||
COPY scripts/docker scripts/docker
|
||||
COPY scripts/docker/entrypoint.sh /entrypoint.sh
|
||||
COPY --link --from=dart-sass /out/dart-sass /var/hugo/bin/dart-sass
|
||||
|
||||
# Install default dependencies.
|
||||
RUN scripts/docker/install_runtimedeps_default.sh
|
||||
# Update PATH to reflect the new dependencies.
|
||||
# For more complex setups, we should probably find a way to
|
||||
# delegate this to the script itself, but this will have to do for now.
|
||||
@@ -97,3 +92,4 @@ EXPOSE 1313
|
||||
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["--help"]
|
||||
|
||||
|
||||
@@ -509,7 +509,7 @@ func (r *rootCommand) initRootCommand(subCommandName string, cd *simplecobra.Com
|
||||
commandName = subCommandName
|
||||
}
|
||||
cmd.Use = fmt.Sprintf("%s [flags]", commandName)
|
||||
cmd.Short = "Build your site"
|
||||
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
|
||||
|
||||
+2
-2
@@ -110,8 +110,8 @@ func (c *configCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, arg
|
||||
func (c *configCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
c.r = cd.Root.Command.(*rootCommand)
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Display site configuration"
|
||||
cmd.Long = `Display site configuration, both default and custom settings.`
|
||||
cmd.Short = "Print the site configuration"
|
||||
cmd.Long = `Print the site configuration, both default and custom settings.`
|
||||
cmd.Flags().StringVar(&c.format, "format", "toml", "preferred file format (toml, yaml or json)")
|
||||
_ = cmd.RegisterFlagCompletionFunc("format", cobra.FixedCompletions([]string{"toml", "yaml", "json"}, cobra.ShellCompDirectiveNoFileComp))
|
||||
cmd.Flags().StringVar(&c.lang, "lang", "", "the language to display config for. Defaults to the first language defined.")
|
||||
|
||||
+2
-2
@@ -105,8 +105,8 @@ func (c *convertCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, ar
|
||||
|
||||
func (c *convertCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Convert front matter to another format"
|
||||
cmd.Long = `Convert front matter to another format.
|
||||
cmd.Short = "Convert your content to different formats"
|
||||
cmd.Long = `Convert your content (e.g. front matter) to different formats.
|
||||
|
||||
See convert's subcommands toJSON, toTOML and toYAML for more information.`
|
||||
|
||||
|
||||
+2
-2
@@ -42,8 +42,8 @@ import (
|
||||
func newDeployCommand() simplecobra.Commander {
|
||||
return &simpleCommand{
|
||||
name: "deploy",
|
||||
short: "Deploy your site to a cloud provider",
|
||||
long: `Deploy your site to a cloud provider
|
||||
short: "Deploy your site to a Cloud provider.",
|
||||
long: `Deploy your site to a Cloud provider.
|
||||
|
||||
See https://gohugo.io/hosting-and-deployment/hugo-deploy/ for detailed
|
||||
documentation.
|
||||
|
||||
+4
-4
@@ -25,8 +25,8 @@ import (
|
||||
func newEnvCommand() simplecobra.Commander {
|
||||
return &simpleCommand{
|
||||
name: "env",
|
||||
short: "Display version and environment info",
|
||||
long: "Display version and environment info. This is useful in Hugo bug reports",
|
||||
short: "Print Hugo version and environment info",
|
||||
long: "Print Hugo version and environment info. This is useful in Hugo bug reports",
|
||||
run: func(ctx context.Context, cd *simplecobra.Commandeer, r *rootCommand, args []string) error {
|
||||
r.Printf("%s\n", hugo.BuildVersionString())
|
||||
r.Printf("GOOS=%q\n", runtime.GOOS)
|
||||
@@ -61,8 +61,8 @@ func newVersionCmd() simplecobra.Commander {
|
||||
r.Println(hugo.BuildVersionString())
|
||||
return nil
|
||||
},
|
||||
short: "Display version",
|
||||
long: "Display version and environment info. This is useful in Hugo bug reports.",
|
||||
short: "Print Hugo version and environment info",
|
||||
long: "Print Hugo version and environment info. This is useful in Hugo bug reports.",
|
||||
withc: func(cmd *cobra.Command, r *rootCommand) {
|
||||
cmd.ValidArgsFunction = cobra.NoFileCompletions
|
||||
},
|
||||
|
||||
+1
-2
@@ -273,8 +273,7 @@ func (c *genCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args [
|
||||
|
||||
func (c *genCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Generate documentation and syntax highlighting styles"
|
||||
cmd.Long = "Generate documentation for your project using Hugo's documentation engine, including syntax highlighting for various programming languages."
|
||||
cmd.Short = "A collection of several useful generators."
|
||||
|
||||
cmd.RunE = nil
|
||||
return nil
|
||||
|
||||
+2
-2
@@ -90,8 +90,8 @@ func (c *importCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, arg
|
||||
|
||||
func (c *importCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Import a site from another system"
|
||||
cmd.Long = `Import a site from another system.
|
||||
cmd.Short = "Import your site from others."
|
||||
cmd.Long = `Import your site from other web site generators like Jekyll.
|
||||
|
||||
Import requires a subcommand, e.g. ` + "`hugo import jekyll jekyll_root_path target_path`."
|
||||
|
||||
|
||||
+2
-2
@@ -199,8 +199,8 @@ func (c *listCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args
|
||||
|
||||
func (c *listCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "List content"
|
||||
cmd.Long = `List content.
|
||||
cmd.Short = "Listing out various types of content"
|
||||
cmd.Long = `Listing out various types of content.
|
||||
|
||||
List requires a subcommand, e.g. hugo list drafts`
|
||||
|
||||
|
||||
+1
-1
@@ -328,7 +328,7 @@ func (c *modCommands) Run(ctx context.Context, cd *simplecobra.Commandeer, args
|
||||
|
||||
func (c *modCommands) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Manage modules"
|
||||
cmd.Short = "Various Hugo Modules helpers."
|
||||
cmd.Long = `Various helpers to help manage the modules in your project's dependency graph.
|
||||
Most operations here requires a Go version installed on your system (>= Go 1.12) and the relevant VCS client (typically Git).
|
||||
This is not needed if you only operate on modules inside /themes or if you have vendored them via "hugo mod vendor".
|
||||
|
||||
+2
-2
@@ -40,7 +40,7 @@ func newNewCommand() *newCommand {
|
||||
&simpleCommand{
|
||||
name: "content",
|
||||
use: "content [path]",
|
||||
short: "Create new content",
|
||||
short: "Create new content for your site",
|
||||
long: `Create a new content file and automatically set the date and title.
|
||||
It will guess which kind of file to create based on the path provided.
|
||||
|
||||
@@ -181,7 +181,7 @@ func (c *newCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, args [
|
||||
|
||||
func (c *newCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Create new content"
|
||||
cmd.Short = "Create new content for your site"
|
||||
cmd.Long = `Create a new content file and automatically set the date and title.
|
||||
It will guess which kind of file to create based on the path provided.
|
||||
|
||||
|
||||
+1
-1
@@ -508,7 +508,7 @@ func (c *serverCommand) Run(ctx context.Context, cd *simplecobra.Commandeer, arg
|
||||
|
||||
func (c *serverCommand) Init(cd *simplecobra.Commandeer) error {
|
||||
cmd := cd.CobraCommand
|
||||
cmd.Short = "Start the embedded web server"
|
||||
cmd.Short = "A high performance webserver"
|
||||
cmd.Long = `Hugo provides its own webserver which builds and serves the site.
|
||||
While hugo server is high performance, it is a webserver with limited options.
|
||||
|
||||
|
||||
@@ -18,6 +18,6 @@ package hugo
|
||||
var CurrentVersion = Version{
|
||||
Major: 0,
|
||||
Minor: 136,
|
||||
PatchLevel: 2,
|
||||
Suffix: "",
|
||||
PatchLevel: 0,
|
||||
Suffix: "-DEV",
|
||||
}
|
||||
|
||||
@@ -160,18 +160,3 @@ title: "p3"
|
||||
b.AssertFileExists("public/page/1/index.html", false)
|
||||
b.AssertFileContent("public/page/2/index.html", "pagination-default")
|
||||
}
|
||||
|
||||
func TestMapUglyURLs(t *testing.T) {
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
[uglyurls]
|
||||
posts = true
|
||||
`
|
||||
|
||||
b := hugolib.Test(t, files)
|
||||
|
||||
c := b.H.Configs.Base
|
||||
|
||||
b.Assert(c.C.IsUglyURLSection("posts"), qt.IsTrue)
|
||||
b.Assert(c.C.IsUglyURLSection("blog"), qt.IsFalse)
|
||||
}
|
||||
|
||||
@@ -419,8 +419,6 @@ var allDecoderSetups = map[string]decodeWeight{
|
||||
p.c.UglyURLs = vv
|
||||
case string:
|
||||
p.c.UglyURLs = vv == "true"
|
||||
case maps.Params:
|
||||
p.c.UglyURLs = cast.ToStringMapBool(maps.CleanConfigStringMap(vv))
|
||||
default:
|
||||
p.c.UglyURLs = cast.ToStringMapBool(v)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
+++
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
date = {{ .Date }}
|
||||
draft = true
|
||||
+++
|
||||
@@ -76,11 +76,6 @@ func CreateSite(createpath string, sourceFs afero.Fs, force bool, format string)
|
||||
return err
|
||||
}
|
||||
|
||||
err = newSiteCreateArchetype(sourceFs, createpath, format)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return copyFiles(createpath, sourceFs, siteFs)
|
||||
}
|
||||
|
||||
@@ -114,19 +109,3 @@ func newSiteCreateConfig(fs afero.Fs, createpath string, format string) (err err
|
||||
|
||||
return helpers.WriteToDisk(filepath.Join(createpath, "hugo."+format), &buf, fs)
|
||||
}
|
||||
|
||||
func newSiteCreateArchetype(fs afero.Fs, createpath string, format string) (err error) {
|
||||
in := map[string]any{
|
||||
"title": "{{ replace .File.ContentBaseName \"-\" \" \" | title }}",
|
||||
"date": "{{ .Date }}",
|
||||
"draft": true,
|
||||
}
|
||||
|
||||
var buf bytes.Buffer
|
||||
err = parser.InterfaceToFrontMatter(in, metadecoders.FormatFromString(format), &buf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return helpers.WriteToDisk(filepath.Join(createpath, "archetypes", "default.md"), &buf, fs)
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo/
|
||||
---
|
||||
## hugo
|
||||
|
||||
Build your site
|
||||
hugo builds your site
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -70,17 +70,17 @@ hugo [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo build](/commands/hugo_build/) - Build your site
|
||||
* [hugo build](/commands/hugo_build/) - build builds your site
|
||||
* [hugo completion](/commands/hugo_completion/) - Generate the autocompletion script for the specified shell
|
||||
* [hugo config](/commands/hugo_config/) - Display site configuration
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert front matter to another format
|
||||
* [hugo deploy](/commands/hugo_deploy/) - Deploy your site to a cloud provider
|
||||
* [hugo env](/commands/hugo_env/) - Display version and environment info
|
||||
* [hugo gen](/commands/hugo_gen/) - Generate documentation and syntax highlighting styles
|
||||
* [hugo import](/commands/hugo_import/) - Import a site from another system
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo new](/commands/hugo_new/) - Create new content
|
||||
* [hugo server](/commands/hugo_server/) - Start the embedded web server
|
||||
* [hugo version](/commands/hugo_version/) - Display version
|
||||
* [hugo config](/commands/hugo_config/) - Print the site configuration
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
* [hugo deploy](/commands/hugo_deploy/) - Deploy your site to a Cloud provider.
|
||||
* [hugo env](/commands/hugo_env/) - Print Hugo version and environment info
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
* [hugo import](/commands/hugo_import/) - Import your site from others.
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
* [hugo server](/commands/hugo_server/) - A high performance webserver
|
||||
* [hugo version](/commands/hugo_version/) - Print Hugo version and environment info
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo_build/
|
||||
---
|
||||
## hugo build
|
||||
|
||||
Build your site
|
||||
build builds your site
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -70,5 +70,5 @@ hugo build [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ See each sub-command's help for details on how to use the generated script.
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo completion bash](/commands/hugo_completion_bash/) - Generate the autocompletion script for bash
|
||||
* [hugo completion fish](/commands/hugo_completion_fish/) - Generate the autocompletion script for fish
|
||||
* [hugo completion powershell](/commands/hugo_completion_powershell/) - Generate the autocompletion script for powershell
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_config/
|
||||
---
|
||||
## hugo config
|
||||
|
||||
Display site configuration
|
||||
Print the site configuration
|
||||
|
||||
### Synopsis
|
||||
|
||||
Display site configuration, both default and custom settings.
|
||||
Print the site configuration, both default and custom settings.
|
||||
|
||||
```
|
||||
hugo config [command] [flags]
|
||||
@@ -48,6 +48,6 @@ hugo config [command] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo config mounts](/commands/hugo_config_mounts/) - Print the configured file mounts
|
||||
|
||||
|
||||
@@ -42,5 +42,5 @@ hugo config mounts [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo config](/commands/hugo_config/) - Display site configuration
|
||||
* [hugo config](/commands/hugo_config/) - Print the site configuration
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_convert/
|
||||
---
|
||||
## hugo convert
|
||||
|
||||
Convert front matter to another format
|
||||
Convert your content to different formats
|
||||
|
||||
### Synopsis
|
||||
|
||||
Convert front matter to another format.
|
||||
Convert your content (e.g. front matter) to different formats.
|
||||
|
||||
See convert's subcommands toJSON, toTOML and toYAML for more information.
|
||||
|
||||
@@ -41,7 +41,7 @@ See convert's subcommands toJSON, toTOML and toYAML for more information.
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo convert toJSON](/commands/hugo_convert_tojson/) - Convert front matter to JSON
|
||||
* [hugo convert toTOML](/commands/hugo_convert_totoml/) - Convert front matter to TOML
|
||||
* [hugo convert toYAML](/commands/hugo_convert_toyaml/) - Convert front matter to YAML
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo convert toJSON [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert front matter to another format
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo convert toTOML [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert front matter to another format
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo convert toYAML [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert front matter to another format
|
||||
* [hugo convert](/commands/hugo_convert/) - Convert your content to different formats
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_deploy/
|
||||
---
|
||||
## hugo deploy
|
||||
|
||||
Deploy your site to a cloud provider
|
||||
Deploy your site to a Cloud provider.
|
||||
|
||||
### Synopsis
|
||||
|
||||
Deploy your site to a cloud provider
|
||||
Deploy your site to a Cloud provider.
|
||||
|
||||
See https://gohugo.io/hosting-and-deployment/hugo-deploy/ for detailed
|
||||
documentation.
|
||||
@@ -52,5 +52,5 @@ hugo deploy [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_env/
|
||||
---
|
||||
## hugo env
|
||||
|
||||
Display version and environment info
|
||||
Print Hugo version and environment info
|
||||
|
||||
### Synopsis
|
||||
|
||||
Display version and environment info. This is useful in Hugo bug reports
|
||||
Print Hugo version and environment info. This is useful in Hugo bug reports
|
||||
|
||||
```
|
||||
hugo env [flags] [args]
|
||||
@@ -41,5 +41,5 @@ hugo env [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
|
||||
@@ -5,11 +5,7 @@ url: /commands/hugo_gen/
|
||||
---
|
||||
## hugo gen
|
||||
|
||||
Generate documentation and syntax highlighting styles
|
||||
|
||||
### Synopsis
|
||||
|
||||
Generate documentation for your project using Hugo's documentation engine, including syntax highlighting for various programming languages.
|
||||
A collection of several useful generators.
|
||||
|
||||
### Options
|
||||
|
||||
@@ -37,7 +33,7 @@ Generate documentation for your project using Hugo's documentation engine, inclu
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo gen chromastyles](/commands/hugo_gen_chromastyles/) - Generate CSS stylesheet for the Chroma code highlighter
|
||||
* [hugo gen doc](/commands/hugo_gen_doc/) - Generate Markdown documentation for the Hugo CLI.
|
||||
* [hugo gen man](/commands/hugo_gen_man/) - Generate man pages for the Hugo CLI
|
||||
|
||||
@@ -47,5 +47,5 @@ hugo gen chromastyles [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo gen](/commands/hugo_gen/) - Generate documentation and syntax highlighting styles
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
|
||||
@@ -47,5 +47,5 @@ hugo gen doc [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo gen](/commands/hugo_gen/) - Generate documentation and syntax highlighting styles
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo gen man [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo gen](/commands/hugo_gen/) - Generate documentation and syntax highlighting styles
|
||||
* [hugo gen](/commands/hugo_gen/) - A collection of several useful generators.
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_import/
|
||||
---
|
||||
## hugo import
|
||||
|
||||
Import a site from another system
|
||||
Import your site from others.
|
||||
|
||||
### Synopsis
|
||||
|
||||
Import a site from another system.
|
||||
Import your site from other web site generators like Jekyll.
|
||||
|
||||
Import requires a subcommand, e.g. `hugo import jekyll jekyll_root_path target_path`.
|
||||
|
||||
@@ -39,6 +39,6 @@ Import requires a subcommand, e.g. `hugo import jekyll jekyll_root_path target_p
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo import jekyll](/commands/hugo_import_jekyll/) - hugo import from Jekyll
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo import jekyll [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo import](/commands/hugo_import/) - Import a site from another system
|
||||
* [hugo import](/commands/hugo_import/) - Import your site from others.
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_list/
|
||||
---
|
||||
## hugo list
|
||||
|
||||
List content
|
||||
Listing out various types of content
|
||||
|
||||
### Synopsis
|
||||
|
||||
List content.
|
||||
Listing out various types of content.
|
||||
|
||||
List requires a subcommand, e.g. hugo list drafts
|
||||
|
||||
@@ -39,7 +39,7 @@ List requires a subcommand, e.g. hugo list drafts
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo list all](/commands/hugo_list_all/) - List all content
|
||||
* [hugo list drafts](/commands/hugo_list_drafts/) - List draft content
|
||||
* [hugo list expired](/commands/hugo_list_expired/) - List expired content
|
||||
|
||||
@@ -41,5 +41,5 @@ hugo list all [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
|
||||
@@ -41,5 +41,5 @@ hugo list drafts [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
|
||||
@@ -41,5 +41,5 @@ hugo list expired [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
|
||||
@@ -41,5 +41,5 @@ hugo list future [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
|
||||
@@ -41,5 +41,5 @@ hugo list published [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo list](/commands/hugo_list/) - List content
|
||||
* [hugo list](/commands/hugo_list/) - Listing out various types of content
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo_mod/
|
||||
---
|
||||
## hugo mod
|
||||
|
||||
Manage modules
|
||||
Various Hugo Modules helpers.
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -48,7 +48,7 @@ See https://gohugo.io/hugo-modules/ for more information.
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo mod clean](/commands/hugo_mod_clean/) - Delete the Hugo Module cache for the current project.
|
||||
* [hugo mod get](/commands/hugo_mod_get/) - Resolves dependencies in your current Hugo Project.
|
||||
* [hugo mod graph](/commands/hugo_mod_graph/) - Print a module dependency graph.
|
||||
|
||||
@@ -48,5 +48,5 @@ hugo mod clean [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -72,5 +72,5 @@ hugo mod get [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -49,5 +49,5 @@ hugo mod graph [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -53,5 +53,5 @@ hugo mod init [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -41,6 +41,6 @@ hugo mod npm [command] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
* [hugo mod npm pack](/commands/hugo_mod_npm_pack/) - Experimental: Prepares and writes a composite package.json file for your project.
|
||||
|
||||
|
||||
@@ -42,5 +42,5 @@ hugo mod tidy [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -48,5 +48,5 @@ hugo mod vendor [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -47,5 +47,5 @@ hugo mod verify [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo mod](/commands/hugo_mod/) - Manage modules
|
||||
* [hugo mod](/commands/hugo_mod/) - Various Hugo Modules helpers.
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo_new/
|
||||
---
|
||||
## hugo new
|
||||
|
||||
Create new content
|
||||
Create new content for your site
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -44,8 +44,8 @@ Ensure you run this within the root directory of your site.
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo new content](/commands/hugo_new_content/) - Create new content
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo new content](/commands/hugo_new_content/) - Create new content for your site
|
||||
* [hugo new site](/commands/hugo_new_site/) - Create a new site (skeleton)
|
||||
* [hugo new theme](/commands/hugo_new_theme/) - Create a new theme (skeleton)
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo_new_content/
|
||||
---
|
||||
## hugo new content
|
||||
|
||||
Create new content
|
||||
Create new content for your site
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -56,5 +56,5 @@ hugo new content [path] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo new](/commands/hugo_new/) - Create new content
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
|
||||
|
||||
@@ -45,5 +45,5 @@ hugo new site [path] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo new](/commands/hugo_new/) - Create new content
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
|
||||
|
||||
@@ -44,5 +44,5 @@ hugo new theme [name] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo new](/commands/hugo_new/) - Create new content
|
||||
* [hugo new](/commands/hugo_new/) - Create new content for your site
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ url: /commands/hugo_server/
|
||||
---
|
||||
## hugo server
|
||||
|
||||
Start the embedded web server
|
||||
A high performance webserver
|
||||
|
||||
### Synopsis
|
||||
|
||||
@@ -94,6 +94,6 @@ hugo server [command] [flags]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
* [hugo server trust](/commands/hugo_server_trust/) - Install the local CA in the system trust store.
|
||||
|
||||
|
||||
@@ -38,5 +38,5 @@ hugo server trust [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo server](/commands/hugo_server/) - Start the embedded web server
|
||||
* [hugo server](/commands/hugo_server/) - A high performance webserver
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ url: /commands/hugo_version/
|
||||
---
|
||||
## hugo version
|
||||
|
||||
Display version
|
||||
Print Hugo version and environment info
|
||||
|
||||
### Synopsis
|
||||
|
||||
Display version and environment info. This is useful in Hugo bug reports.
|
||||
Print Hugo version and environment info. This is useful in Hugo bug reports.
|
||||
|
||||
```
|
||||
hugo version [flags] [args]
|
||||
@@ -41,5 +41,5 @@ hugo version [flags] [args]
|
||||
|
||||
### SEE ALSO
|
||||
|
||||
* [hugo](/commands/hugo/) - Build your site
|
||||
* [hugo](/commands/hugo/) - hugo builds your site
|
||||
|
||||
|
||||
@@ -27,7 +27,7 @@ require (
|
||||
github.com/cli/safeexec v1.0.1
|
||||
github.com/disintegration/gift v1.2.1
|
||||
github.com/dustin/go-humanize v1.0.1
|
||||
github.com/evanw/esbuild v0.24.0
|
||||
github.com/evanw/esbuild v0.23.1
|
||||
github.com/fatih/color v1.17.0
|
||||
github.com/fortytw2/leaktest v1.3.0
|
||||
github.com/frankban/quicktest v1.14.6
|
||||
@@ -60,7 +60,7 @@ require (
|
||||
github.com/olekukonko/tablewriter v0.0.5
|
||||
github.com/pbnjay/memory v0.0.0-20210728143218-7b4eea64cf58
|
||||
github.com/pelletier/go-toml/v2 v2.2.3
|
||||
github.com/rogpeppe/go-internal v1.13.1
|
||||
github.com/rogpeppe/go-internal v1.12.0
|
||||
github.com/sanity-io/litter v1.5.5
|
||||
github.com/spf13/afero v1.11.0
|
||||
github.com/spf13/cast v1.7.0
|
||||
@@ -69,18 +69,18 @@ require (
|
||||
github.com/spf13/pflag v1.0.5
|
||||
github.com/tdewolff/minify/v2 v2.20.37
|
||||
github.com/tdewolff/parse/v2 v2.7.15
|
||||
github.com/tetratelabs/wazero v1.8.1
|
||||
github.com/tetratelabs/wazero v1.8.0
|
||||
github.com/yuin/goldmark v1.7.4
|
||||
github.com/yuin/goldmark-emoji v1.0.4
|
||||
github.com/yuin/goldmark-emoji v1.0.3
|
||||
go.uber.org/automaxprocs v1.5.3
|
||||
gocloud.dev v0.39.0
|
||||
golang.org/x/exp v0.0.0-20221031165847-c99f073a8326
|
||||
golang.org/x/image v0.21.0
|
||||
golang.org/x/image v0.20.0
|
||||
golang.org/x/mod v0.21.0
|
||||
golang.org/x/net v0.30.0
|
||||
golang.org/x/net v0.29.0
|
||||
golang.org/x/sync v0.8.0
|
||||
golang.org/x/text v0.19.0
|
||||
golang.org/x/tools v0.26.0
|
||||
golang.org/x/text v0.18.0
|
||||
golang.org/x/tools v0.23.0
|
||||
google.golang.org/api v0.191.0
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
)
|
||||
@@ -154,9 +154,9 @@ require (
|
||||
go.opentelemetry.io/otel v1.28.0 // indirect
|
||||
go.opentelemetry.io/otel/metric v1.28.0 // indirect
|
||||
go.opentelemetry.io/otel/trace v1.28.0 // indirect
|
||||
golang.org/x/crypto v0.28.0 // indirect
|
||||
golang.org/x/crypto v0.27.0 // indirect
|
||||
golang.org/x/oauth2 v0.22.0 // indirect
|
||||
golang.org/x/sys v0.26.0 // indirect
|
||||
golang.org/x/sys v0.25.0 // indirect
|
||||
golang.org/x/time v0.6.0 // indirect
|
||||
golang.org/x/xerrors v0.0.0-20240716161551-93cc26a95ae9 // indirect
|
||||
google.golang.org/genproto v0.0.0-20240812133136-8ffd90a71988 // indirect
|
||||
|
||||
@@ -189,8 +189,8 @@ github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1m
|
||||
github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po=
|
||||
github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk=
|
||||
github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
|
||||
github.com/evanw/esbuild v0.24.0 h1:GZ78naTLp7FKr+K7eNuM/SLs5maeiHYRPsTg6kmdsSE=
|
||||
github.com/evanw/esbuild v0.24.0/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48=
|
||||
github.com/evanw/esbuild v0.23.1 h1:ociewhY6arjTarKLdrXfDTgy25oxhTZmzP8pfuBTfTA=
|
||||
github.com/evanw/esbuild v0.23.1/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48=
|
||||
github.com/fatih/color v1.17.0 h1:GlRw1BRJxkpqUCBKzKOw098ed57fEsKeNjpTe3cSjK4=
|
||||
github.com/fatih/color v1.17.0/go.mod h1:YZ7TlrGPkiz6ku9fK3TLD/pl3CpsiFyu8N92HLgmosI=
|
||||
github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
|
||||
@@ -419,8 +419,8 @@ github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:
|
||||
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
|
||||
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
|
||||
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
|
||||
github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
|
||||
github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
|
||||
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
|
||||
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
|
||||
github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
|
||||
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
|
||||
github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd h1:CmH9+J6ZSsIjUK3dcGsnCnO41eRBOnY12zwkn5qVwgc=
|
||||
@@ -459,8 +459,8 @@ github.com/tdewolff/parse/v2 v2.7.15/go.mod h1:3FbJWZp3XT9OWVN3Hmfp0p/a08v4h8J9W
|
||||
github.com/tdewolff/test v1.0.11-0.20231101010635-f1265d231d52/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
|
||||
github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739 h1:IkjBCtQOOjIn03u/dMQK9g+Iw9ewps4mCl1nB8Sscbo=
|
||||
github.com/tdewolff/test v1.0.11-0.20240106005702-7de5f7df4739/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8=
|
||||
github.com/tetratelabs/wazero v1.8.1 h1:NrcgVbWfkWvVc4UtT4LRLDf91PsOzDzefMdwhLfA550=
|
||||
github.com/tetratelabs/wazero v1.8.1/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
|
||||
github.com/tetratelabs/wazero v1.8.0 h1:iEKu0d4c2Pd+QSRieYbnQC9yiFlMS9D+Jr0LsRmcF4g=
|
||||
github.com/tetratelabs/wazero v1.8.0/go.mod h1:yAI0XTsMBhREkM/YDAK/zNou3GoiAce1P6+rp/wQhjs=
|
||||
github.com/ugorji/go/codec v1.2.7 h1:YPXUKf7fYbp/y8xloBqZOw2qaVggbfwMlI8WM3wZUJ0=
|
||||
github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95kRgeqEY=
|
||||
github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
@@ -472,8 +472,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t
|
||||
github.com/yuin/goldmark v1.7.1/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
|
||||
github.com/yuin/goldmark v1.7.4 h1:BDXOHExt+A7gwPCJgPIIq7ENvceR7we7rOS9TNoLZeg=
|
||||
github.com/yuin/goldmark v1.7.4/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
|
||||
github.com/yuin/goldmark-emoji v1.0.4 h1:vCwMkPZSNefSUnOW2ZKRUjBSD5Ok3W78IXhGxxAEF90=
|
||||
github.com/yuin/goldmark-emoji v1.0.4/go.mod h1:tTkZEbwu5wkPmgTcitqddVxY9osFZiavD+r4AzQrh1U=
|
||||
github.com/yuin/goldmark-emoji v1.0.3 h1:aLRkLHOuBR2czCY4R8olwMjID+tENfhyFDMCRhbIQY4=
|
||||
github.com/yuin/goldmark-emoji v1.0.3/go.mod h1:tTkZEbwu5wkPmgTcitqddVxY9osFZiavD+r4AzQrh1U=
|
||||
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
|
||||
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
|
||||
go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw=
|
||||
@@ -509,8 +509,8 @@ golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5y
|
||||
golang.org/x/crypto v0.0.0-20220331220935-ae2d96664a29/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc=
|
||||
golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg=
|
||||
golang.org/x/crypto v0.28.0 h1:GBDwsMXVQi34v5CCYUm2jkJvu4cbtru2U4TN2PSyQnw=
|
||||
golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U=
|
||||
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
|
||||
golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
|
||||
@@ -526,8 +526,8 @@ golang.org/x/exp v0.0.0-20221031165847-c99f073a8326/go.mod h1:CxIveKay+FTh1D0yPZ
|
||||
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
|
||||
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
|
||||
golang.org/x/image v0.21.0 h1:c5qV36ajHpdj4Qi0GnE0jUc/yuo33OLFaa0d+crTD5s=
|
||||
golang.org/x/image v0.21.0/go.mod h1:vUbsLavqK/W303ZroQQVKQ+Af3Yl6Uz1Ppu5J/cLz78=
|
||||
golang.org/x/image v0.20.0 h1:7cVCUjQwfL18gyBJOmYvptfSHS8Fb3YUDtfLIZ7Nbpw=
|
||||
golang.org/x/image v0.20.0/go.mod h1:0a88To4CYVBAHp5FXJm8o7QbUl37Vd85ply1vyD8auM=
|
||||
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
|
||||
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||
@@ -595,8 +595,8 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs=
|
||||
golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg=
|
||||
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY=
|
||||
golang.org/x/net v0.30.0 h1:AcW1SDZMkb8IpzCdQUaIq2sP4sZ4zw+55h6ynffypl4=
|
||||
golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU=
|
||||
golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo=
|
||||
golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0=
|
||||
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
|
||||
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
|
||||
@@ -672,8 +672,8 @@ golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.26.0 h1:KHjCJyddX0LoSTb3J+vWpupP9p0oznkqVk/IfjymZbo=
|
||||
golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34=
|
||||
golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
|
||||
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
|
||||
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
|
||||
golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k=
|
||||
@@ -692,8 +692,8 @@ golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
|
||||
golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8=
|
||||
golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE=
|
||||
golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
|
||||
golang.org/x/text v0.19.0 h1:kTxAhCbGbxhK0IwgSKiMO5awPoDQ0RpfiVYBfK860YM=
|
||||
golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||
golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224=
|
||||
golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY=
|
||||
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
|
||||
@@ -751,8 +751,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc
|
||||
golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU=
|
||||
golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58=
|
||||
golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps=
|
||||
golang.org/x/tools v0.26.0 h1:v/60pFQmzmT9ExmjDv2gGIfi3OqfKoEP6I5+umXlbnQ=
|
||||
golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0=
|
||||
golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg=
|
||||
golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
|
||||
+3
-3
@@ -511,20 +511,20 @@ func (s *Site) Params() maps.Params {
|
||||
// Deprecated: Use taxonomies instead.
|
||||
func (s *Site) Author() map[string]any {
|
||||
if len(s.conf.Author) != 0 {
|
||||
hugo.Deprecate(".Site.Author", "Implement taxonomy 'author' or use .Site.Params.Author instead.", "v0.124.0")
|
||||
hugo.Deprecate(".Site.Author", "Use taxonomies instead.", "v0.124.0")
|
||||
}
|
||||
return s.conf.Author
|
||||
}
|
||||
|
||||
// Deprecated: Use taxonomies instead.
|
||||
func (s *Site) Authors() page.AuthorList {
|
||||
hugo.Deprecate(".Site.Authors", "Implement taxonomy 'authors' or use .Site.Params.Author instead.", "v0.124.0")
|
||||
hugo.Deprecate(".Site.Authors", "Use taxonomies instead.", "v0.124.0")
|
||||
return page.AuthorList{}
|
||||
}
|
||||
|
||||
// Deprecated: Use .Site.Params instead.
|
||||
func (s *Site) Social() map[string]string {
|
||||
hugo.Deprecate(".Site.Social", "Implement taxonomy 'social' or use .Site.Params.Social instead.", "v0.124.0")
|
||||
hugo.Deprecate(".Site.Social", "Use .Site.Params instead.", "v0.124.0")
|
||||
return s.conf.Social
|
||||
}
|
||||
|
||||
|
||||
+2
-4
@@ -1,9 +1,7 @@
|
||||
# Release env.
|
||||
# These will be replaced by script before release.
|
||||
HUGORELEASER_TAG=v0.136.1
|
||||
HUGORELEASER_COMMITISH=64d1865c1e21c66feb96ffedda44a9eba2365af9
|
||||
|
||||
|
||||
HUGORELEASER_TAG=v0.135.0
|
||||
HUGORELEASER_COMMITISH=f30603c47f5205e30ef83c70419f57d7eb7175ab
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -254,7 +254,7 @@ func CreateTargetPaths(d TargetPathDescriptor) (tp TargetPaths) {
|
||||
|
||||
// if page URL is explicitly set in frontmatter,
|
||||
// preserve its value without sanitization
|
||||
if d.URL == "" {
|
||||
if d.Kind != kinds.KindPage || d.URL == "" {
|
||||
// Note: MakePathSanitized will lower case the path if
|
||||
// disablePathToLower isn't set.
|
||||
pb.Sanitize()
|
||||
|
||||
@@ -107,37 +107,27 @@ func NewPermalinkExpander(urlize func(uri string) string, patterns map[string]ma
|
||||
return p, nil
|
||||
}
|
||||
|
||||
// Escape sequence for colons in permalink patterns.
|
||||
const escapePlaceholderColon = "\x00"
|
||||
|
||||
func (l PermalinkExpander) normalizeEscapeSequencesIn(s string) (string, bool) {
|
||||
s2 := strings.ReplaceAll(s, "\\:", escapePlaceholderColon)
|
||||
return s2, s2 != s
|
||||
}
|
||||
|
||||
func (l PermalinkExpander) normalizeEscapeSequencesOut(result string) string {
|
||||
return strings.ReplaceAll(result, escapePlaceholderColon, ":")
|
||||
}
|
||||
|
||||
// ExpandPattern expands the path in p with the specified expand pattern.
|
||||
func (l PermalinkExpander) ExpandPattern(pattern string, p Page) (string, error) {
|
||||
expand, err := l.getOrParsePattern(pattern)
|
||||
expander, err := l.getOrParsePattern(pattern)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return expand(p)
|
||||
return expander(p)
|
||||
}
|
||||
|
||||
// Expand expands the path in p according to the rules defined for the given key.
|
||||
// If no rules are found for the given key, an empty string is returned.
|
||||
func (l PermalinkExpander) Expand(key string, p Page) (string, error) {
|
||||
expanders, found := l.expanders[p.Kind()]
|
||||
|
||||
if !found {
|
||||
return "", nil
|
||||
}
|
||||
|
||||
expand, found := expanders[key]
|
||||
|
||||
if !found {
|
||||
return "", nil
|
||||
}
|
||||
@@ -156,19 +146,10 @@ func init() {
|
||||
|
||||
func (l PermalinkExpander) getOrParsePattern(pattern string) (func(Page) (string, error), error) {
|
||||
return l.patternCache.GetOrCreate(pattern, func() (func(Page) (string, error), error) {
|
||||
var normalized bool
|
||||
pattern, normalized = l.normalizeEscapeSequencesIn(pattern)
|
||||
|
||||
matches := attributeRegexp.FindAllStringSubmatch(pattern, -1)
|
||||
if matches == nil {
|
||||
result := pattern
|
||||
if normalized {
|
||||
result = l.normalizeEscapeSequencesOut(result)
|
||||
}
|
||||
return func(p Page) (string, error) {
|
||||
return result, nil
|
||||
}, nil
|
||||
if !l.validate(pattern) {
|
||||
return nil, &permalinkExpandError{pattern: pattern, err: errPermalinkIllFormed}
|
||||
}
|
||||
matches := attributeRegexp.FindAllStringSubmatch(pattern, -1)
|
||||
|
||||
callbacks := make([]pageToPermaAttribute, len(matches))
|
||||
replacements := make([]string, len(matches))
|
||||
@@ -186,6 +167,10 @@ func (l PermalinkExpander) getOrParsePattern(pattern string) (func(Page) (string
|
||||
}
|
||||
|
||||
return func(p Page) (string, error) {
|
||||
if matches == nil {
|
||||
return pattern, nil
|
||||
}
|
||||
|
||||
newField := pattern
|
||||
|
||||
for i, replacement := range replacements {
|
||||
@@ -199,10 +184,6 @@ func (l PermalinkExpander) getOrParsePattern(pattern string) (func(Page) (string
|
||||
newField = strings.Replace(newField, replacement, newAttr, 1)
|
||||
}
|
||||
|
||||
if normalized {
|
||||
newField = l.normalizeEscapeSequencesOut(newField)
|
||||
}
|
||||
|
||||
return newField, nil
|
||||
}, nil
|
||||
})
|
||||
@@ -231,6 +212,37 @@ type pageToPermaAttribute func(Page, string) (string, error)
|
||||
|
||||
var attributeRegexp = regexp.MustCompile(`:\w+(\[.+?\])?`)
|
||||
|
||||
// validate determines if a PathPattern is well-formed
|
||||
func (l PermalinkExpander) validate(pp string) bool {
|
||||
if len(pp) == 0 {
|
||||
return false
|
||||
}
|
||||
fragments := strings.Split(pp[1:], "/")
|
||||
bail := false
|
||||
for i := range fragments {
|
||||
if bail {
|
||||
return false
|
||||
}
|
||||
if len(fragments[i]) == 0 {
|
||||
bail = true
|
||||
continue
|
||||
}
|
||||
|
||||
matches := attributeRegexp.FindAllStringSubmatch(fragments[i], -1)
|
||||
if matches == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
for _, match := range matches {
|
||||
k := match[0][1:]
|
||||
if _, ok := l.callback(k); !ok {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
type permalinkExpandError struct {
|
||||
pattern string
|
||||
err error
|
||||
@@ -240,7 +252,10 @@ func (pee *permalinkExpandError) Error() string {
|
||||
return fmt.Sprintf("error expanding %q: %s", pee.pattern, pee.err)
|
||||
}
|
||||
|
||||
var errPermalinkAttributeUnknown = errors.New("permalink attribute not recognised")
|
||||
var (
|
||||
errPermalinkIllFormed = errors.New("permalink ill-formed")
|
||||
errPermalinkAttributeUnknown = errors.New("permalink attribute not recognised")
|
||||
)
|
||||
|
||||
func (l PermalinkExpander) pageToPermalinkDate(p Page, dateField string) (string, error) {
|
||||
// a Page contains a Node which provides a field Date, time.Time
|
||||
|
||||
@@ -18,7 +18,6 @@ import (
|
||||
|
||||
"github.com/bep/logg"
|
||||
qt "github.com/frankban/quicktest"
|
||||
"github.com/gohugoio/hugo/htesting"
|
||||
"github.com/gohugoio/hugo/hugolib"
|
||||
)
|
||||
|
||||
@@ -233,47 +232,3 @@ slug: custom-recipe-2
|
||||
b.AssertFileContent("public/delicious-recipe/recipe-1/index.html", "Single|page|/delicious-recipe/recipe-1/")
|
||||
b.AssertFileContent("public/delicious-recipe/custom-recipe-2/index.html", "Single|page|/delicious-recipe/custom-recipe-2/")
|
||||
}
|
||||
|
||||
// Issue 12948.
|
||||
// Issue 12954.
|
||||
func TestPermalinksWithEscapedColons(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
if htesting.IsWindows() {
|
||||
t.Skip("Windows does not support colons in paths")
|
||||
}
|
||||
|
||||
files := `
|
||||
-- hugo.toml --
|
||||
disableKinds = ['home','rss','sitemap','taxonomy','term']
|
||||
[permalinks.page]
|
||||
s2 = "/c\\:d/:slug/"
|
||||
-- content/s1/_index.md --
|
||||
---
|
||||
title: s1
|
||||
url: "/a\\:b/:slug/"
|
||||
---
|
||||
-- content/s1/p1.md --
|
||||
---
|
||||
title: p1
|
||||
url: "/a\\:b/:slug/"
|
||||
---
|
||||
-- content/s2/p2.md --
|
||||
---
|
||||
title: p2
|
||||
---
|
||||
-- layouts/_default/single.html --
|
||||
{{ .Title }}
|
||||
-- layouts/_default/list.html --
|
||||
{{ .Title }}
|
||||
`
|
||||
|
||||
b := hugolib.Test(t, files)
|
||||
|
||||
b.AssertFileExists("public/a:b/p1/index.html", true)
|
||||
b.AssertFileExists("public/a:b/s1/index.html", true)
|
||||
|
||||
// The above URLs come from the URL front matter field where everything is allowed.
|
||||
// We strip colons from paths constructed by Hugo (they are not supported on Windows).
|
||||
b.AssertFileExists("public/cd/p2/index.html", true)
|
||||
}
|
||||
|
||||
@@ -44,8 +44,6 @@ var testdataPermalinks = []struct {
|
||||
{"/:sections/", true, "/a/b/c/"}, // Sections
|
||||
{"/:sections[last]/", true, "/c/"}, // Sections
|
||||
{"/:sections[0]/:sections[last]/", true, "/a/c/"}, // Sections
|
||||
{"/\\:filename", true, "/:filename"}, // Escape sequence
|
||||
{"/special\\::slug/", true, "/special:the-slug/"}, // Escape sequence
|
||||
|
||||
// Failures
|
||||
{"/blog/:fred", false, ""},
|
||||
@@ -92,10 +90,6 @@ func TestPermalinkExpansion(t *testing.T) {
|
||||
expanded, err := expander.Expand("posts", page)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(expanded, qt.Equals, item.expandsTo)
|
||||
|
||||
expanded, err = expander.ExpandPattern(item.spec, page)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(expanded, qt.Equals, item.expandsTo)
|
||||
})
|
||||
|
||||
}
|
||||
@@ -123,7 +117,6 @@ func TestPermalinkExpansionMultiSection(t *testing.T) {
|
||||
"posts": "/:slug",
|
||||
"blog": "/:section/:year",
|
||||
"recipes": "/:slugorfilename",
|
||||
"special": "/special\\::slug",
|
||||
},
|
||||
}
|
||||
expander, err := NewPermalinkExpander(urlize, permalinksConfig)
|
||||
@@ -144,10 +137,6 @@ func TestPermalinkExpansionMultiSection(t *testing.T) {
|
||||
expanded, err = expander.Expand("recipes", page_slug_fallback)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(expanded, qt.Equals, "/page-filename")
|
||||
|
||||
expanded, err = expander.Expand("special", page)
|
||||
c.Assert(err, qt.IsNil)
|
||||
c.Assert(expanded, qt.Equals, "/special:the-slug")
|
||||
}
|
||||
|
||||
func TestPermalinkExpansionConcurrent(t *testing.T) {
|
||||
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -ex
|
||||
|
||||
export DART_SASS_VERSION=1.79.3
|
||||
|
||||
# If $BUILDARCH=arm64, then we need to install the arm64 version of Dart Sass,
|
||||
# otherwise we install the x64 version.
|
||||
ARCH="x64"
|
||||
if [ "$BUILDARCH" = "arm64" ]; then
|
||||
ARCH="arm64"
|
||||
fi
|
||||
|
||||
cd /tmp
|
||||
curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz
|
||||
ls -ltr
|
||||
tar -xf dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz
|
||||
rm dart-sass-${DART_SASS_VERSION}-linux-${ARCH}.tar.gz && \
|
||||
# The dart-sass folder is added to the PATH by the caller.
|
||||
mv dart-sass /var/hugo/bin
|
||||
@@ -1,7 +1,7 @@
|
||||
# Test the config command.
|
||||
|
||||
hugo config -h
|
||||
stdout 'Display site configuration'
|
||||
stdout 'Print the site configuration'
|
||||
|
||||
|
||||
hugo config
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Test the convert commands.
|
||||
|
||||
hugo convert -h
|
||||
stdout 'Convert front matter to another format'
|
||||
stdout 'Convert your content'
|
||||
hugo convert toJSON -h
|
||||
stdout 'to use JSON for the front matter'
|
||||
hugo convert toTOML -h
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Test the deploy command.
|
||||
|
||||
hugo deploy -h
|
||||
stdout 'Deploy your site to a cloud provider'
|
||||
stdout 'Deploy your site to a Cloud provider\.'
|
||||
mkdir mybucket
|
||||
hugo deploy --target mydeployment --invalidateCDN=false
|
||||
grep 'hello' mybucket/index.html
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
env NUM_COMMANDS=44
|
||||
|
||||
hugo gen -h
|
||||
stdout 'Generate documentation for your project using Hugo''s documentation engine, including syntax highlighting for various programming languages\.'
|
||||
stdout 'A collection of several useful generators\.'
|
||||
|
||||
hugo gen doc --dir clidocs
|
||||
checkfilecount $NUM_COMMANDS clidocs
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Test the import + import jekyll command.
|
||||
# Test the import jekyll command.
|
||||
|
||||
hugo import -h
|
||||
stdout 'Import a site from another system'
|
||||
stdout 'Import your site from other web site generators like Jekyll\.'
|
||||
|
||||
hugo import jekyll -h
|
||||
stdout 'hugo import from Jekyll\.'
|
||||
|
||||
@@ -65,20 +65,6 @@ cd myexistingsite
|
||||
hugo new post/foo.md -t mytheme
|
||||
grep 'Dummy content' content/post/foo.md
|
||||
|
||||
cd $WORK
|
||||
|
||||
# In the three archetype format tests below, skip Windows testing to avoid
|
||||
# newline differences when comparing to golden.
|
||||
|
||||
hugo new site json-site --format json
|
||||
[!windows] cmp json-site/archetypes/default.md archetype-golden-json.md
|
||||
|
||||
hugo new site toml-site --format toml
|
||||
[!windows] cmp toml-site/archetypes/default.md archetype-golden-toml.md
|
||||
|
||||
hugo new site yaml-site --format yaml
|
||||
[!windows] cmp yaml-site/archetypes/default.md archetype-golden-yaml.md
|
||||
|
||||
-- myexistingsite/hugo.toml --
|
||||
theme = "mytheme"
|
||||
-- myexistingsite/content/p1.md --
|
||||
@@ -94,22 +80,3 @@ draft: true
|
||||
---
|
||||
|
||||
Dummy content.
|
||||
|
||||
-- archetype-golden-json.md --
|
||||
{
|
||||
"date": "{{ .Date }}",
|
||||
"draft": true,
|
||||
"title": "{{ replace .File.ContentBaseName \"-\" \" \" | title }}"
|
||||
}
|
||||
-- archetype-golden-toml.md --
|
||||
+++
|
||||
date = '{{ .Date }}'
|
||||
draft = true
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
+++
|
||||
-- archetype-golden-yaml.md --
|
||||
---
|
||||
date: '{{ .Date }}'
|
||||
draft: true
|
||||
title: '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
---
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
<meta property="og:title" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }}
|
||||
<meta property="og:description" content="{{ trim . "\n\r\t " }}">
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape | chomp }}
|
||||
<meta property="og:description" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Params.locale site.Language.LanguageCode }}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
<meta itemprop="name" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }}
|
||||
<meta itemprop="description" content="{{ trim . "\n\r\t " }}">
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape | chomp }}
|
||||
<meta itemprop="description" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- $ISO8601 := "2006-01-02T15:04:05-07:00" }}
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
<meta name="twitter:title" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape }}
|
||||
<meta name="twitter:description" content="{{ trim . "\n\r\t " }}">
|
||||
{{- with or .Description .Summary site.Params.description | plainify | htmlUnescape | chomp }}
|
||||
<meta name="twitter:description" content="{{ . }}">
|
||||
{{- end }}
|
||||
|
||||
{{- $twitterSite := "" }}
|
||||
|
||||
Reference in New Issue
Block a user