Skip to content

Commit

Permalink
Merge commit '9f1265fde4b9ef186148337c99f08601633b6056'
Browse files Browse the repository at this point in the history
  • Loading branch information
bep committed Nov 27, 2020
2 parents d162bbd + 9f1265f commit 4f1e4bb
Show file tree
Hide file tree
Showing 20 changed files with 66 additions and 661 deletions.
2 changes: 2 additions & 0 deletions docs/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ footnotereturnlinkcontents = "↩"
languageCode = "en-us"
title = "Hugo"

ignoreErrors = ["error-remote-getjson"]


googleAnalytics = "UA-7131036-4"

Expand Down
4 changes: 2 additions & 2 deletions docs/content/en/content-management/multilingual.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ You should define the available languages in a `languages` section in your site
The following is an example of a site configuration for a multilingual Hugo project:

{{< code-toggle file="config" >}}
DefaultContentLanguage = "en"
defaultContentLanguage = "en"
copyright = "Everything is mine"

[params]
Expand Down Expand Up @@ -71,7 +71,7 @@ If the default language needs to be rendered below its own language code (`/en`)

Only the obvious non-global options can be overridden per language. Examples of global options are `baseURL`, `buildDrafts`, etc.

**Please note:** use lowercase language codes, even when using regional languages (ie. use pt-pt instead of pt-PT). Currently Hugo language internals lowercase language codes, which can cause conflicts with settings like `DefaultContentLanguage` which are not lowercased. Please track the evolution of this issue in [Hugo repository issue tracker](https://github.com/gohugoio/hugo/issues/7344)
**Please note:** use lowercase language codes, even when using regional languages (ie. use pt-pt instead of pt-PT). Currently Hugo language internals lowercase language codes, which can cause conflicts with settings like `defaultContentLanguage` which are not lowercased. Please track the evolution of this issue in [Hugo repository issue tracker](https://github.com/gohugoio/hugo/issues/7344)

### Disable a Language

Expand Down
3 changes: 1 addition & 2 deletions docs/content/en/content-management/page-bundles.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
title : "Page Bundles"
description : "Content organization using Page Bundles"
date : 2018-01-24T13:09:00-05:00
lastmod : 2018-01-28T22:26:40-05:00
linktitle : "Page Bundles"
keywords : ["page", "bundle", "leaf", "branch"]
categories : ["content management"]
Expand Down Expand Up @@ -186,4 +185,4 @@ The hierarchy depth at which a branch bundle is created does not
matter.
{{% /note %}}

[^fn:1]: The `.md` extension is just an example. The extension can be `.html`, `.json` or any of any valid MIME type.
[^fn:1]: The `.md` extension is just an example. The extension can be `.html`, `.json` or any valid MIME type.
8 changes: 6 additions & 2 deletions docs/content/en/functions/with.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: with
# linktitle: with
description: Rebinds the context (`.`) within its scope and skips the block if the variable is absent.
description: Rebinds the context (`.`) within its scope and skips the block if the variable is absent or empty.
godocref:
date: 2017-02-01
publishdate: 2017-02-01
Expand All @@ -18,7 +18,11 @@ relatedfuncs: []
deprecated: false
---

An alternative way of writing an `if` statement and then referencing the same value is to use `with` instead. `with` rebinds the context (`.`) within its scope and skips the block if the variable is absent or unset.
An alternative way of writing an `if` statement and then referencing the same value is to use `with` instead. `with` rebinds the context (`.`) within its scope and skips the block if the variable is absent, unset or empty.

The set of *empty* values is defined by [the Go templates package](https://golang.org/pkg/text/template/). Empty values include `false`, the number zero, and the empty string.

If you want to render a block if an index or key is present in a slice, array, channel or map, regardless of whether the value is empty, you should use [`isset`](/functions/isset) instead.

The following example checks for a [user-defined site variable](/variables/site/) called `twitteruser`. If the key-value is not set, the following will render nothing:

Expand Down
13 changes: 12 additions & 1 deletion docs/content/en/getting-started/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,18 @@ Multiple site config files can be specified as a comma-separated string to the `

In addition to using a single site config file, one can use the `configDir` directory (default to `config/`) to maintain easier organization and environment specific settings.

- Each file represents a configuration root object, such as `Params`, `Menus`, `Languages` etc...
- Each file represents a configuration root object, such as `params.toml` for `[Params]`, `menu(s).toml` for `[Menu]`, `languages.toml` for `[Languages]` etc...
- Each file's content must be top-level, for example:

In `config.toml` is:
```toml
[Params]
foo = "bar"
```
In `params.toml` is:
```
foo = "bar"
```
- Each directory holds a group of files containing settings unique to an environment.
- Files can be localized to become language specific.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ Hugo in Action is a step-by-step guide to using Hugo to create static websites.

[Hugo In Action Home Page](https://www.manning.com/books/hugo-in-action)

### Build Websites with Hugo

[Build Websites with Hugo - Fast Web Development with Markdown (2020)](https://pragprog.com/titles/bhhugo/) by Brian P. Hogan.

## Video tutorials

### Video Playlist by Mike Dane
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ Refer to the [official documentation for custom domains][domains] for further in
[ghsignup]: https://github.com/join
[GitHub Pages service]: https://help.github.com/articles/what-is-github-pages/
[installgit]: https://git-scm.com/downloads
[orphan branch]: https://git-scm.com/docs/git-checkout/#git-checkout---orphanltnewbranchgt
[orphan branch]: https://git-scm.com/docs/git-checkout/#Documentation/git-checkout.txt---orphanltnewbranchgt
[Quick Start]: /getting-started/quick-start/
[submodule]: https://github.com/blog/2104-working-with-submodules
[worktree feature]: https://git-scm.com/docs/git-worktree
3 changes: 1 addition & 2 deletions docs/content/en/hosting-and-deployment/hosting-on-render.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,12 +46,11 @@ Static sites are **completely free** on Render and include the following:

You can set up a Hugo site on Render in two quick steps:

1. Create a new **Web Service** on Render, and give Render permission to access your GitHub/Gitlab repo.
1. Create a new **Static Site** on Render, and give Render permission to access your GitHub/Gitlab repo.
2. Use the following values during creation:

Field | Value
------------------- | -------------------
**Environment** | `Static Site`
**Build Command** | `hugo --gc --minify` (or your own build command)
**Publish Directory** | `public` (or your own output directory)

Expand Down
1 change: 1 addition & 0 deletions docs/content/en/hugo-modules/use-modules.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,7 @@ replace github.com/bep/hugotestmods/mypartials => /Users/bep/hugotestmods/mypart

If you have the `hugo server` running, the configuration will be reloaded and `/Users/bep/hugotestmods/mypartials` put on the watch list.

Note that since v.0.77.0 you can use modules config [`replacements`](https://gohugo.io/hugo-modules/configuration/#module-config-top-level) option. {{< new-in "0.77.0" >}}

## Print Dependency Graph

Expand Down
24 changes: 21 additions & 3 deletions docs/content/en/hugo-pipes/js.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ params [map or slice] {{< new-in "0.78.0" >}}
: Params that can be imported as JSON in your JS files, e.g.:

```go-html-template
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api" ) }}
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api")) }}
```
And then in your JS file:

Expand All @@ -40,6 +40,9 @@ Note that this is meant for small data sets, e.g. config settings. For larger da
minify [bool]
: Let `js.Build` handle the minification.

avoidTDZ {{< new-in "0.78.0" >}}
: There is/was a bug in WebKit with severe performance issue with the tracking of TDZ checks in JavaScriptCore. Enabling this flag removes the TDZ and `const` assignment checks and may improve performance of larger JS codebases until the WebKit fix is in widespread use. See https://bugs.webkit.org/show_bug.cgi?id=199866

target [string]
: The language target.
One of: `es5`, `es2015`, `es2016`, `es2017`, `es2018`, `es2019`, `es2020` or `esnext`.
Expand All @@ -66,6 +69,8 @@ format [string] {{< new-in "0.74.3" >}}
One of: `iife`, `cjs`, `esm`.
Default is `iife`, a self-executing function, suitable for inclusion as a <script> tag.

sourceMap
: Whether to generate source maps. Enum, currently only `inline` (we will improve that).

### Import JS code from /assets

Expand All @@ -77,7 +82,7 @@ Since Hugo `v0.78.0` `js.Build` has full support for the virtual union file syst
import { hello } from 'my/module';
```

And it will respolve to the top-most `index.{js,ts,tsx,jsx}` inside `assets/my/module` in the layered file system.
And it will resolve to the top-most `index.{js,ts,tsx,jsx}` inside `assets/my/module` in the layered file system.

```js
import { hello3 } from 'my/module/hello3';
Expand All @@ -97,10 +102,12 @@ For other files (e.g. `JSON`, `CSS`) you need to use the relative path including
import * as data from 'my/module/data.json';
```

Any imports in a file outside `/assets` or that does not resolve to a component inside `/assets` will be resolved by [ESBuild](https://esbuild.github.io/) with the **project directory** as the resolve directory (used as the starting point when looking for `node_modules` etc.). Also see [hugo mod npm pack](/commands/hugo_mod_npm_pack/). If you have any imported NPM dependencies in your project, you need to make sure to run `npm install` before you run `hugo`.

Also note the new `params` option that can be passed from template to your JS files, e.g.:

```go-html-template
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api" ) }}
{{ $js := resources.Get "js/main.js" | js.Build (dict "params" (dict "api" "https://example.org/api")) }}
```
And then in your JS file:

Expand All @@ -110,6 +117,17 @@ import * as params from '@params';

Hugo will, by default, generate a `assets/jsconfig.js` file that maps the imports. This is useful for navigation/intellisense help inside code editors, but if you don't need/want it, you can [turn it off](/getting-started/configuration/#configure-build).



### Include Dependencies In package.json / node_modules

Any imports in a file outside `/assets` or that does not resolve to a component inside `/assets` will be resolved by [ESBuild](https://esbuild.github.io/) with the **project directory** as the resolve directory (used as the starting point when looking for `node_modules` etc.). Also see [hugo mod npm pack](/commands/hugo_mod_npm_pack/). If you have any imported NPM dependencies in your project, you need to make sure to run `npm install` before you run `hugo`.

{{< new-in "0.78.1" >}} From Hugo `0.78.1` the start directory for resolving NPM packages (aka. packages that live inside a `node_modules` folder) is always the main project folder.

**Note:** If you're developing a theme/component that is supposed to be imported and depends on dependencies inside `package.json`, we recommend reading about [hugo mod npm pack](/commands/hugo_mod_npm_pack/), a tool to consolidate all the NPM dependencies in a project.


### Examples

```go-html-template
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/hugo-pipes/resource-from-string.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ It is possible to create a resource directly from the template using `resources.
The following example creates a resource file containing localized variables for every project's languages.

```go-html-template
{{ $string := (printf "var rootURL: '%s'; var apiURL: '%s';" (absURL "/") (.Param "API_URL")) }}
{{ $string := (printf "var rootURL = '%s'; var apiURL = '%s';" (absURL "/") (.Param "API_URL")) }}
{{ $targetPath := "js/vars.js" }}
{{ $vars := $string | resources.FromString $targetPath }}
{{ $global := resources.Get "js/global.js" | resources.Minify }}
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions docs/content/en/news/0.78.0-relnotes/index.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@

---
date: 2020-11-03
title: "0.78.0"
description: "0.78.0"
title: "Hugo 0.78.0: Full Hugo Modules Support in js.Build"
description: "Resolve JavaScript imports top-down in the layered filesystem, pass parameters from template to JS, new JS intellisense helper, improved JS build errors."
categories: ["Releases"]
---

This release finally brings full [Hugo Modules](https://gohugo.io/hugo-modules/) support to [js.Build](https://gohugo.io/hugo-pipes/js/), curtsy of he new plugin API in the really, really fast [ESBuild](https://github.com/evanw/esbuild) by [@evanw](https://github.com/evanw).
This release finally brings full [Hugo Modules](https://gohugo.io/hugo-modules/) support to [js.Build](https://gohugo.io/hugo-pipes/js/), curtsy of he new plugin API in the really, really fast [ESBuild](https://github.com/evanw/esbuild) by [@evanw](https://github.com/evanw).

Some notes on the improvements in this release:

* Now `js.Build` fully supports the virtual union file system in [Hugo Modules](https://gohugo.io/hugo-modules/). Any import inside your JavaScript components will resolve starting from the top component mount inside `/assets` with a fallback to the traditional "JS way" (`node_modules` etc.)
* Now `js.Build` fully supports the virtual union filesystem in [Hugo Modules](https://gohugo.io/hugo-modules/). Any import inside your JavaScript components will resolve starting from the top component mount inside `/assets` with a fallback to the traditional "JS way" (`node_modules` etc.)
* You can now pass configuration data from the templates to your scripts via a new `params` option.
* Hugo now writes a `jsconfig.js` file inside `/assets` (you can turn it off) with import mappings to help editors such as VS Code with intellisense/navigation, which is especially useful when there is no common root and the source lives inside some temporary directory.
* We have also improved the build errors you get from `js.Build`. In server mode you will get a preview of the failing lines and in the console you will get a link to the location.
Expand All @@ -28,7 +28,7 @@ And then in a JavaScript component:
```js
import * as params from '@params';

// Wil resolve to one of `hello.{js,ts,tsx,jsx}` inside `assets/my/module`.
// Will resolve to one of `hello.{js,ts,tsx,jsx}` inside `assets/my/module`.
import { hello } from 'my/module/hello';

var api = params.api;
Expand Down
4 changes: 1 addition & 3 deletions docs/content/en/news/0.78.1-relnotes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@ images:

---



This is a bug-fix release with a couple of important fixes.
The main fix in this release is that of dependency resolution for package.json/node_modules in theme components. See [the documentation](https://gohugo.io/hugo-pipes/js/#include-dependencies-in-packagejson--node_modules) for more information.

* Disable NPM test on Travis on Windows [3437174c](https://github.com/gohugoio/hugo/commit/3437174c3a7b96925b82b351ac87530b4fa796a5) [@bep](https://github.com/bep)
* travis: Install nodejs on Windows [f66302ca](https://github.com/gohugoio/hugo/commit/f66302ca0579171ffd1730eb8f33dd05af3d9a00) [@bep](https://github.com/bep)
Expand Down
2 changes: 1 addition & 1 deletion docs/content/en/templates/404.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ This is a basic example of a 404.html template:

Your 404.html file can be set to load automatically when a visitor enters a mistaken URL path, dependent upon the web serving environment you are using. For example:

* [GitHub Pages](/hosting-and-deployment/hosting-on-github/). The 404 page is automatic.
* [GitHub Pages](/hosting-and-deployment/hosting-on-github/) and [GitLab Pages](/hosting-and-deployment/hosting-on-gitlab/). The 404 page is automatic.
* Apache. You can specify `ErrorDocument 404 /404.html` in an `.htaccess` file in the root of your site.
* Nginx. You might specify `error_page 404 /404.html;` in your `nginx.conf` file.
* Amazon AWS S3. When setting a bucket up for static web serving, you can specify the error file from within the S3 GUI.
Expand Down
2 changes: 2 additions & 0 deletions docs/content/en/tools/starter-kits.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ The following starter kits are developed by active members of the Hugo community
* [Blaupause][]. Blaupause is a developer-friendly Hugo starter kit based on Gulp tasks. It comes ES6-ready with several helpers for SVG and fonts and basic structure for HTML, SCSS, and JavaScript.
* [hugulp][]. hugulp is a tool to optimize the assets of a Hugo website. The main idea is to recreate the famous Ruby on Rails Asset Pipeline, which minifies, concatenates and fingerprints the assets used in your website.
* [Atlas][]. Atlas is a Hugo boilerplate designed to speed up development with support for Netlify, Hugo Pipes, SCSS & more. It's actively maintained and contributions are always welcome.
* [Hyas][]. Hyas is a Hugo starter helping you build modern websites that are secure, fast, and SEO-ready — by default. It is Netlify-ready (functions, redirects, headers) and comes with [documentation](https://gethyas.com/) to easily make it your own.


[addkit]: https://github.com/gohugoio/hugo/edit/master/docs/content/en/tools/starter-kits.md
Expand All @@ -41,3 +42,4 @@ The following starter kits are developed by active members of the Hugo community
[hugulp]: https://github.com/jbrodriguez/hugulp
[Victor Hugo]: https://github.com/netlify/victor-hugo
[Atlas]: https://github.com/indigotree/atlas
[Hyas]: https://github.com/h-enk/hyas
8 changes: 4 additions & 4 deletions docs/netlify.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,28 @@ publish = "public"
command = "hugo --gc --minify"

[context.production.environment]
HUGO_VERSION = "0.77.0"
HUGO_VERSION = "0.78.2"
HUGO_ENV = "production"
HUGO_ENABLEGITINFO = "true"

[context.split1]
command = "hugo --gc --minify --enableGitInfo"

[context.split1.environment]
HUGO_VERSION = "0.77.0"
HUGO_VERSION = "0.78.2"
HUGO_ENV = "production"

[context.deploy-preview]
command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"

[context.deploy-preview.environment]
HUGO_VERSION = "0.77.0"
HUGO_VERSION = "0.78.2"

[context.branch-deploy]
command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"

[context.branch-deploy.environment]
HUGO_VERSION = "0.77.0"
HUGO_VERSION = "0.78.2"

[context.next.environment]
HUGO_ENABLEGITINFO = "true"
Expand Down
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit 4f1e4bb

Please sign in to comment.