mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-14 20:37:55 -05:00
Merge commit '9f1265fde4b9ef186148337c99f08601633b6056'
This commit is contained in:
commit
4f1e4bb3fe
20 changed files with 66 additions and 661 deletions
|
@ -7,6 +7,8 @@ footnotereturnlinkcontents = "↩"
|
|||
languageCode = "en-us"
|
||||
title = "Hugo"
|
||||
|
||||
ignoreErrors = ["error-remote-getjson"]
|
||||
|
||||
|
||||
googleAnalytics = "UA-7131036-4"
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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:
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 }}
|
||||
|
|
BIN
docs/content/en/news/0.78.0-relnotes/featured.png
Normal file
BIN
docs/content/en/news/0.78.0-relnotes/featured.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -3,7 +3,7 @@ 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"
|
||||
|
||||
|
@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true"
|
|||
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"
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 25 KiB |
Binary file not shown.
After Width: | Height: | Size: 37 KiB |
635
docs/static/images/site-hierarchy.svg
vendored
635
docs/static/images/site-hierarchy.svg
vendored
File diff suppressed because one or more lines are too long
Before Width: | Height: | Size: 206 KiB After Width: | Height: | Size: 193 KiB |
Loading…
Reference in a new issue