diff options
author | Bjørn Erik Pedersen <[email protected]> | 2020-05-06 12:12:57 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <[email protected]> | 2020-05-06 12:12:57 +0200 |
commit | e4621446ce8b9f677d00ed208154e7f106bc9980 (patch) | |
tree | 1e666fe8e257b322e51f184296cceee4f41042b5 | |
parent | 01befcce35ec992d195ce1b9a6a1eeda693cb5a8 (diff) | |
parent | 89044b8f8795f17c36396c67823183a20fc88139 (diff) | |
download | hugo-e4621446ce8b9f677d00ed208154e7f106bc9980.tar.gz hugo-e4621446ce8b9f677d00ed208154e7f106bc9980.zip |
Merge commit '89044b8f8795f17c36396c67823183a20fc88139'
46 files changed, 231 insertions, 40 deletions
diff --git a/docs/content/en/commands/hugo_gen_doc.md b/docs/content/en/commands/hugo_gen_doc.md index 2c003a972..657550886 100644 --- a/docs/content/en/commands/hugo_gen_doc.md +++ b/docs/content/en/commands/hugo_gen_doc.md @@ -13,7 +13,7 @@ Generate Markdown documentation for the Hugo CLI. Generate Markdown documentation for the Hugo CLI. This command is, mostly, used to create up-to-date documentation -of Hugo's command-line interface for http://gohugo.io/. +of Hugo's command-line interface for https://gohugo.io/. It creates one Markdown file per command with front matter suitable for rendering in Hugo. diff --git a/docs/content/en/content-management/formats.md b/docs/content/en/content-management/formats.md index ea0568616..da530343a 100644 --- a/docs/content/en/content-management/formats.md +++ b/docs/content/en/content-management/formats.md @@ -34,7 +34,7 @@ The current list of content formats in Hugo: |MMark|mmark|Mmark is deprecated and will be removed in a future release.| |Emacs Org-Mode|org|See [go-org](https://github.com/niklasfasching/go-org).| |Asciidoc|asciidoc, adoc, ad|Needs Asciidoc or [Asciidoctor][ascii] installed.| -|RST|rst|Needs [RST](http://docutils.sourceforge.net/rst.html) installed.| +|RST|rst|Needs [RST](https://docutils.sourceforge.io/rst.html) installed.| |Pandoc|pandoc, pdc|Needs [Pandoc](https://www.pandoc.org/) installed.| |HTML|html, htm|To be treated as a content file, with layout, shortcodes etc., it must have front matter. If not, it will be copied as-is.| @@ -88,7 +88,7 @@ Markdown syntax is simple enough to learn in a single sitting. The following are [mmark]: https://github.com/mmarkdown/mmark [org]: https://orgmode.org/ [pandoc]: https://www.pandoc.org/ -[Pygments]: http://pygments.org/ -[rest]: http://docutils.sourceforge.net/rst.html +[Pygments]: https://pygments.org/ +[rest]: https://docutils.sourceforge.io/rst.html [sc]: /content-management/shortcodes/ [sct]: /templates/shortcode-templates/ diff --git a/docs/content/en/content-management/shortcodes.md b/docs/content/en/content-management/shortcodes.md index 0244c4a88..599ce159c 100644 --- a/docs/content/en/content-management/shortcodes.md +++ b/docs/content/en/content-management/shortcodes.md @@ -423,7 +423,7 @@ To learn more about creating custom shortcodes, see the [shortcode template docu [Instagram]: https://www.instagram.com/ [pagevariables]: /variables/page/ [partials]: /templates/partials/ -[Pygments]: http://pygments.org/ +[Pygments]: https://pygments.org/ [quickstart]: /getting-started/quick-start/ [sctemps]: /templates/shortcode-templates/ [scvars]: /variables/shortcodes/ diff --git a/docs/content/en/contribute/development.md b/docs/content/en/contribute/development.md index bd76f9bbe..000f478fc 100644 --- a/docs/content/en/contribute/development.md +++ b/docs/content/en/contribute/development.md @@ -107,7 +107,7 @@ On a Mac, you can install [Hub](https://github.com/github/hub) using [Homebrew]( brew install hub ``` -Now we'll create an [alias in Bash](http://tldp.org/LDP/abs/html/aliases.html) so that typing `git` actually runs `Hub`: +Now we'll create an [alias in Bash](https://tldp.org/LDP/abs/html/aliases.html) so that typing `git` actually runs `Hub`: ``` echo "alias git='hub'" >> ~/.bash_profile diff --git a/docs/content/en/contribute/documentation.md b/docs/content/en/contribute/documentation.md index c4bbbd8bb..014f6761e 100644 --- a/docs/content/en/contribute/documentation.md +++ b/docs/content/en/contribute/documentation.md @@ -229,7 +229,7 @@ Which will render as follows in the Hugo docs: > Without the threat of punishment, there is no joy in flight. - [Kobo Abe][abe] {{% note "Blockquotes `!=` Admonitions" %}} -Previous versions of Hugo documentation used blockquotes to draw attention to text. This is *not* the [intended semantic use of `<blockquote>`](http://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting. To note or warn your user of specific information, use the admonition shortcodes that follow. +Previous versions of Hugo documentation used blockquotes to draw attention to text. This is *not* the [intended semantic use of `<blockquote>`](https://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting. To note or warn your user of specific information, use the admonition shortcodes that follow. {{% /note %}} ## Admonitions @@ -330,5 +330,5 @@ Similar to [contributing to Hugo development](/contribute/development/), the Hug [ghforking]: https://help.github.com/articles/fork-a-repo/ [hugodev]: /contribute/development/ [shortcodeparams]: content-management/shortcodes/#shortcodes-without-markdown -[sourceforge]: http://docutils.sourceforge.net/docs/ref/rst/directives.html#admonitions +[sourceforge]: https://docutils.sourceforge.io/docs/ref/rst/directives.html#admonitions [templating function]: /functions/ diff --git a/docs/content/en/functions/jsonify.md b/docs/content/en/functions/jsonify.md index 5c670244f..a6028fcda 100644 --- a/docs/content/en/functions/jsonify.md +++ b/docs/content/en/functions/jsonify.md @@ -5,13 +5,13 @@ description: Encodes a given object to JSON. godocref: date: 2017-02-01 publishdate: 2017-02-01 -lastmod: 2017-02-01 +lastmod: 2020-04-13 categories: [functions] menu: docs: parent: "functions" keywords: [strings,json] -signature: ["jsonify INPUT"] +signature: ["jsonify INPUT", "jsonify OPTIONS INPUT"] workson: [] hugoversion: relatedfuncs: [plainify] @@ -19,8 +19,18 @@ deprecated: false aliases: [] --- +Jsonify encodes a given object to JSON. + +To customize the printing of the JSON, pass a dictionary of options as the first +argument. Supported options are "prefix" and "indent". Each JSON element in +the output will begin on a new line beginning with *prefix* followed by one or +more copies of *indent* according to the indentation nesting. + + ``` {{ dict "title" .Title "content" .Plain | jsonify }} +{{ dict "title" .Title "content" .Plain | jsonify (dict "indent" " ") }} +{{ dict "title" .Title "content" .Plain | jsonify (dict "prefix" " " "indent" " ") }} ``` See also the `.PlainWords`, `.Plain`, and `.RawContent` [page variables][pagevars]. diff --git a/docs/content/en/functions/range.md b/docs/content/en/functions/range.md index f80967c41..26f636d4d 100644 --- a/docs/content/en/functions/range.md +++ b/docs/content/en/functions/range.md @@ -20,6 +20,6 @@ draft: false aliases: [] --- -Just like in the Go programming language, Go and Hugo templates make heavy use of `range` to iterate over a map, array or slice. +Just like in the Go programming language, Go and Hugo templates make heavy use of `range` to iterate over a map, array or slice. Other templating languages use a foreach for the equivalent functionality. `range` is fundamental to templating in Hugo. (See the [Introduction to Hugo Templates](/templates/introduction/) for more examples.) diff --git a/docs/content/en/functions/safeURL.md b/docs/content/en/functions/safeURL.md index 2e0733142..c132ddf05 100644 --- a/docs/content/en/functions/safeURL.md +++ b/docs/content/en/functions/safeURL.md @@ -69,4 +69,4 @@ With the `.URL` page variable piped through `safeURL`, we get the desired output [configuration]: /getting-started/configuration/ [menus]: /content-management/menus/ -[RFC 3986]: http://tools.ietf.org/html/rfc3986 +[RFC 3986]: https://tools.ietf.org/html/rfc3986 diff --git a/docs/content/en/getting-started/configuration.md b/docs/content/en/getting-started/configuration.md index 038793454..abce0286d 100644 --- a/docs/content/en/getting-started/configuration.md +++ b/docs/content/en/getting-started/configuration.md @@ -298,17 +298,21 @@ enableemoji: true {{< new-in "0.66.0" >}} -The `build` configuration section contains global build-realated configuration options. +The `build` configuration section contains global build-related configuration options. {{< code-toggle file="config">}} [build] useResourceCacheWhen="fallback" +writeStats = false {{< /code-toggle >}} useResourceCacheWhen : When to use the cached resources in `/resources/_gen` for PostCSS and ToCSS. Valid values are `never`, `always` and `fallback`. The last value means that the cache will be tried if PostCSS/extended version is not available. +writeStats {{< new-in "0.69.0" >}} +: When enabled, a file named `hugo_stats.json` will be written to your project root with some aggregated data about the build, e.g. list of HTML entities published to be used to do [CSS pruning](/hugo-pipes/postprocess/#css-purging-with-postcss). If you're only using this for the production build, you should consider placing it below [config/production](/getting-started/configuration/#configuration-directory). It's also worth mentioning that, due to the nature of the partial server builds, new HTML entities will be added when you add or change them while the server is running, but the old values will not be removed until you restart the server or run a regular `hugo` build. + ## Configure Server {{< new-in "0.67.0" >}} diff --git a/docs/content/en/getting-started/installing.md b/docs/content/en/getting-started/installing.md index 23f25f477..4583cff94 100644 --- a/docs/content/en/getting-started/installing.md +++ b/docs/content/en/getting-started/installing.md @@ -86,6 +86,12 @@ If you are on a Windows machine and use [Scoop][] for package management, you ca scoop install hugo ``` +Or install the extended version with: + +```bash +scoop install hugo-extended +``` + ### Source #### Prerequisite Tools @@ -517,7 +523,7 @@ Now that you've installed Hugo, read the [Quick Start guide][quickstart] and exp [installgo]: https://golang.org/dl/ [linuxbrew]: https://docs.brew.sh/Homebrew-on-Linux [Path Editor]: https://patheditor2.codeplex.com/ -[pygments]: http://pygments.org +[pygments]: https://pygments.org [quickstart]: /getting-started/quick-start/ [redhatforum]: https://discourse.gohugo.io/t/solved-fedora-copr-repository-out-of-service/2491 [releases]: https://github.com/gohugoio/hugo/releases diff --git a/docs/content/en/hosting-and-deployment/hosting-on-github.md b/docs/content/en/hosting-and-deployment/hosting-on-github.md index 9307a2758..9630c57ff 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-github.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-github.md @@ -42,7 +42,7 @@ To create a Project Pages site, choose a method from the *Project Pages* section ## GitHub User or Organization Pages -As mentioned [the GitHub Pages documentation][ghorgs], you can host a user/organization page in addition to project pages. Here are the key differences in GitHub Pages websites for Users and Organizations: +As mentioned in the [GitHub Pages documentation][ghorgs], you can host a user/organization page in addition to project pages. Here are the key differences in GitHub Pages websites for Users and Organizations: 1. You must use a `<USERNAME>.github.io` to host your **generated** content 2. Content from the `master` branch will be used to publish your GitHub Pages site @@ -54,7 +54,7 @@ This is a much simpler setup as your Hugo files and generated content are publis 1. Create a `<YOUR-PROJECT>` (e.g. `blog`) repository on GitHub. This repository will contain Hugo's content and other source files. 2. Create a `<USERNAME>.github.io` GitHub repository. This is the repository that will contain the fully rendered version of your Hugo website. 3. `git clone <YOUR-PROJECT-URL> && cd <YOUR-PROJECT>` -4. Paste your existing Hugo project into a new local `<YOUR-PROJECT>` repository. Make sure your website works locally (`hugo server` or `hugo server -t <YOURTHEME>`) and open your browser to <http://localhost:1313>. +4. Paste your existing Hugo project into the new local `<YOUR-PROJECT>` repository. Make sure your website works locally (`hugo server` or `hugo server -t <YOURTHEME>`) and open your browser to <http://localhost:1313>. 5. Once you are happy with the results: * Press <kbd>Ctrl</kbd>+<kbd>C</kbd> to kill the server * Before proceeding run `rm -rf public` to completely remove the `public` directory diff --git a/docs/content/en/hosting-and-deployment/hugo-deploy.md b/docs/content/en/hosting-and-deployment/hugo-deploy.md index 1156b2fee..d42ffe6c7 100644 --- a/docs/content/en/hosting-and-deployment/hugo-deploy.md +++ b/docs/content/en/hosting-and-deployment/hugo-deploy.md @@ -19,7 +19,7 @@ aliases: [] toc: true --- -You can use the "hugo deploy" command to upload your site directly to a Google Cloud Storage (GCS) bucket, an AWS S3 bucket, and/or an Azure Storage bucket. +You can use the "hugo deploy" command to upload your site directly to a Google Cloud Storage (GCS) bucket, an AWS S3 bucket, and/or an Azure Storage container. ## Assumptions @@ -46,7 +46,7 @@ Follow the [AWS instructions for how to create a bucket](https://docs.aws.amazon ### Azure Storage -Follow the [Azure instructions for how to create a bucket](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal). +Follow the [Azure instructions for how to create a storage container](https://docs.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-portal). ## Configure the deployment diff --git a/docs/content/en/hugo-pipes/postprocess.md b/docs/content/en/hugo-pipes/postprocess.md new file mode 100755 index 000000000..962d0ffdf --- /dev/null +++ b/docs/content/en/hugo-pipes/postprocess.md @@ -0,0 +1,70 @@ +--- +title: PostProcess +description: Allows delaying of resource transformations to after the build. +date: 2020-04-09 +categories: [asset management] +keywords: [] +menu: + docs: + parent: "pipes" + weight: 39 +weight: 39 +sections_weight: 39 +--- + +Marking a resource with `resources.PostProcess` delays any transformations to after the build, typically because one or more of the steps in the transformation chain depends on the result of the build (e.g. files in `public`).{{< new-in "0.69.0" >}} + +A prime use case for this is [CSS purging with PostCSS](#css-purging-with-postcss). + +There are currently two limitations to this: + +1. This only works in `*.html` templates (i.e. templates that produces HTML files). +2. You cannot manipulate the values returned from the resource's methods. E.g. the `upper` in this example will not work as expected: + + ```go-html-template + {{ $css := resources.Get "css/main.css" }} + {{ $css = $css | resources.PostCSS | minify | fingerprint | resources.PostProcess }} + {{ $css.RelPermalink | upper }} + ``` + +## CSS purging with PostCSS + +{{% note %}} +There are several ways to set up CSS purging with PostCSS in Hugo. If you have a simple project, you should consider going the simpler route and drop the use of `resources.PostProcess` and just extract keywords from the templates. See the [Tailwind documentation](https://tailwindcss.com/docs/controlling-file-size/#app) for some examples. +{{% /note %}} + +The below configuration will write a `hugo_stats.json` file to the project root as part of the build. If you're only using this for the production build, you should consider placing it below [config/production](/getting-started/configuration/#configuration-directory). + +```toml +[build] + writeStats = true +``` + +```js +const purgecss = require('@fullhuman/postcss-purgecss')({ + content: [ './hugo_stats.json' ], + defaultExtractor: (content) => { + let els = JSON.parse(content).htmlElements; + return els.tags.concat(els.classes, els.ids); + } +}); + +module.exports = { + plugins: [ + require('tailwindcss'), + require('autoprefixer'), + ...(process.env.HUGO_ENVIRONMENT === 'production' ? [ purgecss ] : []) + ] +}; +``` + +Note that in the example above, the "CSS purge step" will only be applied to the production build. This means that you need to do something like this in your head template to build and include your CSS: + +```go-html-template +{{ $css := resources.Get "css/main.css" }} +{{ $css = $css | resources.PostCSS }} +{{ if hugo.IsProduction }} +{{ $css = $css | minify | fingerprint | resources.PostProcess }} +{{ end }} +<link href="{{ $css.RelPermalink }}" rel="stylesheet" /> +``` diff --git a/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png b/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png Binary files differnew file mode 100644 index 000000000..d1b413142 --- /dev/null +++ b/docs/content/en/news/0.69.0-relnotes/hugo-69-easter-featured.png diff --git a/docs/content/en/news/0.69.0-relnotes/index.md b/docs/content/en/news/0.69.0-relnotes/index.md index 2a96cd9ef..13bb1b76b 100644 --- a/docs/content/en/news/0.69.0-relnotes/index.md +++ b/docs/content/en/news/0.69.0-relnotes/index.md @@ -1,12 +1,12 @@ --- date: 2020-04-10 -title: "0.69.0" -description: "0.69.0" +title: "Post Build Resource Transformations" +description: "Hugo 0.69.0 allows you to delay resource processing to after the build, the prime use case being removal of unused CSS." categories: ["Releases"] --- - It's Eeaster, a time for mysteries and puzzles. And at first glance, this Hugo release looks a little mysterious. The core of if is a mind-twister: +**It's Eeaster, a time for mysteries and puzzles.** And at first glance, this Hugo release looks a little mysterious. The core of if is a mind-twister: ```go-html-template {{ $css := resources.Get "css/main.css" }} diff --git a/docs/content/en/showcase/arolla-cocoon/bio.md b/docs/content/en/showcase/arolla-cocoon/bio.md index f01228828..dcccc8b50 100644 --- a/docs/content/en/showcase/arolla-cocoon/bio.md +++ b/docs/content/en/showcase/arolla-cocoon/bio.md @@ -1,5 +1,5 @@ -[Camping Arolla](http://www.camping-arolla.com/) is located in the heart of the Swiss Alps, at an altitude of 1.950 meters. +[Camping Arolla](https://www.camping-arolla.com) is located in the heart of the Swiss Alps, at an altitude of 1.950 meters. The site is built by: diff --git a/docs/content/en/showcase/arolla-cocoon/index.md b/docs/content/en/showcase/arolla-cocoon/index.md index 3fe304056..63f139adf 100644 --- a/docs/content/en/showcase/arolla-cocoon/index.md +++ b/docs/content/en/showcase/arolla-cocoon/index.md @@ -8,7 +8,7 @@ byline: "[Didier Divinerites](https://github.com/divinerites)" --- -Swiss [Arolla campsite](http://www.camping-arolla.com/) runs the highest campsite in Europe and I'm completely re-doing their actuel Website with Hugo. +Swiss [Arolla campsite](https://www.camping-arolla.com) runs the highest campsite in Europe and I'm completely re-doing their actuel Website with Hugo. But they just launch a brand new offer (luxury tents with bed and fire oven), and we couldn't wait for the proper new website for having this promoted: we needed the website up and running within 24h! @@ -18,8 +18,8 @@ So we decided to quickly launch a dedicated [independent web site](https://www.c - Replace the main images. - Add a [hugo-easy-gallery / photoswipe](https://github.com/liwenyip/hugo-easy-gallery) on the main page with attractive images. - Add the promo video with a simple *vimeo* shortcode. -- Replace the Google Maps widget by the [OpenStreetMap](http://www.openstreetmap.org/) equivalent -- Use a [Zotabox](http://www.zotabox.com) contact form. +- Replace the Google Maps widget by the [OpenStreetMap](https://www.openstreetmap.org/) equivalent +- Use a [Zotabox](https://www.zotabox.com) contact form. - Write the content in French & in English directly on the content pages, describe their services, add fun facts and true testimonies. - Setup a GDPR compliant site with the new Hugo options. - Use [Netlify](https://www.netlify.com) for publishing it in a breeze. diff --git a/docs/content/en/showcase/digitalgov/bio.md b/docs/content/en/showcase/digitalgov/bio.md new file mode 100644 index 000000000..db3ffafaf --- /dev/null +++ b/docs/content/en/showcase/digitalgov/bio.md @@ -0,0 +1,2 @@ + +**Digital.gov** helps people in the U.S. government deliver better, more accessible digital services through publishing essential guidance, resources, tools, and online events that make it easier for people to design, build, and deliver essential services for the public. diff --git a/docs/content/en/showcase/digitalgov/featured.png b/docs/content/en/showcase/digitalgov/featured.png Binary files differnew file mode 100644 index 000000000..b20a53320 --- /dev/null +++ b/docs/content/en/showcase/digitalgov/featured.png diff --git a/docs/content/en/showcase/digitalgov/index.md b/docs/content/en/showcase/digitalgov/index.md new file mode 100644 index 000000000..63f44b645 --- /dev/null +++ b/docs/content/en/showcase/digitalgov/index.md @@ -0,0 +1,66 @@ +--- +title: Digital.gov +date: 2020-05-01 +description: "Showcase: \"Guidance on building better digital services in government.\"" +siteURL: https://digital.gov/ +siteSource: https://github.com/gsa/digitalgov.gov +--- + +For over a decade, Digital.gov has provided guidance, training, and community support to the people who are responsible for delivering digital services in the U.S. government. Essentially, it is a place where people can find examples of problems being solved in government, and get links to the tools and resources they need. + +Through collaboration in our communities of practice, Digital.gov is a window into the people who work in technology in government and the challenges they face making digital services stronger and more effective. [Read more about our site »](https://digital.gov/2019/12/19/a-new-digitalgov/) + +Digital.gov is built using the [U.S. Web Design System](https://designsystem.digital.gov/) (USWDS) and have followed the [design principles](https://designsystem.digital.gov/maturity-model/) in building out our new site: + +- **Start with real user needs** — We used human-centered design methods to inform our product decisions (like qualitative user research), and gathered feedback from real users. We also continually test our assumptions with small experiments. +- **Earn trust** —We recognize that trust has to be earned every time. We are including all [required links and content](https://digital.gov/resources/required-web-content-and-links/) on our site, clearly identifying as a government site, building with modern best practices, and using https. +- **Embrace accessibility** — [Accessibility](https://digital.gov/resources/intro-accessibility/) affects everybody, and we built it into every decision. We’re continually working to conform to Section 508 requirements, use user experience best practices, and support a wide range of devices. +- **Promote continuity** — We started from shared solutions like USWDS and [Federalist](https://federalist.18f.gov/). We designed our site to clearly identify as a government site by including USWDS’s .gov banner, common colors and patterns, and built with modern best practices. +- **Listen** — We actively collect user feedback and web metrics. We use the [Digital Analytics Program](https://digital.gov/services/dap/) (DAP) and analyze the data to discover actionable insights. We make small, incremental changes to continuously improve our website by listening to readers and learning from what we hear. + +_More on the [USWDS maturity model »](https://designsystem.digital.gov/maturity-model/)_ + +## Open Tools + +We didn’t start from scratch. We built and designed the Digital.gov using many of the open-source tools and services that we develop for government here in the [Technology Transformation Services](https://www.gsa.gov/tts/) (TTS). + +Using services that make it possible to design, build, and iterate quickly are essential to modern web design and development, which is why [Federalist](https://federalist.18f.gov/) and the [U.S. Web Design System](https://designsystem.digital.gov/) are such a great combination. + +**Why Hugo?** Well, with around `~3,000` files _(and growing)_ and `~9,000` built pages, we needed a site generator that could handle that volume with lightning fast speed. + +Hugo was the clear option. The [Federalist](https://federalist.18f.gov/) team quickly added it to their available site generators, and we were off. + +At the moment, it takes around `32 seconds` to build close to `~10,000` pages! + +Take a look: + +```bash + + | EN +-------------------+------- + Pages | 7973 + Paginator pages | 600 + Non-page files | 108 + Static files | 851 + Processed images | 0 + Aliases | 1381 + Sitemaps | 1 + Cleaned | 0 + +Built in 32.427 seconds + +``` + +In addition to Hugo, we are proudly using a number of other tools and services, all built by government are free to use: + +- [Federalist](https://federalist.18f.gov/) +- [Search.gov](https://www.search.gov/) — A free, hosted search platform for federal websites. +- [Cloud.gov](https://www.cloud.gov/) — helps teams build, run, and authorize cloud-ready or legacy government systems quickly and cheaply. +- [Federal CrowdSource Mobile Testing Program](https://digital.gov/services/mobile-application-testing-program/) — Free mobile compatibility testing by feds, for feds. +- [Digital Analytics Program](https://digital.gov/services/dap/) (DAP) — A free analytics tool for measuring digital services in the federal government +- [Section508.gov](https://www.section508.gov/) and [PlainLanguage.gov](https://www.plainlanguage.gov/) resources +- [API.data.gov](https://api.data.gov/) — a free API management service for federal agencies +- [U.S. Digital Registry](https://digital.gov/services/u-s-digital-registry/) — A resource for confirming the official status of government social media accounts, mobile apps, and mobile websites. + + +**Questions or feedback?** [Submit an issue](https://github.com/GSA/digitalgov.gov/issues) or send us an email to [[email protected]](mailto:[email protected]) :heart: diff --git a/docs/content/en/showcase/flesland-flis/bio.md b/docs/content/en/showcase/flesland-flis/bio.md index c1a4e8187..2fa6a7964 100644 --- a/docs/content/en/showcase/flesland-flis/bio.md +++ b/docs/content/en/showcase/flesland-flis/bio.md @@ -3,6 +3,6 @@ A business page for Flesland Flis AS. A Norwegian Tiler located in Bergen. The page is designed and developed by Sindre Gusdal: -* [Absoluttweb AS](http://www.absoluttweb.no) +* [Absoluttweb AS](https://www.absoluttweb.no) * [Sindre Gusdal](https://www.linkedin.com/in/sindregusdal/) diff --git a/docs/content/en/showcase/flesland-flis/index.md b/docs/content/en/showcase/flesland-flis/index.md index 5e18f040c..935bb4661 100644 --- a/docs/content/en/showcase/flesland-flis/index.md +++ b/docs/content/en/showcase/flesland-flis/index.md @@ -4,7 +4,7 @@ title: Flesland Flis AS date: 2018-04-24 description: "showcase: Business Page for a tile shop in Bergen, Norway" siteURL: https://www.fleslandflis.no -byline: "[Sindre Gusdal](http://www.absoluttweb.no), Absoluttweb AS" +byline: "[Sindre Gusdal](https://www.absoluttweb.no), Absoluttweb AS" --- diff --git a/docs/content/en/showcase/keycdn/bio.md b/docs/content/en/showcase/keycdn/bio.md new file mode 100644 index 000000000..90f623dca --- /dev/null +++ b/docs/content/en/showcase/keycdn/bio.md @@ -0,0 +1 @@ +[KeyCDN](https://www.keycdn.com) is a high performance content delivery network (CDN) offering many powerful features, including image processing that can transform and optimize images in real time. Our network offers global coverage to speed up content delivery and is capable of delivering entire static websites, like those built with Hugo, at the edge. diff --git a/docs/content/en/showcase/keycdn/featured.png b/docs/content/en/showcase/keycdn/featured.png Binary files differnew file mode 100644 index 000000000..46018a8f9 --- /dev/null +++ b/docs/content/en/showcase/keycdn/featured.png diff --git a/docs/content/en/showcase/keycdn/index.md b/docs/content/en/showcase/keycdn/index.md new file mode 100644 index 000000000..d092aa07d --- /dev/null +++ b/docs/content/en/showcase/keycdn/index.md @@ -0,0 +1,30 @@ +--- + +title: KeyCDN +date: 2020-04-10 +description: "Showcase: \"Hugo has become an integral part of our stack.\"" +siteURL: https://www.keycdn.com + +--- + +At KeyCDN one of our primary focuses is on performance. With speed being ingrained in our DNA we knew from the start that we must use a fast static website generator that could meet our requirements. When evaluating the right solution, Hugo met our requirements and we looked no further as it was the fastest and most flexible. + +## Why we chose Hugo + +Before our migration to Hugo our website was powered by a PHP-based website that had about 50 pages and a WordPress website that had over 500 posts between our blog and knowledge base. This became harder to maintain as time continued. We felt like we were losing the speed and flexibility that we require. To overcome this we knew we needed to convert our website to be static. This would allow our website to be faster and more secure as it could be delivered by all of our edge locations. + +It wasn’t an easy task at the beginning, however, after evaluating Hugo and benchmarking it we knew we had found the ideal solution. Hugo was by far the fastest setup and offered an intuitive way to build our entire website exactly as needed. The Go-based templates, shortcodes, and configuration options made it easy to build a complex website. + +In the fall of 2018 we started the migration and within a couple short months we had built a custom static website with Hugo and migrated all content from our old systems. The simplicity and vast amount of functionality that Hugo offers made this process fast and left our entire team, including all of our writers and developers, happy with the migration. Since migrating to Hugo we haven’t looked back. Hugo has become an integral part of our stack. We’re grateful to all those who have contributed to make Hugo what it is today. + +## Technical overview + +Below is an overview of what we used with Hugo to build our website: + +* [KeyCDN](https://www.keycdn.com) uses a custom theme and is our primary hub for all style sheets and JavaScript. Our other websites, like [KeyCDN Tools](https://tools.keycdn.com), only import the required style sheets and JavaScript. +* We use [Gulp](https://gulpjs.com) in our build process for many tasks, such as combining, versioning, and compressing our style sheets as well as our JavaScript. +* Our search is powered by a custom solution that we’ve built. It allows our pages, blog, and knowledge base to be searched. It uses [Axios](https://github.com/axios/axios) to send a `POST` request containing the search query. An index file in JSON generated by Hugo is searched and the results are then returned. +* Our commenting system is also powered by a custom solution that we’ve built. It uses Axios to send a `GET` request containing the slug to pull the comment thread and a `POST` request containing the name, email address, and comment when submitting a comment. +* Our contact form is a simple HTML form, which uses Axios as well. +* Our writers use shortcodes to enhance the capability of markdown. +* Our entire website is delivered through KeyCDN using a Pull Zone, which means all of our edge locations are delivering our website. diff --git a/docs/content/en/templates/lists.md b/docs/content/en/templates/lists.md index e5f3003fb..c2140b472 100644 --- a/docs/content/en/templates/lists.md +++ b/docs/content/en/templates/lists.md @@ -534,17 +534,17 @@ See the documentation on [`where` function][wherefunction] and [`first` function][firstfunction] for further details. [base]: /templates/base/ -[bepsays]: http://bepsays.com/en/2016/12/19/hugo-018/ +[bepsays]: https://bepsays.com/en/2016/12/19/hugo-018/ [directorystructure]: /getting-started/directory-structure/ [`Format` function]: /functions/format/ [front matter]: /content-management/front-matter/ [getpage]: /functions/getpage/ [homepage]: /templates/homepage/ [homepage]: /templates/homepage/ -[mentalmodel]: http://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html +[mentalmodel]: https://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html [pagevars]: /variables/page/ [partials]: /templates/partials/ -[RSS 2.0]: http://cyber.law.harvard.edu/rss/rss.html "RSS 2.0 Specification" +[RSS 2.0]: https://cyber.harvard.edu/rss/rss.html "RSS 2.0 Specification" [rss]: /templates/rss/ [sections]: /content-management/sections/ [sectiontemps]: /templates/section-templates/ diff --git a/docs/content/en/templates/sitemap-template.md b/docs/content/en/templates/sitemap-template.md index 9afc0d389..dee28fc3b 100644 --- a/docs/content/en/templates/sitemap-template.md +++ b/docs/content/en/templates/sitemap-template.md @@ -43,7 +43,7 @@ For multilingual sites, we also create a Sitemap index. You can provide a custom ## Hugo’s sitemap.xml -This template respects the version 0.9 of the [Sitemap Protocol](http://www.sitemaps.org/protocol.html). +This template respects the version 0.9 of the [Sitemap Protocol](https://www.sitemaps.org/protocol.html). ```xml {{ printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\" ?>" | safeHTML }} diff --git a/docs/content/en/variables/files.md b/docs/content/en/variables/files.md index eb5d404de..51cd54756 100644 --- a/docs/content/en/variables/files.md +++ b/docs/content/en/variables/files.md @@ -39,7 +39,6 @@ The `.File` object contains the following fields: .File.BaseFileName : the filename without extension (e.g., `foo.en`) - .File.Ext : the file extension of the content file (e.g., `md`); this can also be called using `.File.Extension` as well. Note that it is *only* the extension without `.`. @@ -49,4 +48,7 @@ The `.File` object contains the following fields: .File.Dir : given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned (e.g., `posts/dir1/dir2/`). Note that the path separator (`\` or `/`) could be dependent on the operating system. +.File.UniqueID +: the MD5-checksum of the content file's path. + [Multilingual]: /content-management/multilingual/ diff --git a/docs/content/en/variables/page.md b/docs/content/en/variables/page.md index c426ca47c..ec19f85c4 100644 --- a/docs/content/en/variables/page.md +++ b/docs/content/en/variables/page.md @@ -131,7 +131,7 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. .RawContent : raw markdown content without the front matter. Useful with [remarkjs.com]( -http://remarkjs.com) +https://remarkjs.com) .ReadingTime : the estimated time, in minutes, it takes to read the content. @@ -179,8 +179,8 @@ http://remarkjs.com) .Type : the [content type](/content-management/types/) of the content (e.g., `posts`). -.UniqueID -: the MD5-checksum of the content file's path. +.UniqueID (deprecated) +: the MD5-checksum of the content file's path. This variable is deprecated and will be removed, use `.File.UniqueID` instead. .Weight : assigned weight (in the front matter) to this content, used in sorting. diff --git a/docs/content/zh/_index.md b/docs/content/zh/_index.md index 78f9ef15f..e2c28c1f4 100644 --- a/docs/content/zh/_index.md +++ b/docs/content/zh/_index.md @@ -34,7 +34,7 @@ features: sections: - heading: "100s of Themes" cta: Check out the Hugo's themes. - link: http://themes.gohugo.io/ + link: https://themes.gohugo.io/ color_classes: bg-accent-color white image: /images/homepage-screenshot-hugo-themes.jpg copy: "Hugo provides a robust theming system that is easy to implement but capable of producing even the most complicated websites." diff --git a/docs/netlify.toml b/docs/netlify.toml index f7b857cab..596fbb1b3 100644 --- a/docs/netlify.toml +++ b/docs/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.68.3" +HUGO_VERSION = "0.69.2" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.68.3" +HUGO_VERSION = "0.69.2" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.68.3" +HUGO_VERSION = "0.69.2" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.68.3" +HUGO_VERSION = "0.69.2" [context.next.environment] HUGO_ENABLEGITINFO = "true" diff --git a/docs/resources/_gen/images/news/0.48-relnotes/featured-hugo-48-poster_hub95348423e80ff144dfee01d64fb9889_95358_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.48-relnotes/featured-hugo-48-poster_hub95348423e80ff144dfee01d64fb9889_95358_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index 7ae07ef02..000000000 --- a/docs/resources/_gen/images/news/0.48-relnotes/featured-hugo-48-poster_hub95348423e80ff144dfee01d64fb9889_95358_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.49-relnotes/featured-hugo-49-poster_hud9cdb0f9aa2ec95d28fc3f49c81e7940_66352_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.49-relnotes/featured-hugo-49-poster_hud9cdb0f9aa2ec95d28fc3f49c81e7940_66352_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index e4f918db7..000000000 --- a/docs/resources/_gen/images/news/0.49-relnotes/featured-hugo-49-poster_hud9cdb0f9aa2ec95d28fc3f49c81e7940_66352_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.50-relnotes/featured-hugo-50-poster_hudcbbb9a5a0079d08447101e6cfae6e40_227240_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.50-relnotes/featured-hugo-50-poster_hudcbbb9a5a0079d08447101e6cfae6e40_227240_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index 338531b40..000000000 --- a/docs/resources/_gen/images/news/0.50-relnotes/featured-hugo-50-poster_hudcbbb9a5a0079d08447101e6cfae6e40_227240_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.51-relnotes/featured-hugo-51-poster_hu25ab021d1365edeedf46d92fdb888ccf_117678_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.51-relnotes/featured-hugo-51-poster_hu25ab021d1365edeedf46d92fdb888ccf_117678_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index 1ef2c1d5b..000000000 --- a/docs/resources/_gen/images/news/0.51-relnotes/featured-hugo-51-poster_hu25ab021d1365edeedf46d92fdb888ccf_117678_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.52-relnotes/featured-hugo-52-poster_hu7f2ed09038efabda07872a275a935ada_336810_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.52-relnotes/featured-hugo-52-poster_hu7f2ed09038efabda07872a275a935ada_336810_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index a8927153e..000000000 --- a/docs/resources/_gen/images/news/0.52-relnotes/featured-hugo-52-poster_hu7f2ed09038efabda07872a275a935ada_336810_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.53-relnotes/featured-hugo-53-poster_hu3f68fc193ad172155ee35a0be89133bf_110427_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.53-relnotes/featured-hugo-53-poster_hu3f68fc193ad172155ee35a0be89133bf_110427_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index 978d0dcba..000000000 --- a/docs/resources/_gen/images/news/0.53-relnotes/featured-hugo-53-poster_hu3f68fc193ad172155ee35a0be89133bf_110427_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_480x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_480x0_resize_catmullrom_2.png Binary files differnew file mode 100644 index 000000000..69d524d72 --- /dev/null +++ b/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_480x0_resize_catmullrom_2.png diff --git a/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_640x0_resize_catmullrom_2.png Binary files differnew file mode 100644 index 000000000..220add9f7 --- /dev/null +++ b/docs/resources/_gen/images/news/0.69.0-relnotes/hugo-69-easter-featured_hu1e6bcfa5c2c3547379b657838d335c52_398560_640x0_resize_catmullrom_2.png diff --git a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_1024x512_fill_catmullrom_top_2.png b/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_1024x512_fill_catmullrom_top_2.png Binary files differdeleted file mode 100644 index 5a6a2c060..000000000 --- a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_1024x512_fill_catmullrom_top_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index bd37a040f..000000000 --- a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_640x0_resize_catmullrom_2.png +++ /dev/null diff --git a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_989c7e76c2c712f873e3f3bc40d31e81.png b/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_989c7e76c2c712f873e3f3bc40d31e81.png Binary files differdeleted file mode 100644 index 796933f1b..000000000 --- a/docs/resources/_gen/images/showcase/Aether/featured_hu087b0e6f87446792599d3d3535cdd374_275219_989c7e76c2c712f873e3f3bc40d31e81.png +++ /dev/null diff --git a/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1024x512_fill_catmullrom_top_2.png b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1024x512_fill_catmullrom_top_2.png Binary files differnew file mode 100644 index 000000000..d11036cda --- /dev/null +++ b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1024x512_fill_catmullrom_top_2.png diff --git a/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1b9f2369c3bfa3c47e6a6a32fc7b5fed.png b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1b9f2369c3bfa3c47e6a6a32fc7b5fed.png Binary files differnew file mode 100644 index 000000000..4615b638d --- /dev/null +++ b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_1b9f2369c3bfa3c47e6a6a32fc7b5fed.png diff --git a/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_640x0_resize_catmullrom_2.png Binary files differnew file mode 100644 index 000000000..5fd2a2caf --- /dev/null +++ b/docs/resources/_gen/images/showcase/keycdn/featured_hub7f38531767be8be63ac710821ebd35e_358740_640x0_resize_catmullrom_2.png diff --git a/docs/resources/_gen/images/showcase/over/featured-over_hu096cafb8a4c371f6c5d5431b68c2978f_194841_640x0_resize_catmullrom_2.png b/docs/resources/_gen/images/showcase/over/featured-over_hu096cafb8a4c371f6c5d5431b68c2978f_194841_640x0_resize_catmullrom_2.png Binary files differdeleted file mode 100644 index 791553edc..000000000 --- a/docs/resources/_gen/images/showcase/over/featured-over_hu096cafb8a4c371f6c5d5431b68c2978f_194841_640x0_resize_catmullrom_2.png +++ /dev/null |