diff options
Diffstat (limited to 'docs/content/en')
-rw-r--r-- | docs/content/en/content-management/multilingual.md | 4 | ||||
-rw-r--r-- | docs/content/en/content-management/page-bundles.md | 3 | ||||
-rw-r--r-- | docs/content/en/functions/with.md | 8 | ||||
-rw-r--r-- | docs/content/en/getting-started/configuration.md | 13 | ||||
-rw-r--r-- | docs/content/en/getting-started/external-learning-resources/index.md | 4 | ||||
-rw-r--r-- | docs/content/en/hosting-and-deployment/hosting-on-github.md | 2 | ||||
-rw-r--r-- | docs/content/en/hosting-and-deployment/hosting-on-render.md | 3 | ||||
-rw-r--r-- | docs/content/en/hugo-modules/use-modules.md | 1 | ||||
-rw-r--r-- | docs/content/en/hugo-pipes/js.md | 24 | ||||
-rwxr-xr-x | docs/content/en/hugo-pipes/resource-from-string.md | 2 | ||||
-rw-r--r-- | docs/content/en/news/0.78.0-relnotes/featured.png | bin | 0 -> 47074 bytes | |||
-rw-r--r-- | docs/content/en/news/0.78.0-relnotes/index.md | 10 | ||||
-rw-r--r-- | docs/content/en/news/0.78.1-relnotes/index.md | 4 | ||||
-rw-r--r-- | docs/content/en/templates/404.md | 2 | ||||
-rw-r--r-- | docs/content/en/tools/starter-kits.md | 2 |
15 files changed, 59 insertions, 23 deletions
diff --git a/docs/content/en/content-management/multilingual.md b/docs/content/en/content-management/multilingual.md index 036d74064..e24c573c2 100644 --- a/docs/content/en/content-management/multilingual.md +++ b/docs/content/en/content-management/multilingual.md @@ -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] @@ -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 diff --git a/docs/content/en/content-management/page-bundles.md b/docs/content/en/content-management/page-bundles.md index 2ccf058e0..9561ea2e9 100644 --- a/docs/content/en/content-management/page-bundles.md +++ b/docs/content/en/content-management/page-bundles.md @@ -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"] @@ -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. diff --git a/docs/content/en/functions/with.md b/docs/content/en/functions/with.md index 3fad8bd9c..a5c27d4f3 100644 --- a/docs/content/en/functions/with.md +++ b/docs/content/en/functions/with.md @@ -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 @@ -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: diff --git a/docs/content/en/getting-started/configuration.md b/docs/content/en/getting-started/configuration.md index d12ecdf3b..fbfa676bf 100644 --- a/docs/content/en/getting-started/configuration.md +++ b/docs/content/en/getting-started/configuration.md @@ -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. diff --git a/docs/content/en/getting-started/external-learning-resources/index.md b/docs/content/en/getting-started/external-learning-resources/index.md index 573fdfdbf..349d7e29d 100644 --- a/docs/content/en/getting-started/external-learning-resources/index.md +++ b/docs/content/en/getting-started/external-learning-resources/index.md @@ -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 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 70803d360..55cfcccd6 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-github.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-github.md @@ -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 diff --git a/docs/content/en/hosting-and-deployment/hosting-on-render.md b/docs/content/en/hosting-and-deployment/hosting-on-render.md index eb7947161..f23cb42ba 100644 --- a/docs/content/en/hosting-and-deployment/hosting-on-render.md +++ b/docs/content/en/hosting-and-deployment/hosting-on-render.md @@ -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) diff --git a/docs/content/en/hugo-modules/use-modules.md b/docs/content/en/hugo-modules/use-modules.md index aa03489d2..db12964b4 100644 --- a/docs/content/en/hugo-modules/use-modules.md +++ b/docs/content/en/hugo-modules/use-modules.md @@ -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 diff --git a/docs/content/en/hugo-pipes/js.md b/docs/content/en/hugo-pipes/js.md index 5e9c027d5..fd8697264 100644 --- a/docs/content/en/hugo-pipes/js.md +++ b/docs/content/en/hugo-pipes/js.md @@ -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: @@ -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`. @@ -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 @@ -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'; @@ -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: @@ -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 diff --git a/docs/content/en/hugo-pipes/resource-from-string.md b/docs/content/en/hugo-pipes/resource-from-string.md index 862fcd930..8b942d2f3 100755 --- a/docs/content/en/hugo-pipes/resource-from-string.md +++ b/docs/content/en/hugo-pipes/resource-from-string.md @@ -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 }} diff --git a/docs/content/en/news/0.78.0-relnotes/featured.png b/docs/content/en/news/0.78.0-relnotes/featured.png Binary files differnew file mode 100644 index 000000000..36ae0ac95 --- /dev/null +++ b/docs/content/en/news/0.78.0-relnotes/featured.png diff --git a/docs/content/en/news/0.78.0-relnotes/index.md b/docs/content/en/news/0.78.0-relnotes/index.md index dd2cd70d5..fcc20c066 100644 --- a/docs/content/en/news/0.78.0-relnotes/index.md +++ b/docs/content/en/news/0.78.0-relnotes/index.md @@ -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. @@ -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; diff --git a/docs/content/en/news/0.78.1-relnotes/index.md b/docs/content/en/news/0.78.1-relnotes/index.md index b67e5de6c..168c1bbcd 100644 --- a/docs/content/en/news/0.78.1-relnotes/index.md +++ b/docs/content/en/news/0.78.1-relnotes/index.md @@ -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) diff --git a/docs/content/en/templates/404.md b/docs/content/en/templates/404.md index 18fabc655..0916e2299 100644 --- a/docs/content/en/templates/404.md +++ b/docs/content/en/templates/404.md @@ -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. diff --git a/docs/content/en/tools/starter-kits.md b/docs/content/en/tools/starter-kits.md index 60b16cccb..e4255f98e 100644 --- a/docs/content/en/tools/starter-kits.md +++ b/docs/content/en/tools/starter-kits.md @@ -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 @@ -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 |