Squashed 'docs/' changes from f59b3ab06..cfe89ecbc
cfe89ecbc Set all *.png files under static/images to mode 0644 d847ccd8b More spelling error fixes bf1405d92 Correction: .Pages on homepage is same as .Site.RegularPages 7efa41ff5 Merge commit 'd137efe0222269e09b427325176f0044558e3cc5' d137efe02 Squashed 'themes/gohugoioTheme/' changes from f31a3dc8..66249819 50df8bfb8 Replace .Data.Pages with .Pages 85d3712d0 Mention the newScratch template func 1c234db1b Release 0.44 a51cb3e36 Merge branch 'temp44' ec424a5e2 releaser: Prepare repository for 0.45-DEV 425e85574 releaser: Add release notes to /docs for release of 0.44 e6f9c65a2 releaser: Bump versions for release of 0.44 45548a5c9 Arch Linux: Partial upgrades are unsupported c0430f8f9 Update MenuEntry properties documentation 79109b685 Refresh the documentation on staticDir config parameter 80ed4592b Remove duplicate links; also sort them alphabetically f00a4e232 HTTPS links to third-party sites 2f6f682ba Fixed a typo 4be105202 add openbsd howto install 39808f50a Fix typo b55c0f3a0 Fix URL to hugotest 2fb157237 Release Hugo 0.43 e8af6a970 Merge branch 'temp43' 563dd4173 Adjust release notes 50aed2e52 releaser: Prepare repository for 0.44-DEV 363b363ff releaser: Add release notes to /docs for release of 0.43 93bfbef62 releaser: Bump versions for release of 0.43 893a27d33 Fix typos fe5908257 Celebrate: a few typo and grammar fixes bb20442df Merge commit '98293eaa1570b5aff4452021c8b6d6c8560b3f06' ef3d63936 Add a newScratch template func bf100a3cd Merge branch 'release-0.42.2' f1133c544 releaser: Prepare repository for 0.43-DEV 2ce058057 releaser: Add release notes to /docs for release of 0.42.2 6073927c6 releaser: Bump versions for release of 0.42.2 3bafddd52 releaser: Prepare repository for 0.43-DEV 8b9f805bd releaser: Add release notes to /docs for release of 0.42.1 efb6638ba releaser: Bump versions for release of 0.42.1 1e74ffbe0 releaser: Prepare repository for 0.43-DEV 2d2d0f8ab releaser: Add release notes to /docs for release of 0.42 17f685813 releaser: Bump versions for release of 0.42 67ef1a0e1 docs: Update theme documentation d74874e1e docs: Remove some files now moved 771d50cf3 Merge commit 'b239595af5a9fc1fc9a1ccc666c3ab06ccc32f04' f9b5fd2d2 tplimpl: Remove speakerdeck shortcode 523206579 tpl/strings: strings.RuneCount b389efc88 tpl: Add strings.Repeat a41ad0254 Add a BlackFriday option for rel="noreferrer" on external links a6e279362 Add a BlackFriday option for rel="nofollow" on external links 7e2c9846e releaser: Prepare repository for 0.42-DEV b4f81c38a releaser: Add release notes to /docs for release of 0.41 55667b3a1 releaser: Bump versions for release of 0.41 afceb02d3 docs: Document the GDPR Privacy Config 8b8289027 Merge commit 'd2b1030060d3c91d5f9ffa3456418da16bd74f1d' be04a8886 Merge branch 'release-0.40.3' 33ca0b8da releaser: Prepare repository for 0.41-DEV 8c9a5a850 releaser: Add release notes to /docs for release of 0.40.3 85845a4fd releaser: Bump versions for release of 0.40.3 9af79e531 Merge commit '83bef6955e014d40c0f00db9cebe09113154e999' c4200dd0e Fix typo 8f8323336 releaser: Prepare repository for 0.41-DEV 9fab87505 releaser: Add release notes to /docs for release of 0.40.2 83648c666 releaser: Bump versions for release of 0.40.2 e6434d104 releaser: Prepare repository for 0.41-DEV 9389b2973 releaser: Add release notes to /docs for release of 0.40.1 32979e28a releaser: Bump versions for release of 0.40.1 196174a76 releaser: Prepare repository for 0.41-DEV 490a997bb releaser: Add release notes to /docs for release of 0.40 018aa6471 releaser: Bump versions for release of 0.40 92221934c Merge commit 'a215abf70e018f4bf40d6c09d8bd148d8684b33d' 0a58ef56e Merge commit 'd2ec1a06df8ab6b17ad05cb008d5701b40327d47' 312ab58c6 Improve .Get docs e43e8cee3 .Get function: fix syntax signature bb16150bc releaser: Prepare repository for 0.40-DEV 8cc80fed9 releaser: Add release notes to /docs for release of 0.39 f7aa0d1c5 releaser: Bump versions for release of 0.39 42e48706a Merge commit '047c4188dfc854f658d16f1e4a9501f9c97a31c7' 76acab68b releaser: Prepare repository for 0.39-DEV d270600b0 releaser: Add release notes to /docs for release of 0.38.2 97be36992 releaser: Bump versions for release of 0.38.2 cd29b8b79 releaser: Prepare repository for 0.39-DEV 9983a4bdf releaser: Add release notes to /docs for release of 0.38.1 7774afd01 releaser: Bump versions for release of 0.38.1 b89157f20 releaser: Prepare repository for 0.39-DEV af4d0bf62 releaser: Add release notes to /docs for release of 0.38 ca98e7d4f releaser: Bump versions for release of 0.38 8b773833a Merge commit 'ed8bf081fdbf336e026517b7e1b123c039014ab5' 24202bb71 docs: Generate docshelper data 43d15975d Add .Site.IsServer 6f99d3d65 Merge commit '0a23baa6a90901f772c234107c4f12c16c76f4aa' 17487ccdd hugolib: Add Reset method to delete key from Scratch ccbf7a05c docs: Add docs for lang.Merge 5ad46d78e Merge commit '3886fc1fef6ac19d58b9ba1bb642d0c6c9a54031' ac403c280 docs: Add docs on the new front matter configuration 6066c60e6 Merge commit 'c0290655825e7bb36e13fb39f89d85b392cf1adc' ee605c7ae releaser: Prepare repository for 0.38-DEV 31a4de966 releaser: Add release notes to /docs for release of 0.37.1 9dd3dafe1 releaser: Bump versions for release of 0.37.1 141750aec releaser: Prepare repository for 0.38-DEV c9bb39bc3 releaser: Add release notes to /docs for release of 0.37 c7009f064 releaser: Bump versions for release of 0.37 9f727d916 Merge commit '900b5f6cfe5a377ef369d26cd700201be4cf6b06' 87fd97853 Merge commit '374d184e6747678364fd61f5faf328ec9205eb6b' 244deafc2 Fix typos in development contribution doc 608c80f72 Merge branch 'release-0.36.1' 0f8ffbd5c releaser: Prepare repository for 0.37-DEV 5028ee849 releaser: Add release notes to /docs for release of 0.36.1 9ccc7cb11 releaser: Bump versions for release of 0.36.1 3db31be07 Merge commit '9cc9bab46288d8d5f9fda7009c5f746258cec1b4' 9468246c5 Add "target" and "rel" parameters to figure shortcode 6d7fa89f9 releaser: Prepare repository for 0.37-DEV 1aec7ad81 releaser: Add release notes to /docs for release of 0.36 b522da389 releaser: Bump versions for release of 0.36 bb78bea13 docs: Add documentation for smart cropping etc. 930f16cae Merge commit 'c305e44f5f081e4436195923a4593e396f07cd49' 0e4c80ab9 releaser: Prepare repository for 0.36-DEV e0d4c6bcd releaser: Add release notes to /docs for release of 0.35 f4ac67eb3 releaser: Bump versions for release of 0.35 229a50b1f docs: Regenerate CLI docs 72958eb9c Merge commit '337d0c5f516ee085205e8abefdb7f87e6d33ca05' d998ca4c0 command: Remove undraft command 34a0052ef docs: Re-generate CLI docs fa04ff331 releaser: Prepare repository for 0.35-DEV 55e595720 releaser: Add release notes to /docs for release of 0.34 bf4d0e8fb releaser: Bump versions for release of 0.34 07673370e releaser: Prepare repository for 0.34-DEV 921ea8920 releaser: Add release notes to /docs for release of 0.33 3307f61bd releaser: Bump versions for release of 0.33 792a4410d Merge commit '3cf4300097610bb8b5bd0686d96d1df5db641895' 6d8a9f657 releaser: Prepare repository for 0.33-DEV e3afccf6f releaser: Add release notes to /docs for release of 0.32.4 7f29cb196 releaser: Bump versions for release of 0.32.4 baa364436 releaser: Prepare repository for 0.33-DEV 60c775166 releaser: Add release notes to /docs for release of 0.32.3 9cbab1803 releaser: Bump versions for release of 0.32.3 51823efee releaser: Prepare repository for 0.33-DEV 71e03684c releaser: Add release notes to /docs for release of 0.32.2 e18bf56fb releaser: Bump versions for release of 0.32.2 54aa93927 Merge commit 'eb738cd35cca1ffc68c5ed688dbe2a19108e8761' 5e8123994 releaser: Prepare repository for 0.33-DEV a55b78124 releaser: Add release notes to /docs for release of 0.32.1 7de53ff41 releaser: Bump versions for release of 0.32.1 e6e58785d releaser: Prepare repository for 0.33-DEV 58cf5009d releaser: Add release notes to /docs for release of 0.32 031719821 Merge commit 'f3cd083961f36dc96d05e98aaf67f650102bc757' b9183604b Add Pandoc support, refactor external helpers 3f9b9474c releaser: Prepare repository for 0.32-DEV 11e4ce514 releaser: Add release notes to /docs for release of 0.31.1 aebb1504b releaser: Bump versions for release of 0.31.1 d70b54d4a releaser: Prepare repository for 0.32-DEV cdc10468e releaser: Add release notes to /docs for release of 0.31 38bd41cab releaser: Bump versions for release of 0.31 1c581a11d Merge commit '30c0d485eaff6d70df1be0353911ddca485d52bf' b88e46d02 Merge commit '05e42bc643f1840ed2ad9c2eff82a269d1381683' a45ab174e Handle Taxonomy permalinks 9f27354f6 Add support for height argument to figure shortcode acc8e49c1 releaser: Prepare repository for 0.31-DEV 977266b19 releaser: Add release notes to /docs for release of 0.30.2 31b672844 releaser: Bump versions for release of 0.30.2 b8f6b72a8 Merge commit '325009c3fd4ac90021897b7e3e025c14e70ce162' c6e3dae71 releaser: Prepare repository for 0.31-DEV 2a3c7c7d9 releaser: Add release notes to /docs for release of 0.30.1 4c014117a releaser: Bump versions for release of 0.30.1 1da61da06 releaser: Prepare repository for 0.31-DEV 24864a46b releaser: Add release notes to /docs for release of 0.30 3011aa44a releaser: Bump versions for release of 0.30 bcbf3237b Merge commit 'ecf5e081b5540e69f4af330233f39a07baf53846' ab68b99ed Merge commit 'dae5a7c61cceeb0de59f2d755f63e453f71dd9b2' 0ae435725 tpl: Add errorf template function ac3fb3808 Change SummaryLength to be configurable (#3924) 3c0e4fa70 tpl: Add os.fileExists template function 9290f3983 Merge commit '9d68f695e782c6a83c77aff13317c7a22c694c98' 394e8b3f6 tpl: Add float template function c0c48c2ea releaser: Prepare repository for 0.30-DEV 0806d910b releaser: Add release notes to /docs for release of 0.29 0d1101836 releaser: Bump versions for release of 0.29 5d92b552b releaser: Prepare repository for 0.29-DEV 1ef521182 releaser: Add release notes to /docs for release of 0.28 c5441cff1 releaser: Bump versions for release of 0.28 46c2786f1 Merge commit '61c27b58b353c73772aae572c7d822fdfdf7791b' 6fed4008f Merge commit '30694a133a88d5f76a51d0372646e10cbeca7691' 595752e2f Merge commit '7a89dce53bfbd67a17442a8f9be8fa895fc4f9b1' af14cae0c Merge commit 'ba45da9d03056447e4873de13d4e0f8d658a769b' d0bb30963 releaser: Prepare repository for 0.28-DEV 469bf26aa releaser: Add release notes to /docs for release of 0.27.1 06ea00c12 releaser: Bump versions for release of 0.27.1 0668af58e releaser: Prepare repository for 0.28-DEV 4ce00c84d releaser: Add release notes to /docs for release of 0.27 68f318d0b releaser: Bump versions for release of 0.27 509ad6cc0 docs: Merge commit '1b4319be62ba071f79e90ef32dbe92eb893429f7' c625ae1ce docs: Document Related Content ecd5c24f5 docs: Merge commit '7d63a23b0c68d9cd7c7c09c2755619237bc03485' b97b84f9d Update docs versiona and README 2238f7a4a Merge commit 'ec4e6f9df2ab9ffdc62a3f59675369096e0d3f77' as 'docs' git-subtree-dir: docs git-subtree-split: cfe89ecbc2288a7270c23dbcc179733c8d978c4c
|
@ -34,7 +34,6 @@ section = [ "HTML", "RSS"]
|
||||||
|
|
||||||
[mediaTypes]
|
[mediaTypes]
|
||||||
[mediaTypes."text/netlify"]
|
[mediaTypes."text/netlify"]
|
||||||
suffix = ""
|
|
||||||
delimiter = ""
|
delimiter = ""
|
||||||
|
|
||||||
[outputFormats]
|
[outputFormats]
|
||||||
|
@ -70,7 +69,7 @@ twitter = "GoHugoIO"
|
||||||
[params]
|
[params]
|
||||||
description = "The world’s fastest framework for building websites"
|
description = "The world’s fastest framework for building websites"
|
||||||
## Used for views in rendered HTML (i.e., rather than using the .Hugo variable)
|
## Used for views in rendered HTML (i.e., rather than using the .Hugo variable)
|
||||||
release = "0.42.2"
|
release = "0.44"
|
||||||
## Setting this to true will add a "noindex" to *EVERY* page on the site
|
## Setting this to true will add a "noindex" to *EVERY* page on the site
|
||||||
removefromexternalsearch = false
|
removefromexternalsearch = false
|
||||||
## Gh repo for site footer (include trailing slash)
|
## Gh repo for site footer (include trailing slash)
|
||||||
|
|
|
@ -24,7 +24,7 @@ This documentation belongs in other places in this documentation site, but is pu
|
||||||
|
|
||||||
Also see this demo project from [bep](https://github.com/bep/), the clever Norwegian behind these new features:
|
Also see this demo project from [bep](https://github.com/bep/), the clever Norwegian behind these new features:
|
||||||
|
|
||||||
* http://hugotest.bep.is/
|
* https://temp.bep.is/hugotest/
|
||||||
* https://github.com/bep/hugotest (source)
|
* https://github.com/bep/hugotest (source)
|
||||||
|
|
||||||
## Page Resources
|
## Page Resources
|
||||||
|
|
|
@ -43,27 +43,23 @@ Hugo is for people building a blog, a company site, a portfolio site, documentat
|
||||||
|
|
||||||
[@spf13]: https://twitter.com/@spf13
|
[@spf13]: https://twitter.com/@spf13
|
||||||
[Aerobatic]: https://www.aerobatic.com/
|
[Aerobatic]: https://www.aerobatic.com/
|
||||||
[Amazon S3]: http://aws.amazon.com/s3/
|
[Amazon S3]: https://aws.amazon.com/s3/
|
||||||
[Azure]: https://blogs.msdn.microsoft.com/acoat/2016/01/28/publish-a-static-web-site-using-azure-web-apps/
|
[Azure]: https://blogs.msdn.microsoft.com/acoat/2016/01/28/publish-a-static-web-site-using-azure-web-apps/
|
||||||
[CloudFront]: http://aws.amazon.com/cloudfront/ "Amazon CloudFront"
|
[CloudFront]: https://aws.amazon.com/cloudfront/ "Amazon CloudFront"
|
||||||
[contributing to it]: https://github.com/gohugoio/hugo
|
[DreamHost]: https://www.dreamhost.com/
|
||||||
[DreamHost]: http://www.dreamhost.com/
|
|
||||||
[Firebase]: https://firebase.google.com/docs/hosting/ "Firebase static hosting"
|
[Firebase]: https://firebase.google.com/docs/hosting/ "Firebase static hosting"
|
||||||
[GitHub Pages]: https://pages.github.com/
|
[GitHub Pages]: https://pages.github.com/
|
||||||
[GitLab Pages]: https://about.gitlab.com/features/pages/
|
[GitLab Pages]: https://about.gitlab.com/features/pages/
|
||||||
[Go language]: https://golang.org/
|
[Go language]: https://golang.org/
|
||||||
[GoDaddy]: https://www.godaddy.com/ "Godaddy.com Hosting"
|
[GoDaddy]: https://www.godaddy.com/ "Godaddy.com Hosting"
|
||||||
[Google Cloud Storage]: http://cloud.google.com/storage/
|
[Google Cloud Storage]: https://cloud.google.com/storage/
|
||||||
[Heroku]: https://www.heroku.com/
|
[Heroku]: https://www.heroku.com/
|
||||||
[Jekyll]: http://jekyllrb.com/
|
|
||||||
[Jekyll]: https://jekyllrb.com/
|
[Jekyll]: https://jekyllrb.com/
|
||||||
[Middleman]: https://middlemanapp.com/
|
[Middleman]: https://middlemanapp.com/
|
||||||
[Middleman]: https://middlemanapp.com/
|
|
||||||
[Nanoc]: http://nanoc.ws/
|
|
||||||
[Nanoc]: https://nanoc.ws/
|
[Nanoc]: https://nanoc.ws/
|
||||||
[Netlify]: https://netlify.com
|
[Netlify]: https://netlify.com
|
||||||
|
[Rackspace]: https://www.rackspace.com/cloud/files
|
||||||
|
[Surge]: https://surge.sh
|
||||||
|
[contributing to it]: https://github.com/gohugoio/hugo
|
||||||
[rackspace]: https://www.rackspace.com/cloud/files
|
[rackspace]: https://www.rackspace.com/cloud/files
|
||||||
[static site generator]: /about/benefits/
|
[static site generator]: /about/benefits/
|
||||||
[Rackspace]: https://www.rackspace.com/cloud/files
|
|
||||||
[static site generator]: /about/benefits/
|
|
||||||
[Surge]: https://surge.sh
|
|
||||||
|
|
|
@ -170,7 +170,7 @@ Last but not least, we have to create the second list that contains all publicat
|
||||||
The layout for this page can be defined in the template `layouts/taxonomy/author.html`.
|
The layout for this page can be defined in the template `layouts/taxonomy/author.html`.
|
||||||
|
|
||||||
{{< code file="layouts/taxonomy/author.html" download="author.html" >}}
|
{{< code file="layouts/taxonomy/author.html" download="author.html" >}}
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
|
<h2><a href="{{ .Permalink }}">{{ .Title }}</a></h2>
|
||||||
<span>written by {{ .Author.DisplayName }}</span>
|
<span>written by {{ .Author.DisplayName }}</span>
|
||||||
{{ .Summary }}
|
{{ .Summary }}
|
||||||
|
|
|
@ -36,47 +36,7 @@ A **menu** is a named array of menu entries accessible by name via the [`.Site.M
|
||||||
If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
|
If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
A menu entry has the following properties (i.e., variables) available to it:
|
See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry.
|
||||||
|
|
||||||
`.URL`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Name`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Menu`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Identifier`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Pre`
|
|
||||||
: template.HTML
|
|
||||||
|
|
||||||
`.Post`
|
|
||||||
: template.HTML
|
|
||||||
|
|
||||||
`.Weight`
|
|
||||||
: int
|
|
||||||
|
|
||||||
`.Parent`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Children`
|
|
||||||
: Menu
|
|
||||||
|
|
||||||
Note that menus also have the following functions available as well:
|
|
||||||
|
|
||||||
`.HasChildren`
|
|
||||||
: boolean
|
|
||||||
|
|
||||||
Additionally, there are some relevant functions available to menus on a page:
|
|
||||||
|
|
||||||
`.IsMenuCurrent`
|
|
||||||
: (menu string, menuEntry *MenuEntry ) boolean
|
|
||||||
|
|
||||||
`.HasMenuCurrent`
|
|
||||||
: (menu string, menuEntry *MenuEntry) boolean
|
|
||||||
|
|
||||||
## Add content to menus
|
## Add content to menus
|
||||||
|
|
||||||
|
@ -159,3 +119,4 @@ See [Menu Templates](/templates/menu-templates/) for information on how to rende
|
||||||
[config]: /getting-started/configuration/
|
[config]: /getting-started/configuration/
|
||||||
[multilingual]: /content-management/multilingual/
|
[multilingual]: /content-management/multilingual/
|
||||||
[sitevars]: /variables/
|
[sitevars]: /variables/
|
||||||
|
[me-props]: /variables/menus/
|
||||||
|
|
|
@ -39,7 +39,7 @@ To list up to 5 related pages is as simple as including something similar to thi
|
||||||
Read [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation of more advanced usage of this feature.
|
Read [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation of more advanced usage of this feature.
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
The full set of methods available on the page lists can bee seen in this Go interface:
|
The full set of methods available on the page lists can be seen in this Go interface:
|
||||||
|
|
||||||
```go
|
```go
|
||||||
// A PageGenealogist finds related pages in a page collection. This interface is implemented
|
// A PageGenealogist finds related pages in a page collection. This interface is implemented
|
||||||
|
|
|
@ -178,7 +178,7 @@ This shortcode will convert the source code provided into syntax-highlighted HTM
|
||||||
<section id="main">
|
<section id="main">
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -194,7 +194,7 @@ The `highlight` shortcode example above would produce the following HTML when th
|
||||||
<span style="color: #f92672"><section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">"main"</span><span style="color: #f92672">></span>
|
<span style="color: #f92672"><section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">"main"</span><span style="color: #f92672">></span>
|
||||||
<span style="color: #f92672"><div></span>
|
<span style="color: #f92672"><div></span>
|
||||||
<span style="color: #f92672"><h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">"title"</span><span style="color: #f92672">></span>{{ .Title }}<span style="color: #f92672"></h1></span>
|
<span style="color: #f92672"><h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">"title"</span><span style="color: #f92672">></span>{{ .Title }}<span style="color: #f92672"></h1></span>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<span style="color: #f92672"></div></span>
|
<span style="color: #f92672"></div></span>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
title: Static Files
|
title: Static Files
|
||||||
description: "The `static` folder is where you place all your **static files**."
|
description: "Files that get served **statically** (as-is, no modification) on the site root."
|
||||||
date: 2017-11-18
|
date: 2017-11-18
|
||||||
categories: [content management]
|
categories: [content management]
|
||||||
keywords: [source, directories]
|
keywords: [source, directories]
|
||||||
|
@ -13,36 +13,58 @@ aliases: [/static-files]
|
||||||
toc: true
|
toc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
The `static` folder is where you place all your **static files**, e.g. stylesheets, JavaScript, images etc.
|
By default, the `static/` directory in the site project is used for
|
||||||
|
all **static files** (e.g. stylesheets, JavaScript, images).
|
||||||
|
|
||||||
You can set the name of the static folder to use in your configuration file. From **Hugo 0.31** you can configure as many static directories as you need. All the files in all the static directories will form a union filesystem.
|
Hugo can be configured to look into a different directory, or even
|
||||||
|
**multiple directories** for such static files by configuring the
|
||||||
|
`staticDir` parameter in the [site config][]. All the files in all the
|
||||||
|
static directories will form a union filesystem.
|
||||||
|
|
||||||
Example:
|
This union filesystem will be served from your site root. So a file
|
||||||
|
`<SITE PROJECT>/static/me.png` will be accessible as
|
||||||
|
`<MY_BASEURL>/me.png`.
|
||||||
|
|
||||||
|
Here's an example of setting `staticDir` and `staticDir2` for a
|
||||||
|
multi-language site:
|
||||||
|
|
||||||
{{< code-toggle copy="false" file="config" >}}
|
{{< code-toggle copy="false" file="config" >}}
|
||||||
staticDir = ["static1", "static2"]
|
staticDir = ["static1", "static2"]
|
||||||
[languages]
|
|
||||||
[languages.no]
|
|
||||||
staticDir = ["staticDir_override", "static_no"]
|
|
||||||
baseURL = "https://example.no"
|
|
||||||
languageName = "Norsk"
|
|
||||||
weight = 1
|
|
||||||
title = "På norsk"
|
|
||||||
|
|
||||||
|
[languages]
|
||||||
[languages.en]
|
[languages.en]
|
||||||
staticDir2 = "static_en"
|
staticDir2 = "static_en"
|
||||||
baseURL = "https://example.com"
|
baseURL = "https://example.com"
|
||||||
languageName = "English"
|
languageName = "English"
|
||||||
weight = 2
|
weight = 2
|
||||||
title = "In English"
|
title = "In English"
|
||||||
|
[languages.no]
|
||||||
|
staticDir = ["staticDir_override", "static_no"]
|
||||||
|
baseURL = "https://example.no"
|
||||||
|
languageName = "Norsk"
|
||||||
|
weight = 1
|
||||||
|
title = "På norsk"
|
||||||
{{</ code-toggle >}}
|
{{</ code-toggle >}}
|
||||||
|
|
||||||
In the above, with no theme used:
|
In the above, with no theme used:
|
||||||
|
|
||||||
* The English site will get its static files as a union of "static1", "static2" and "static_en". On file duplicates, the right-most version will win.
|
- The English site will get its static files as a union of "static1",
|
||||||
* The Norwegian site will get its static files as a union of "staticDir_override" and "static_no".
|
"static2" and "static_en". On file duplicates, the right-most
|
||||||
|
version will win.
|
||||||
|
- The Norwegian site will get its static files as a union of
|
||||||
|
"staticDir_override" and "static_no".
|
||||||
|
|
||||||
**Note:** The `2` `static2` (can be a number between 0 and 10) is added to tell Hugo that you want to **add** this directory to the global set of static directories. Using `staticDir` on the language level would replace the global value.
|
Note 1
|
||||||
|
: The **2** (can be a number between 0 and 10) in `staticDir2` is
|
||||||
|
added to tell Hugo that you want to **add** this directory to the
|
||||||
|
global set of static directories defined using `staticDir`. Using
|
||||||
|
`staticDir` on the language level would replace the global value (as
|
||||||
|
can be seen in the Norwegian site case).
|
||||||
|
|
||||||
|
Note 2
|
||||||
|
: The example above is a [multihost setup][]. In a regular setup, all
|
||||||
|
the static directories will be available to all sites.
|
||||||
|
|
||||||
|
|
||||||
**Note:** The example above is a [multihost setup](/content-management/multilingual/#configure-multilingual-multihost). In a regular setup, all the static directories will be available to all sites.
|
[site config]: /getting-started/configuration/#all-configuration-settings
|
||||||
|
[multihost setup]: /content-management/multilingual/#configure-multilingual-multihost
|
||||||
|
|
|
@ -57,7 +57,7 @@ Be careful to enter <code><!--more--></code> exactly
|
||||||
You can show content summaries with the following code. You could use the following snippet, for example, in a [section template][].
|
You can show content summaries with the following code. You could use the following snippet, for example, in a [section template][].
|
||||||
|
|
||||||
{{< code file="page-list-with-summaries.html" >}}
|
{{< code file="page-list-with-summaries.html" >}}
|
||||||
{{ range first 10 .Data.Pages }}
|
{{ range first 10 .Pages }}
|
||||||
<article>
|
<article>
|
||||||
<!-- this <div> includes the title summary -->
|
<!-- this <div> includes the title summary -->
|
||||||
<div>
|
<div>
|
||||||
|
|
|
@ -134,7 +134,7 @@ Highlighting is carried out via the [built-in shortcode](/content-management/sho
|
||||||
<section id="main">
|
<section id="main">
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -157,7 +157,7 @@ It is also possible to add syntax highlighting with GitHub flavored code fences.
|
||||||
<section id="main">
|
<section id="main">
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -39,7 +39,7 @@ You can use `after` in combination with the [`first` function][] and Hugo's [pow
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<section class="row featured-article">
|
<section class="row featured-article">
|
||||||
<h2>Featured Article</h2>
|
<h2>Featured Article</h2>
|
||||||
{{ range first 1 .Data.Pages.ByPublishDate.Reverse }}
|
{{ range first 1 .Pages.ByPublishDate.Reverse }}
|
||||||
<header>
|
<header>
|
||||||
<h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
|
<h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
|
||||||
</header>
|
</header>
|
||||||
|
@ -48,7 +48,7 @@ You can use `after` in combination with the [`first` function][] and Hugo's [pow
|
||||||
</section>
|
</section>
|
||||||
<div class="row recent-articles">
|
<div class="row recent-articles">
|
||||||
<h2>Recent Articles</h2>
|
<h2>Recent Articles</h2>
|
||||||
{{ range first 3 (after 1 .Data.Pages.ByPublishDate.Reverse) }}
|
{{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }}
|
||||||
<section class="recent-article">
|
<section class="recent-article">
|
||||||
<header>
|
<header>
|
||||||
<h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
|
<h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
|
||||||
|
|
|
@ -21,8 +21,7 @@ aliases: []
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range first 10 .Data.Pages }}
|
{{ range first 10 .Pages }}
|
||||||
{{ .Render "summary" }}
|
{{ .Render "summary" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -10,14 +10,18 @@ menu:
|
||||||
docs:
|
docs:
|
||||||
parent: "functions"
|
parent: "functions"
|
||||||
keywords: [menus]
|
keywords: [menus]
|
||||||
signature: ["HasMenuCurrent"]
|
signature: ["PAGE.HasMenuCurrent MENU MENUENTRY"]
|
||||||
workson: [menus]
|
workson: [menus]
|
||||||
hugoversion:
|
hugoversion:
|
||||||
relatedfuncs: []
|
relatedfuncs: ["IsMenuCurrent"]
|
||||||
deprecated: false
|
deprecated: false
|
||||||
toc: false
|
toc: false
|
||||||
draft: true
|
draft: false
|
||||||
aliases: []
|
aliases: []
|
||||||
---
|
---
|
||||||
|
|
||||||
Used in [menu templates](/templates/menu-templates/).
|
`.HasMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
|
||||||
|
returns `true` if the PAGE is the same object as the `.Page` in one of the
|
||||||
|
**children menu entries** under MENUENTRY in a given MENU.
|
||||||
|
|
||||||
|
You can find its example use in [menu templates](/templates/menu-templates/).
|
||||||
|
|
|
@ -10,14 +10,18 @@ menu:
|
||||||
docs:
|
docs:
|
||||||
parent: "functions"
|
parent: "functions"
|
||||||
keywords: [menus]
|
keywords: [menus]
|
||||||
signature: ["IsMenuCurrent"]
|
signature: ["PAGE.IsMenuCurrent MENU MENUENTRY"]
|
||||||
workson: [menus]
|
workson: [menus]
|
||||||
hugoversion:
|
hugoversion:
|
||||||
relatedfuncs: []
|
relatedfuncs: ["HasMenuCurrent"]
|
||||||
deprecated: false
|
deprecated: false
|
||||||
draft: true
|
draft: false
|
||||||
aliases: []
|
aliases: []
|
||||||
needsexample: true
|
needsexample: true
|
||||||
---
|
---
|
||||||
|
|
||||||
Used in [menu templates](/templates/menu-templates/).
|
`.IsMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
|
||||||
|
returns `true` if the PAGE is the same object as the `.Page` in MENUENTRY in a
|
||||||
|
given MENU.
|
||||||
|
|
||||||
|
You can find its example use in [menu templates](/templates/menu-templates/).
|
||||||
|
|
|
@ -23,8 +23,7 @@ aliases: []
|
||||||
|
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range last 10 .Data.Pages }}
|
{{ range last 10 .Pages }}
|
||||||
{{ .Render "summary" }}
|
{{ .Render "summary" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ This function is only available when applied to a single piece of content within
|
||||||
This example could render a piece of content using the content view located at `/layouts/_default/summary.html`:
|
This example could render a piece of content using the content view located at `/layouts/_default/summary.html`:
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
|
@ -30,11 +30,19 @@ See [this Go issue](https://github.com/golang/go/issues/10608) for the main moti
|
||||||
For a detailed analysis of `.Scratch` and in context use cases, see this [post](https://regisphilibert.com/blog/2017/04/hugo-scratch-explained-variable/).
|
For a detailed analysis of `.Scratch` and in context use cases, see this [post](https://regisphilibert.com/blog/2017/04/hugo-scratch-explained-variable/).
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
## Methods
|
## Get a Scratch
|
||||||
|
|
||||||
`Scratch` is added to both `Page` and `Shortcode` -- with following methods:
|
From Hugo `0.43` you can also create a locally scoped `Scratch` by calling `newScratch`:
|
||||||
|
|
||||||
|
```go-html-template
|
||||||
|
$scratch := newScratch
|
||||||
|
$scratch.Set "greeting" "Hello"
|
||||||
|
```
|
||||||
|
|
||||||
|
A `Scratch` is also added to both `Page` and `Shortcode`. `Sratch` have the following methods:
|
||||||
|
|
||||||
#### .Set
|
#### .Set
|
||||||
|
|
||||||
Set the given value to a given key
|
Set the given value to a given key
|
||||||
|
|
||||||
```go-html-template
|
```go-html-template
|
||||||
|
|
|
@ -23,7 +23,7 @@ needsexample: true
|
||||||
`where` filters an array to only the elements containing a matching value for a given field.
|
`where` filters an array to only the elements containing a matching value for a given field.
|
||||||
|
|
||||||
```go-html-template
|
```go-html-template
|
||||||
{{ range where .Data.Pages "Section" "post" }}
|
{{ range where .Pages "Section" "post" }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
@ -45,7 +45,7 @@ series: golang
|
||||||
It can also be used with the logical operators `!=`, `>=`, `in`, etc. Without an operator, `where` compares a given field with a matching value equivalent to `=`.
|
It can also be used with the logical operators `!=`, `>=`, `in`, etc. Without an operator, `where` compares a given field with a matching value equivalent to `=`.
|
||||||
|
|
||||||
```go-html-template
|
```go-html-template
|
||||||
{{ range where .Data.Pages "Section" "!=" "post" }}
|
{{ range where .Pages "Section" "!=" "post" }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
@ -104,7 +104,7 @@ You can also put the returned value of the `where` clauses into a variable:
|
||||||
The following grabs the first five content files in `post` using the [default ordering](/templates/lists/) for lists (i.e., `weight => date`):
|
The following grabs the first five content files in `post` using the [default ordering](/templates/lists/) for lists (i.e., `weight => date`):
|
||||||
|
|
||||||
{{< code file="where-with-first.html" >}}
|
{{< code file="where-with-first.html" >}}
|
||||||
{{ range first 5 (where .Data.Pages "Section" "post") }}
|
{{ range first 5 (where .Pages "Section" "post") }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -114,7 +114,7 @@ The following grabs the first five content files in `post` using the [default or
|
||||||
You can also nest `where` clauses to drill down on lists of content by more than one parameter. The following first grabs all pages in the "blog" section and then ranges through the result of the first `where` clause and finds all pages that are *not* featured:
|
You can also nest `where` clauses to drill down on lists of content by more than one parameter. The following first grabs all pages in the "blog" section and then ranges through the result of the first `where` clause and finds all pages that are *not* featured:
|
||||||
|
|
||||||
```go-html-template
|
```go-html-template
|
||||||
{{ range where (where .Data.Pages "Section" "blog" ) ".Params.featured" "!=" "true" }}
|
{{ range where (where .Pages "Section" "blog" ) ".Params.featured" "!=" "true" }}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Unset Fields
|
## Unset Fields
|
||||||
|
@ -129,7 +129,7 @@ Only the following operators are available for `nil`
|
||||||
* `!=`, `<>`, `ne`: True if the given field is set.
|
* `!=`, `<>`, `ne`: True if the given field is set.
|
||||||
|
|
||||||
```go-html-template
|
```go-html-template
|
||||||
{{ range where .Data.Pages ".Params.specialpost" "!=" nil }}
|
{{ range where .Pages ".Params.specialpost" "!=" nil }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,7 +12,7 @@ toc: true
|
||||||
|
|
||||||
## The Config Toggler!
|
## The Config Toggler!
|
||||||
|
|
||||||
This is an exemple for the Config Toggle shortcode.
|
This is an example for the Config Toggle shortcode.
|
||||||
Its purpose is to let users choose a Config language by clicking on its corresponding tab. Upon doing so, every Code toggler on the page will be switched to the target language. Also, target language will be saved in user's `localStorage` so when they go to a different pages, Code Toggler display their last "toggled" config language.
|
Its purpose is to let users choose a Config language by clicking on its corresponding tab. Upon doing so, every Code toggler on the page will be switched to the target language. Also, target language will be saved in user's `localStorage` so when they go to a different pages, Code Toggler display their last "toggled" config language.
|
||||||
|
|
||||||
## That Config Toggler
|
## That Config Toggler
|
||||||
|
|
|
@ -193,7 +193,7 @@ sitemap
|
||||||
: Default [sitemap configuration](/templates/sitemap-template/#configure-sitemap-xml).
|
: Default [sitemap configuration](/templates/sitemap-template/#configure-sitemap-xml).
|
||||||
|
|
||||||
staticDir ("static")
|
staticDir ("static")
|
||||||
: Relative directory from where Hugo reads static files.
|
: A directory or a list of directories from where Hugo reads [static files][static-files].
|
||||||
|
|
||||||
stepAnalysis (false)
|
stepAnalysis (false)
|
||||||
: Display memory and timing of different steps of the program.
|
: Display memory and timing of different steps of the program.
|
||||||
|
@ -405,3 +405,4 @@ Hugo v0.20 introduced the ability to render your content to multiple output form
|
||||||
[templates]: /templates/
|
[templates]: /templates/
|
||||||
[toml]: https://github.com/toml-lang/toml
|
[toml]: https://github.com/toml-lang/toml
|
||||||
[yaml]: http://yaml.org/spec/
|
[yaml]: http://yaml.org/spec/
|
||||||
|
[static-files]: /content-management/static-files/
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: Install Hugo
|
title: Install Hugo
|
||||||
linktitle: Install Hugo
|
linktitle: Install Hugo
|
||||||
description: Install Hugo on macOS, Windows, Linux, FreeBSD, and on any machine where the Go compiler tool chain can run.
|
description: Install Hugo on macOS, Windows, Linux, OpenBSD, FreeBSD, and on any machine where the Go compiler tool chain can run.
|
||||||
date: 2016-11-01
|
date: 2016-11-01
|
||||||
publishdate: 2016-11-01
|
publishdate: 2016-11-01
|
||||||
lastmod: 2018-01-02
|
lastmod: 2018-01-02
|
||||||
|
@ -31,6 +31,7 @@ Hugo currently provides pre-built binaries for the following:
|
||||||
* macOS (Darwin) for x64, i386, and ARM architectures
|
* macOS (Darwin) for x64, i386, and ARM architectures
|
||||||
* Windows
|
* Windows
|
||||||
* Linux
|
* Linux
|
||||||
|
* OpenBSD
|
||||||
* FreeBSD
|
* FreeBSD
|
||||||
|
|
||||||
Hugo may also be compiled from source wherever the Go compiler tool chain can run; e.g., on other operating systems such as DragonFly BSD, OpenBSD, Plan 9, Solaris, and others. See <https://golang.org/doc/install/source> for the full set of supported combinations of target operating systems and compilation architectures.
|
Hugo may also be compiled from source wherever the Go compiler tool chain can run; e.g., on other operating systems such as DragonFly BSD, OpenBSD, Plan 9, Solaris, and others. See <https://golang.org/doc/install/source> for the full set of supported combinations of target operating systems and compilation architectures.
|
||||||
|
@ -451,7 +452,7 @@ Hugo-as-a-snap can write only inside the user’s `$HOME` directory---and gvfs-m
|
||||||
You can also install Hugo from the Arch Linux [community](https://www.archlinux.org/packages/community/x86_64/hugo/) repository. Applies also for derivatives such as Manjaro.
|
You can also install Hugo from the Arch Linux [community](https://www.archlinux.org/packages/community/x86_64/hugo/) repository. Applies also for derivatives such as Manjaro.
|
||||||
|
|
||||||
```
|
```
|
||||||
sudo pacman -Sy hugo
|
sudo pacman -Syu hugo
|
||||||
```
|
```
|
||||||
|
|
||||||
### Fedora
|
### Fedora
|
||||||
|
@ -468,6 +469,14 @@ sudo dnf install hugo
|
||||||
|
|
||||||
See the [related discussion in the Hugo forums][redhatforum].
|
See the [related discussion in the Hugo forums][redhatforum].
|
||||||
|
|
||||||
|
## OpenBSD
|
||||||
|
|
||||||
|
OpenBSD provides a package for Hugo via `pkg_add`:
|
||||||
|
|
||||||
|
```
|
||||||
|
doas pkg_add hugo
|
||||||
|
```
|
||||||
|
|
||||||
## Upgrade Hugo
|
## Upgrade Hugo
|
||||||
|
|
||||||
Upgrading Hugo is as easy as downloading and replacing the executable you’ve placed in your `PATH` or run `brew upgrade hugo` if using Homebrew.
|
Upgrading Hugo is as easy as downloading and replacing the executable you’ve placed in your `PATH` or run `brew upgrade hugo` if using Homebrew.
|
||||||
|
|
|
@ -9,7 +9,7 @@ images:
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
Hugo `0.30` is the **Race Car Edition**. Hugo is already very very fast, but much wants more. So we added **Fast Render Mode**. It is hard to explain, so start the Hugo development server with `hugo server` and start editing. Live reloads just got so much faster! The "how and what" is discussed at length in [other places](https://github.com/gohugoio/hugo/pull/3959), but the short version is that we now re-render only the parts of the site that you are working on.
|
Hugo `0.30` is the **Race Car Edition**. Hugo is already very very fast, but wants much more. So we added **Fast Render Mode**. It is hard to explain, so start the Hugo development server with `hugo server` and start editing. Live reloads just got so much faster! The "how and what" is discussed at length in [other places](https://github.com/gohugoio/hugo/pull/3959), but the short version is that we now re-render only the parts of the site that you are working on.
|
||||||
|
|
||||||
The second performance-related feature is a follow-up to the Template Metrics added in Hugo `0.29`. Now, if you add the flag `--templateMetricsHints`, we will calculate a score for how your partials can be cached (with the `partialCached` template func).
|
The second performance-related feature is a follow-up to the Template Metrics added in Hugo `0.29`. Now, if you add the flag `--templateMetricsHints`, we will calculate a score for how your partials can be cached (with the `partialCached` template func).
|
||||||
|
|
||||||
|
|
BIN
content/en/news/0.43-relnotes/featured-hugo-43-poster.png
Normal file
After Width: | Height: | Size: 76 KiB |
100
content/en/news/0.43-relnotes/index.md
Normal file
|
@ -0,0 +1,100 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
date: 2018-07-09
|
||||||
|
title: "And Now: Hugo Pipes!"
|
||||||
|
description: "Hugo 0.43 adds a powerful and simple to use assets pipeline with SASS/SCSS and much, much more …"
|
||||||
|
categories: ["Releases"]
|
||||||
|
---
|
||||||
|
|
||||||
|
Hugo `0.43` adds a powerful and very simple to use **Assets Pipeline** with **SASS and SCSS** with source map support, **PostCSS** and **minification** and **fingerprinting** and **Subresource Integrity** and ... much more. Oh, did we mention that you can now do **ad-hoc image processing** and execute text resources as Go templates?
|
||||||
|
|
||||||
|
An example pipeline:
|
||||||
|
|
||||||
|
```go-html-template
|
||||||
|
{{ $styles := resources.Get "scss/main.scss" | toCSS | postCSS | minify | fingerprint }}
|
||||||
|
<link rel="stylesheet" href="{{ $styles.Permalink }}" integrity="{{ $styles.Data.Integrity }}" media="screen">
|
||||||
|
```
|
||||||
|
|
||||||
|
To me, the above is beautiful in its speed and simplicity. It could be printed on a t-shirt. I wrote in the [Hugo Birthday Post](https://gohugo.io/news/lets-celebrate-hugos-5th-birthday/) some days ago about the value of a single binary with native and fast implementations. I should have added _simplicity_ as a keyword. There seem to be a misconception that all of this needs to be hard and painful.
|
||||||
|
|
||||||
|
New functions to create `Resource` objects:
|
||||||
|
|
||||||
|
* `resources.Get`
|
||||||
|
* `resources.FromString`: Create a Resource from a string.
|
||||||
|
|
||||||
|
New `Resource` transformation funcs:
|
||||||
|
|
||||||
|
* `resources.ToCSS`: Compile `SCSS` or `SASS` into `CSS`.
|
||||||
|
* `resources.PostCSS`: Process your CSS with PostCSS. Config file support (project or theme or passed as an option).
|
||||||
|
* `resources.Minify`: Currently supports `css`, `js`, `json`, `html`, `svg`, `xml`.
|
||||||
|
* `resources.Fingerprint`: Creates a fingerprinted version of the given Resource with Subresource Integrity.
|
||||||
|
* `resources.Concat`: Concatenates a list of Resource objects. Think of this as a poor man's bundler.
|
||||||
|
* `resources.ExecuteAsTemplate`: Parses and executes the given Resource and data context (e.g. .Site) as a Go template.
|
||||||
|
|
||||||
|
|
||||||
|
I, [@bep](https://github.com/bep), implemented this in [dea71670](https://github.com/gohugoio/hugo/commit/dea71670c059ab4d5a42bd22503f18c087dd22d4). We will work hard to get the documentation up to date, but follow the links above for details, and also see this [demo project](https://github.com/bep/hugo-sass-test).
|
||||||
|
|
||||||
|
|
||||||
|
This release represents **35 contributions by 7 contributors** to the main Hugo code base.
|
||||||
|
[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@anthonyfok](https://github.com/anthonyfok), [@openscript](https://github.com/openscript), and [@caarlos0](https://github.com/caarlos0) for their ongoing contributions.
|
||||||
|
And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his great work on the documentation site.
|
||||||
|
|
||||||
|
Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
|
||||||
|
which has received **11 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@danrl](https://github.com/danrl), [@regisphilibert](https://github.com/regisphilibert), and [@digitalcraftsman](https://github.com/digitalcraftsman) for their work on the documentation site.
|
||||||
|
|
||||||
|
Hugo now has:
|
||||||
|
|
||||||
|
* 26968+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||||
|
* 443+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||||
|
* 238+ [themes](http://themes.gohugo.io/)
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
* Replace deprecated {Get,}ByPrefix with {Get,}Match [42ed6025](https://github.com/gohugoio/hugo/commit/42ed602580a672e420e1d860384e812f4871ff67) [@anthonyfok](https://github.com/anthonyfok)
|
||||||
|
* Hugo is now released with two binary version: One with and one without SCSS/SASS support. At the time of writing, this is only available in the binaries on the GitHub release page. Brew, Snap builds etc. will come. But note that you **only need the extended version if you want to edit SCSS**. For your CI server, or if you don't use SCSS, you will most likely want the non-extended version.
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
|
||||||
|
### Templates
|
||||||
|
|
||||||
|
* Return en empty slice in `after` instead of error [f8212d20](https://github.com/gohugoio/hugo/commit/f8212d20009c4b5cc6e1ec733d09531eb6525d9f) [@bep](https://github.com/bep) [#4894](https://github.com/gohugoio/hugo/issues/4894)
|
||||||
|
* Update internal pagination template to support Bootstrap 4 [ca1e46ef](https://github.com/gohugoio/hugo/commit/ca1e46efb94e3f3d2c8482cb9434d2f38ffd2683) [@bep](https://github.com/bep) [#4881](https://github.com/gohugoio/hugo/issues/4881)
|
||||||
|
* Support text/template/parse API change in go1.11 [9f27091e](https://github.com/gohugoio/hugo/commit/9f27091e1067875e2577c331acc60adaef5bb234) [@anthonyfok](https://github.com/anthonyfok) [#4784](https://github.com/gohugoio/hugo/issues/4784)
|
||||||
|
|
||||||
|
### Core
|
||||||
|
|
||||||
|
* Allow forward slash in shortcode names [de37455e](https://github.com/gohugoio/hugo/commit/de37455ec73cffd039b44e8f6c62d2884b1d6bbd) [@bep](https://github.com/bep) [#4886](https://github.com/gohugoio/hugo/issues/4886)
|
||||||
|
* Reset the global pages cache on server rebuilds [128f14ef](https://github.com/gohugoio/hugo/commit/128f14efad90886ffef37c01ac1e20436a732f97) [@bep](https://github.com/bep) [#4845](https://github.com/gohugoio/hugo/issues/4845)
|
||||||
|
|
||||||
|
### Other
|
||||||
|
|
||||||
|
* Bump CircleCI image [e3df6478](https://github.com/gohugoio/hugo/commit/e3df6478f09a7a5fed96aced791fa94fd2c35d1a) [@bep](https://github.com/bep)
|
||||||
|
* Add Goreleaser extended config [626afc98](https://github.com/gohugoio/hugo/commit/626afc98254421f5a5edc97c541b10bd81d5bbbb) [@bep](https://github.com/bep) [#4908](https://github.com/gohugoio/hugo/issues/4908)
|
||||||
|
* Build both hugo and hugo.extended for 0.43 [e1027c58](https://github.com/gohugoio/hugo/commit/e1027c5846b48c4ad450f6cc27e2654c9e0dae39) [@anthonyfok](https://github.com/anthonyfok) [#4908](https://github.com/gohugoio/hugo/issues/4908)
|
||||||
|
* Add temporary build script [bfc3488b](https://github.com/gohugoio/hugo/commit/bfc3488b8e8b3dc1ffc6a339ee2dac8dcbdb55a9) [@bep](https://github.com/bep)
|
||||||
|
* Add "extended" to "hugo version" [ce84b524](https://github.com/gohugoio/hugo/commit/ce84b524f4e94299b5b66afe7ce1a9bd4a9959fc) [@anthonyfok](https://github.com/anthonyfok) [#4913](https://github.com/gohugoio/hugo/issues/4913)
|
||||||
|
* Add a newScratch template func [2b8d907a](https://github.com/gohugoio/hugo/commit/2b8d907ab731627f4e2a30442cd729064516c8bb) [@bep](https://github.com/bep) [#4685](https://github.com/gohugoio/hugo/issues/4685)
|
||||||
|
* Add Hugo Piper with SCSS support and much more [dea71670](https://github.com/gohugoio/hugo/commit/dea71670c059ab4d5a42bd22503f18c087dd22d4) [@bep](https://github.com/bep) [#4381](https://github.com/gohugoio/hugo/issues/4381)[#4903](https://github.com/gohugoio/hugo/issues/4903)[#4858](https://github.com/gohugoio/hugo/issues/4858)
|
||||||
|
* Consider root and current section's content type if set in front matter [c790029e](https://github.com/gohugoio/hugo/commit/c790029e1dbb0b66af18d05764bd6045deb2e180) [@bep](https://github.com/bep) [#4891](https://github.com/gohugoio/hugo/issues/4891)
|
||||||
|
* Update docker image [554553c0](https://github.com/gohugoio/hugo/commit/554553c09c7657d28681e1fa0638806a452737a0) [@bep](https://github.com/bep)
|
||||||
|
* Merge branch 'release-0.42.2' [282f6035](https://github.com/gohugoio/hugo/commit/282f6035e7c36f8550d91033e3a66718468c6c8b) [@bep](https://github.com/bep)
|
||||||
|
* Release 0.42.2 [1637d12e](https://github.com/gohugoio/hugo/commit/1637d12e3762fc1ebab4cd675f75afaf25f59cdb) [@bep](https://github.com/bep)
|
||||||
|
* Update GoReleaser config [1f0c4e1f](https://github.com/gohugoio/hugo/commit/1f0c4e1fb347bb233f3312c424fbf5a013c03604) [@caarlos0](https://github.com/caarlos0)
|
||||||
|
* Create missing head.html partial on new theme generation [fd71fa89](https://github.com/gohugoio/hugo/commit/fd71fa89bd6c197402582c87b2b76d4b96d562bf) [@openscript](https://github.com/openscript)
|
||||||
|
* Add html doctype to baseof.html template for new themes [b5a3aa70](https://github.com/gohugoio/hugo/commit/b5a3aa7082135d0a573f4fbb00f798e26b67b902) [@openscript](https://github.com/openscript)
|
||||||
|
* Adds .gitattributes to force Go files to LF [6a2968fd](https://github.com/gohugoio/hugo/commit/6a2968fd5c0116d93de0f379ac615e9076821899) [@neurocline](https://github.com/neurocline)
|
||||||
|
* Update to Go 1.9.7 and Go 1.10.3 [23d5fc82](https://github.com/gohugoio/hugo/commit/23d5fc82ee01d56440d0991c899acd31e9b63e27) [@anthonyfok](https://github.com/anthonyfok)
|
||||||
|
* Update Dockerfile to a multi-stage build [8531ec7c](https://github.com/gohugoio/hugo/commit/8531ec7ca36fd35a57fba06bbb06a65c94dfd3ed) [@skoblenick](https://github.com/skoblenick) [#4154](https://github.com/gohugoio/hugo/issues/4154)
|
||||||
|
* Release 0.42.1 [d67e843c](https://github.com/gohugoio/hugo/commit/d67e843c1212e1f53933556b5f946c8541188d9a) [@bep](https://github.com/bep)
|
||||||
|
* Do not fail server build when /static is missing [34ee27a7](https://github.com/gohugoio/hugo/commit/34ee27a78b9e2b5f475d44253ae234067b76cc6e) [@bep](https://github.com/bep) [#4846](https://github.com/gohugoio/hugo/issues/4846)
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* Do not create paginator pages for the other output formats [43338c3a](https://github.com/gohugoio/hugo/commit/43338c3a99769eb7d0df0c12559b8b3d42b67dba) [@bep](https://github.com/bep) [#4890](https://github.com/gohugoio/hugo/issues/4890)
|
||||||
|
* Fix the shortcodes/partials vs base template detection [a5d0a57e](https://github.com/gohugoio/hugo/commit/a5d0a57e6bdab583134a68c035aac9b3007f006a) [@bep](https://github.com/bep) [#4897](https://github.com/gohugoio/hugo/issues/4897)
|
||||||
|
* nfpm replacements [e1a052ec](https://github.com/gohugoio/hugo/commit/e1a052ecb823c688406a8af97dfaaf52a75231da) [@caarlos0](https://github.com/caarlos0)
|
||||||
|
* Fix typos [3cea2932](https://github.com/gohugoio/hugo/commit/3cea2932e17a08ebc19cd05f3079d9379bc8fba5) [@idealhack](https://github.com/idealhack)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
BIN
content/en/news/0.44-relnotes/featured-hugo-44-poster.png
Normal file
After Width: | Height: | Size: 76 KiB |
39
content/en/news/0.44-relnotes/index.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
|
||||||
|
---
|
||||||
|
date: 2018-07-13
|
||||||
|
title: "Hugo 0.44: Friday the 13th Edition"
|
||||||
|
description: "A sequel to the very popular Hugo Pipes Edition; bug-fixes and enhancements …"
|
||||||
|
categories: ["Releases"]
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
Hugo `0.44` is the follow-up release, or **The Sequel**, of the very well received `0.43` only days ago. That release added **Hugo Pipes**, with SCSS/SASS support, assets bundling and minification, ad-hoc image processing and much more.
|
||||||
|
|
||||||
|
This is mostly a bug-fix release, but it also includes several important improvements.
|
||||||
|
|
||||||
|
Many complained that their SVG images vanished when browsed from the `hugo server`. With **Hugo Pipes** MIME types suddenly got really important, but Hugo's use of `Suffix` was ambiguous. This became visible when we redefined the `image/svg+xml` to work with **Hugo Pipes**. We have now added a `Suffixes` field on the MIME type definition in Hugo, which is a list of one or more filename suffixes the MIME type is identified with. If you need to add a custom MIME type definition, this means that you also need to specify the full MIME type as the key, e.g. `image/svg+xml`.
|
||||||
|
|
||||||
|
Hugo now has:
|
||||||
|
|
||||||
|
* 27120+ [stars](https://github.com/gohugoio/hugo/stargazers)
|
||||||
|
* 443+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors)
|
||||||
|
* 239+ [themes](http://themes.gohugo.io/)
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
* `MediaType.Suffix` is deprecated and replaced with a plural version, `MediaType.Suffixes`, with a more specific definition. You will get a detailed WARNING in the console if you need to do anything.
|
||||||
|
|
||||||
|
## Enhancements
|
||||||
|
* Allow multiple file suffixes per media type [b874a1ba](https://github.com/gohugoio/hugo/commit/b874a1ba7ab8394dc741c8c70303a30a35b63e43) [@bep](https://github.com/bep) [#4920](https://github.com/gohugoio/hugo/issues/4920)
|
||||||
|
* Clean up the in-memory Resource reader usage [47d38628](https://github.com/gohugoio/hugo/commit/47d38628ec0f4e72ff17661f13456b2a1511fe13) [@bep](https://github.com/bep) [#4936](https://github.com/gohugoio/hugo/issues/4936)
|
||||||
|
* Move opening of the transformed resources after cache check [0024dcfe](https://github.com/gohugoio/hugo/commit/0024dcfe3e016c67046de06d1dac5e7f5235f9e1) [@bep](https://github.com/bep)
|
||||||
|
* Improve type support in `resources.Concat` [306573de](https://github.com/gohugoio/hugo/commit/306573def0e20ec16ee5c447981cc09ed8bb7ec7) [@bep](https://github.com/bep) [#4934](https://github.com/gohugoio/hugo/issues/4934)
|
||||||
|
* Flush `partialCached` cache on rebuilds [6b6dcb44](https://github.com/gohugoio/hugo/commit/6b6dcb44a014699c289bf32fe57d4c4216777be0) [@bep](https://github.com/bep) [#4931](https://github.com/gohugoio/hugo/issues/4931)
|
||||||
|
* Include the transformation step in the error message [d96f2a46](https://github.com/gohugoio/hugo/commit/d96f2a460f58e91d8f6253a489d4879acfec6916) [@bep](https://github.com/bep) [#4924](https://github.com/gohugoio/hugo/issues/4924)
|
||||||
|
* Exclude *.svg from CRLF/LF conversion [9c1e8208](https://github.com/gohugoio/hugo/commit/9c1e82085eb07d5b4dcdacbe82d5bafd26e08631) [@anthonyfok](https://github.com/anthonyfok)
|
||||||
|
|
||||||
|
## Fixes
|
||||||
|
|
||||||
|
* Fix `resources.Concat` for transformed resources [beec1fc9](https://github.com/gohugoio/hugo/commit/beec1fc98e5d37bba742d6bc2a0ff7c344b469f8) [@bep](https://github.com/bep) [#4936](https://github.com/gohugoio/hugo/issues/4936)
|
||||||
|
* Fix static filesystem for themed multihost sites [80c8f3b8](https://github.com/gohugoio/hugo/commit/80c8f3b81a9849080e64bf877288ede28d960d3f) [@bep](https://github.com/bep) [#4929](https://github.com/gohugoio/hugo/issues/4929)
|
||||||
|
* Set permission of embedded templates to 0644 [2b73e89d](https://github.com/gohugoio/hugo/commit/2b73e89d6d2822e86360a6c92c87f539677c119b) [@anthonyfok](https://github.com/anthonyfok)
|
||||||
|
|
|
@ -59,7 +59,7 @@ Hugo has stuck with the sub-zero versions to signal active development, with a n
|
||||||
|
|
||||||
### The Road to 1.0
|
### The Road to 1.0
|
||||||
|
|
||||||
We have some more technical tasks that needs to be done (there is ongoing work to get the page quries into a more consistent state, also a simpler `.GetPage` method), but also some cool new functionality. The following roadmap is taken from memory, and may not be complete, but should be a good indication of what's ahead.
|
We have some more technical tasks that needs to be done (there is ongoing work to get the page queries into a more consistent state, also a simpler `.GetPage` method), but also some cool new functionality. The following roadmap is taken from memory, and may not be complete, but should be a good indication of what's ahead.
|
||||||
|
|
||||||
Pages from "other data sources"
|
Pages from "other data sources"
|
||||||
: Currently, in addition to Hugo's list pages, every URL must be backed by a content file (Markdown, HTML etc.). This covers most use cases, but we need a flexible way to generate pages from other data sources. Think product catalogues and similar.
|
: Currently, in addition to Hugo's list pages, every URL must be backed by a content file (Markdown, HTML etc.). This covers most use cases, but we need a flexible way to generate pages from other data sources. Think product catalogues and similar.
|
||||||
|
@ -67,7 +67,7 @@ Pages from "other data sources"
|
||||||
Upgrade Blackfriday to v2
|
Upgrade Blackfriday to v2
|
||||||
: [Blackfriday](https://github.com/russross/blackfriday) is the main content renderer in Hugo. It has been rewritten to a more flexible architecture, which should allow us to fix some of the current shortcomings.
|
: [Blackfriday](https://github.com/russross/blackfriday) is the main content renderer in Hugo. It has been rewritten to a more flexible architecture, which should allow us to fix some of the current shortcomings.
|
||||||
|
|
||||||
We should be able to create a better and easier-to-use data structure from the rendered content: Summary, the content after the summary, being able to range over the footnotes and the ToC. Having ToC as a proper data structure also open up a few other potential uses; using it as an index in [Related Content](https://gohugo.io/content-management/related/) would be one example.
|
We should be able to create a better and easier-to-use data structure from the rendered content: Summary, the content after the summary, being able to range over the footnotes and the ToC. Having ToC as a proper data structure also opens up a few other potential uses; using it as an index in [Related Content](https://gohugo.io/content-management/related/) would be one example.
|
||||||
|
|
||||||
This should also enable us to _do more_ with [Custom Output Formats](/templates/output-formats). It is already very powerful. GettyPubs are using it in [Quire](https://github.com/gettypubs/quire) to build [beautiful multi-platform publications](http://www.getty.edu/publications/digital/digitalpubs.html). But it can be improved. For rendering of content files, you are currently restricted to HTML. It would be great if we could configure alternative renderers per output format, such as LaTeX and EPUB.
|
This should also enable us to _do more_ with [Custom Output Formats](/templates/output-formats). It is already very powerful. GettyPubs are using it in [Quire](https://github.com/gettypubs/quire) to build [beautiful multi-platform publications](http://www.getty.edu/publications/digital/digitalpubs.html). But it can be improved. For rendering of content files, you are currently restricted to HTML. It would be great if we could configure alternative renderers per output format, such as LaTeX and EPUB.
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ Related to this is also to add a configurable "Markdown URL rewriter", which sho
|
||||||
|
|
||||||
### The Road to the Future
|
### The Road to the Future
|
||||||
|
|
||||||
These are the items that first comes to mind if you ask me to think even further ahead:
|
These are the items that first come to mind if you ask me to think even further ahead:
|
||||||
|
|
||||||
Dependency manager for Theme Components
|
Dependency manager for Theme Components
|
||||||
: In Hugo `0.42` we added [Theme Components](/themes/theme-components/) and Theme Inheritance. With SCSS support in Hugo `0.43`, which also follows the same project/themes precedence order (add `_variables.scss` to your project, configure SASS colour variables in `config.toml`), we have a solid foundation for creating easy to use and extensible themes. But we are missing some infrastructure around this. We have a site with 235+ [themes](https://themes.gohugo.io/)[^themes] listed, but you currently need to do some added work to get the theme up and running for your site. In the Go world, we don't have NPM to use, which is a curse and a blessing, but I have some ideas about building a simple dependency manager into Hugo, modelled after how Go is doing it (`hugo install`). You should be able to configure what theme and theme components you want to use, and Hugo should handle the installation of the correct versions. This should make it easier for the user, but it would also enable community driven and even commercial "theme stores".
|
: In Hugo `0.42` we added [Theme Components](/themes/theme-components/) and Theme Inheritance. With SCSS support in Hugo `0.43`, which also follows the same project/themes precedence order (add `_variables.scss` to your project, configure SASS colour variables in `config.toml`), we have a solid foundation for creating easy to use and extensible themes. But we are missing some infrastructure around this. We have a site with 235+ [themes](https://themes.gohugo.io/)[^themes] listed, but you currently need to do some added work to get the theme up and running for your site. In the Go world, we don't have NPM to use, which is a curse and a blessing, but I have some ideas about building a simple dependency manager into Hugo, modelled after how Go is doing it (`hugo install`). You should be able to configure what theme and theme components you want to use, and Hugo should handle the installation of the correct versions. This should make it easier for the user, but it would also enable community driven and even commercial "theme stores".
|
||||||
|
@ -90,19 +90,19 @@ The "New York Times on Hugo" Use Case
|
||||||
: There are recurring questions on the support forum from [really big sites](https://discourse.gohugo.io/t/transition-2m-posts-from-wordpress-to-hugo/12704) that want to move to Hugo. There are many [good reasons](https://www.netlify.com/blog/2016/05/18/9-reasons-your-site-should-be-static/) why they want this (security, cost-saving, EU regulations etc.). And while there have been reports about companies building 600 000 pages with Hugo on very powerful hardware, we will have to rethink the build model to make this usable. Keywords are: streaming builds, segmented builds, partial rebuilds. There are other site generators also talking about this. It should be possible, and my instinct tells me that it should be easier to do when your starting point is "really fast". But this is not a small weekend project for me, and I have already talked to several companies about sponsoring this.
|
: There are recurring questions on the support forum from [really big sites](https://discourse.gohugo.io/t/transition-2m-posts-from-wordpress-to-hugo/12704) that want to move to Hugo. There are many [good reasons](https://www.netlify.com/blog/2016/05/18/9-reasons-your-site-should-be-static/) why they want this (security, cost-saving, EU regulations etc.). And while there have been reports about companies building 600 000 pages with Hugo on very powerful hardware, we will have to rethink the build model to make this usable. Keywords are: streaming builds, segmented builds, partial rebuilds. There are other site generators also talking about this. It should be possible, and my instinct tells me that it should be easier to do when your starting point is "really fast". But this is not a small weekend project for me, and I have already talked to several companies about sponsoring this.
|
||||||
|
|
||||||
Plugins
|
Plugins
|
||||||
: A Theme Component could also be called a plugin. But there are several potential plugin hooks into Hugo's build pipeline: Resource transformations, content rendering etc. We will eventually get there, but we should do it without giving up too much of the Hugo speed and simplicity.
|
: A Theme Component could also be called a plugin. But there are several potential plugin hooks into Hugo's build pipeline: resource transformations, content rendering, etc. We will eventually get there, but we should do it without giving up too much of the Hugo speed and simplicity.
|
||||||
|
|
||||||
|
|
||||||
## Thanks
|
## Thanks
|
||||||
|
|
||||||
So, thanks to everyone who have contributed to getting Hugo where it is today. It is hard to single out individuals, but a big shout-out to all the Hugo experts and moderators helping out making the [discourse.gohugo.io](https://discourse.gohugo.io/) a very active and possibly one of the best support forums out there.
|
So, thanks to everyone who has contributed to getting Hugo where it is today. It is hard to single out individuals, but a big shout-out to all the Hugo experts and moderators helping out making [discourse.gohugo.io](https://discourse.gohugo.io/) a very active and possibly one of the best support forums out there.
|
||||||
|
|
||||||
And the last shout-out goes to two maintainers who have been there more or less from the start. [@digitalcraftsman](https://github.com/digitalcraftsman/) has been doing a fantastic job keeping the fast growing theme site and [repository](https://github.com/gohugoio/hugoThemes) in pristine condition. I have it on my watch list, but that is just out of curiosity. There are lots of activity, but it runs as clock work. [Anthony Fok](https://github.com/anthonyfok) has contributed with a variety of things but is most notable as the Linux expert on the team. He manages the Debian build and is the one to thank for up-to-date binaries on Debian and Ubuntu.
|
And the last shout-out goes to two maintainers who have been there more or less from the start. [@digitalcraftsman](https://github.com/digitalcraftsman/) has been doing a fantastic job keeping the fast growing theme site and [repository](https://github.com/gohugoio/hugoThemes) in pristine condition. I have it on my watch list, but that is just out of curiosity. There is lots of activity, but it runs as clock work. [Anthony Fok](https://github.com/anthonyfok) has contributed with a variety of things but is most notable as the Linux expert on the team. He manages the Debian build and is the one to thank for up-to-date binaries on Debian and Ubuntu.
|
||||||
|
|
||||||
One final note: If you have not done so already, please visit [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) and push the "star button".
|
One final note: If you have not done so already, please visit [github.com/gohugoio/hugo](https://github.com/gohugoio/hugo) and push the "star button".
|
||||||
|
|
||||||
Gopher artwork by [Ashley McNamara](https://github.com/ashleymcnamara/gophers/) (licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). Inspired by [Renee French](https://reneefrench.blogspot.com/).
|
Gopher artwork by [Ashley McNamara](https://github.com/ashleymcnamara/gophers/) (licensed under [CC BY-NC-SA 4.0](https://creativecommons.org/licenses/by-nc-sa/4.0/)). Inspired by [Renee French](https://reneefrench.blogspot.com/).
|
||||||
|
|
||||||
[^2]: Numbers from Google Analytics. The Hugo websites are https://discourse.gohugo.io/, https://gohugo.io/ and https://themes.gohugo.io/. It is rumoured that when [Matt Biilman](https://twitter.com/biilmann?lang=en), CEO and Co-founder of Netlify, opened the first power bill after sponsoring Hugo's hosting, said: "Du må lave fis med mig, those Hugo sites have lots of web traffic!"
|
[^2]: Numbers from Google Analytics. The Hugo websites are https://discourse.gohugo.io, https://gohugo.io and https://themes.gohugo.io. It is rumoured that when [Matt Biilman](https://twitter.com/biilmann?lang=en), CEO and Co-founder of Netlify, opened the first power bill after sponsoring Hugo's hosting, said: "Du må lave fis med mig, those Hugo sites have lots of web traffic!"
|
||||||
[^sgen]: That was at the time of writing this article. _Next_, a React based static site generator, has momentum and is closing in on Hugo's 2nd place.
|
[^sgen]: That was at the time of writing this article. _Next_, a React based static site generator, has momentum and is closing in on Hugo's 2nd place.
|
||||||
[^themes]: We pull all the themes from GitHub and build the theme site and 235 demo sites on Netlify in 4 minutes. And that is impressing.
|
[^themes]: We pull all the themes from GitHub and build the theme site and 235 demo sites on Netlify in 4 minutes. That is impressive.
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
`.URL`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Name`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Menu`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Identifier`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Pre`
|
|
||||||
: template.HTML
|
|
||||||
|
|
||||||
`.Post`
|
|
||||||
: template.HTML
|
|
||||||
|
|
||||||
`.Weight`
|
|
||||||
: int
|
|
||||||
|
|
||||||
`.Parent`
|
|
||||||
: string
|
|
||||||
|
|
||||||
`.Children`
|
|
||||||
: Menu
|
|
||||||
|
|
||||||
Note that menus also have the following functions available as well:
|
|
||||||
|
|
||||||
[`.HasChildren`](/functions/haschildren/)
|
|
||||||
: boolean
|
|
||||||
|
|
||||||
Additionally, there are some relevant functions available to menus on a page:
|
|
||||||
|
|
||||||
[`.IsMenuCurrent`](/functions/ismenucurrent/)
|
|
||||||
: (menu string, menuEntry *MenuEntry ) boolean
|
|
||||||
|
|
||||||
[`.HasMenuCurrent`](/functions/hasmenucurrent/)
|
|
||||||
: (menu string, menuEntry *MenuEntry) boolean
|
|
|
@ -21,7 +21,7 @@ When using Hugo with [GitHub Pages](http://pages.github.com/), you can provide y
|
||||||
|
|
||||||
404 pages will have all the regular [page variables][pagevars] available to use in the templates.
|
404 pages will have all the regular [page variables][pagevars] available to use in the templates.
|
||||||
|
|
||||||
In addition to the standard page variables, the 404 page has access to all site content accessible from `.Data.Pages`.
|
In addition to the standard page variables, the 404 page has access to all site content accessible from `.Pages`.
|
||||||
|
|
||||||
```
|
```
|
||||||
▾ layouts/
|
▾ layouts/
|
||||||
|
|
|
@ -90,7 +90,7 @@ From the above base template, you can define a [default list template][hugolists
|
||||||
{{< code file="layouts/_default/list.html" download="list.html" >}}
|
{{< code file="layouts/_default/list.html" download="list.html" >}}
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<h1>Posts</h1>
|
<h1>Posts</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<article>
|
<article>
|
||||||
<h2>{{ .Title }}</h2>
|
<h2>{{ .Title }}</h2>
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
|
|
@ -36,9 +36,9 @@ The homepage, similar to other [list pages in Hugo][lists], accepts content and
|
||||||
|
|
||||||
See the homepage template below or [Content Organization][contentorg] for more information on the role of `_index.md` in adding content and front matter to list pages.
|
See the homepage template below or [Content Organization][contentorg] for more information on the role of `_index.md` in adding content and front matter to list pages.
|
||||||
|
|
||||||
## `.Data.Pages` on the Homepage
|
## `.Pages` on the Homepage
|
||||||
|
|
||||||
In addition to the standard [page variables][pagevars], the homepage template has access to *all* site content via `.Data.Pages`.
|
In addition to the standard [page variables][pagevars], the homepage template has access to *all* site content via `.Pages`.
|
||||||
|
|
||||||
## Example Homepage Template
|
## Example Homepage Template
|
||||||
|
|
||||||
|
@ -58,8 +58,8 @@ The following is an example of a homepage template that uses [partial][partials]
|
||||||
{{.Content}}
|
{{.Content}}
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<!-- Note that .Data.Pages is the equivalent of .Site.Pages on the homepage template. -->
|
<!-- Note that .Pages is the same as .Site.RegularPages on the homepage template. -->
|
||||||
{{ range first 10 .Data.Pages }}
|
{{ range first 10 .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -504,7 +504,7 @@ Go allows you to do more than what's shown here. Using Hugo's [`where` function]
|
||||||
{{< code file="layouts/partials/upcoming-events.html" download="upcoming-events.html" >}}
|
{{< code file="layouts/partials/upcoming-events.html" download="upcoming-events.html" >}}
|
||||||
<h4>Upcoming Events</h4>
|
<h4>Upcoming Events</h4>
|
||||||
<ul class="upcoming-events">
|
<ul class="upcoming-events">
|
||||||
{{ range where .Data.Pages.ByDate "Section" "events" }}
|
{{ range where .Pages.ByDate "Section" "events" }}
|
||||||
{{ if ge .Date.Unix .Now.Unix }}
|
{{ if ge .Date.Unix .Now.Unix }}
|
||||||
<li>
|
<li>
|
||||||
<!-- add span for event type -->
|
<!-- add span for event type -->
|
||||||
|
|
|
@ -101,7 +101,7 @@ You can now access this `_index.md`'s' content in your list template:
|
||||||
</article>
|
</article>
|
||||||
<ul>
|
<ul>
|
||||||
<!-- Ranges through content/post/*.md -->
|
<!-- Ranges through content/post/*.md -->
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
|
<a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -172,7 +172,7 @@ This list template has been modified slightly from a template originally used in
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
<ul>
|
<ul>
|
||||||
<!-- Renders the li.html content view for each content/post/*.md -->
|
<!-- Renders the li.html content view for each content/post/*.md -->
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "li"}}
|
{{ .Render "li"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -189,7 +189,7 @@ This list template has been modified slightly from a template originally used in
|
||||||
<div>
|
<div>
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
<!-- ranges through each of the content files associated with a particular taxonomy term and renders the summary.html content view -->
|
<!-- ranges through each of the content files associated with a particular taxonomy term and renders the summary.html content view -->
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -205,7 +205,7 @@ Hugo lists render the content based on metadata you provide in [front matter][].
|
||||||
|
|
||||||
{{< code file="layouts/partials/default-order.html" >}}
|
{{< code file="layouts/partials/default-order.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -220,7 +220,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-weight.html" >}}
|
{{< code file="layouts/partials/by-weight.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Data.Pages.ByWeight }}
|
{{ range .Pages.ByWeight }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -234,7 +234,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-date.html" >}}
|
{{< code file="layouts/partials/by-date.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- orders content according to the "date" field in front matter -->
|
<!-- orders content according to the "date" field in front matter -->
|
||||||
{{ range .Data.Pages.ByDate }}
|
{{ range .Pages.ByDate }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -248,7 +248,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-publish-date.html" >}}
|
{{< code file="layouts/partials/by-publish-date.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- orders content according to the "publishdate" field in front matter -->
|
<!-- orders content according to the "publishdate" field in front matter -->
|
||||||
{{ range .Data.Pages.ByPublishDate }}
|
{{ range .Pages.ByPublishDate }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -261,7 +261,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-expiry-date.html" >}}
|
{{< code file="layouts/partials/by-expiry-date.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Data.Pages.ByExpiryDate }}
|
{{ range .Pages.ByExpiryDate }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -275,7 +275,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-last-mod.html" >}}
|
{{< code file="layouts/partials/by-last-mod.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- orders content according to the "lastmod" field in front matter -->
|
<!-- orders content according to the "lastmod" field in front matter -->
|
||||||
{{ range .Data.Pages.ByLastmod }}
|
{{ range .Pages.ByLastmod }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -289,7 +289,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-length.html" >}}
|
{{< code file="layouts/partials/by-length.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- orders content according to content length in ascending order (i.e., the shortest content will be listed first) -->
|
<!-- orders content according to content length in ascending order (i.e., the shortest content will be listed first) -->
|
||||||
{{ range .Data.Pages.ByLength }}
|
{{ range .Pages.ByLength }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -303,7 +303,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-title.html" >}}
|
{{< code file="layouts/partials/by-title.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- ranges through content in ascending order according to the "title" field set in front matter -->
|
<!-- ranges through content in ascending order according to the "title" field set in front matter -->
|
||||||
{{ range .Data.Pages.ByTitle }}
|
{{ range .Pages.ByTitle }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -317,7 +317,7 @@ Lower weight gets higher precedence. So content with lower weight will come firs
|
||||||
{{< code file="layouts/partials/by-link-title.html" >}}
|
{{< code file="layouts/partials/by-link-title.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
<!-- ranges through content in ascending order according to the "linktitle" field in front matter. If a "linktitle" field is not set, the range will start with content that only has a "title" field and use that value for .LinkTitle -->
|
<!-- ranges through content in ascending order according to the "linktitle" field in front matter. If a "linktitle" field is not set, the range will start with content that only has a "title" field and use that value for .LinkTitle -->
|
||||||
{{ range .Data.Pages.ByLinkTitle }}
|
{{ range .Pages.ByLinkTitle }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -332,7 +332,7 @@ Order based on the specified front matter parameter. Content that does not have
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-rating.html" >}}
|
{{< code file="layouts/partials/by-rating.html" >}}
|
||||||
<!-- Ranges through content according to the "rating" field set in front matter -->
|
<!-- Ranges through content according to the "rating" field set in front matter -->
|
||||||
{{ range (.Data.Pages.ByParam "rating") }}
|
{{ range (.Pages.ByParam "rating") }}
|
||||||
<!-- ... -->
|
<!-- ... -->
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -340,7 +340,7 @@ Order based on the specified front matter parameter. Content that does not have
|
||||||
If the targeted front matter field is nested beneath another field, you can access the field using dot notation.
|
If the targeted front matter field is nested beneath another field, you can access the field using dot notation.
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-nested-param.html" >}}
|
{{< code file="layouts/partials/by-nested-param.html" >}}
|
||||||
{{ range (.Data.Pages.ByParam "author.last_name") }}
|
{{ range (.Pages.ByParam "author.last_name") }}
|
||||||
<!-- ... -->
|
<!-- ... -->
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -351,7 +351,7 @@ Reversing order can be applied to any of the above methods. The following uses `
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-date-reverse.html" >}}
|
{{< code file="layouts/partials/by-date-reverse.html" >}}
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Data.Pages.ByDate.Reverse }}
|
{{ range .Pages.ByDate.Reverse }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -368,7 +368,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-field.html" >}}
|
{{< code file="layouts/partials/by-page-field.html" >}}
|
||||||
<!-- Groups content according to content section. The ".Key" in this instance will be the section's title. -->
|
<!-- Groups content according to content section. The ".Key" in this instance will be the section's title. -->
|
||||||
{{ range .Data.Pages.GroupBy "Section" }}
|
{{ range .Pages.GroupBy "Section" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -385,7 +385,7 @@ In the above example, you may want `{{.Title}}` to point the `title` field you h
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-field.html" >}}
|
{{< code file="layouts/partials/by-page-field.html" >}}
|
||||||
<!-- Groups content according to content section.-->
|
<!-- Groups content according to content section.-->
|
||||||
{{ range .Data.Pages.GroupBy "Section" }}
|
{{ range .Pages.GroupBy "Section" }}
|
||||||
<!-- Checks for existence of _index.md for a section; if available, pulls from "title" in front matter -->
|
<!-- Checks for existence of _index.md for a section; if available, pulls from "title" in front matter -->
|
||||||
{{ with $.Site.GetPage "section" .Key }}
|
{{ with $.Site.GetPage "section" .Key }}
|
||||||
<h3>{{.Title}}</h3>
|
<h3>{{.Title}}</h3>
|
||||||
|
@ -408,7 +408,7 @@ In the above example, you may want `{{.Title}}` to point the `title` field you h
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-date.html" >}}
|
{{< code file="layouts/partials/by-page-date.html" >}}
|
||||||
<!-- Groups content by month according to the "date" field in front matter -->
|
<!-- Groups content by month according to the "date" field in front matter -->
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" }}
|
{{ range .Pages.GroupByDate "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -425,7 +425,7 @@ In the above example, you may want `{{.Title}}` to point the `title` field you h
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-publish-date.html" >}}
|
{{< code file="layouts/partials/by-page-publish-date.html" >}}
|
||||||
<!-- Groups content by month according to the "publishdate" field in front matter -->
|
<!-- Groups content by month according to the "publishdate" field in front matter -->
|
||||||
{{ range .Data.Pages.GroupByPublishDate "2006-01" }}
|
{{ range .Pages.GroupByPublishDate "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -442,7 +442,7 @@ In the above example, you may want `{{.Title}}` to point the `title` field you h
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-param.html" >}}
|
{{< code file="layouts/partials/by-page-param.html" >}}
|
||||||
<!-- Groups content according to the "param_key" field in front matter -->
|
<!-- Groups content according to the "param_key" field in front matter -->
|
||||||
{{ range .Data.Pages.GroupByParam "param_key" }}
|
{{ range .Pages.GroupByParam "param_key" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -461,7 +461,7 @@ The following template takes grouping by `date` a step further and uses Go's lay
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-param-as-date.html" >}}
|
{{< code file="layouts/partials/by-page-param-as-date.html" >}}
|
||||||
<!-- Groups content by month according to the "param_key" field in front matter -->
|
<!-- Groups content by month according to the "param_key" field in front matter -->
|
||||||
{{ range .Data.Pages.GroupByParamDate "param_key" "2006-01" }}
|
{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -483,21 +483,21 @@ While these are logical defaults, they are not always the desired order. There a
|
||||||
#### 1. Adding the Reverse Method
|
#### 1. Adding the Reverse Method
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range (.Data.Pages.GroupBy "Section").Reverse }}
|
{{ range (.Pages.GroupBy "Section").Reverse }}
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range (.Data.Pages.GroupByDate "2006-01").Reverse }}
|
{{ range (.Pages.GroupByDate "2006-01").Reverse }}
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. Providing the Alternate Direction
|
#### 2. Providing the Alternate Direction
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" "asc" }}
|
{{ range .Pages.GroupByDate "2006-01" "asc" }}
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages.GroupBy "Section" "desc" }}
|
{{ range .Pages.GroupBy "Section" "desc" }}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Order Within Groups
|
### Order Within Groups
|
||||||
|
@ -511,7 +511,7 @@ Here is the ordering for the example that follows:
|
||||||
3. Pages within each respective group are ordered alphabetically according to the `title`.
|
3. Pages within each respective group are ordered alphabetically according to the `title`.
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-group-by-page.html" >}}
|
{{< code file="layouts/partials/by-group-by-page.html" >}}
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" "asc" }}
|
{{ range .Pages.GroupByDate "2006-01" "asc" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages.ByTitle }}
|
{{ range .Pages.ByTitle }}
|
||||||
|
@ -536,8 +536,8 @@ Sometimes you only want to list a subset of the available content. A common is t
|
||||||
2. `key` *or* `field name`
|
2. `key` *or* `field name`
|
||||||
3. `match value`
|
3. `match value`
|
||||||
|
|
||||||
{{< code file="layouts/_default/.html" >}}
|
{{< code file="layouts/_default/index.html" >}}
|
||||||
{{ range where .Data.Pages "Section" "post" }}
|
{{ range where .Pages "Section" "post" }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -552,7 +552,7 @@ You can see more examples in the [functions documentation for `where`][wherefunc
|
||||||
2. `number of elements`
|
2. `number of elements`
|
||||||
|
|
||||||
{{< code file="layout/_default/section.html" >}}
|
{{< code file="layout/_default/section.html" >}}
|
||||||
{{ range first 10 .Data.Pages }}
|
{{ range first 10 .Pages }}
|
||||||
{{ .Render "summary" }}
|
{{ .Render "summary" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -563,7 +563,7 @@ Using `first` and `where` together can be very powerful:
|
||||||
|
|
||||||
{{< code file="first-and-where-together.html" >}}
|
{{< code file="first-and-where-together.html" >}}
|
||||||
<!-- Orders the content inside the "posts" section by the "title" field and then ranges through only the first 5 posts -->
|
<!-- Orders the content inside the "posts" section by the "title" field and then ranges through only the first 5 posts -->
|
||||||
{{ range first 5 (where .Data.Pages "Section" "post").ByTitle }}
|
{{ range first 5 (where .Pages "Section" "post").ByTitle }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
|
|
@ -35,7 +35,7 @@ This list template is used for [spf13.com](http://spf13.com/). It makes use of [
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
<ul id="list">
|
<ul id="list">
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "li"}}
|
{{ .Render "li"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
@ -51,7 +51,7 @@ This list template is used for [spf13.com](http://spf13.com/). It makes use of [
|
||||||
<section id="main">
|
<section id="main">
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
@ -70,7 +70,7 @@ your list templates:
|
||||||
|
|
||||||
{{< code file="layouts/partials/order-default.html" >}}
|
{{< code file="layouts/partials/order-default.html" >}}
|
||||||
<ul class="pages">
|
<ul class="pages">
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<li>
|
<li>
|
||||||
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
<h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
|
||||||
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
<time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
|
||||||
|
@ -82,7 +82,7 @@ your list templates:
|
||||||
### By Weight
|
### By Weight
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-weight.html" >}}
|
{{< code file="layouts/partials/by-weight.html" >}}
|
||||||
{{ range .Data.Pages.ByWeight }}
|
{{ range .Pages.ByWeight }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -93,7 +93,7 @@ your list templates:
|
||||||
### By Date
|
### By Date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-date.html" >}}
|
{{< code file="layouts/partials/by-date.html" >}}
|
||||||
{{ range .Data.Pages.ByDate }}
|
{{ range .Pages.ByDate }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -104,7 +104,7 @@ your list templates:
|
||||||
### By Publish Date
|
### By Publish Date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-publish-date.html" >}}
|
{{< code file="layouts/partials/by-publish-date.html" >}}
|
||||||
{{ range .Data.Pages.ByPublishDate }}
|
{{ range .Pages.ByPublishDate }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -115,7 +115,7 @@ your list templates:
|
||||||
### By Expiration Date
|
### By Expiration Date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-expiry-date.html" >}}
|
{{< code file="layouts/partials/by-expiry-date.html" >}}
|
||||||
{{ range .Data.Pages.ByExpiryDate }}
|
{{ range .Pages.ByExpiryDate }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .ExpiryDate.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .ExpiryDate.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -126,7 +126,7 @@ your list templates:
|
||||||
### By Last Modified Date
|
### By Last Modified Date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-last-mod.html" >}}
|
{{< code file="layouts/partials/by-last-mod.html" >}}
|
||||||
{{ range .Data.Pages.ByLastmod }}
|
{{ range .Pages.ByLastmod }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -137,7 +137,7 @@ your list templates:
|
||||||
### By Length
|
### By Length
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-length.html" >}}
|
{{< code file="layouts/partials/by-length.html" >}}
|
||||||
{{ range .Data.Pages.ByLength }}
|
{{ range .Pages.ByLength }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -149,7 +149,7 @@ your list templates:
|
||||||
### By Title
|
### By Title
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-title.html" >}}
|
{{< code file="layouts/partials/by-title.html" >}}
|
||||||
{{ range .Data.Pages.ByTitle }}
|
{{ range .Pages.ByTitle }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -160,7 +160,7 @@ your list templates:
|
||||||
### By Link Title
|
### By Link Title
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-link-title.html" >}}
|
{{< code file="layouts/partials/by-link-title.html" >}}
|
||||||
{{ range .Data.Pages.ByLinkTitle }}
|
{{ range .Pages.ByLinkTitle }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
|
<a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -175,7 +175,7 @@ Order based on the specified front matter parameter. Content that does not have
|
||||||
The below example sorts a list of posts by their rating.
|
The below example sorts a list of posts by their rating.
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-rating.html" >}}
|
{{< code file="layouts/partials/by-rating.html" >}}
|
||||||
{{ range (.Data.Pages.ByParam "rating") }}
|
{{ range (.Pages.ByParam "rating") }}
|
||||||
<!-- ... -->
|
<!-- ... -->
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -184,7 +184,7 @@ If the front matter field of interest is nested beneath another field, you can
|
||||||
also get it:
|
also get it:
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-nested-param.html" >}}
|
{{< code file="layouts/partials/by-nested-param.html" >}}
|
||||||
{{ range (.Data.Pages.ByParam "author.last_name") }}
|
{{ range (.Pages.ByParam "author.last_name") }}
|
||||||
<!-- ... -->
|
<!-- ... -->
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -194,7 +194,7 @@ also get it:
|
||||||
Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
|
Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-date-reverse.html" >}}
|
{{< code file="layouts/partials/by-date-reverse.html" >}}
|
||||||
{{ range .Data.Pages.ByDate.Reverse }}
|
{{ range .Pages.ByDate.Reverse }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
<div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
|
||||||
|
@ -209,7 +209,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
### By Page Field
|
### By Page Field
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-field.html" >}}
|
{{< code file="layouts/partials/by-page-field.html" >}}
|
||||||
{{ range .Data.Pages.GroupBy "Section" }}
|
{{ range .Pages.GroupBy "Section" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -225,7 +225,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
### By Page date
|
### By Page date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-date.html" >}}
|
{{< code file="layouts/partials/by-page-date.html" >}}
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" }}
|
{{ range .Pages.GroupByDate "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -241,7 +241,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
### By Page publish date
|
### By Page publish date
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-publish-date.html" >}}
|
{{< code file="layouts/partials/by-page-publish-date.html" >}}
|
||||||
{{ range .Data.Pages.GroupByPublishDate "2006-01" }}
|
{{ range .Pages.GroupByPublishDate "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -257,7 +257,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
### By Page Param
|
### By Page Param
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-param.html" >}}
|
{{< code file="layouts/partials/by-page-param.html" >}}
|
||||||
{{ range .Data.Pages.GroupByParam "param_key" }}
|
{{ range .Pages.GroupByParam "param_key" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -273,7 +273,7 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc.
|
||||||
### By Page Param in Date Format
|
### By Page Param in Date Format
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-page-param-as-date.html" >}}
|
{{< code file="layouts/partials/by-page-param-as-date.html" >}}
|
||||||
{{ range .Data.Pages.GroupByParamDate "param_key" "2006-01" }}
|
{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
|
@ -295,22 +295,22 @@ While these are logical defaults, they are not always the desired order. There a
|
||||||
#### Reverse Method
|
#### Reverse Method
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range (.Data.Pages.GroupBy "Section").Reverse }}
|
{{ range (.Pages.GroupBy "Section").Reverse }}
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range (.Data.Pages.GroupByDate "2006-01").Reverse }}
|
{{ range (.Pages.GroupByDate "2006-01").Reverse }}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
#### Provide the Alternate Direction
|
#### Provide the Alternate Direction
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" "asc" }}
|
{{ range .Pages.GroupByDate "2006-01" "asc" }}
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages.GroupBy "Section" "desc" }}
|
{{ range .Pages.GroupBy "Section" "desc" }}
|
||||||
```
|
```
|
||||||
|
|
||||||
### Order Within Groups
|
### Order Within Groups
|
||||||
|
@ -321,7 +321,7 @@ In the following example, groups are ordered chronologically and then content
|
||||||
within each group is ordered alphabetically by title.
|
within each group is ordered alphabetically by title.
|
||||||
|
|
||||||
{{< code file="layouts/partials/by-group-by-page.html" >}}
|
{{< code file="layouts/partials/by-group-by-page.html" >}}
|
||||||
{{ range .Data.Pages.GroupByDate "2006-01" "asc" }}
|
{{ range .Pages.GroupByDate "2006-01" "asc" }}
|
||||||
<h3>{{ .Key }}</h3>
|
<h3>{{ .Key }}</h3>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Pages.ByTitle }}
|
{{ range .Pages.ByTitle }}
|
||||||
|
@ -346,8 +346,8 @@ Sometimes you only want to list a subset of the available content. A common requ
|
||||||
2. `key` or `field name`
|
2. `key` or `field name`
|
||||||
3. `match value`
|
3. `match value`
|
||||||
|
|
||||||
{{< code file="layouts/_default/.html" >}}
|
{{< code file="layouts/_default/index.html" >}}
|
||||||
{{ range where .Data.Pages "Section" "post" }}
|
{{ range where .Pages "Section" "post" }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -360,7 +360,7 @@ Sometimes you only want to list a subset of the available content. A common requ
|
||||||
2. `number of elements`
|
2. `number of elements`
|
||||||
|
|
||||||
{{< code file="layout/_default/section.html" >}}
|
{{< code file="layout/_default/section.html" >}}
|
||||||
{{ range first 10 .Data.Pages }}
|
{{ range first 10 .Pages }}
|
||||||
{{ .Render "summary" }}
|
{{ .Render "summary" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
@ -370,7 +370,7 @@ Sometimes you only want to list a subset of the available content. A common requ
|
||||||
Using `first` and `where` together can be very powerful:
|
Using `first` and `where` together can be very powerful:
|
||||||
|
|
||||||
{{< code file="first-and-where-together.html" >}}
|
{{< code file="first-and-where-together.html" >}}
|
||||||
{{ range first 5 (where .Data.Pages "Section" "post") }}
|
{{ range first 5 (where .Pages "Section" "post") }}
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
|
|
@ -43,19 +43,19 @@ Setting `Paginate` to a positive value will split the list pages for the homepag
|
||||||
There are two ways to configure and use a `.Paginator`:
|
There are two ways to configure and use a `.Paginator`:
|
||||||
|
|
||||||
1. The simplest way is just to call `.Paginator.Pages` from a template. It will contain the pages for *that page*.
|
1. The simplest way is just to call `.Paginator.Pages` from a template. It will contain the pages for *that page*.
|
||||||
2. Select a subset of the pages with the available template functions and ordering options, and pass the slice to `.Paginate`, e.g. `{{ range (.Paginate ( first 50 .Data.Pages.ByTitle )).Pages }}`.
|
2. Select a subset of the pages with the available template functions and ordering options, and pass the slice to `.Paginate`, e.g. `{{ range (.Paginate ( first 50 .Pages.ByTitle )).Pages }}`.
|
||||||
|
|
||||||
For a given **Page**, it's one of the options above. The `.Paginator` is static and cannot change once created.
|
For a given **Page**, it's one of the options above. The `.Paginator` is static and cannot change once created.
|
||||||
|
|
||||||
The global page size setting (`Paginate`) can be overridden by providing a positive integer as the last argument. The examples below will give five items per page:
|
The global page size setting (`Paginate`) can be overridden by providing a positive integer as the last argument. The examples below will give five items per page:
|
||||||
|
|
||||||
* `{{ range (.Paginator 5).Pages }}`
|
* `{{ range (.Paginator 5).Pages }}`
|
||||||
* `{{ $paginator := .Paginate (where .Data.Pages "Type" "post") 5 }}`
|
* `{{ $paginator := .Paginate (where .Pages "Type" "post") 5 }}`
|
||||||
|
|
||||||
It is also possible to use the `GroupBy` functions in combination with pagination:
|
It is also possible to use the `GroupBy` functions in combination with pagination:
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range (.Paginate (.Data.Pages.GroupByDate "2006")).PageGroups }}
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||||
```
|
```
|
||||||
|
|
||||||
## Build the navigation
|
## Build the navigation
|
||||||
|
@ -75,7 +75,7 @@ If you use any filters or ordering functions to create your `.Paginator` *and* y
|
||||||
The following example shows how to create `.Paginator` before its used:
|
The following example shows how to create `.Paginator` before its used:
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ $paginator := .Paginate (where .Data.Pages "Type" "post") }}
|
{{ $paginator := .Paginate (where .Pages "Type" "post") }}
|
||||||
{{ template "_internal/pagination.html" . }}
|
{{ template "_internal/pagination.html" . }}
|
||||||
{{ range $paginator.Pages }}
|
{{ range $paginator.Pages }}
|
||||||
{{ .Title }}
|
{{ .Title }}
|
||||||
|
|
|
@ -42,7 +42,7 @@ The following is an example `robots.txt` layout:
|
||||||
{{< code file="layouts/robots.txt" download="robots.txt" >}}
|
{{< code file="layouts/robots.txt" download="robots.txt" >}}
|
||||||
User-agent: *
|
User-agent: *
|
||||||
|
|
||||||
{{range .Data.Pages}}
|
{{range .Pages}}
|
||||||
Disallow: {{.RelPermalink}}
|
Disallow: {{.RelPermalink}}
|
||||||
{{end}}
|
{{end}}
|
||||||
{{< /code >}}
|
{{< /code >}}
|
||||||
|
|
|
@ -73,7 +73,7 @@ This is the default RSS template that ships with Hugo. It adheres to the [RSS 2.
|
||||||
{{ with .OutputFormats.Get "RSS" }}
|
{{ with .OutputFormats.Get "RSS" }}
|
||||||
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<item>
|
<item>
|
||||||
<title>{{ .Title }}</title>
|
<title>{{ .Title }}</title>
|
||||||
<link>{{ .Permalink }}</link>
|
<link>{{ .Permalink }}</link>
|
||||||
|
|
|
@ -41,7 +41,7 @@ This template respects the version 0.9 of the [Sitemap Protocol](http://www.site
|
||||||
|
|
||||||
```
|
```
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<url>
|
<url>
|
||||||
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
|
<loc>{{ .Permalink }}</loc>{{ if not .Lastmod.IsZero }}
|
||||||
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
|
<lastmod>{{ safeHTML ( .Lastmod.Format "2006-01-02T15:04:05-07:00" ) }}</lastmod>{{ end }}{{ with .Sitemap.ChangeFreq }}
|
||||||
|
|
|
@ -103,11 +103,11 @@ type WeightedPages []WeightedPage
|
||||||
|
|
||||||
## Displaying custom metadata in Taxonomy Terms Templates
|
## Displaying custom metadata in Taxonomy Terms Templates
|
||||||
|
|
||||||
If you need to display custom metadata for each taxonomy term, you will need to create a page for that term at `/content/<TAXONOMY>/<TERM>/_index.md` and add your metadata in it's front matter, [as explained in the taxonomies documentation](/content-management/taxonomies/#add-custom-meta-data-to-a-taxonomy-term). Based on the Actors taxonomy example shown there, within your taxonomy terms template, you may access your custom fields by iterating through the variable `.Data.Pages` as such:
|
If you need to display custom metadata for each taxonomy term, you will need to create a page for that term at `/content/<TAXONOMY>/<TERM>/_index.md` and add your metadata in it's front matter, [as explained in the taxonomies documentation](/content-management/taxonomies/#add-custom-meta-data-to-a-taxonomy-term). Based on the Actors taxonomy example shown there, within your taxonomy terms template, you may access your custom fields by iterating through the variable `.Pages` as such:
|
||||||
|
|
||||||
```
|
```
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<li>
|
<li>
|
||||||
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
<a href="{{ .Permalink }}">{{ .Title }}</a>
|
||||||
{{ .Params.wikipedia }}
|
{{ .Params.wikipedia }}
|
||||||
|
|
|
@ -51,14 +51,14 @@ This will print out a list of all the variables scoped to the current context
|
||||||
When developing a [homepage][], what does one of the pages you're looping through look like?
|
When developing a [homepage][], what does one of the pages you're looping through look like?
|
||||||
|
|
||||||
```
|
```
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{/* The context, ".", is now each one of the pages as it goes through the loop */}}
|
{{/* The context, ".", is now each one of the pages as it goes through the loop */}}
|
||||||
{{ printf "%#v" . }}
|
{{ printf "%#v" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
```
|
```
|
||||||
|
|
||||||
{{% note "`.Data.Pages` on the Homepage" %}}
|
{{% note "`.Pages` on the Homepage" %}}
|
||||||
`.Data.Pages` on the homepage is equivalent to `.Site.Pages`.
|
`.Pages` on the homepage is equivalent to `.Site.RegularPages`.
|
||||||
{{% /note %}}
|
{{% /note %}}
|
||||||
|
|
||||||
## Why Am I Showing No Defined Variables?
|
## Why Am I Showing No Defined Variables?
|
||||||
|
|
|
@ -73,7 +73,7 @@ In this example, `.Render` is passed into the template to call the [render funct
|
||||||
<main id="main">
|
<main id="main">
|
||||||
<div>
|
<div>
|
||||||
<h1 id="title">{{ .Title }}</h1>
|
<h1 id="title">{{ .Title }}</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
{{ .Render "summary"}}
|
{{ .Render "summary"}}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: Menu Variables
|
title: Menu Entry Properties
|
||||||
linktitle: Menu Variables
|
linktitle: Menu Entry Properties
|
||||||
description: A menu entry in a menu template has specific variables and functions to make menu management easier.
|
description: A menu entry in a menu-template has specific variables and functions to make menu management easier.
|
||||||
date: 2017-03-12
|
date: 2017-03-12
|
||||||
publishdate: 2017-03-12
|
publishdate: 2017-03-12
|
||||||
lastmod: 2017-03-12
|
lastmod: 2017-03-12
|
||||||
|
@ -19,49 +19,106 @@ aliases: [/variables/menu/]
|
||||||
toc: false
|
toc: false
|
||||||
---
|
---
|
||||||
|
|
||||||
The [menu template][] has the following properties:
|
A **menu entry** has the following properties available that can be used in a
|
||||||
|
[menu template][menu-template].
|
||||||
.URL
|
|
||||||
: string
|
|
||||||
|
|
||||||
.Name
|
|
||||||
: string
|
|
||||||
|
|
||||||
.Title
|
|
||||||
: string
|
|
||||||
|
|
||||||
This is a link title, meant to be used in `title`-Attributes of the menu's `<a>`-tags.
|
|
||||||
By default it returns `.Page.LinkTitle`, as long as the menu entry was created
|
|
||||||
through the page's front matter and not through the site config.
|
|
||||||
Setting it explicitly in the site config or the page's front matter overrides this behaviour.
|
|
||||||
|
|
||||||
.Page
|
|
||||||
: [Page Object](/variables/page/)
|
|
||||||
|
|
||||||
The `.Page` variable holds a reference to the page.
|
|
||||||
It's only set when the menu entry is created from the page's front matter,
|
|
||||||
not when it's created from the site config.
|
|
||||||
|
|
||||||
|
## Menu Entry Variables
|
||||||
|
|
||||||
.Menu
|
.Menu
|
||||||
: string
|
: _string_ <br />
|
||||||
|
Name of the **menu** that contains this **menu entry**.
|
||||||
|
|
||||||
|
.URL
|
||||||
|
: _string_ <br />
|
||||||
|
URL that the menu entry points to. The `url` key, if set for the menu entry,
|
||||||
|
sets this value. If that key is not set, and if the menu entry is set in a page
|
||||||
|
front-matter, this value defaults to the page's `.RelPermalink`.
|
||||||
|
|
||||||
|
.Page
|
||||||
|
: _\*Page_ <br />
|
||||||
|
Reference to the [page object][page-object] associated with the menu entry. This
|
||||||
|
will be non-nil if the menu entry is set via a page's front-matter and not via
|
||||||
|
the site config.
|
||||||
|
|
||||||
|
.Name
|
||||||
|
: _string_ <br />
|
||||||
|
Name of the menu entry. The `name` key, if set for the menu entry, sets
|
||||||
|
this value. If that key is not set, and if the menu entry is set in a page
|
||||||
|
front-matter, this value defaults to the page's `.LinkTitle`.
|
||||||
|
|
||||||
.Identifier
|
.Identifier
|
||||||
: string
|
: _string_ <br />
|
||||||
|
Value of the `identifier` key if set for the menu entry. This value must be
|
||||||
|
unique for each menu entry. **It is necessary to set a unique identifier
|
||||||
|
manually if two or more menu entries have the same `.Name`.**
|
||||||
|
|
||||||
.Pre
|
.Pre
|
||||||
: template.HTML
|
: _template.HTML_ <br />
|
||||||
|
Value of the `pre` key if set for the menu entry. This value typically contains
|
||||||
|
a string representing HTML.
|
||||||
|
|
||||||
.Post
|
.Post
|
||||||
: template.HTML
|
: _template.HTML_ <br />
|
||||||
|
Value of the `post` key if set for the menu entry. This value typically contains
|
||||||
|
a string representing HTML.
|
||||||
|
|
||||||
.Weight
|
.Weight
|
||||||
: int
|
: _int_ <br />
|
||||||
|
Value of the `weight` key if set for the menu entry. If that key is not set,
|
||||||
|
and if the menu entry is set in a page front-matter, this value defaults to the
|
||||||
|
page's `.Weight`.
|
||||||
|
|
||||||
.Parent
|
.Parent
|
||||||
: string
|
: _string_ <br />
|
||||||
|
Name (or Identifier if present) of this menu entry's parent **menu entry**. The
|
||||||
|
`parent` key, if set for the menu entry, sets this value. If this key is set,
|
||||||
|
this menu entry nests under that parent entry, else it nests directly under the
|
||||||
|
`.Menu`.
|
||||||
|
|
||||||
.Children
|
.Children
|
||||||
: Menu
|
: _Menu_ <br />
|
||||||
|
This value is auto-populated by Hugo. It is a collection of children menu
|
||||||
|
entries, if any, under the current menu entry.
|
||||||
|
|
||||||
[menu template]: /templates/menu-templates/
|
## Menu Entry Functions
|
||||||
|
|
||||||
|
Menus also have the following functions available:
|
||||||
|
|
||||||
|
[.HasChildren](/functions/haschildren/)
|
||||||
|
: _boolean_ <br />
|
||||||
|
Returns `true` if `.Children` is non-nil.
|
||||||
|
|
||||||
|
.KeyName
|
||||||
|
: _string_ <br />
|
||||||
|
Returns the `.Identifier` if present, else returns the `.Name`.
|
||||||
|
|
||||||
|
.IsEqual
|
||||||
|
: _boolean_ <br />
|
||||||
|
Returns `true` if the two compared menu entries represent the same menu entry.
|
||||||
|
|
||||||
|
.IsSameResource
|
||||||
|
: _boolean_ <br />
|
||||||
|
Returns `true` if the two compared menu entries have the same `.URL`.
|
||||||
|
|
||||||
|
.Title
|
||||||
|
: _string_ <br />
|
||||||
|
Link title, meant to be used in the `title` attribute of a menu entry's
|
||||||
|
`<a>`-tags. Returns the menu entry's `title` key if set. Else, if the menu
|
||||||
|
entry was created through a page's front-matter, it returns the page's
|
||||||
|
`.LinkTitle`. Else, it just returns an empty string.
|
||||||
|
|
||||||
|
## Other Menu-related Functions
|
||||||
|
|
||||||
|
Additionally, here are some relevant methods available to menus on a page:
|
||||||
|
|
||||||
|
.IsMenuCurrent
|
||||||
|
: _(menu string, menuEntry *MenuEntry ) boolean_ <br />
|
||||||
|
See [`.IsMenuCurrent` method](/functions/ismenucurrent/).
|
||||||
|
|
||||||
|
.HasMenuCurrent
|
||||||
|
: _(menu string, menuEntry *MenuEntry) boolean_ <br />
|
||||||
|
See [`.HasMenuCurrent` method](/functions/hasmenucurrent/).
|
||||||
|
|
||||||
|
|
||||||
|
[menu-template]: /templates/menu-templates/
|
||||||
|
[page-object]: /variables/page/
|
||||||
|
|
|
@ -106,7 +106,9 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo].
|
||||||
: contains all formats, including the current format, for a given page. Can be combined the with [`.Get` function](/functions/get/) to grab a specific format. (See [Output Formats](/templates/output-formats/).)
|
: contains all formats, including the current format, for a given page. Can be combined the with [`.Get` function](/functions/get/) to grab a specific format. (See [Output Formats](/templates/output-formats/).)
|
||||||
|
|
||||||
.Pages
|
.Pages
|
||||||
: a collection of associated pages. This value will be `nil` for regular content pages. `.Pages` is an alias for `.Data.Pages`.
|
: a collection of associated pages. `.Pages` is an alias for
|
||||||
|
`.Data.Pages`. This value will be `nil` within the context of
|
||||||
|
regular content pages.
|
||||||
|
|
||||||
.Permalink
|
.Permalink
|
||||||
: the Permanent link for this page; see [Permalinks](/content-management/urls/)
|
: the Permanent link for this page; see [Permalinks](/content-management/urls/)
|
||||||
|
|
|
@ -90,7 +90,7 @@ From the above base template, you can define a [default list template][hugolists
|
||||||
{{< code file="layouts/_default/list.html" download="list.html" >}}
|
{{< code file="layouts/_default/list.html" download="list.html" >}}
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
<h1>Posts</h1>
|
<h1>Posts</h1>
|
||||||
{{ range .Data.Pages }}
|
{{ range .Pages }}
|
||||||
<article>
|
<article>
|
||||||
<h2>{{ .Title }}</h2>
|
<h2>{{ .Title }}</h2>
|
||||||
{{ .Content }}
|
{{ .Content }}
|
||||||
|
|
|
@ -3,7 +3,7 @@ publish = "public"
|
||||||
command = "hugo"
|
command = "hugo"
|
||||||
|
|
||||||
[context.production.environment]
|
[context.production.environment]
|
||||||
HUGO_VERSION = "0.42.2"
|
HUGO_VERSION = "0.44"
|
||||||
HUGO_ENV = "production"
|
HUGO_ENV = "production"
|
||||||
HUGO_ENABLEGITINFO = "true"
|
HUGO_ENABLEGITINFO = "true"
|
||||||
|
|
||||||
|
@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true"
|
||||||
command = "hugo --enableGitInfo"
|
command = "hugo --enableGitInfo"
|
||||||
|
|
||||||
[context.split1.environment]
|
[context.split1.environment]
|
||||||
HUGO_VERSION = "0.42.2"
|
HUGO_VERSION = "0.44"
|
||||||
HUGO_ENV = "production"
|
HUGO_ENV = "production"
|
||||||
|
|
||||||
[context.deploy-preview]
|
[context.deploy-preview]
|
||||||
command = "hugo --buildFuture -b $DEPLOY_PRIME_URL"
|
command = "hugo --buildFuture -b $DEPLOY_PRIME_URL"
|
||||||
|
|
||||||
[context.deploy-preview.environment]
|
[context.deploy-preview.environment]
|
||||||
HUGO_VERSION = "0.42.2"
|
HUGO_VERSION = "0.44"
|
||||||
|
|
||||||
[context.branch-deploy]
|
[context.branch-deploy]
|
||||||
command = "hugo -b $DEPLOY_PRIME_URL"
|
command = "hugo -b $DEPLOY_PRIME_URL"
|
||||||
|
|
||||||
[context.branch-deploy.environment]
|
[context.branch-deploy.environment]
|
||||||
HUGO_VERSION = "0.42.2"
|
HUGO_VERSION = "0.44"
|
||||||
|
|
||||||
[context.next.environment]
|
[context.next.environment]
|
||||||
HUGO_ENABLEGITINFO = "true"
|
HUGO_ENABLEGITINFO = "true"
|
||||||
|
|
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 5 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 5 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 21 KiB |
After Width: | Height: | Size: 65 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 88 KiB |
After Width: | Height: | Size: 36 KiB |
After Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 35 KiB |
After Width: | Height: | Size: 56 KiB |
0
static/images/contribute/development/accept-cla.png
Executable file → Normal file
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 32 KiB |
0
static/images/contribute/development/ci-errors.png
Executable file → Normal file
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
0
static/images/contribute/development/copy-remote-url.png
Executable file → Normal file
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 10 KiB |
0
static/images/contribute/development/forking-a-repository.png
Executable file → Normal file
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB |
0
static/images/contribute/development/open-pull-request.png
Executable file → Normal file
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png
Executable file → Normal file
Before Width: | Height: | Size: 49 KiB After Width: | Height: | Size: 49 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png
Executable file → Normal file
Before Width: | Height: | Size: 66 KiB After Width: | Height: | Size: 66 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png
Executable file → Normal file
Before Width: | Height: | Size: 45 KiB After Width: | Height: | Size: 45 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png
Executable file → Normal file
Before Width: | Height: | Size: 90 KiB After Width: | Height: | Size: 90 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png
Executable file → Normal file
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 34 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png
Executable file → Normal file
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png
Executable file → Normal file
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png
Executable file → Normal file
Before Width: | Height: | Size: 59 KiB After Width: | Height: | Size: 59 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png
Executable file → Normal file
Before Width: | Height: | Size: 46 KiB After Width: | Height: | Size: 46 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png
Executable file → Normal file
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png
Executable file → Normal file
Before Width: | Height: | Size: 31 KiB After Width: | Height: | Size: 31 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png
Executable file → Normal file
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png
Executable file → Normal file
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
0
static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png
Executable file → Normal file
Before Width: | Height: | Size: 51 KiB After Width: | Height: | Size: 51 KiB |
0
static/images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-blog-post.png
Executable file → Normal file
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
0
static/images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-create-repo.png
Executable file → Normal file
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
@ -1 +1,7 @@
|
||||||
Theme for gohugo.io sites. More info to come.
|
# GoHugo Sites Theme
|
||||||
|
|
||||||
|
Theme for gohugo.io sites:
|
||||||
|
* [https://gohugo.io/](https://gohugo.io/)
|
||||||
|
* [https://themes.gohugo.io/](https://themes.gohugo.io/)
|
||||||
|
|
||||||
|
More info to come.
|
||||||
|
|
0
themes/gohugoioTheme/layouts/404.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/_default/baseof.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/_default/list.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/_default/single.html
Executable file → Normal file
|
@ -1,4 +1,4 @@
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ $section_to_display := .Data.Pages }}
|
{{ $section_to_display := .Pages }}
|
||||||
{{ partial "pagelayout.html" (dict "context" . "section_to_display" $section_to_display ) }}
|
{{ partial "pagelayout.html" (dict "context" . "section_to_display" $section_to_display ) }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{{/* {{ define "header" }}{{ partial "page-header" . }}{{ end }} */}}
|
{{/* {{ define "header" }}{{ partial "page-header" . }}{{ end }} */}}
|
||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ $section_to_display := .Data.Pages }}
|
{{ $section_to_display := .Pages }}
|
||||||
<div class="w-100 ph4 pb5 pb6-ns pt1 pt3-ns">
|
<div class="w-100 ph4 pb5 pb6-ns pt1 pt3-ns">
|
||||||
|
|
||||||
<div class="flex">
|
<div class="flex">
|
||||||
|
|
2
themes/gohugoioTheme/layouts/partials/boxes-small-news.html
Executable file → Normal file
|
@ -3,7 +3,7 @@
|
||||||
<!-- <a href="/news/" class="link accent-color tr-ns f6 w-100 w-50-m w-10-l bg-animate hover-bg-accent-color hover-white pv3 pv4-l ph3 ph4-l dib">
|
<!-- <a href="/news/" class="link accent-color tr-ns f6 w-100 w-50-m w-10-l bg-animate hover-bg-accent-color hover-white pv3 pv4-l ph3 ph4-l dib">
|
||||||
Latest News:
|
Latest News:
|
||||||
</a> -->
|
</a> -->
|
||||||
{{ range first 4 ( sort (where .Data.Pages "Section" "news") "Date" "desc" ) }}
|
{{ range first 4 ( sort (where .Pages "Section" "news") "Date" "desc" ) }}
|
||||||
<!-- only show 2 boxes on mobile -->
|
<!-- only show 2 boxes on mobile -->
|
||||||
{{ $.Scratch.Add "i" 1 }}{{ $i := $.Scratch.Get "i" }}
|
{{ $.Scratch.Add "i" 1 }}{{ $i := $.Scratch.Get "i" }}
|
||||||
<a href="{{ .URL }}" class="link lh-copy light-gray f6 w-100 w-50-m w-25-l bg-animate hover-bg-accent-color hover-white pv3 pv4-ns ph3 ph4-ns{{ if ge $i 3 }} dn dib-l{{ else }} dib{{ end }}">
|
<a href="{{ .URL }}" class="link lh-copy light-gray f6 w-100 w-50-m w-25-l bg-animate hover-bg-accent-color hover-white pv3 pv4-ns ph3 ph4-ns{{ if ge $i 3 }} dn dib-l{{ else }} dib{{ end }}">
|
||||||
|
|
0
themes/gohugoioTheme/layouts/partials/icon-link.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/manifest.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/nav-links.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/nav-top.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/page-edit.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/site-footer.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/site-nav.html
Executable file → Normal file
0
themes/gohugoioTheme/layouts/partials/svg/apple.svg
Executable file → Normal file
Before Width: | Height: | Size: 566 B After Width: | Height: | Size: 566 B |
0
themes/gohugoioTheme/layouts/partials/svg/facebook.svg
Executable file → Normal file
Before Width: | Height: | Size: 501 B After Width: | Height: | Size: 501 B |
0
themes/gohugoioTheme/layouts/partials/svg/freebsd.svg
Executable file → Normal file
Before Width: | Height: | Size: 874 B After Width: | Height: | Size: 874 B |
0
themes/gohugoioTheme/layouts/partials/svg/github-squared.svg
Executable file → Normal file
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.9 KiB |