From 615d18ef8da8ce0ed5493305952be5de10c82ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 20 Feb 2023 11:58:02 +0100 Subject: [PATCH 01/95] Add Related fragments config --- hugo.toml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/hugo.toml b/hugo.toml index da6bd9534..5bed0ab2b 100644 --- a/hugo.toml +++ b/hugo.toml @@ -65,7 +65,17 @@ disableAliases = true toLower = false [[related.indices]] name = "keywords" - weight = 100 + weight = 60 + [[related.indices]] + # Can be used as a front matter slice to link to other page fragments (headings) using their ID. + # This isn't particular useful in the current docs, but we're planning on getting a auto generated + # reference section with a better ID setup. + # For now, we just use it to give pages with same headings some similarity score. + name = "fragmentrefs" + type = "fragments" + applyFilter = false + weight = 60 + cardinalityThreshold = 50 [[related.indices]] name = "date" weight = 10 From 6c78c067952c12d33c6a3bfef7c0ebba9c43b541 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Wed, 1 Mar 2023 22:18:28 +0100 Subject: [PATCH 02/95] netlify: Bump to Hugo 0.111.0 --- netlify.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netlify.toml b/netlify.toml index d99f6d223..bb8490599 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.110.0" +HUGO_VERSION = "0.111.0" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.110.0" +HUGO_VERSION = "0.111.0" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.110.0" +HUGO_VERSION = "0.111.0" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.110.0" +HUGO_VERSION = "0.111.0" [context.next.environment] HUGO_ENABLEGITINFO = "true" From 4c0157a49abd645a85a47f6cff7c7071375f389a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 2 Mar 2023 10:35:54 +0100 Subject: [PATCH 03/95] Add .Fragments docs --- content/en/variables/page.md | 40 ++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 2de54ff8b..f21c74b60 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -59,6 +59,9 @@ See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables. .File : filesystem-related data for this content file. See also [File Variables]. +.Fragments +: Fragments returns the fragments for this page. See [Page Fragments](#page-fragments). + .FuzzyWordCount : the approximate number of words in the content. @@ -199,6 +202,42 @@ aliased form `.Pages`. {{< getcontent path="readfiles/pages-vs-site-pages.md" >}} +## Page Fragments + +{{< new-in "0.111.0" >}} + +The `.Fragments` method returns a list of fragments for the current page. + +.Headings +: A recursive list of headings for the current page. Can be used to generate a table of contents. + +{{< todo >}}add .Headings toc example{{< /todo >}} + +.Identifiers +: A sorted list of identifiers for the current page. Can be used to check if a page contains a specific identifier or if a page contains duplicate identifiers: + +```go-html-template +{{ if .Fragments.Identifiers.Contains "my-identifier" }} +

Page contains identifier "my-identifier"

+{{ end }} + +{{ if gt (.Fragments.Identifiers.Count "my-identifier") 1 }} +

Page contains duplicate "my-idenfifier" fragments

+{{ end }} +``` + +.HeadingsMap +: Holds a map of headings for the current page. Can be used to start the table of contents from a specific heading. + +Also see the [Go Doc](https://pkg.go.dev/github.com/gohugoio/hugo@v0.111.0/markup/tableofcontents#Fragments) for the return type. + +### Fragments in hooks and shortcodes + +`.Fragments` are safe to call from render hooks, even on the page you're on (`.Page.Fragments`). For shortcodes we recommend that all `.Fragments` usage is nested inside the `{{}}` shortcode delimiter (`{{%/**/%}}` takes part in the ToC creation so it's easy to end up in a situation where you bite yourself in the tail). + + + + ## Page-level Params Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable. @@ -299,3 +338,4 @@ The top-level key will be preferred. Therefore, the following method, when appli [gitinfo]: /variables/git/ [File Variables]: /variables/files/ [bundle]: {{< relref "content-management/page-bundles" >}} + From 226cb9e3a8439010c414f4abc9d9dedcd17a5d5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 2 Mar 2023 11:02:41 +0100 Subject: [PATCH 04/95] Add a paragraph about the new page template function --- content/en/variables/page.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/content/en/variables/page.md b/content/en/variables/page.md index f21c74b60..3453b8a2b 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -236,7 +236,21 @@ Also see the [Go Doc](https://pkg.go.dev/github.com/gohugoio/hugo@v0.111.0/marku `.Fragments` are safe to call from render hooks, even on the page you're on (`.Page.Fragments`). For shortcodes we recommend that all `.Fragments` usage is nested inside the `{{}}` shortcode delimiter (`{{%/**/%}}` takes part in the ToC creation so it's easy to end up in a situation where you bite yourself in the tail). +## The global page function +{{< new-in "0.111.1" >}} + +Hugo almost always passes a `Page` as the data context into the top level template (e.g. `single.html`) (the one exception is the multihost sitemap template). This means that you can access the current page with the `.` variable in the template. + +But when you're deeply nested inside `.Render`, partial etc., accessing that `Page` object isn't always practical or possible. + +For this reason, Hugo provides a global `page` function that you can use to access the current page from anywhere in any template. + +```go-html-template +{{ page.Title }} +``` + +There are one caveat with this, and this isn't new, but it's worth mentioning here: There are situations in Hugo where you may see a cached value, e.g. when using `partialCached` or in a shortcode. ## Page-level Params From d96d75be48901849b043f83df51a796c06610e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 2 Mar 2023 11:33:28 +0100 Subject: [PATCH 05/95] netlify: Hugo 0.111.1 --- netlify.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netlify.toml b/netlify.toml index bb8490599..09c178950 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.111.0" +HUGO_VERSION = "0.111.1" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.111.0" +HUGO_VERSION = "0.111.1" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.111.0" +HUGO_VERSION = "0.111.1" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.111.0" +HUGO_VERSION = "0.111.1" [context.next.environment] HUGO_ENABLEGITINFO = "true" From 0651a76e030228354bcdecc8610e538a2693b501 Mon Sep 17 00:00:00 2001 From: Jacob Lamont Date: Fri, 3 Mar 2023 12:05:31 -0500 Subject: [PATCH 06/95] add headings to distinguish render hook context params --- content/en/templates/render-hooks.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/content/en/templates/render-hooks.md b/content/en/templates/render-hooks.md index 69b34cc9b..b3483712c 100644 --- a/content/en/templates/render-hooks.md +++ b/content/en/templates/render-hooks.md @@ -49,6 +49,8 @@ Some use cases for the above: ## Render Hooks for Headings, Links and Images +### Context passed to `render-link` and `render-image` + The `render-link` and `render-image` templates will receive this context: Page @@ -66,6 +68,8 @@ Text PlainText : The plain variant of the above. +### Context passed to `render-heading` + The `render-heading` template will receive this context: Page From ad7901d2f3df4c872f446b9960698233bdc87540 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 5 Mar 2023 13:45:00 +0100 Subject: [PATCH 07/95] netlify: Hugo 0.111.2 --- netlify.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netlify.toml b/netlify.toml index 09c178950..32f29d0b5 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.111.1" +HUGO_VERSION = "0.111.2" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.111.1" +HUGO_VERSION = "0.111.2" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.111.1" +HUGO_VERSION = "0.111.2" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.111.1" +HUGO_VERSION = "0.111.2" [context.next.environment] HUGO_ENABLEGITINFO = "true" From 142f5da818aec50144dd837e18054448d321cc29 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 6 Mar 2023 07:50:04 -0800 Subject: [PATCH 08/95] Update GitHub hosting instructions (#1991) Closes #1990 --- .../hosting-on-github.md | 118 ------------ .../hosting-on-github/gh-pages-1.png | Bin 0 -> 3677 bytes .../hosting-on-github/gh-pages-2.png | Bin 0 -> 4014 bytes .../hosting-on-github/gh-pages-3.png | Bin 0 -> 6390 bytes .../hosting-on-github/gh-pages-4.png | Bin 0 -> 6258 bytes .../hosting-on-github/gh-pages-5.png | Bin 0 -> 4793 bytes .../hosting-on-github/index.md | 180 ++++++++++++++++++ 7 files changed, 180 insertions(+), 118 deletions(-) delete mode 100644 content/en/hosting-and-deployment/hosting-on-github.md create mode 100644 content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png create mode 100644 content/en/hosting-and-deployment/hosting-on-github/gh-pages-2.png create mode 100644 content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png create mode 100644 content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png create mode 100644 content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png create mode 100644 content/en/hosting-and-deployment/hosting-on-github/index.md diff --git a/content/en/hosting-and-deployment/hosting-on-github.md b/content/en/hosting-and-deployment/hosting-on-github.md deleted file mode 100644 index 76de0f3a5..000000000 --- a/content/en/hosting-and-deployment/hosting-on-github.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: Host on GitHub -linktitle: Host on GitHub -description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Action Workflow -date: 2014-03-21 -publishdate: 2014-03-21 -categories: [hosting and deployment] -keywords: [github,git,deployment,hosting] -authors: [Spencer Lyon, Gunnar Morling] -menu: - docs: - parent: "hosting-and-deployment" - weight: 30 -weight: 30 -sections_weight: 30 -toc: true -aliases: [/tutorials/github-pages-blog/] ---- - -GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its [GitHub Pages service] and automating development workflows and build with [GitHub Actions]. - -## Assumptions - -1. You have Git 2.8 or greater [installed on your machine][installgit]. -2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free. -3. You have a ready-to-publish Hugo website or have at least completed the [Quick Start]. - -## Types of GitHub Pages - -There are two types of GitHub Pages: - -- User/Organization Pages (`https://.github.io/`) -- Project Pages (`https://.github.io//`) - -Please refer to the [GitHub Pages documentation][ghorgs] to decide which type of site you would like to create as it will determine which of the below methods to use. - -## Branches for GitHub Actions - -The GitHub Actions used in these instructions pull source content from the `main` branch and then commit the generated content to the `gh-pages` branch. This applies regardless of what type of GitHub Pages you are using. This is a clean setup as your Hugo files are stored in one branch and your generated files are published into a separate branch. - -## GitHub User or Organization Pages - -As mentioned in the [GitHub Pages documentation][ghorgs], you can host a user/organization page in addition to project pages. Here are the key differences in GitHub Pages websites for Users and Organizations: - -1. You must create a repository named `.github.io` or `.github.io` to host your pages -2. By default, content from the `main` branch is used to publish GitHub Pages - rather than the `gh-pages` branch which is the default for project sites. However, the GitHub Actions in these instructions publish to the `gh-pages` branch. Therefore, if you are publishing GitHub pages for a user or organization, you will need to change the publishing branch to `gh-pages`. See the instructions later in this document. - -## Build Hugo With GitHub Action - -GitHub executes your software development workflows. Every time you push your code on the GitHub repository, GitHub Actions will build the site automatically. - -Create a file in `.github/workflows/gh-pages.yml` containing the following content (based on [actions-hugo](https://github.com/marketplace/actions/hugo-setup)): - -```yml -name: github pages - -on: - push: - branches: - - main # Set a branch that will trigger a deployment - pull_request: - -jobs: - deploy: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - with: - submodules: true # Fetch Hugo themes (true OR recursive) - fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod - - - name: Setup Hugo - uses: peaceiris/actions-hugo@v2 - with: - hugo-version: 'latest' - # extended: true - - - name: Build - run: hugo --minify - - - name: Deploy - uses: peaceiris/actions-gh-pages@v3 - if: github.ref == 'refs/heads/main' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - publish_dir: ./public -``` - -For more advanced settings [actions-hugo](https://github.com/marketplace/actions/hugo-setup) and [actions-gh-pages](https://github.com/marketplace/actions/github-pages-action). - -## GitHub pages setting - -By default, the GitHub action pushes the generated content to the `gh-pages` branch. This means GitHub has to serve your `gh-pages` branch as a GitHub Pages branch. You can change this setting by going to Settings > GitHub Pages, and change the source branch to `gh-pages`. - -## Change baseURL in config.toml - -Don't forget to rename your `baseURL` in `config.toml` with the value `https://.github.io` for your user repository or `https://.github.io/` for a project repository. - -Unless this is present in your `config.toml`, your website won't work. - -## Use a Custom Domain - -If you'd like to use a custom domain for your GitHub Pages site, create a file `static/CNAME`. Your custom domain name should be the only contents inside `CNAME`. Since it's inside `static`, the published site will contain the CNAME file at the root of the published site, which is a requirement of GitHub Pages. - -Refer to the [official documentation for custom domains][domains] for further information. - -[config]: /getting-started/configuration/ -[domains]: https://help.github.com/articles/using-a-custom-domain-with-github-pages/ -[ghorgs]: https://help.github.com/articles/user-organization-and-project-pages/#user--organization-pages -[ghpfromdocs]: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/ -[ghsignup]: https://github.com/join -[GitHub Pages service]: https://help.github.com/articles/what-is-github-pages/ -[installgit]: https://git-scm.com/downloads -[orphan branch]: https://git-scm.com/docs/git-checkout/#Documentation/git-checkout.txt---orphanltnewbranchgt -[Quick Start]: /getting-started/quick-start/ -[submodule]: https://github.com/blog/2104-working-with-submodules -[worktree feature]: https://git-scm.com/docs/git-worktree -[GitHub Actions]: https://docs.github.com/en/actions diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png new file mode 100644 index 0000000000000000000000000000000000000000..29912f25ca0042332bc60f4bc4bd006941b123ab GIT binary patch literal 3677 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 literal 0 HcmV?d00001 diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png new file mode 100644 index 0000000000000000000000000000000000000000..d2904cae17c4fa19b494474432a936397e29838c GIT binary patch literal 6390 zcmbVQbyO2zzXnB-#sCFD1vZ6&jF3=Dx+J8_(IqiT1|uZ}L>LVNVWc1-odcw#8-~Q_ z+CZ3Yl*m56d+s^+ukYUPyMMfW&hI&IJiqrjPmHd%Dg!M$Ed>PygSwiM9t8y@NXq%8zs+TD1$BdK*RCzB>a6@7QRu!fPzLaU$>iaadgrZf-Kd!N)~~%6%jslw zti5`EkxzP3pkgZVbM-|zDtutym(ojX+j$f7T3(4Q@xA~)^#JFLz^(~^5$b5Sqc|%l z%Lv?`;Zi=ZIYTB}*Pj%1H*4}qS-5As^>#l#KDMy)CNJdxWWxQW|00q{W3{!iuq~D0 z+0_Ba{%sSFfYkJ?M*<>Wu|*bPT?;2?0CC^?F!zJS&p0v(3UQVV8cFsw^epN!vvob~ zPd+-?>Rj9#8Jk?fE)&V*vGxq7_%bCiF_3Z47!u}Nw-+82Q~oIt0CwsRQ6Q5E`_mD^ z{yi3cRdU82ULH~c!V(KPhP_o83aT%D92{69hEhg%$hfj2{K(hJ#Fa*Y;o)JVdtjWM zcS34*i?2dI{>;}d(%Lxzxkz3sus-{>5L=J+EW(ym)se@;UB$rF^UYbgMR|Vip3bii z=2La_O%BLdNted4ZnRHeL@j}AZI@ty7_zSXDX**nf>hgs!Lb@(0H4wH%&dRe6rtY3 z!7uq}FuLXBOkC>uI0m~xCWjB4ylp1T=fPTB!~hzJ#h<@`AZ3FHZx<7%b(BR~c0MvX zaOdRA2Nr-E@5$RZ%Y{e>gvUzoflFo^?S6A^bTdYs?M4)k%&S{e*GWo<_N1-??c6M$7RZy%YBQ|!})k3JNN4yOP4$CSV zS*-NU@V9jhL#5Q`C8M{@6s7gW!DP~Sd3~cp*yolo_uV09Pv?v%JNKf=Jq!2ZvAjr! zyzg>R6AOe+fVk0eQDEfzWY@-DwM!?idEe9AlQne=78*aq&XUiMch?AYKQQl2aw@dE za$McL+Yu}Yf2l#^p=Rn$K|y!ppM`RADfs;FB!`c(iH| z-tErE^vLa7!n$n|`k0% z5^qn78M;-O&SwGEZ-NwipkJ)QGrRux1r14fLaf9(moV~Mgz4rK-ttheovcb2j_7}i zcA2+Y;fC8zr2O$gVc`0+LC)JNK!CfGqO^hN# zons*+OET}h=Ji{BaY?Y`upRmedu^MpSI68fwz@a;4kG$@77Mr$%;hjOUn1rEDj@@U z>geytZ_{lio)w!ommYPcDjemneS<35hPAk!ZKwcb#)oMJSra%-?Iw|Zr=EuKnIwjV=aT)a!WTa&k8}cdD&s`hNv415_yROxwPx?g{z z9Co?KP3tIAIWgV(Wrs0Mn+ZW+2k0NZ6C~!vGB7WTzAk(dZ-p)f`NOotd-kI?$n2W0 zV@89F0!0yj3?bqQyGy##)Pe!Fg!#ovxcW)adzpYM5zBiUGh*Kd0G;ytfD`{@0a^3~ z^wEV!sK6<)I7Lp8dO*40LY;Q?`$WgkJxX)cmBBlNx9L#!x+uk+8Dm3%+J$|Zp#dS5 z@oX>$6Y_Y;`;8KpI+A^>t=q) zI-0TV>y}RGxE8q|6`&`7ne6kz&B0G(GZ5&pW0pqBc6m*t(ET0w(ZcDtx;ur+S zbgaB*QKe#ZQxAMe{ZUowg{YxlyG zo?mIkZmc*jC5xu7h93l?@3*WK;*nn3UYz4Nx(%ag3|Yj`FJlG;N&tlr;xsT9*!js zpMyU(my__z!RQe4MX*y>)~N~i;|~59UeXS!!5zMs!-M>VoWab@yq^v{O!w>i(Y0c8 zvo?#x(r1S5YszvP^pVB$JZv*1{QmDs$ot$5cp%4;7D<-X40`d6AjvHRClH$=a+K!F z*>fR!7aL84?VGK*inbpx%LBP4*M&>G-#tht_n%Y2sxT?qqV^ZIknq17&!&;E#ABEQ z)#%6Xrf{^uSFNfbk50KGlCGiQ&R(JEg7DNN`3ZCXrHXCBXY$23my8ypemdV$Ej|%$ z?47~@Va|E&gx!2&rV=4H)9)O4ja#U0pTx?;LTqIQXTXumT`D>exubj&(z9C-bcH z=K#2$xT2c}Id2KEQCTYe1|_eg0WTI?Hw8b%&ElstA34N%Vm9*bRh_PUJl{{C8V+z& zaBBDn;D_=ji&tUUGY0&&(AZh6baDCH^2UiY*rRVDpKjJdJcQgmf;IOhcj(X+(8roj z&|;sNUbFiU)rk+^M@u27p%RA@fPXU|{U<6z4Si(k4Oh`2swlI$T+!Cqd5h)!z3IN! z$rFe^`ZTmOOR07O4{>W-bmI&qJ_nDr%9K#U!7zPl?*9OV)&*U?qjk1Gv?27!RUuF8 zEE|F-Jk;TiDj&|akEai20u0&?z~pbFqvz1>IF?>(d`|R3ni&fy6VZr#oKPkWmrxnK zK0VYc*44Kr+9ij5Ec!dEp=?28KwvZ*&`?PB^wzi73gYa{y z7kS&bO3Evh#IZ9XS?y2w1uK9$d#MGyY&$|HfM#9aXFnXi*^7)s=iPbD{tEHtTQmgy z#dl^1lV>g45DZPR3YfaF9V@nOl`4K_(-qRBAF_alX+m;zXM(@}HXgax>l2$@u6!7xfGr#Tv+ zHkP^|R5dB6$1S5Jus-ho&k(e80e^cWYG1(TTI`2}ck;+}XaBOs_P}YKAMNS*qUrQ0 zxn^`!Hc~xezW?;Gp|*8%9+4b0i}hr6TtLOPFz$$2wYd&8An( z0{lqe-__CoQh94I5xwBrOhn(-)G6ElJQ}>XacS2_#AVQ`kQ(mz=`$XG^96$dQgrT` zWmRc=K>-iX`o$Sekg|;h^>8^hG*R31wbE1TY`GzGBi<)>vS?rG-Lb#QY>hXB*%?SY zsY6b4a+2hOI8~M5;pRo_!#A0%%R5 zw-i$x*y+vh3j3ls+|ratIIkX+m~-l5)-q#WBzVgQ*TTw?7*UGx=`e$~B<0TjW}dw2Df%TFhm|n9?!7)`C+Y^CtZUD!Vg+BQfPhb*OrDHIfG*LAG!ZWzSfJVV8SbI! zw46Cf`|UF3T*MT55Xw5kWXk$_s?DAjBXhhNwbzF06?F*n*Nuv zX!jI#V=xuV-uloFaMu)Fsl;P9R6Z=BRHj=FMxpr&Y$24m=Rv7u6eZq&dp;Dk&ob@B z!6wBJmT_g2;fpdgwY)sfLpbFQeFt{k?tOUc1O87d6u{w~iXTpDcX8^B`^BN9rgVCt zdtbyP;g2C`GlM2uYL2-}LAvaB(6QJ;)+d(N#-)aDqBG^MQ1e>j3}FWN8I6-HBJTGe z(b|ecb}k2oPc$N+4XjT-jG8Uhpgks&i*ELnldPR?Kblp9v%g0ctu=bOlUmt)JF3E3>7)85>pvgRA6*Od;h>Jx^bASy zHl#Va!-Z9FwWCO%sWjbgIWiZQ+2Eu*5iSAHIzD*2_}lqX!qVaHz{2j?(NWZq`>}^Y zryRY_za;J;5I3WqROr>(;x3rlUQ1)Eb-nGDTHnFvDM8aOXg(*+arUPrc5deveVNtO zRO>2QWg*Flf||3%i9oe|ky|KD{|)Jvk~1KtT3gj;OAnLX9yh%-0)AgLQ&Ut!r0Leb zs)01}yaGD6y0!z*3T2$>CYKwjsu130cIwCIc>c~xy**xj+Hv!Z4>v5l7J4<Ksn1Vb9RR ztZi(%0Jz&=TEs2IN^1aWoD6^I)-(`V@CCWEU-+kDA0VdWTx}&NP`ASC0zu3eI%qMO zOb&#Vqj1Ad-o5g0dkNYTYTe{EgMt=snE?mogHfUTVUeYfy|f5}fi=DQRqfJ=hs`lq zvsA+cZn61Q3Z&BAGK8jvMtLy01|;@MBMj}ZAQTgPt6T)HVW2YSSU32LUhWDgKfDrH z%C1>-Y5D0Jy%+ent6{6XEEc0Uzxc^7j7{cpkFacH^CftNJ6C z3t$Jf;o(=o5{2VZyMFYS5f!hLG;9n|@8#ojkx6EUire|HJBHCxC>9TN9!8-i%oUjK zTJ#u~#o?n=njI0X-oxwmKnZ2XDh+>CrxL9S-VePrujAvCJlxdq0;n$XMte+koW^0U zxR70Rp#3ZS*TVqT{-w1Hjw`+b%(%#BKIZ#AhjId;WT5V7Pgn%GZK)-%#^{?5XmZ z`GJ1-aH_QgtjeZ`yt$feV`KV&y}L^$bD^Kp5@o_1YS5?8St0KVT`No;JkG%ED`-K$C~K$RED2Pvu5tW^@1cZ~ZL)?vn6v>I*avxZ_Y7@;K>0E=QJTAc ztcd}hdI&}bMy)5ugAL5^`Z{UBuv1j|i~@1q%1NJ1ovWPZm1DT;#GJa|K))F{QK>SY zq0gKL5PeAt0o~G_qmp6=j-j`Z8BYzoKx_oNRONdrj*QBK(v|9Ic61}?c=pUuj+DHI zE_PevYq?LELyWZE8rk}?I+go-$Y%JOxXtYtl}1gB?SFlo>1?7-r!ON)Es)ahGx)-R zk>SZzC%nu`Z)y~KPquT)L#%wB)dg9$0MpNZ10W}SYsb(QM^s8N;5XWRAS`rmS z#Y{#(Kym16s*H<2&pRUe%&NwnQd|GX1UAya7_F}Z_%s#OZfP*{cQ(&qZW+I`P=qWxs@FV zxWT(4NZ}fKr7`W%JIzNa5ZCuDiy;7qya^t3c6;dm$D910)O>N@Oca>dm!r@9*O;YH MSJqalRIm#B2Q)?I{{R30 literal 0 HcmV?d00001 diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png new file mode 100644 index 0000000000000000000000000000000000000000..75774462b1faa05b9c1e71ad0349291e297327eb GIT binary patch literal 6258 zcmbVQXHXMNw?fb`x=APCZ1Xdw`qG*OE5PH55*f()m5zvtHsF1T#TRQs=yaXynEKD#gefp6uN)HQSr zg`DcG!z%ZQ^%;nwS7{*o?5XToiYt2Wg?}f2*Vx)GesvvBIm7|fqWHjHN~+NrdO!mC zxa?P*y|D1d#FW(ZthVBam8NKMrz%-qU|pQAtGjoG|C?<0KqAWHjf0D?r52w_Q9;RP z-12(pH=?Sh-X^y1txH@?kavH7KY@aykcV7@kk+=z`76gW2vD7iC<;|$im1{tFs=I1 zpy824nL|*9!u_RzT3NX7(?oi<*%4lfK0e-(7^Xtn5R?5JcUwOg%tPg_Uha#p6HEF&B+5xn*xE~|4_mefyI8# zl(nWh^w;T%==tKnXcSJ|IP~+-ZV00EXsypRC}aO{ZE#^L!9BkBnCP3>1dw)IsgHa& zd^|BZQ(S>mj+>-lON6|>C1a0W-4Qj5WD7rJFL``?rPQ~6+ffE+;a2`ieu3Yk+&yi*`4ofrfYO0p()ziMvO3nD`BO7(mYv#5luih;v+ zU+d~E3gs}RO!3zF)41xPYUWKvb?w}~cI(2(T=41noySKF34vW}*uP^=gHhO_()8wu;$CvI^*j^udi>0RAKC(Q zp|J%1p3AD9>TXtR>IoY3U%zIXf~0AarQ|&$U?m9tly(0+Z+jf?6{U*`$ITaL*v9zp z{NIuC5g*419FngDvyHa#5ps?qAjC{i&k)n1aPvfc=y!k8$H$7BM+)g=j*Pvof-PN0 zi(wVl%2TV&T3qTBK{pycV<+ER)7%|BsV`1qRKn~S+!WiZt;sy7>oSI$L=ZyfBcUH2 zEfmvh+K+u*lz<+G8@>>=zS^ivrRI85A4S+b^;4_*>8PM}{!^{cWU z^traf=v5UqEpKvIiAYAOIaa}j{vM)v&xUV*i64oDBIC+~#g{ho=4*1LFA+HkB!cjg z)o7c*&YxpeGC8|3b0%Jx$ULSHr@25EVyVZFM?&l1ZL3cA1lo@iL0)CPdu+~fjM565 z?AJfQ+H=sxqYXU;v0ZLcmRs>P_!&i&((Tai0+ZK4EJde?xJXTiX7AA0!iw&XqFq7$ z&*5&7pOX9pK0LB96(4SgP$t+|W=ljVFDx(7l{lCQ#LDc8fp)h9J_o$No@AH6{-Z98 z7%~@fv4NxDb~SgYoa~F&3{gX%o6MdQu3|c~ZSTq_;FS(tETJ>)dMD2(WDG?dDL1MQ zx>FwIr|Ycz25{_NWoxBA58M0zLz?^w#gC5ew^JzIimKMBtpjpnw`>0b--`$w(_&{| zqBoEIjbJ+>_E@q5zp4IT$E#HK$XcT>I{N(lbnx) zQuBPaLs>54K-LLk9n@*Y`Z=AWDqPL{B_Wi(Yjidna<+6AIZ_veZU4xI@M7r?z_Jjw zB3*W9rpH0-m(duQ=S07o+x(sG8x0ny=o&M&0BoAqW`~qMXzLQ>;Larsuk7j1D&8)( ztjS=AJc=3quGOVQdx3kO`_Lb$tNSk?n2)y6C{t-PYH5J328R5!98K&1hX^wLjl>b8 zP8tz;a`UKnBt}k>@vpwbA~_D}cpROgNiOhCtmS0EuK}rwgKW`E%k6a>X9RAA4cUL{ zh;!2_Ap6G2i$k|hxY)-)UseaIampCQ6L_W0(};PdBTpt!b(8eLvD6cpK%?sY<;Kn1 zE}S+WTeYqofa_gAU1<(L9UG}`fr;SLP0zpEXXI=bS;}aDZnK9$(0KKf$*T0^t4fMn zDd{04%V6A8&Afy09?eX>l~`!@RE(%N#lvVYZZlnof32+mdugLe8vH6gxNq>-zN^yJ zicjuR-<3nr$JxYf#nJwM`(9uSO zNLSm9Q2s=*KZQ?m3iOOF@#TYG6qUW+jw3V8&vySZX(!%E^$k7g(> z9L-DkWpd#F^nHSGRP4xr6laC$Z$ypDtJU>4lUof}15AEFa_241@Mji~p+R*dcxVON zcWb9;`3;>my_8R;bNu=7Jg&}5yk(muZnKFxkRPiO5)#u7F(O9;VJwtmF47j#zg<08 zFqPdLYOwMS9`c)vs`lF55$$%K;Fy#uX;wa2l@pJ~!Z-)Th5Gym-x}bY8O{^TIB8Ep z#%oM>I7t>(4OS0@}&1AGpTDZ(|Mc z$J>z~Gv+OtE~|3{Ly7Oc#V_oWImC!#*{3<)TNmCK0-Zqz&EbZjiHQtu z$zpB>WQE{dia*8#iG&IuJ08AptfW49JtWiLToZp)wBGXDZJe=1`lfK1c92+YIa4f@ zpcr^*Bl19dI{w$i4VkZp$8v*z<6r*9@TLE1a7+Np3RRZ6C3kdwnFdlS*BVa3*Dy%P z>rsIQFJ(mi5y=>0=G_9rZMn<=oCFMM%fqz(1UKKV6a2H@L$e36nfvsZ#GK=(EfZKs zxIL$n!0`e1A*Of>{pL>tP4GkB|A)5t4_i_a-~+9Sk}3`))~5}c_crJeLoUw_pl?nd zuwz{sNKnuTCp-2;3S@;wJs7!)$$&}eJSOc!4Ne}FnLPQIC?tP;{OD+_2WId$c=(*( z4{T>nF3gRb!1w!gfV!%o(ihf=%j#R}Yg0$@EC9csvmgNM- z-DPC5?N<*xnkZFHE~vFo2ERoiCjw+$H{I^Z=%AB2RAe#8?f3DO{rmk1Z@4%bxlWSL z)$-}d<_5H@70PiDle`HA$q>1B0XmHL2uYRVA`uiO39q|cv`FEYOm=a~T8S}uV zQbG9imE6A+AEW~*tmx)8LFmU^=Hwk_BGvZ$yRt!yGZML{YtuSe)IHXAzJd26+)nqT zmY~)!OR43RU{eRtw%{qGIK54P(jk>9w@eYtiP&D#ovU_w)_k~b^2Ou6PHvX0!%ydi z1x^@*{#+*#UYeJ))k?blRFZlp7(zp}u3Ikple-#eFiuTB@ZzOtH_r)0tIpCF*vpn0DY_~@Yq`}ETC zDO`?^1|^HRSI3n*dwQ8fr75zstX<88>?&W)JeMk6R^JRi!X8Oz4Qe|gpZ$qg|S`zAH@in+S%cXUPDqs8+PPM-%!7WtMWN93w7T($ncyCP1ep!-a zN-@9-ZXquSAFR*{NiBhErU z_o8@26SVEG8Z9|^9o;wD2@93E3SgzL-M-P|19*lp=ow8}J4{l1ng|6%1zt~dL?O6P zPXR1?!iygsB8paPKhg9Qq;$(way90^)gUlPmcgE}4ga?Db=cd!F?pMzpwxcI(Pq8P zHJ?Mj{RbZsXOTqUaatYrkq}D1LCv11^PYhurfclg1YbWPPxpA4o^c%WHNK9w@*@mg z#jN!QV0^<#VS}V{gEwZr8R}~lirH}qfpmKKaTl(uI=3x9s_Ykq?-`_&-lV~!^h#LX z4qm|{+L;#wpFoUi@?>*d`@zgr^0Rn?k7|qa zZv^$_GdK+Wl&hqn$t1V;xwmdxu)4})`*4s}|7rORukdgTkNjJSD<8DYJ6B$+uD>ch zA*)9;@(MieY<~(*dW{iL1X@DT4>02sZ}#+M**6}%`aMtnjUeE zLl}6afg3#qo%=r38)iS41U$xbJDB6SbX%yE4)q^N#Yd(|rm6} zW`hy=+~HjO=GB8;;f)un2MSBw(=8u#Z3#g25PET5>QL>>EW1iw%$Q)$k$#opn__tR z80SZ$|{oJp%(E&8IK;G3dOxv0@bdVf~7?NJFPn#c#q z%4=9E7rm^JTRkgsrSiRXs)A7yO4cslxFlSY=9cOW(6&BL{J$FH=$X;=fh>@T2b#IS z%UV2qQgO`hsnZS8Pz~R2Irf>*jJi8mKHL%*+bndi%4DKGq&*vo3+(F5ZP#yuYb6bG z_YBEaz@ATOLaut#S>ISK^1sz8R@F(|5LIMMmM2)KvM}6gwGtiF&&~=!X!|)uJP3ZX zhq?$BmMc|r@Krk!5X;=LcBoFh-@^G8rXhwN!}qcJi~amIR*7{vuQ&6f!dds8vNpC9 zfV*y((&14hJ@(vrY3i&pD`2UXrq?dAt+)4z$~67HY&Ze&k@&ck%`y)23)pLLe`DPo z5v>sk|CnhWS{j3j_@cxG&Bw&c3U|~6rz+8*Sp5FxD*NlDv(6~79wp&Ak)$Gzb?&5& zUNoz1I$&emkj8zzVR+^Rw&kI`zUMF0cLw)JT^K91#s!Q;PER5JHDI|3``vbW+*8L_ z7>kR2YK&BhrY^OAyP5ou9Po*ynr=5jtG1%44T+^1jC~5<3oFD{O*puxsGkjIQ;GJ1 zG0r6Caqs3`Yf^aP+=Z*1EEo@TSybN-!2T>Qr`UE1Vdlk;QO&(ka;+fY{an*K zOPIyMU1cP5gZbn#NK9FURcQ;=vL}+zs9vnBV#~1thFzt%#m&0d*zCYX#Sh8TfYJ`Z zafROl2dlUz%vy$}ZX!i$$|d6J$v`QlsPUfL?4a=3?2;di@a`J6dVtm^p}N`1^(J(i zZMs%;$IUM7R|3!WiNvQ*4n}@Hq3ORr;z$kP>AI;71nPWpE;kcmWnzOmma*~Ncsj>w zioHjcG%q~hW3FU*Z);*5Ni?SIu@+<-2ok0hL-8hlJ;(~NS(|url>f89@pHm`#}5W< zU3qJxB1$75|K9?`e6DNxu)Q7ExPkk(sD)|2Z>MM~S5?|oPfT4|56=uAm3Q-v<4KZ3 z13h)cMm=ho)8Gz_hJ)e$KzbF|wS^K+()1l!{%13y+ti<w_P}Mj zX=Cnd-qttaGll59x*jQrBdufA#Q3=IC8I|jfs2oiFY4BVo5so^2b4dT5(|aQi<7Ez zdvw0pdI5Ons+H*r$(w*;gt*6jjg%t72Z;FiCQ46k97$YIkyMb!{3~1~!}#G%_h?f0 z$>z@k{>PXOF8pPD%)YZ#Y)_hb6ftxySXfBjCr=k%J}`m}2`_CO=EbP$y#42#`ybNr d`O+>W)uFQ>wWRCU`KKtAnv(XbYK7Nf{{?PqsX_n% literal 0 HcmV?d00001 diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png new file mode 100644 index 0000000000000000000000000000000000000000..efe26129a2bc5ec3cde28ad41329da57a1649c48 GIT binary patch literal 4793 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 LRJ%gc;mQ91rPGQZ literal 0 HcmV?d00001 diff --git a/content/en/hosting-and-deployment/hosting-on-github/index.md b/content/en/hosting-and-deployment/hosting-on-github/index.md new file mode 100644 index 000000000..7123c9d2d --- /dev/null +++ b/content/en/hosting-and-deployment/hosting-on-github/index.md @@ -0,0 +1,180 @@ +--- +title: Host on GitHub +linktitle: Host on GitHub +description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Actions +categories: [hosting and deployment] +keywords: [github,git,deployment,hosting] +menu: + docs: + parent: "hosting-and-deployment" + weight: 30 +weight: 30 +toc: true +aliases: [/tutorials/github-pages-blog/] +--- + +GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its GitHub Pages service and automating development workflows and build with GitHub Actions. + +## Prerequisites + +1. [Create a GitHub account] +2. [Install Git] +3. [Create a Hugo site] and test it locally with `hugo server`. + +[Create a GitHub account]: https://github.com/signup +[Install Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git +[Create a Hugo site]: http://localhost:1313/getting-started/quick-start/ + +## Types of sites + +There are three types of GitHub Pages sites: project, user, and organization. Project sites are connected to a specific project hosted on GitHub. User and organization sites are connected to a specific account on GitHub.com. + +{{% note %}} +See the [GitHub Pages documentation] to understand the requirements for repository ownership and naming. + +[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites +{{% /note %}} + + +[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites + +## Procedure + +Step 1 +: Create a GitHub repository. + +Step 2 +: Push your local repository to GitHub. + +Step 3 +: Visit your GitHub repository. From the main menu choose **Settings** > **Pages**. In then center of your screen you will see this: + +![screen capture](gh-pages-1.png) +{style="max-width: 280px"} + +Step 4 +: Change the **Source** to `GitHub Actions`. The change is immediate; you do not have to press a Save button. + +![screen capture](gh-pages-2.png) +{style="max-width: 280px"} + +Step 5 +: Create an empty file in your local repository. + +```text +.github/workflows/hugo.yaml +``` + +Step 6 +: Copy and paste the YAML below into the file you created. Change the branch name and Hugo version as needed. + +{{< code file=".github/workflows/hugo.yaml" >}} +# Sample workflow for building and deploying a Hugo site to GitHub Pages +name: Deploy Hugo site to Pages + +on: + # Runs on pushes targeting the default branch + push: + branches: + - main + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages +permissions: + contents: read + pages: write + id-token: write + +# Allow one concurrent deployment +concurrency: + group: "pages" + cancel-in-progress: true + +# Default to bash +defaults: + run: + shell: bash + +jobs: + # Build job + build: + runs-on: ubuntu-latest + env: + HUGO_VERSION: 0.111.2 + steps: + - name: Install Hugo CLI + run: | + wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ + && sudo dpkg -i ${{ runner.temp }}/hugo.deb + - name: Install Dart Sass Embedded + run: sudo snap install dart-sass-embedded + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + - name: Setup Pages + id: pages + uses: actions/configure-pages@v3 + - name: Install Node.js dependencies + run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" + - name: Build with Hugo + env: + # For maximum backward compatibility with Hugo modules + HUGO_ENVIRONMENT: production + HUGO_ENV: production + run: | + hugo \ + --gc \ + --minify \ + --baseURL "${{ steps.pages.outputs.base_url }}/" + - name: Upload artifact + uses: actions/upload-pages-artifact@v1 + with: + path: ./public + + # Deployment job + deploy: + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + runs-on: ubuntu-latest + needs: build + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v1 +{{< /code >}} + +Step 7 +: Commit the change to your local repository with a commit message of something like "Add workflow", and push to GitHub. + +Step 8 +: From GitHub's main menu, choose **Actions**. You will see something like this: + +![screen capture](gh-pages-3.png) +{style="max-width: 350px"} + +Step 9 +: When GitHub has finished building and deploying your site, the color of the status indicator will change to green. + +![screen capture](gh-pages-4.png) +{style="max-width: 350px"} + +Step 10 +: Click on the commit message as shown above. You will see this: + +![screen capture](gh-pages-5.png) +{style="max-width: 611px"} + +Under the deploy step, you will see a link to your live site. + +In the future, whenever you push a change from your local repository, GitHub will rebuild your site and deploy the changes. + +## Additional resources + +- [Learn more about GitHub Actions](https://docs.github.com/en/actions) +- [Caching dependencies to speed up workflows](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows) +- [Manage a custom domain for your GitHub Pages site](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages) From 29ad622a3cff63b8d03adeb5a826877636ba9891 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sun, 12 Mar 2023 13:08:58 +0100 Subject: [PATCH 09/95] netlify: Hugo 0.111.3 --- netlify.toml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/netlify.toml b/netlify.toml index 32f29d0b5..a07e29a94 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo --gc --minify" [context.production.environment] -HUGO_VERSION = "0.111.2" +HUGO_VERSION = "0.111.3" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --gc --minify --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.111.2" +HUGO_VERSION = "0.111.3" HUGO_ENV = "production" [context.deploy-preview] command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.111.2" +HUGO_VERSION = "0.111.3" [context.branch-deploy] command = "hugo --gc --minify -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.111.2" +HUGO_VERSION = "0.111.3" [context.next.environment] HUGO_ENABLEGITINFO = "true" From f71985315d9fecb794bf1707b6575e8395e9d91f Mon Sep 17 00:00:00 2001 From: bapps2 <120749550+bapps2@users.noreply.github.com> Date: Sun, 12 Mar 2023 17:29:03 +0300 Subject: [PATCH 10/95] Update hasSuffix.md --- content/en/functions/hasSuffix.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/functions/hasSuffix.md b/content/en/functions/hasSuffix.md index 9906cc2c3..151b90ee3 100644 --- a/content/en/functions/hasSuffix.md +++ b/content/en/functions/hasSuffix.md @@ -1,5 +1,5 @@ --- -title: hassuffix +title: hasSuffix linktitle: hasSuffix description: Tests whether a string ends with suffix. date: 2023-03-01 @@ -18,4 +18,4 @@ deprecated: false aliases: [] --- -* `{{ hasSuffix "Hugo" "go" }}` → true \ No newline at end of file +* `{{ hasSuffix "Hugo" "go" }}` → true From afb582a800fd3093742a71d46ff87d631a3efbca Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 15 Mar 2023 09:16:53 -0700 Subject: [PATCH 11/95] Clarify usage of slug in front matter (#1998) Closes #1997 --- content/en/content-management/front-matter.md | 50 +- content/en/content-management/multilingual.md | 20 +- .../content-management/organization/index.md | 78 +--- content/en/content-management/urls.md | 441 ++++++++++-------- 4 files changed, 279 insertions(+), 310 deletions(-) diff --git a/content/en/content-management/front-matter.md b/content/en/content-management/front-matter.md index bf530518f..c361bcc41 100644 --- a/content/en/content-management/front-matter.md +++ b/content/en/content-management/front-matter.md @@ -56,85 +56,85 @@ slug = "spf13-vim-3-0-release-and-new-website" There are a few predefined variables that Hugo is aware of. See [Page Variables][pagevars] for how to call many of these predefined variables in your templates. aliases -: an array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details. +: An array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details. audio -: an array of paths to audio files related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:audio`. +: An array of paths to audio files related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:audio`. cascade -: a map of Front Matter keys whose values are passed down to the page's descendants unless overwritten by self or a closer ancestor's cascade. See [Front Matter Cascade](#front-matter-cascade) for details. +: A map of front matter keys whose values are passed down to the page's descendants unless overwritten by self or a closer ancestor's cascade. See [Front Matter Cascade](#front-matter-cascade) for details. date -: the datetime assigned to this page. This is usually fetched from the `date` field in front matter, but this behavior is configurable. +: The datetime assigned to this page. This is usually fetched from the `date` field in front matter, but this behavior is configurable. description -: the description for the content. +: The description for the content. draft -: if `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command. +: If `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command. expiryDate -: the datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command. +: The datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command. headless -: if `true`, sets a leaf bundle to be [headless][headless-bundle]. +: If `true`, sets a leaf bundle to be [headless][headless-bundle]. images -: an array of paths to images related to the page; used by [internal templates](/templates/internal) such as `_internal/twitter_cards.html`. +: An array of paths to images related to the page; used by [internal templates](/templates/internal) such as `_internal/twitter_cards.html`. isCJKLanguage -: if `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages. +: If `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages. keywords -: the meta keywords for the content. +: The meta keywords for the content. layout -: the layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See [Content Types][content type]. +: The layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See [Content Types][content type]. lastmod -: the datetime at which the content was last modified. +: The datetime at which the content was last modified. linkTitle -: used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle]. +: Used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle]. markup : **experimental**; specify `"rst"` for reStructuredText (requires`rst2html`) or `"md"` (default) for Markdown. outputs -: allows you to specify output formats specific to the content. See [output formats][outputs]. +: Allows you to specify output formats specific to the content. See [output formats][outputs]. publishDate -: if in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`. +: If in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`. resources -: used for configuring page bundle resources. See [Page Resources][page-resources]. +: Used for configuring page bundle resources. See [Page Resources][page-resources]. series -: an array of series this page belongs to, as a subset of the `series` [taxonomy](/content-management/taxonomies/); used by the `opengraph` [internal template](/templates/internal) to populate `og:see_also`. +: An array of series this page belongs to, as a subset of the `series` [taxonomy](/content-management/taxonomies/); used by the `opengraph` [internal template](/templates/internal) to populate `og:see_also`. slug -: appears as the tail of the output URL. A value specified in front matter will override the segment of the URL based on the filename. +: Overrides the last segment of the URL path. Not applicable to section pages. See [URL Management](/content-management/urls/#slug) for details. summary -: text used when providing a summary of the article in the `.Summary` page variable; details available in the [content-summaries](/content-management/summaries/) section. +: Text used when providing a summary of the article in the `.Summary` page variable; details available in the [content-summaries](/content-management/summaries/) section. title -: the title for the content. +: The title for the content. type -: the type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter. +: The type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter. url -: the full path to the content from the web root. It makes no assumptions about the path of the content file. See [URL Management](/content-management/urls/#set-url-in-front-matter). +: Overrides the entire URL path. Applicable to regular pages and section pages. See [URL Management](/content-management/urls/#url) for details. videos -: an array of paths to videos related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:video`. +: An array of paths to videos related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:video`. weight : used for [ordering your content in lists][ordering]. Lower weight gets higher precedence. So content with lower weight will come first. If set, weights should be non-zero, as 0 is interpreted as an *unset* weight. \ -: field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. *Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables.* +: Field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. *Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables.* {{% note "Hugo's Default URL Destinations" %}} If neither `slug` nor `url` is present and [permalinks are not configured otherwise in your site `config` file](/content-management/urls/#permalinks), Hugo will use the filename of your content to create the output URL. See [Content Organization](/content-management/organization) for an explanation of paths in Hugo and [URL Management](/content-management/urls/) for ways to customize Hugo's default behaviors. diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 5eb5506d9..6af2b0135 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -155,9 +155,9 @@ Their language is __assigned__ according to the language code added as a __suffi By having the same **path and base filename**, the content pieces are __linked__ together as translated pages. -{{< note >}} +{{% note %}} If a file has no language code, it will be assigned the default language. -{{}} +{{% /note %}} ### Translation by content directory @@ -209,16 +209,22 @@ By setting the `translationKey` front matter param to `about` in all three pages Because paths and filenames are used to handle linking, all translated pages will share the same URL (apart from the language subdirectory). -To localize the URLs, the [`slug`]({{< ref "/content-management/organization/index.md#slug" >}}) or [`url`]({{< ref "/content-management/organization/index.md#url" >}}) front matter param can be set in any of the non-default language file. +To localize URLs: -For example, a French translation (`content/about.fr.md`) can have its own localized slug. +- For a regular page, set either [`slug`] or [`url`] in front matter +- For a section page, set [`url`] in front matter -{{< code-toggle >}} -Title: A Propos +[`slug`]: /content-management/urls/#slug +[`url`]: /content-management/urls/#url + +For example, a French translation can have its own localized slug. + +{{< code-toggle file="content/about.fr.md" fm=true copy=false >}} +title: A Propos slug: "a-propos" {{< /code-toggle >}} -At render, Hugo will build both `/about/` and `/fr/a-propos/` while maintaining their translation linking. +At render, Hugo will build both `/about/` and `/fr/a-propos/` without affecting the translation link. ### Page Bundles diff --git a/content/en/content-management/organization/index.md b/content/en/content-management/organization/index.md index 94c0cfd5a..d767d050d 100644 --- a/content/en/content-management/organization/index.md +++ b/content/en/content-management/organization/index.md @@ -131,10 +131,7 @@ A default content type is determined by the section in which a content item is s ### `slug` -A content's `slug` is either `name.extension` or `name/`. The value for `slug` is determined by - -* the name of the content file (e.g., `lollapalooza.md`) OR -* front matter overrides +The `slug` is the last segment of the URL path, defined by the file name and optionally overridden by a `slug` value in front matter. See [URL Management](/content-management/urls/#slug) for details. ### `path` @@ -145,78 +142,7 @@ A content's `path` is determined by the section's path to the file. The file `pa ### `url` -The `url` is the relative URL for the piece of content. The `url` - -* is based on the content item's location within the directory structure OR -* is defined in front matter, in which case it *overrides all the above* - -## Override Destination Paths via Front Matter - -Hugo assumes that your content is organized with a purpose. The same structure that you use to organize your source content is used to organize the rendered site. As displayed above, the organization of the source content will be mirrored at the destination. - -There are times when you may need more fine-grained control over the content organization. In such cases, the front matter field can be used to determine the destination of a specific piece of content. - -The following items are defined in a specific order for a reason: items explained lower down in the list override higher items. Note that not all items can be defined in front matter. - -### `filename` - -`filename` is not a front matter field. It is the actual file name, minus the extension. This will be the name of the file in the destination (e.g., `content/posts/my-post.md` becomes `example.com/posts/my-post/`). - -### `slug` - -When defined in the front matter, the `slug` can take the place of the filename in the destination. - -{{< code file="content/posts/old-post.md" >}} ---- -title: A new post with the filename old-post.md -slug: "new-post" ---- -{{< /code >}} - -This will render to the following destination according to Hugo's default behavior: - -```txt -example.com/posts/new-post/ -``` - -### `section` - -`section` is determined by a content item's location on disk and *cannot* be specified in the front matter. See [sections] for more information. - -### `type` - -A content item's `type` is also determined by its location on disk but, unlike `section`, it *can* be specified in the front matter. See [types]. This can come in especially handy when you want a piece of content to render using a different layout. In the following example, you can create a layout at `layouts/new/mylayout.html` that Hugo will use to render this piece of content, even in the midst of many other posts. - -{{< code file="content/posts/my-post.md" >}} ---- -title: My Post -type: new -layout: mylayout ---- -{{< /code >}} - - - - - -### `url` - -A complete URL can be provided. This will override all the above as it pertains to the end destination. This must be the path from the baseURL (starting with a `/`). `url` will be used exactly as it is defined in the front matter, and will ignore the `--uglyURLs` setting in your site configuration: - -{{< code file="content/posts/old-url.md" >}} ---- -title: Old URL -url: /blog/new-url/ ---- -{{< /code >}} - -Assuming your `baseURL` is [configured][config] to `https://example.com`, the addition of `url` to the front matter will make `old-url.md` render to the following destination: - -```txt -https://example.com/blog/new-url/ -``` - -You can see more information on how to control output paths in [URL Management][urls]. +The `url` is the entire URL path, defined by the file path and optionally overridden by a `url` value in front matter. See [URL Management](/content-management/urls/#slug) for details. [config]: /getting-started/configuration/ [formats]: /content-management/formats/ diff --git a/content/en/content-management/urls.md b/content/en/content-management/urls.md index 739c9c390..713e2d812 100644 --- a/content/en/content-management/urls.md +++ b/content/en/content-management/urls.md @@ -1,7 +1,7 @@ --- title: URL Management linkTitle: URL Management -description: Hugo supports permalinks, aliases, link canonicalization, and multiple options for handling relative vs absolute URLs. +description: Control the structure and appearance of URLs through front matter entries and settings in your site configuration. categories: [content management] keywords: [aliases,redirects,permalinks,urls] menu: @@ -13,46 +13,145 @@ weight: 180 aliases: [/extras/permalinks/,/extras/aliases/,/extras/urls/,/doc/redirects/,/doc/alias/,/doc/aliases/] --- -## Permalinks +## Overview -The default Hugo target directory for your built website is `public/`. However, you can change this value by specifying a different `publishDir` in your [site configuration][config]. The directories created at build time for a section reflect the position of the content's directory within the `content` folder and namespace matching its layout within the `contentdir` hierarchy. +By default, when Hugo renders a page, the resulting URL matches the file path within the `content` directory. For example: -The `permalinks` option in your [site configuration][config] allows you to adjust the directory paths (i.e., the URLs) on a per-section basis. This will change where the files are written to and will change the page's internal "canonical" location, such that template references to `.RelPermalink` will honor the adjustments made as a result of the mappings in this option. +```text +content/posts/post-1.md → https://example.org/posts/post-1/ +``` -{{% note "Default Publish and Content Folders" %}} -These examples use the default values for `publishDir` and `contentDir`; i.e., `public` and `content`, respectively. You can override the default values in your [site's `config` file](/getting-started/configuration/). +You can change the structure and appearance of URLs with front matter values and site configuration options. + +## Front matter + +### `slug` + +Set the `slug` in front matter to override the last segment of the path. The `slug` value does not affect section pages. + +{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +title = 'My First Post' +slug = 'my-first-post' +{{< /code-toggle >}} + +The resulting URL will be: + +```text +https://example.org/posts/my-first-post/ +``` + +### `url` + +Set the `url` in front matter to override the entire path. Use this with either regular pages or section pages. + +With this front matter: + +{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +title = 'My First Article' +url = '/articles/my-first-article' +{{< /code-toggle >}} + +The resulting URL will be: + +```text +https://example.org/articles/my-first-article/ +``` + +If you include a file extension: + +{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +title = 'My First Article' +url = '/articles/my-first-article.html' +{{< /code-toggle >}} + +The resulting URL will be: + +```text +https://example.org/articles/my-first-article.html +``` + +In a monolingual site, a `url` value with or without a leading slash is relative to the `baseURL`. + +In a multilingual site: + +- A `url` value with a leading slash is relative to the `baseURL`. +- A `url` value without a leading slash is relative to the `baseURL` plus the language prefix. + +Site type|Front matter `url`|Resulting URL +:--|:--|:-- +monolingual|`/about`|`https://example.org/about/` +monolingual|`about`|`https://example.org/about/` +multilingual|`/about`|`https://example.org/about/` +multilingual|`about`|`https://example.org/de/about/` + +If you set both `slug` and `url` in front matter, the `url` value takes precedence. + +## Site configuration + +### Permalinks + +In your site configuration, set a URL pattern for regular pages within a top-level section. This is recursive, affecting descendant regular pages. + +{{% note %}} +The `permalinks` defined in your site configuration do not apply to section pages. To adjust the URL for section pages, set `url` in front matter. {{% /note %}} -For example, if one of your [sections] is called `posts` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively. +#### Examples {#permalinks-examples} -### Permalinks Configuration Example +With this content structure: + +```text +content/ +├── posts/ +│   ├── _index.md +│   ├── post-1.md +│   └── post-2.md +└── _index.md +``` + +Create a date-based hierarchy, recursively, for regular pages within the `posts` section: {{< code-toggle file="config" copy="false" >}} -permalinks: - posts: /:year/:month/:title/ +posts = '/posts/:year/:month/:title/' {{< /code-toggle >}} -Only the content under `posts/` will have the new URL structure. For example, the file `content/posts/sample-entry.md` with `date: 2017-02-27T19:20:00-05:00` in its front matter will render to `public/2017/02/sample-entry/index.html` at build time and therefore be reachable at `https://example.com/2017/02/sample-entry/`. +The structure of the published site will be: -To configure the `permalinks` option for pages in the "root" section, use **/** as the key: +```text +public/ +├── posts/ +│   ├── 2023/ +│   │   └── 03/ +│   │   ├── post-1/ +│   │   │   └── index.html +│   │   └── post-2/ +│   │   └── index.html +│   └── index.html +├── favicon.ico +└── index.html +``` + +To create a date-based hierarchy for regular pages in the content root: {{< code-toggle file="config" copy="false" >}} -permalinks: - /: /:year/:month/:filename/ +'/' = '/:year/:month/:title/' {{< /code-toggle >}} -If the standard date-based permalink configuration does not meet your needs, you can also format URL segments using [Go time formatting directives](https://pkg.go.dev/time#Time.Format). For example, a URL structure with two digit years and month and day digits without zero padding can be accomplished with: +{{% note %}} +A URL pattern defined for the content root is not recursive. +{{% /note %}} + +Use the same approach with taxonomies. For example, to omit the taxonomy segment of the URL: {{< code-toggle file="config" copy="false" >}} -permalinks: - posts: /:06/:1/:2/:title/ +'tags' = '/:title/' {{< /code-toggle >}} -You can also configure permalinks of taxonomies with the same syntax, by using the plural form of the taxonomy instead of the section. You will probably only want to use the configuration values `:slug` or `:title`. +Front matter `url` values take precedence over URL patterns defined in `permalinks`. -### Permalink Configuration Values +#### Tokens -The following is a list of values that can be used in a `permalink` definition in your site `config` file. All references to time are dependent on the content's date. +Use these tokens when defining the URL pattern. The `date` field in front matter determines the value of time-related tokens. `:year` : the 4-digit year @@ -93,219 +192,157 @@ The following is a list of values that can be used in a `permalink` definition i `:filename` : the content's filename (without extension) -Additionally, a Go time format string prefixed with `:` may be used. +For time-related values, you can also use the layout string components defined in Go's [time package]. For example: + +[time package]: https://pkg.go.dev/time#pkg-constants + +{{< code-toggle file="config" copy="false" >}} +permalinks: + posts: /:06/:1/:2/:title/ +{{< /code-toggle >}} + +### Appearance + +The appearance of a URL is either ugly or pretty. + +Type|Path|URL +:--|:--|:-- +ugly|content/about.md|`https://example.org/about.html` +pretty|content/about.md|`https://example.org/about/` + +By default, Hugo produces pretty URLs. To generate ugly URLs, change your site configuration: + +{{< code-toggle file="config" copy="false" >}} +uglyURLs = true +{{< /code-toggle >}} + +### Post-processing + +Hugo provides two mutually exclusive configuration options to alter URLs _after_ it renders a page. + +#### Canonical URLs + +{{% note %}} +This is a legacy configuration option, superseded by template functions and markdown render hooks, and will likely be [removed in a future release]. + +[removed in a future release]: https://github.com/gohugoio/hugo/issues/4733 +{{% /note %}} + +If enabled, Hugo performs a search and replace _after_ it renders the page. It searches for site-relative URLs (those with a leading slash) associated with `action`, `href`, `src`, `srcset`, and `url` attributes. It then prepends the `baseURL` to create absolute URLs. + +```text + + +``` + +This is an imperfect, brute force approach that can affect content as well as HTML attributes. As noted above, this is a legacy configuration option that will likely be removed in a future release. + +To enable: + +{{< code-toggle file="config" copy="false" >}} +canonifyURLs = true +{{< /code-toggle >}} + +#### Relative URLs + +{{% note %}} +Do not enable this option unless you are creating a serverless site, navigable via the file system. +{{% /note %}} + +If enabled, Hugo performs a search and replace _after_ it renders the page. It searches for site-relative URLs (those with a leading slash) associated with `action`, `href`, `src`, `srcset`, and `url` attributes. It then transforms the URL to be relative to the current page. + +For example, when rendering `content/posts/post-1`: + +```text + + +``` + +This is an imperfect, brute force approach that can affect content as well as HTML attributes. As noted above, do not enable this option unless you are creating a serverless site. + +To enable: + +{{< code-toggle file="config" copy="false" >}} +relativeURLs = true +{{< /code-toggle >}} ## Aliases -Aliases can be used to create redirects to your page from other URLs. +Create redirects from old URLs to new URLs with aliases: -Aliases comes in two forms: +- An alias with a leading slash is relative to the `baseURL` +- An alias without a leading slash is relative to the current directory -1. Starting with a `/` meaning they are relative to the `BaseURL`, e.g. `/posts/my-blogpost/` -2. They are relative to the `Page` they're defined in, e.g. `my-blogpost` or even something like `../blog/my-blogpost` (new in Hugo 0.55). +### Examples {#alias-examples} -### Example: Aliases +Change the file name of an existing page, and create an alias from the previous URL to the new URL: -Let's assume you create a new piece of content at `content/posts/my-awesome-blog-post.md`. The content is a revision of your previous post at `content/posts/my-original-url.md`. You can create an `aliases` field in the front matter of your new `my-awesome-blog-post.md` where you can add previous paths. The following examples show how to create this field in TOML and YAML front matter, respectively. +{{< code-toggle file="content/posts/new-file-name.md" copy="false" >}} +aliases = ['/posts/previous-file-name'] +{{< /code-toggle >}} -#### TOML Front Matter +Each of these directory-relative aliases is equivalent to the site-relative alias above: -{{< code file="content/posts/my-awesome-post.md" copy="false" >}} -+++ -aliases = [ - "/posts/my-original-url/", - "/2010/01/01/even-earlier-url.html" -] -+++ -{{< /code >}} +- `previous-file-name` +- `./previous-file-name` +- `../posts/previous-file-name` -#### YAML Front Matter +You can create more than one alias to the current page: -{{< code file="content/posts/my-awesome-post.md" copy="false" >}} ---- -aliases: - - /posts/my-original-url/ - - /2010/01/01/even-earlier-url.html ---- -{{< /code >}} +{{< code-toggle file="content/posts/new-file-name.md" copy="false" >}} +aliases = ['previous-file-name','original-file-name'] +{{< /code-toggle >}} -Now when you visit any of the locations specified in aliases---i.e., _assuming the same site domain_---you'll be redirected to the page they are specified on. For example, a visitor to `example.com/posts/my-original-url/` will be immediately redirected to `example.com/posts/my-awesome-post/`. +In a multilingual site, use a directory-relative alias, or include the language prefix with a site-relative alias: -### Example: Aliases in Multilingual +{{< code-toggle file="content/posts/new-file-name.de.md" copy="false" >}} +aliases = ['/de/posts/previous-file-name'] +{{< /code-toggle >}} -On [multilingual sites][multilingual], each translation of a post can have unique aliases. To use the same alias across multiple languages, prefix it with the language code. +### How Aliases Work -In `/posts/my-new-post.es.md`: +Using the first example above, Hugo generates the following site structure: -```md ---- -aliases: - - /es/posts/my-original-post/ ---- +```text +public/ +├── posts/ +│ ├── new-file-name/ +│ │ └── index.html +│ ├── previous-file-name/ +│ │ └── index.html +│ └── index.html +└── index.html ``` -From Hugo 0.55 you can also have page-relative aliases, so `/es/posts/my-original-post/` can be simplified to the more portable `my-original-post/` +The alias from the previous URL to the new URL is a client-side redirect: -### How Hugo Aliases Work - -When aliases are specified, Hugo creates a directory to match the alias entry. Inside the directory, Hugo creates an `.html` file specifying the canonical URL for the page and the new redirect target. - -For example, a content file at `posts/my-intended-url.md` with the following in the front matter: - -```yml ---- -title: My New post -aliases: [/posts/my-old-url/] ---- -``` - -Assuming a `baseURL` of `example.com`, the contents of the auto-generated alias `.html` found at `https://example.com/posts/my-old-url/` will contain the following: - -```html +{{< code file="posts/previous-file-name/index.html" copy="false" >}} - + - https://example.com/posts/my-intended-url - + https://example.org/posts/new-file-name/ + - - + + -``` +{{< /code >}} -The `http-equiv="refresh"` line is what performs the redirect, in 0 seconds in this case. If an end user of your website goes to `https://example.com/posts/my-old-url`, they will now be automatically redirected to the newer, correct URL. The addition of `` lets search engine bots know that they should not index your alias page (`https://example.com/posts/my-old-url/`). +Collectively, the elements in the `head` section: + +- Tell search engines that the new URL is canonical +- Tell search engines not to index the previous URL +- Tell the browser to redirect to the new URL + +Hugo renders alias files before rendering pages. A new page with the previous file name will overwrite the alias, as expected. ### Customize -You may customize this alias page by creating an `alias.html` template in the -layouts folder of your site (i.e., `layouts/alias.html`). In this case, the data passed to the template is +Create a new template (`layouts/alias.html`) to customize the content of the alias files. The template receives the following context: `Permalink` : the link to the page being aliased `Page` : the Page data for the page being aliased - -### Important Behaviors of Aliases - -1. Hugo makes no assumptions about aliases. They also do not change based -on your UglyURLs setting. You need to provide absolute paths to your web root -and the complete filename or directory. -2. Aliases are rendered *before* any content are rendered and therefore will be overwritten by any content with the same location. - -## Pretty URLs - -Hugo's default behavior is to render your content with "pretty" URLs. No non-standard server-side configuration is required for these pretty URLs to work. - -The following demonstrates the concept: - -```txt -content/posts/_index.md -=> example.com/posts/ -content/posts/post-1.md -=> example.com/posts/post-1/ -``` - -## Ugly URLs - -If you would like to have what are often referred to as "ugly URLs" (e.g., example.com/urls.html), set `uglyurls = true` or `uglyurls: true` in your site's `config.toml` or `config.yaml`, respectively. You can also set the `HUGO_UGLYURLS` environment variable to `true` when running `hugo` or `hugo server`. - -If you want a specific piece of content to have an exact URL, you can specify this in the [front matter] under the `url` key. The following are examples of the same content directory and what the eventual URL structure will be when Hugo runs with its default behavior. - -See [Content Organization][contentorg] for more details on paths. - -```txt -. -└── content - └── about - | └── _index.md // <- https://example.com/about/ - ├── posts - | ├── firstpost.md // <- https://example.com/posts/firstpost/ - | ├── happy - | | └── ness.md // <- https://example.com/posts/happy/ness/ - | └── secondpost.md // <- https://example.com/posts/secondpost/ - └── quote - ├── first.md // <- https://example.com/quote/first/ - └── second.md // <- https://example.com/quote/second/ -``` - -Here's the same organization run with `hugo --uglyURLs`: - -```txt -. -└── content - └── about - | └── _index.md // <- https://example.com/about.html - ├── posts - | ├── firstpost.md // <- https://example.com/posts/firstpost.html - | ├── happy - | | └── ness.md // <- https://example.com/posts/happy/ness.html - | └── secondpost.md // <- https://example.com/posts/secondpost.html - └── quote - ├── first.md // <- https://example.com/quote/first.html - └── second.md // <- https://example.com/quote/second.html -``` - -## Canonicalization - -By default, all relative URLs encountered in the input are left unmodified, e.g. `/css/foo.css` would stay as `/css/foo.css`. The `canonifyURLs` field in your site `config` has a default value of `false`. - -By setting `canonifyURLs` to `true`, all relative URLs would instead be *canonicalized* using `baseURL`. For example, assuming you have `baseURL = https://example.com/`, the relative URL `/css/foo.css` would be turned into the absolute URL `https://example.com/css/foo.css`. - -Benefits of canonicalization include fixing all URLs to be absolute, which may aid with some parsing tasks. Note, however, that all modern browsers handle this on the client without issue. - -Benefits of non-canonicalization include being able to have scheme-relative resource inclusion; e.g., so that `http` vs `https` can be decided according to how the page was retrieved. - -{{% note "`canonifyURLs` default change" %}} -In the May 2014 release of Hugo v0.11, the default value of `canonifyURLs` was switched from `true` to `false`, which we think is the better default and should continue to be the case going forward. Please verify and adjust your website accordingly if you are upgrading from v0.10 or older versions. -{{% /note %}} - -To find out the current value of `canonifyURLs` for your website, you may use the handy `hugo config` command added in v0.13. - -```txt -hugo config | grep -i canon -``` - -Or, if you are on Windows and do not have `grep` installed: - -```txt -hugo config | FINDSTR /I canon -``` - -## Set URL in Front Matter - -In addition to specifying permalink values in your site configuration for different content sections, Hugo provides even more granular control for individual pieces of content. - -Both `slug` and `url` can be defined in individual front matter. For more information on content destinations at build time, see [Content Organization][contentorg]. - -From Hugo 0.55, you can use URLs relative to the current site context (the language), which makes it simpler to maintain. For a Japanese translation, both of the following examples would get the same URL: - -```markdown ---- -title: "Custom URL!" -url: "/jp/custom/foo" ---- -``` - -```markdown ---- -title: "Custom URL!" -url: "custom/foo" ---- -``` - -## Relative URLs - -By default, all relative URLs are left unchanged by Hugo, which can be problematic when you want to make your site browsable from a local file system. - -Setting `relativeURLs` to `true` in your [site configuration][config] will cause Hugo to rewrite all relative URLs to be relative to the current content. - -For example, if your `/posts/first/` page contains a link to `/about/`, Hugo will rewrite the URL to `../../about/`. - -[config]: /getting-started/configuration/ -[contentorg]: /content-management/organization/ -[front matter]: /content-management/front-matter/ -[multilingual]: /content-management/multilingual/ -[sections]: /content-management/sections/ -[usage]: /getting-started/usage/ From d54185beffce4711ab93581170c566a0bd69845c Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 15 Mar 2023 11:17:21 -0700 Subject: [PATCH 12/95] Clarify markdownify behavior (#1999) Closes #1992 --- content/en/functions/markdownify.md | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/content/en/functions/markdownify.md b/content/en/functions/markdownify.md index 8d8726cff..d222a8eb6 100644 --- a/content/en/functions/markdownify.md +++ b/content/en/functions/markdownify.md @@ -1,10 +1,7 @@ --- title: markdownify linktitle: markdownify -description: Runs the provided string through the Markdown processor. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2023-02-09 +description: Renders markdown to HTML. keywords: [markdown,content] categories: [functions] menu: @@ -18,12 +15,21 @@ deprecated: false aliases: [] --- - ``` {{ .Title | markdownify }} ``` -{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks] just like [`.Page.RenderString`]. However, if you use more complicated [Render Hooks] relying on page context, use [`.Page.RenderString`] instead. See [GitHub issue #9692](https://github.com/gohugoio/hugo/issues/9692) for more details. +If the resulting HTML is a single paragraph, Hugo removes the wrapping `p` tags to produce inline HTML as required per the example above. + +To keep the wrapping `p` tags for a single paragraph, use the [`.Page.RenderString`] method, setting the `display` option to `block`. + +If the resulting HTML is two or more paragraphs, Hugo leaves the wrapping `p` tags in place. -[Render Hooks]: /templates/render-hooks/ [`.Page.RenderString`]: /functions/renderstring/ + +{{% note %}} +Although the `markdownify` function honors [markdown render hooks] when rendering markdown to HTML, use the `.Page.RenderString` method instead of `markdownify` if a render hook accesses `.Page` context. See issue [#9692] for details. + +[markdown render hooks]: /templates/render-hooks/ +[#9692]: https://github.com/gohugoio/hugo/issues/9692 +{{% /note %}} From bcbc519bb914d36305e3f768bb261a5b17790036 Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Thu, 16 Mar 2023 18:41:30 +0100 Subject: [PATCH 13/95] resources.GetRemote: minor improvement (#2002) --- content/en/hugo-pipes/introduction.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/hugo-pipes/introduction.md b/content/en/hugo-pipes/introduction.md index e83741f74..5abf623a0 100755 --- a/content/en/hugo-pipes/introduction.md +++ b/content/en/hugo-pipes/introduction.md @@ -105,7 +105,7 @@ Note that if you do not handle `.Err` yourself, Hugo will fail the build the fir ### Remote Options -When fetching a remote `Resource`, `resources.GetRemote` takes an optional options map as the last argument, e.g.: +When fetching a remote `Resource`, `resources.GetRemote` takes an optional options map as the second argument, e.g.: ```go-html-template {{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }} From 4aceb68551c5e2a6d8a43a079436d0931ba26f39 Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Fri, 17 Mar 2023 16:18:11 +0100 Subject: [PATCH 14/95] Fingerprinting, asset management: minor improvements (#2003) * Fingerprinting, asset management: minor improvements * Fixing anchor links --- content/en/content-management/organization/index.md | 2 +- content/en/content-management/shortcodes.md | 2 +- content/en/getting-started/directory-structure.md | 2 +- content/en/hosting-and-deployment/hosting-on-netlify.md | 2 +- content/en/hugo-pipes/fingerprint.md | 6 +++--- content/en/hugo-pipes/scss-sass.md | 2 +- content/en/tools/_index.md | 2 +- content/en/variables/site.md | 2 +- 8 files changed, 10 insertions(+), 10 deletions(-) diff --git a/content/en/content-management/organization/index.md b/content/en/content-management/organization/index.md index d767d050d..6b6d6423f 100644 --- a/content/en/content-management/organization/index.md +++ b/content/en/content-management/organization/index.md @@ -151,7 +151,7 @@ The `url` is the entire URL path, defined by the file path and optionally overri [homepage template]: /templates/homepage/ [homepage]: /templates/homepage/ [lists]: /templates/lists/ -[pretty]: /content-management/urls/#pretty-urls +[pretty]: /content-management/urls/#appearance [section templates]: /templates/section-templates/ [sections]: /content-management/sections/ [singles]: /templates/single-page-templates/ diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md index 634444684..0a0f486e4 100644 --- a/content/en/content-management/shortcodes.md +++ b/content/en/content-management/shortcodes.md @@ -209,7 +209,7 @@ The `highlight` shortcode example above would produce the following HTML when th {{< /output >}} {{% note "More on Syntax Highlighting" %}} -To see even more options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting in Developer Tools](/tools/syntax-highlighting/). +To see even more options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting in Developer Tools](/content-management/syntax-highlighting/). {{% /note %}} ### `instagram` diff --git a/content/en/getting-started/directory-structure.md b/content/en/getting-started/directory-structure.md index b8c22b1df..b2cd0e447 100644 --- a/content/en/getting-started/directory-structure.md +++ b/content/en/getting-started/directory-structure.md @@ -75,7 +75,7 @@ From **Hugo 0.31** you can have multiple static directories. : Caches some files to speed up generation. Can be also used by template authors to distribute built Sass files, so you don't have to have the preprocessor installed. Note: resources directory is not created by default. [archetypes]: /content-management/archetypes/ -[`assets`]: /hugo-pipes/introduction#asset-directory/ +[`assets`]: /hugo-pipes/introduction#asset-directory [configuration directives]: /getting-started/configuration/#all-configuration-settings [`content`]: /content-management/organization/ [content section]: /content-management/sections/ diff --git a/content/en/hosting-and-deployment/hosting-on-netlify.md b/content/en/hosting-and-deployment/hosting-on-netlify.md index 7aa9283f8..254f993dc 100644 --- a/content/en/hosting-and-deployment/hosting-on-netlify.md +++ b/content/en/hosting-and-deployment/hosting-on-netlify.md @@ -141,7 +141,7 @@ You now have a live website served over HTTPS, distributed through CDN, and conf 3. [Redirects and Rewrite Rules] [app.netlify.com]: https://app.netlify.com -[build command]: /getting-started/usage/#the-hugo-command +[build command]: /getting-started/usage/#build-your-site [config]: /getting-started/configuration/ [ghsm]: https://github.com/blog/2104-working-with-submodules [gitsm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules diff --git a/content/en/hugo-pipes/fingerprint.md b/content/en/hugo-pipes/fingerprint.md index f27ef7b55..af7369035 100755 --- a/content/en/hugo-pipes/fingerprint.md +++ b/content/en/hugo-pipes/fingerprint.md @@ -13,11 +13,11 @@ weight: 70 sections_weight: 70 --- -Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and a [hash function](https://en.wikipedia.org/wiki/Cryptographic_hash_function). +Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and a [hash algorithm](https://en.wikipedia.org/wiki/Secure_Hash_Algorithms). -The default hash function is `sha256`. Other available functions are `sha384` (from Hugo `0.55`), `sha512` and `md5`. +The default hash algorithm is `sha256`. Other available algorithms are `sha384` and (as of Hugo `0.55`) `sha512` and `md5`. -Any so processed asset will bear a `.Data.Integrity` property containing an integrity string, which is made up of the name of the hash function, one hyphen and the base64-encoded hash sum. +Any so processed asset will bear a `.Data.Integrity` property containing an integrity string, which is made up of the name of the hash algorithm, one hyphen and the base64-encoded hash sum. ```go-html-template {{ $js := resources.Get "js/global.js" }} diff --git a/content/en/hugo-pipes/scss-sass.md b/content/en/hugo-pipes/scss-sass.md index 4e39207fa..2c889500b 100755 --- a/content/en/hugo-pipes/scss-sass.md +++ b/content/en/hugo-pipes/scss-sass.md @@ -27,7 +27,7 @@ transpiler [string] : The `transpiler` to use, valid values are `libsass` (default) and `dartsass`. If you want to use Hugo with Dart Sass you need to download a release binary from [Embedded Dart Sass](https://github.com/sass/dart-sass-embedded/releases) and make sure it's in your PC's `$PATH` (or `%PATH%` on Windows). targetPath [string] -: If not set, the resource's target path will be the asset file original path with its extension replaced by `.css`. +: If not set, the transformed resource's target path will be the asset file original path with its extension replaced by `.css`. vars [map] : Map of key/value pairs that will be available in the `hugo:vars` namespace, e.g. with `@use "hugo:vars" as v;` or (globally) with `@import "hugo:vars";` {{< new-in "0.109.0" >}} diff --git a/content/en/tools/_index.md b/content/en/tools/_index.md index a63041819..93a6debc5 100644 --- a/content/en/tools/_index.md +++ b/content/en/tools/_index.md @@ -20,4 +20,4 @@ One of Hugo's greatest strengths is its passionate---and always evolving---devel [See the popularity of Hugo compared with other static site generators.][staticgen] [staticgen]: https://staticgen.com -[syntax]: /tools/syntax-highlighting/ +[syntax]: /content-management/syntax-highlighting/ diff --git a/content/en/variables/site.md b/content/en/variables/site.md index 34239ad44..a78244db0 100644 --- a/content/en/variables/site.md +++ b/content/en/variables/site.md @@ -93,7 +93,7 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo : top-level directories of the site. .Site.Taxonomies -: the [taxonomies](/taxonomies/usage/) for the entire site. Also see section [Use `.Site.Taxonomies` Outside of Taxonomy Templates](/variables/taxonomy/#use-sitetaxonomies-outside-of-taxonomy-templates). +: the [taxonomies](/content-management/taxonomies/) for the entire site. Also see section [Access taxonomy data from any template](/variables/taxonomy/#access-taxonomy-data-from-any-template). .Site.Title : a string representing the title of the site. From 1b11dcd5c568217888f0971253e02434dd9f4770 Mon Sep 17 00:00:00 2001 From: Sidharth Vinod Date: Fri, 17 Mar 2023 20:59:24 +0530 Subject: [PATCH 15/95] docs(Diagrams): Update mermaid import mechanism (#1967) --- content/en/content-management/diagrams.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/content-management/diagrams.md b/content/en/content-management/diagrams.md index c95548249..7fe63bbb0 100644 --- a/content/en/content-management/diagrams.md +++ b/content/en/content-management/diagrams.md @@ -58,8 +58,8 @@ And then include this snippet at the bottom of the content template (**Note**: b ```go-html-template {{ if .Page.Store.Get "hasMermaid" }} - - {{ end }} From 90c82d7ea434b75e7117026cf0004ebb0e49cfc2 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 17 Mar 2023 08:34:53 -0700 Subject: [PATCH 16/95] Clarify mermaid markdown example (#2004) --- content/en/content-management/diagrams.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/content-management/diagrams.md b/content/en/content-management/diagrams.md index 7fe63bbb0..9f3f3800b 100644 --- a/content/en/content-management/diagrams.md +++ b/content/en/content-management/diagrams.md @@ -67,6 +67,7 @@ And then include this snippet at the bottom of the content template (**Note**: b With that you can use the `mermaid` language in Markdown code blocks: +```` ```mermaid sequenceDiagram participant Alice @@ -80,6 +81,7 @@ sequenceDiagram John->>Bob: How about you? Bob-->>John: Jolly good! ``` +```` ## Goat Ascii Diagram Examples From eb3003fefc6e9212673a53ba6438bb9537aa1ce8 Mon Sep 17 00:00:00 2001 From: Somrat <58769763+tfsomrat@users.noreply.github.com> Date: Sat, 18 Mar 2023 18:26:40 +0600 Subject: [PATCH 17/95] Fixed typo (#2007) --- content/en/hugo-pipes/postprocess.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/hugo-pipes/postprocess.md b/content/en/hugo-pipes/postprocess.md index 55552d105..f37763259 100755 --- a/content/en/hugo-pipes/postprocess.md +++ b/content/en/hugo-pipes/postprocess.md @@ -89,7 +89,7 @@ hugo server --renderStaticToDisk Also, Hugo will add environment variables for all files mounted below `assets/_jsconfig`. A default mount will be set up with files in the project root matching this regexp: `(babel|postcss|tailwind)\.config\.js`. -These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you do do this and similar: +These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you to do this and similar: ```js let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js'; From d2cec3776dfc1398841f3df190f611b8a79a95ca Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 04:04:24 -0700 Subject: [PATCH 18/95] Clarify postcss config option (#2013) Closes #2005 --- content/en/hugo-pipes/postcss.md | 119 +++++++++++++++++++++---------- 1 file changed, 83 insertions(+), 36 deletions(-) diff --git a/content/en/hugo-pipes/postcss.md b/content/en/hugo-pipes/postcss.md index caf575c17..d96c8a443 100755 --- a/content/en/hugo-pipes/postcss.md +++ b/content/en/hugo-pipes/postcss.md @@ -1,74 +1,121 @@ --- title: PostCSS -description: Hugo Pipes can process CSS files with PostCSS. +description: Use PostCSS to transform CSS using any of the available plugins. categories: [asset management] keywords: [] menu: docs: parent: "pipes" weight: 40 +toc: true weight: 40 --- -Any asset file can be processed using `resources.PostCSS` which takes for argument the resource object and a slice of options listed below. +## Setup -The resource will be processed using the project's or theme's own `postcss.config.js` or any file set with the `config` option. +Follow the steps below to transform CSS using any of the [available PostCSS plugins](https://www.postcss.parts/). -```go-html-template -{{ $css := resources.Get "css/main.css" }} -{{ $style := $css | resources.PostCSS }} -``` +Step 1 +: Install [Node.js](https://nodejs.org/en/download). -You must install the required Node.js packages to use the PostCSS feature. For example, to use the `autoprefixer` package, run these commands from the root of your project: +Step 2 +: Install the required Node.js packages in the root of your project. For example, to add vendor prefixes to CSS rules: -```text +```bash npm install postcss postcss-cli autoprefixer ``` -### Options +Step 3 +: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or one of the other [supported file names]. For example: -config [string] -: Set a custom directory to look for a config file +[supported file names]: https://github.com/postcss/postcss-load-config#usage -noMap [bool] -: Default is `false`. Disable the default inline sourcemaps +{{< code file="postcss.config.js" >}} +module.exports = { + plugins: [ + require('autoprefixer') + ] +}; +{{< /code >}} -inlineImports [bool] -: Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. +{{% note %}} +If you are a Windows user, and the path to your project contains a space, you must place the PostCSS configuration within the package.json file. See [this example](https://github.com/postcss/postcss-load-config#packagejson) and issue [#7333](https://github.com/gohugoio/hugo/issues/7333). +{{% /note %}} + +Step 4 +: Place your CSS file within the `assets` directory. + +Step 5 +: Capture the CSS file as a resource and pipe it through `resources.PostCSS` (alias `postCSS`): + +{{< code file="layouts/partials/css.html" >}} +{{ with resources.Get "css/main.css" | postCSS }} + +{{ end }} +{{< /code >}} + +If starting with a Sass file within the `assets` directory: + +{{< code file="layouts/partials/css.html" >}} +{{ with resources.Get "sass/main.scss" | toCSS | postCSS }} + +{{ end }} +{{< /code >}} + +## Options + +The `resources.PostCSS` method takes an optional map of options. + +config +: (string) The directory that contains the PostCSS configuration file. Default is the root of the project directory. + +noMap +: (bool) Default is `false`. If `true`, disables inline sourcemaps. + +inlineImports +: (bool) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored. Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file. Hugo will look for imports relative to the module mount and will respect theme overrides. -skipInlineImportsNotFound [bool] {{< new-in "0.99.0" >}} -: Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. +skipInlineImportsNotFound {{< new-in "0.99.0" >}} +: (bool) Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. -_If no configuration file is used:_ +{{< code file="layouts/partials/css.html" >}} +{{ $opts := dict "config" "config-directory" "noMap" true }} +{{ with resources.Get "css/main.css" | postCSS $opts }} + +{{ end }} +{{< /code >}} -use [string] -: Space-delimited list of PostCSS plugins to use +## No configuration file -parser [string] -: Custom PostCSS parser +To avoid using a PostCSS configuration file, you can specify a minimal configuration using the options map. -stringifier [string] -: Custom PostCSS stringifier +use +: (string) A space-delimited list of PostCSS plugins to use. -syntax [string] -: Custom postcss syntax +parser +: (string) A custom PostCSS parser. -```go-html-template -{{ $options := dict "config" "/path/to/custom-config-directory" "noMap" true }} -{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }} +stringifier +: (string) A custom PostCSS stringifier. -{{ $options := dict "use" "autoprefixer postcss-color-alpha" }} -{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }} -``` +syntax +: (string) Custom postcss syntax. -## Check Hugo Environment from postcss.config.js +{{< code file="layouts/partials/css.html" >}} +{{ $opts := dict "use" "autoprefixer postcss-color-alpha" }} +{{ with resources.Get "css/main.css" | postCSS $opts }} + +{{ end }} +{{< /code >}} + +## Check Hugo environment The current Hugo environment name (set by `--environment` or in config or OS environment) is available in the Node context, which allows constructs like this: -```js +{{< code file="postcss.config.js" >}} module.exports = { plugins: [ require('autoprefixer'), @@ -77,4 +124,4 @@ module.exports = { : [] ] } -``` +{{< /code >}} From a3d7c4a3a93df535685570baec26dba4632bd765 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 05:27:43 -0700 Subject: [PATCH 19/95] Improve urls.Parse function (#2012) Closes #1977 --- content/en/functions/urls.Parse.md | 32 ++++++++++++++++-------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/content/en/functions/urls.Parse.md b/content/en/functions/urls.Parse.md index 988ecb3ac..9ed4f55d3 100644 --- a/content/en/functions/urls.Parse.md +++ b/content/en/functions/urls.Parse.md @@ -1,31 +1,33 @@ --- title: urls.Parse -description: Parse parses a given URL, which may be relative or absolute, into a URL structure. -date: 2017-09-25 -publishdate: 2017-09-25 -lastmod: 2017-09-25 +description: Parses a URL into a URL structure. categories: [functions] menu: docs: parent: "functions" keywords: [urls] signature: ["urls.Parse URL"] -workson: [] -hugoversion: -deprecated: false aliases: [] --- -`urls.Parse` takes a url as input +The `urls.Parse` function parses a URL into a [URL structure](https://godoc.org/net/url#URL). The URL may be relative (a path, without a host) or absolute (starting with a [scheme]). Hugo throws an error when parsing an invalid URL. + +[scheme]: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml#uri-schemes-1 ```go-html-template -{{ $url := urls.Parse "http://www.gohugo.io" }} -``` +{{ $url := "https://example.org:123/foo?a=6&b=7#bar" }} +{{ $u := urls.Parse $url}} -and returns a [URL](https://godoc.org/net/url#URL) structure. The struct fields are accessed via the `.` notation: - -```go-html-template -{{ $url.Scheme }} → "http" -{{ $url.Host }} → "www.gohugo.io" +{{ $u.IsAbs }} → true +{{ $u.Scheme }} → https +{{ $u.Host }} → example.org:123 +{{ $u.Hostname }} → example.org +{{ $u.RequestURI }} → /foo?a=6&b=7 +{{ $u.Path }} → /foo +{{ $u.Query }} → map[a:[6] b:[7]] +{{ $u.Query.a }} → [6] +{{ $u.Query.Get "a" }} → 6 +{{ $u.Query.Has "b" }} → true +{{ $u.Fragment }} → bar ``` From 464368fd926f52418b525e36c498622094f01cc1 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 05:43:40 -0700 Subject: [PATCH 20/95] Document .Page.Store (#2011) Closes #1668 --- content/en/functions/store.md | 105 ++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) create mode 100644 content/en/functions/store.md diff --git a/content/en/functions/store.md b/content/en/functions/store.md new file mode 100644 index 000000000..4723a9d26 --- /dev/null +++ b/content/en/functions/store.md @@ -0,0 +1,105 @@ +--- +title: .Store +description: Returns a Scratch that is not reset on server rebuilds. +categories: [functions] +menu: + docs: + parent: "functions" +keywords: [scratch] +signature: [] +--- + +The `.Store` method on `.Page` returns a [Scratch] to store and manipulate data. In contrast to the `.Scratch` method, this Scratch is not reset on server rebuilds. + +[Scratch]: /functions/scratch/ + +### Methods + +#### .Set + +Sets the value of a given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} +``` + +#### .Get + +Gets the value of a given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} + +{{ .Store.Get "greeting" }} → Hello +``` + +#### .Add + +Adds a given value to existing value(s) of the given key. + +For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. + +```go-html-template +{{ .Store.Add "greetings" "Hello" }} +{{ .Store.Add "greetings" "Welcome" }} + +{{ .Store.Get "greetings" }} → HelloWelcome +``` + +```go-html-template +{{ .Store.Add "total" 3 }} +{{ .Store.Add "total" 7 }} + +{{ .Store.Get "total" }} → 10 +``` + +```go-html-template +{{ .Store.Add "greetings" (slice "Hello") }} +{{ .Store.Add "greetings" (slice "Welcome" "Cheers") }} + +{{ .Store.Get "greetings" }} → []interface {}{"Hello", "Welcome", "Cheers"} +``` + +#### .SetInMap + +Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} + +{{ .Store.Get "greetings" }} → map[french:Bonjour english:Hello] +``` + +#### .DeleteInMap + +Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} +{{ .Store.DeleteInMap "greetings" "english" }} + +{{ .Store.Get "greetings" }} → map[french:Bonjour] +``` + +#### .GetSortedMapValues + +Returns an array of values from `key` sorted by `mapKey`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} + +{{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour] +``` + +#### .Delete + +Removes the given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} + +{{ .Store.Delete "greeting" }} +``` From c0f23b216e3efabc04cc5cb4c0aeec1c3167e7a5 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 06:16:24 -0700 Subject: [PATCH 21/95] Correct and improve menu documentation (#2010) This is a substantial rewrite of pages describing: - Menu entries - Menu templates - Menu localization - Variables and methods available to templates Closes #1594 Closes #1752 --- content/en/content-management/menus.md | 273 ++++++++++++------ content/en/content-management/multilingual.md | 127 ++++---- content/en/templates/menu-templates.md | 248 ++++++---------- content/en/variables/menus.md | 169 +++++------ 4 files changed, 416 insertions(+), 401 deletions(-) diff --git a/content/en/content-management/menus.md b/content/en/content-management/menus.md index b9fab2ca4..d655e60e7 100644 --- a/content/en/content-management/menus.md +++ b/content/en/content-management/menus.md @@ -1,7 +1,7 @@ --- title: Menus linkTitle: Menus -description: Hugo has a simple yet powerful menu system. +description: Create menus by defining entries, localizing each entry, and rendering the resulting data structure. categories: [content management] keywords: [menus] menu: @@ -13,117 +13,206 @@ weight: 190 aliases: [/extras/menus/] --- -{{% note "Lazy Blogger"%}} -If all you want is a simple menu for your sections, see the ["Section Menu for Lazy Bloggers" in Menu Templates](/templates/menu-templates/#section-menu-for-lazy-bloggers). -{{% /note %}} +## Overview -You can do this: +To create a menu for your site: -* Place content in one or many menus -* Handle nested menus with unlimited depth -* Create menu entries without being attached to any content -* Distinguish active element (and active branch) +1. Define the menu entries +2. [Localize] each entry +3. Render the menu with a [template] -## What is a Menu in Hugo? +Create multiple menus, either flat or nested. For example, create a main menu for the header, and a separate menu for the footer. -A **menu** is a named array of menu entries accessible by name via the [`.Site.Menus` site variable][sitevars]. For example, you can access your site's `main` menu via `.Site.Menus.main`. +There are three ways to define menu entries: -{{% note "Menus on Multilingual Sites" %}} -If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus. -{{% /note %}} - -See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry. - -## Add content to menus - -Hugo allows you to add content to a menu via the content's [front matter](/content-management/front-matter/). - -### Simple - -If all you need to do is add an entry to a menu, the simple form works well. - -#### A Single Menu - -{{< code-toggle >}} -menu: "main" -{{< /code-toggle >}} - -#### Multiple Menus - -{{< code-toggle >}} -menu: ["main", "footer"] -{{< /code-toggle >}} - -#### Advanced - -{{< code-toggle >}} -menu: - docs: - parent: 'extras' - weight: 20 -{{< /code-toggle >}} - -## Add Non-content Entries to a Menu - -You can also add entries to menus that aren’t attached to a piece of content. This takes place in your Hugo project's [`config` file][config] (see [Menu Entry Properties][me-props] for full details of available variables). - -Here’s an example snippet pulled from a configuration file: - -{{< code-toggle file="config" >}} -[[menu.main]] - name = "about hugo" - pre = "" - weight = -110 - identifier = "about" - url = "/about/" -[[menu.main]] - name = "getting started" - pre = "" - post = "New!" - weight = -100 - url = "/getting-started/" -{{< /code-toggle >}} +1. Automatically +1. In front matter +1. In site configuration {{% note %}} -The URLs must be relative to the context root. If the `baseURL` is `https://example.com/mysite/`, then the URLs in the menu must not include the context root `mysite`. Using an absolute URL will override the baseURL. If the value used for `URL` in the above example is `https://subdomain.example.com/`, the output will be `https://subdomain.example.com`. +Although you can use these methods in combination when defining a menu, the menu will be easier to conceptualize and maintain if you use one method throughout the site. {{% /note %}} -## Nesting +## Define automatically -All nesting of content is done via the `parent` field. +To automatically define menu entries for each top-level section of your site, enable the section pages menu in your site configuration. +q +{{< code-toggle file="config" copy=false >}} +sectionPagesMenu = "main" +{{< /code-toggle >}} -The parent of an entry should be the identifier of another entry. The identifier should be unique (within a menu). +This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details. -The following order is used to determine an Identifier: +## Define in front matter -`.Name > .LinkTitle > .Title` +To add a page to the "main" menu: -This means that `.Title` will be used unless `.LinkTitle` is present, etc. In practice, `.Name` and `.Identifier` are only used to structure relationships and therefore never displayed. +{{< code-toggle file="content/about.md" copy=false fm=true >}} +title = 'About' +menu = 'main' +{{< /code-toggle >}} -In this example, the top level of the menu is defined in your [site `config` file][config]. All content entries are attached to one of these entries via the `.Parent` field. +Access the entry with `site.Menus.main` in your templates. See [menu templates] for details. -## Params +To add a page to the "main" and "footer" menus: -You can also add user-defined content to menu items via the `params` field. +{{< code-toggle file="content/contact.md" copy=false fm=true >}} +title = 'Contact' +menu = ['main','footer'] +{{< /code-toggle >}} -A common use case is to define a custom param to add a css class to a specific menu item. +Access the entry with `site.Menus.main` and `site.Menus.footer` in your templates. See [menu templates] for details. -{{< code-toggle file="config" >}} +### Properties {#properties-front-matter} + +Use these properties when defining menu entries in front matter: + +identifier +: (string) Required when two or more menu entries have the same `name`, or when localizing the `name` using translation tables. Must start with a letter, followed by letters, digits, or underscores. + +name +: (string) The text to display when rendering the menu entry. + +params +: (map) User-defined properties for the menu entry. + +parent +: (string) The `identifier` of the parent menu entry. If `identifier` is not defined, use `name`. Required for child entries in a nested menu. + +post +: (string) The HTML to append when rendering the menu entry. + +pre +: (string) The HTML to prepend when rendering the menu entry. + +title +: (string) The HTML `title` attribute of the rendered menu entry. + +weight +: (int) A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry. Lighter entries float to the top, while heavier entries sink to the bottom. + +### Example {#example-front-matter} + +This front matter menu entry demonstrates some of the available properties: + +{{< code-toggle file="content/products/software.md" copy=false fm=true >}} +title = 'Software' +[menu.main] +parent = 'Products' +weight = 20 +pre = '' +[menu.main.params] +class = 'center' +{{< /code-toggle >}} + +Access the entry with `site.Menus.main` in your templates. See [menu templates] for details. + + +## Define in site configuration + +To define entries for the "main" menu: + +{{< code-toggle file="config" copy=false >}} [[menu.main]] - name = "about hugo" - pre = "" - weight = -110 - identifier = "about" - url = "/about/" - [menu.main.params] - class = "highlight-menu-item" -{{}} +name = 'Home' +pageRef = '/' +weight = 10 -## Render Menus +[[menu.main]] +name = 'Products' +pageRef = '/products' +weight = 20 -See [Menu Templates](/templates/menu-templates/) for information on how to render your site menus within your templates. +[[menu.main]] +name = 'Services' +pageRef = '/services' +weight = 30 +{{< /code-toggle >}} -[config]: /getting-started/configuration/ -[multilingual]: /content-management/multilingual/ -[sitevars]: /variables/ -[me-props]: /variables/menus/ +This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details. + +To define entries for the "footer" menu: + +{{< code-toggle file="config" copy=false >}} +[[menu.footer]] +name = 'Terms' +pageRef = '/terms' +weight = 10 + +[[menu.footer]] +name = 'Privacy' +pageRef = '/privacy' +weight = 20 +{{< /code-toggle >}} + +This creates a menu structure that you can access with `site.Menus.footer` in your templates. See [menu templates] for details. + +### Properties {#properties-site-configuration} + +Each menu entry defined in site configuration requires two or more properties: + +- Specify `name` and `pageRef` for internal links +- Specify `name` and `url` for external links + +pageRef +: (string) The file path of the target page, relative to the `content` directory. Required for *internal* links. + +url +: (string) Required for *external* links. + +{{% note %}} +The [properties] available to entries defined in front matter are also available to entries defined in site configuration. + +[properties]: /content-management/menus/#properties-front-matter +{{% /note %}} + +### Example {#example-site-configuration} + +This nested menu demonstrates some of the available properties: + +{{< code-toggle file="config" copy=false >}} +[[menu.main]] +name = 'Products' +pageRef = '/products' +weight = 10 + +[[menu.main]] +name = 'Hardware' +pageRef = '/products/hardware' +parent = 'Products' +weight = 1 + +[[menu.main]] +name = 'Software' +pageRef = '/products/software' +parent = 'Products' +weight = 2 + +[[menu.main]] +name = 'Services' +pageRef = '/services' +weight = 20 + +[[menu.main]] +name = 'Hugo' +pre = '' +url = 'https://gohugo.io/' +weight = 30 +[menu.main.params] +rel = 'external' +{{< /code-toggle >}} + +This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details. + +## Localize + +Hugo provides two methods to localize your menu entries. See [multilingual]. + +## Render + +See [menu templates]. + +[Localize]: /content-management/multilingual/#menus +[menu templates]: /templates/menu-templates/ +[multilingual]: /content-management/multilingual/#menus +[template]: /templates/menu-templates/ diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 6af2b0135..130d2d523 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -468,76 +468,91 @@ See [lang.FormatPercent] for details. ## Menus -You can define your menus for each language independently. Creating multilingual menus works just like [creating regular menus][menus], except they're defined in language-specific blocks in the configuration file: +Localization of menu entries depends on the how you define them: -{{< code-toggle file="config" >}} -defaultContentLanguage = "en" +- When you define menu entries [automatically] using the section pages menu, you must use translation tables to localize each entry. +- When you define menu entries [in front matter], they are already localized based on the front matter itself. If the front matter values are insufficient, use translation tables to localize each entry. +- When you define menu entries [in site configuration], you can (a) use translation tables, or (b) create language-specific menu entries under each language key. -[languages.en] -weight = 0 -languageName = "English" +### Use translation tables -[[languages.en.menu.main]] -url = "/" -name = "Home" -weight = 0 - -[languages.de] -weight = 10 -languageName = "Deutsch" - -[[languages.de.menu.main]] -url = "/" -name = "Startseite" -weight = 0 -{{< /code-toggle >}} - -The rendering of the main navigation works as usual. `.Site.Menus` will just contain the menu in the current language. Note that `absLangURL` below will link to the correct locale of your website. Without it, menu entries in all languages would link to the English version, since it's the default content language that resides in the root directory. +When rendering the text that appears in menu each entry, the [example menu template] does this: ```go-html-template - +{{ or (T .Identifier) .Name | safeHTML }} ``` -### Dynamically localizing menus with i18n +It queries the translation table for the current language using the menu entry's `identifier` and returns the translated string. If the translation table does not exist, or if the `identifier` key is not present in the translation table, it falls back to `name`. -While customizing menus per language is useful, your config file can become hard to maintain if you have a lot of languages +The `identifier` depends on how you define menu entries: -If your menus are the same in all languages (ie. if the only thing that changes is the translated name) you can use the `.Identifier` as a translation key for the menu name: +- If you define the menu entry [automatically] using the section pages menu, the `identifier` is the page's `.Section`. +- If you define the menu entry [in site configuration] or [in front matter], set the `identifier` property to the desired value. -{{< code-toggle file="config" >}} +For example, if you define menu entries in site configuration: + +{{< code-toggle file="config" copy=false >}} [[menu.main]] -name = "About me" -url = "about" + identifier = 'products' + name = 'Products' + pageRef = '/products' + weight = 10 +[[menu.main]] + identifier = 'services' + name = 'Services' + pageRef = '/services' + weight = 20 +{{< / code-toggle >}} + +Create corresponding entries in the translation tables: + +{{< code-toggle file="i18n/de" copy=false >}} +products = 'Produkte' +services = 'Leistungen' +{{< / code-toggle >}} + +[example menu template]: http://localhost:1313/templates/menu-templates/#example +[automatically]: /content-management/menus/#define-automatically +[in front matter]: /content-management/menus/#define-in-front-matter +[in site configuration]: /content-management/menus/#define-in-site-configuration + +### Create language-specific menu entries + +For example: + +{{< code-toggle file="config" copy=false >}} +[languages.de] +languageCode = 'de-DE' +languageName = 'Deutsch' weight = 1 -identifier = "about" + +[[languages.de.menu.main]] +name = 'Produkte' +pageRef = '/products' +weight = 10 + +[[languages.de.menu.main]] +name = 'Leistungen' +pageRef = '/services' +weight = 20 + +[languages.en] +languageCode = 'en-US' +languageName = 'English' +weight = 2 + +[[languages.en.menu.main]] +name = 'Products' +pageRef = '/products' +weight = 10 + +[[languages.en.menu.main]] +name = 'Services' +pageRef = '/services' +weight = 20 {{< /code-toggle >}} -You now need to specify the translations for the menu keys in the i18n files: - -{{< code file="i18n/pt.toml" >}} -[about] -other="Sobre mim" -{{< /code >}} - -And do the appropriate changes in the menu code to use the `i18n` tag with the `.Identifier` as a key. You will also note that here we are using a `default` to fall back to `.Name`, in case the `.Identifier` key is also not present in the language specified in the `defaultContentLanguage` configuration. - -{{< code file="layouts/partials/menu.html" >}} - -{{< /code >}} +For a simple menu with two languages, these menu entries are easy to create and maintain. For a larger menu, or with more than two languages, using translation tables as described above is preferable. ## Missing Translations diff --git a/content/en/templates/menu-templates.md b/content/en/templates/menu-templates.md index bdf89c2e5..47baf7114 100644 --- a/content/en/templates/menu-templates.md +++ b/content/en/templates/menu-templates.md @@ -1,183 +1,127 @@ --- title: Menu Templates -linktitle: Menu Templates -description: Menus are a powerful but simple feature for content management but can be easily manipulated in your templates to meet your design needs. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 +linkTitle: Menu Templates +description: Use menu variables and methods in your templates to render a menu. categories: [templates] keywords: [lists,sections,menus] menu: docs: - title: "how to use menus in templates" parent: "templates" weight: 130 +toc: true weight: 130 -sections_weight: 130 -draft: false aliases: [/templates/menus/] -toc: false --- -Hugo makes no assumptions about how your rendered HTML will be -structured. Instead, it provides all the functions you will need to -build your menu however you want. +## Overview -The following is an example: +After [defining menu entries], use [menu variables and methods] to render a menu. -{{< code file="layouts/partials/sidebar.html" download="sidebar.html" >}} - - + +{{- end }} + +{{- define "partials/inline/menu/walk.html" }} + {{- $page := .page }} + {{- range .menuEntries }} + {{- $attrs := dict "href" .URL}} + {{- if $page.IsMenuCurrent .Menu . }} + {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} + {{- else if $page.HasMenuCurrent "main" .}} + {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} + {{- end }} +
  • + {{ or (T .Identifier) .Name | safeHTML }} + {{- with .Children }} +
      + {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }} +
    + {{- end }} +
  • + {{- end }} +{{- end }} {{< /code >}} -{{% note "`absLangURL` and `relLangURL`" %}} -Use the [`absLangURL`](/functions/abslangurl) or [`relLangURL`](/functions/rellangurl) functions if your theme makes use of the [multilingual feature](/content-management/multilingual/). In contrast to `absURL` and `relURL`, these two functions add the correct language prefix to the url. -{{% /note %}} +Call the partial above, passing a menu ID and the current page in context. -## Section Menu for Lazy Bloggers +{{< code file="layouts/_default/single.html" >}} +{{ partial "menu.html" (dict "menuID" "main" "page" .) }} +{{ partial "menu.html" (dict "menuID" "footer" "page" .) }} +{{< /code >}} -To enable this menu, configure `sectionPagesMenu` in your site `config`: +## Page references -```yml -sectionPagesMenu = "main" -``` +Regardless of how you [define menu entries], an entry associated with a page has access to page variables and methods. -The menu name can be anything, but take a note of what it is. +This simplistic example renders a page parameter named `version` next to each entry's `name`. Code defensively using `with` or `if` to handle entries where (a) the entry points to an external resource, or (b) the `version` parameter is not defined. -This will create a menu with all the sections as menu items and all the sections' pages as "shadow-members". Ensure that all first level directories that you would like to show up on this menu are [Branch Bundles](https://gohugo.io/content-management/sections/). Leaf Bundles do not form sections. +{{< code file="layouts/_default/single.html" >}} +{{- range site.Menus.main }} + + {{ .Name }} + {{- with .Page }} + {{- with .Params.version -}} + ({{ . }}) + {{- end }} + {{- end }} + +{{- end }} +{{< /code >}} -The _shadow_ implies that the pages isn't represented by a menu-item themselves, but this enables you to create a top-level menu like this: +## Menu entry parameters -```go-html-template - -``` +When you define menu entries [in site configuration] or [in front matter], you can include a `params` key as shown in these examples: -In the above, the menu item is marked as active if on the current section's list page or on a page in that section. +- [Menu entry defined in site configuration] +- [Menu entry defined in front matter] -## Site Config menus +This simplistic example renders a `class` attribute for each anchor element. Code defensively using `with` or `if` to handle entries where `params.class` is not defined. -The above is all that's needed. But if you want custom menu items, e.g. changing weight, name, or link title attribute, you can define them manually in the site config file: +{{< code file="layouts/partials/menu.html" >}} +{{- range site.Menus.main }} + + {{ .Name }} + +{{- end }} +{{< /code >}} -{{< code-toggle file="config" >}} -[[menu.main]] - name = "This is the blog section" - title = "blog section" - weight = -110 - identifier = "blog" - url = "/blog/" -{{}} +## Localize -{{% note %}} -The `identifier` *must* match the section name. -{{% /note %}} +Hugo provides two methods to localize your menu entries. See [multilingual]. -## Menu Entries from the Page's front matter - -It's also possible to create menu entries from the page (i.e. the `.md`-file). - -Here is a `yaml` example: - -```yml ---- -title: Menu Templates -linktitle: Menu Templates -menu: - docs: - title: "how to use menus in templates" - parent: "templates" - weight: 130 ---- -... -``` - -{{% note %}} -You can define more than one menu. It also doesn't have to be a complex value, -`menu` can also be a string, an array of strings, or an array of complex values -like in the example above. -{{% /note %}} - -### Using .Page in Menus - -If you use the front matter method of defining menu entries, you'll get access to the `.Page` variable. -This allows to use every variable that's reachable from the [page variable](/variables/page/). - -This variable is only set when the menu entry is defined in the page's front matter. -Menu entries from the site config don't know anything about `.Page`. - -That's why you have to use the go template's `with` keyword or something similar in your templating language. - -Here's an example: - -```go-html-template - -``` - -## Using .Params in Menus - -User-defined content on menu items are accessible via `.Params`. - -Here's an example: - -```go-html-template - -``` - -{{% note %}} -With Menu-level .Params they can easily exist on one menu item but not another. It's recommended to access them gracefully using the [with function](/functions/with). -{{% /note %}} +[automatic]: /content-management/menus/#define-automatically +[define menu entries]: /content-management/menus/ +[defining menu entries]: /content-management/menus/ +[in front matter]: /content-management/menus/#define-in-front-matter +[in site configuration]: /content-management/menus/#define-in-site-configuration +[localize the menu entries]: /content-management/multilingual/#menus +[Menu entry defined in front matter]: /content-management/menus/#example-front-matter +[Menu entry defined in site configuration]: /content-management/menus/#example-site-configuration +[menu variables and methods]: /variables/menus/ +[multilingual]: /content-management/multilingual/#menus diff --git a/content/en/variables/menus.md b/content/en/variables/menus.md index a59560729..352fe0d1a 100644 --- a/content/en/variables/menus.md +++ b/content/en/variables/menus.md @@ -1,127 +1,94 @@ --- -title: Menu Entry Properties -linktitle: Menu Entry Properties -description: A menu entry in a menu-template has specific variables and functions to make menu management easier. -date: 2017-03-12 -publishdate: 2017-03-12 -lastmod: 2017-03-12 +title: Menu Variables +linktitle: Menu Variables +description: Use these variables and methods in your menu templates. categories: [variables and params] keywords: [menus] draft: false menu: docs: - title: "variables defined by a menu entry" parent: "variables" weight: 50 -weight: 50 -sections_weight: 50 -aliases: [/variables/menu/] toc: false +weight: 50 +aliases: [/variables/menu/] --- -A **menu entry** has the following properties available that can be used in a -[menu template][menu-template]. +## Variables -## Menu Entry Variables - -.Menu -: _string_
    -Name of the **menu** that contains this **menu entry**. - -.URL -: _string_
    -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_
    -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. - -.PageRef -: _string_
    Can be set if defined in site config and the menu entry refers to a Page. [site.GetPage](/functions/getpage/) will be used to do the page lookup. If this is set, you don't need to set the `URL`. - -.Name -: _string_
    -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 -: _string_
    -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 -: _template.HTML_
    -Value of the `pre` key if set for the menu entry. This value typically contains -a string representing HTML. - -.Post -: _template.HTML_
    -Value of the `post` key if set for the menu entry. This value typically contains -a string representing HTML. - -.Weight -: _int_
    -Value of the `weight` key if set for the menu entry. By default the entries in -a menu are sorted ascending by their `weight`. 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 -: _string_
    -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`. +After [defining the menu entries], access their properties with these variables. .Children -: _Menu_
    -This value is auto-populated by Hugo. It is a collection of children menu -entries, if any, under the current menu entry. +: (menu) A collection of child menu entries, if any, under the current menu entry. -## Menu Entry Functions - -Menus also have the following functions available: - -.HasChildren -: _boolean_
    -Returns `true` if `.Children` is non-nil. +.Identifier +: (string) The `identifier` property of the menu entry. If you define the menu entry [automatically], the page's `.Section`. .KeyName -: _string_
    -Returns the `.Identifier` if present, else returns the `.Name`. +: (string) The `identifier` property of the menu entry, else the `name` property. -.IsEqual -: _boolean_
    -Returns `true` if the two compared menu entries represent the same menu entry. +.Menu +: (string) The identifier of the menu that contains the menu entry. -.IsSameResource -: _boolean_
    -Returns `true` if the two compared menu entries have the same `.URL`. +.Name +: (string) The `name` property of the menu entry. + +- If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`. +- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`. + +.Page +: (page) A reference to the page associated with the menu entry. + + + +.Params +: (map) The `params` property of the menu entry. + +.Parent +: (string) The `parent` property of the menu entry. + +.Post +: (template.HTML) The `post` property of the menu entry. + +.Pre +: (template.HTML) The `pre` property of the menu entry. .Title -: _string_
    -Link title, meant to be used in the `title` attribute of a menu entry's -``-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. +: (string) The `title` property of the menu entry. -## Other Menu-related Functions +- If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`. +- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`. -Additionally, here are some relevant methods available to menus on a page: +.URL +: (string) The `.RelPermalink` of the page associated with the menu entry. For menu entries pointing to external resources, the `url` property of the menu entry. -.IsMenuCurrent -: _(menu string, menuEntry *MenuEntry ) boolean_
    -See [`.IsMenuCurrent` method](/functions/ismenucurrent/). +.Weight +: (int) The `weight` property of the menu entry. -.HasMenuCurrent -: _(menu string, menuEntry *MenuEntry) boolean_
    -See [`.HasMenuCurrent` method](/functions/hasmenucurrent/). +- If you define the menu entry [automatically], the page's `.Weight`. +- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.Weight`. -[menu-template]: /templates/menu-templates/ -[page-object]: /variables/page/ +## Methods + +.HasChildren +: (bool) Returns `true` if `.Children` is non-nil. + +.IsEqual +: (bool) Returns `true` if the compared menu entries represent the same menu entry. + +.IsSameResource +: (bool) Returns `true` if the compared menu entries point to the same resource. + +.Page.HasMenuCurrent +: (bool) Use this method to determine ancestors of the active menu entry. See [details](/functions/hasmenucurrent/). + +.Page.IsMenuCurrent +: (bool) Use this method to determine the active menu entry. See [details](/functions/ismenucurrent/). + +[automatically]: /content-management/menus/#define-automatically +[defining the menu entries]: /content-management/menus/#overview +[in front matter]: /content-management/menus/#define-in-front-matter +[in site configuration]: /content-management/menus/#define-in-site-configuration From bdce77c57bc507b0caee082eece06d60e198fc74 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 06:26:51 -0700 Subject: [PATCH 22/95] Remove literal from example menu template --- content/en/templates/menu-templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/templates/menu-templates.md b/content/en/templates/menu-templates.md index 47baf7114..7649c0e56 100644 --- a/content/en/templates/menu-templates.md +++ b/content/en/templates/menu-templates.md @@ -47,7 +47,7 @@ This partial template recursively "walks" a menu structure, rendering a localize {{- $attrs := dict "href" .URL}} {{- if $page.IsMenuCurrent .Menu . }} {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} - {{- else if $page.HasMenuCurrent "main" .}} + {{- else if $page.HasMenuCurrent .Menu .}} {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }} {{- end }}
  • From fa7b2e299f93339788000f55c508d4b50af72178 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 20 Mar 2023 14:12:54 -0700 Subject: [PATCH 23/95] Fix typo --- content/en/content-management/menus.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/content-management/menus.md b/content/en/content-management/menus.md index d655e60e7..0ee3fafe0 100644 --- a/content/en/content-management/menus.md +++ b/content/en/content-management/menus.md @@ -36,7 +36,7 @@ Although you can use these methods in combination when defining a menu, the menu ## Define automatically To automatically define menu entries for each top-level section of your site, enable the section pages menu in your site configuration. -q + {{< code-toggle file="config" copy=false >}} sectionPagesMenu = "main" {{< /code-toggle >}} From 97e5567cc1b95bbb9fc874d24366a0acbe3d5c76 Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Tue, 21 Mar 2023 18:02:38 +0100 Subject: [PATCH 24/95] Complete documentation on '.Scratch' and '.Store' (#2016) --- content/en/variables/page.md | 15 ++++++++++----- content/en/variables/shortcodes.md | 10 +++++++--- 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 3453b8a2b..681f2d1f7 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -20,10 +20,6 @@ toc: true The following is a list of page-level variables. Many of these will be defined in the front matter, derived from file location, or extracted from the content itself. -{{% note "`.Scratch`" %}} -See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables. -{{% /note %}} - ## Page Variables .AlternativeOutputFormats @@ -187,6 +183,14 @@ https://remarkjs.com) .WordCount : the number of words in the content. +## Writable Page-scoped Variables + +[.Scratch][scratch] +: returns a Scratch to store and manipulate data. In contrast to the [`.Store`][store] method, this scratch is reset on server rebuilds. + +[.Store][store] +: returns a Scratch to store and manipulate data. In contrast to the [`.Scratch`][scratch] method, this scratch is not reset on server rebuilds. + ## Section Variables and Methods Also see [Sections](/content-management/sections/). @@ -352,4 +356,5 @@ The top-level key will be preferred. Therefore, the following method, when appli [gitinfo]: /variables/git/ [File Variables]: /variables/files/ [bundle]: {{< relref "content-management/page-bundles" >}} - +[scratch]: /functions/scratch +[store]: /functions/store diff --git a/content/en/variables/shortcodes.md b/content/en/variables/shortcodes.md index a7c9e475b..483973eb0 100644 --- a/content/en/variables/shortcodes.md +++ b/content/en/variables/shortcodes.md @@ -39,9 +39,13 @@ toc: false .Inner : represents the content between the opening and closing shortcode tags when a [closing shortcode][markdownshortcode] is used -[getfunction]: /functions/get/ -[markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown -[shortcodes]: /templates/shortcode-templates/ +.Scratch +: returns a writable [`Scratch`][scratch] to store and manipulate data which will be attached to the shortcode context. This scratch is reset on server rebuilds. .InnerDeindent {{< new-in "0.100.0" >}} : Gets the `.Inner` with any indentation removed. This is what's used in the built-in `{{}}` shortcode. + +[getfunction]: /functions/get/ +[markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown +[shortcodes]: /templates/shortcode-templates/ +[scratch]: /functions/scratch \ No newline at end of file From 2964c2d44a93c9885c44128adf1d4df10bc8eb38 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Mar 2023 09:39:31 -0700 Subject: [PATCH 25/95] Remove orphaned static files (#2022) --- .../deployment-with-nanobox/hugo-server.png | Bin 74234 -> 0 bytes .../hugo-with-nanobox.png | Bin 5613 -> 0 bytes .../nanobox-deploy-dry-run.png | Bin 37494 -> 0 bytes .../deployment-with-nanobox/nanobox-run.png | Bin 69079 -> 0 bytes .../adding-a-github-pages-step.png | Bin 41068 -> 0 bytes .../adding-the-project-to-github.png | Bin 50615 -> 0 bytes .../and-we-ve-got-an-app.png | Bin 32517 -> 0 bytes .../configure-the-deploy-step.png | Bin 68953 -> 0 bytes .../creating-a-basic-hugo-site.png | Bin 27450 -> 0 bytes .../deployment-with-wercker/public-or-not.png | Bin 11394 -> 0 bytes .../using-hugo-build.png | Bin 11670 -> 0 bytes .../deployment-with-wercker/wercker-access.png | Bin 57084 -> 0 bytes .../wercker-account-settings.png | Bin 6725 -> 0 bytes .../wercker-add-app.png | Bin 43674 -> 0 bytes .../wercker-git-connections.png | Bin 25260 -> 0 bytes .../deployment-with-wercker/wercker-search.png | Bin 28724 -> 0 bytes .../wercker-select-owner.png | Bin 18047 -> 0 bytes .../wercker-select-repository.png | Bin 28485 -> 0 bytes .../wercker-sign-up-page.png | Bin 15601 -> 0 bytes .../wercker-sign-up.png | Bin 124423 -> 0 bytes .../deployment-with-wercker/werckeryml.png | Bin 45528 -> 0 bytes 21 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-deploy-dry-run.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png delete mode 100644 static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png b/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png deleted file mode 100644 index cc909af2c8e4abacc2b1ca2f6f99dc1e7e6fc63b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74234 zcmYhiWmH?;7xfFl-7UqvI3!5X0L7tLix!6vqqmffjctP=XYK6faWT zq1fg5-|^o2e#kf@=hMmF>#XeGoO8wMyiy^;2jZilp%JO6zSKiQ1Ax)c(8Y1FpYC*A zEebtd@Z405J<-qz$p8DGPyG(QLqlUmQ+p}@+IL~U!{PO7r;Kf5CXud-@*45I4#OB+ z&Vg9tBZRp0-(mP#hZ9|i@-?!F{0%&UMw;XARwx_;j(QVH2vy$`3XELaUkSVa8@J{G# zh!3r?JNZu&)^qTsEc$TWiE7`_&^uu$!N|r0*Y-M<=Gb(20fD5-{@atY!P*qL;QPA0 z))^Ab>-Ph-g28#)x8Wo9=-+WTm+AtnmBpC&SfQ8Q%{EsPwkKs>NlWAAe+y!>Y&RP< zas|DYQ8&eV5HnuEnzh=(cc=i(Dkr57?6P}*zj2wy)?6)CP(V=6zQxk`@*`1z@&jJL zL6`NV#X}k;vQ+~;0ZG#w5!Z1#kcI=6b`x%lCjgu4F8jl;OZqJgm9=bIjsE}vcZW9K2(4dpT{lI#kF_$ zGH>RwKn8QbR)XWNF%sI)!2-mz0sxQ#Guuv@E-ok--;z`3#aO12Cf@KEmld>-a168J z_$Ml2%mZlKZwW;wfVTSz*+Bj5HH((BqWUkmtgz9E@OYur?WkuY&@BKmQz;aFIdz@P z+}BM=6wD}n6ps$Zo{2$AkRk%-^Mop2j?N1wC3uD^qd5}(_msykyvdRX<=XqNeyp-^ z2I`vCsRE#Pf2@?B4`Zr@5;{oq4~NAI5(eNTzm+5@ceFpPP0*#?tbm$_UL{QAo!F7IssDjXj<67AZLU0Y1m}BVRG$Rb` zfR>9U3XdK{%cjEs=l_Fea977C8$u`b$TIPCus{nCP9v&eK2DatEFr~&j>yuiHFy@g zC7e)nZJ92Wi5PUbK$qwP2WS&F#bnJb;fdm*C6Lb4b(qj|H?@BB85~6e8e#w&)e-JA zm_T$Efze!I(eE&r^#Asyqul++dlB+Aj+KE+bGkO6RNOIcOgiDrNh(`aG_vq4$N)1N zm30FRT3k=OF)p-1hax!dWbajg{T9VlG!Zx#%XBF-%6Md*9>8mG4>4J-f&+~+vpf(d zB4h6h;TT{SXN2%5dO{WesC~TTP9PTiK!N#og$)<{u?`_MQ<>7$MlhLoGKO+p+|<3owe9cK$b6?= z8%d*R;CthZn=dT@e{XHYNtQgHZ$==vOw=>l<8!<@VrEo}Ya8y69Q#cVN9HIRG4YQ$ z-)AYpjodac;!^%B`Vl>t;a&KFMEA?ziraEi@1ro71IObfGs#GV`TG+eeebk|X7j2^ zq2c>ha3;rWS0+d6K0^CRV%5+eiNvi19nr?Q7>V)@yeHWol|-xUC}mtD=b8P^46~`X z{T}8mb6{Eh1&R-1;%C5ClS#~X3<=5gPQo~4B8;L6`ZjDcsRnP{Nq+VR*SfVyAW3x^ z2}KU)S?|PRT2?gXF*Ap$Ci#_n+&`DK*LgDB@ZGMR2(*Cd6N0R0c zbR!Rk=PCT`$ugT>74@dl3aekP@UEjdwhL#uC=>kzUVm!PLLV=m^v4B-LbF4a+w3C& zz)A%~y;WTJ*WIEB$aFk)#`k#shV5`U3;xYBC3K?fz736Y98V2v{%=MJ-HU75JC95j zD^W)hl5{7>Q|aeo{*OH=7P0p$vZ1c`r5z%lRG=D{`p`#R>qp@|#p_pS&}-(1KKacw z`|}6I;?3T;1EvoFcHx(bi#r9Yb0?gr*Z`a6m8S)t4N@Yv1&I3Ep@b9z?1T^w1EEk_ z3?M!fHLtlY6fv*IGt=}^cE*;>+>NhrUMM{8=y;kiWp0yZ4pGtPCUPkK`Xa#z8>ruH zpxVAnxKVJsHaMVvJk1&M(^~^Z{ax_7W3N(bASn2Az>mhi@zo8Be-MM?^u$Dc3b#p+ zf9bW8-tRX?dt%YSjku05gu6Zfd`OARq(cb5YsZli&Yb^uBt_*1(bOY|d_~|K^8))} zV}0~^n}aT%Un>kpmU{jlh!FX@#|LEubtXFop+P@{4(f|)#sG+R-wSULw5D!B5<2dj zJ8+S{_y8@8XD|aY2x!JTmQb)d;zQvC%C`W)yw-&wenfOmb9b=u@HW}FwO^opv)Sv} zYt%zFN^XQ`>5i??YSYL1(V{c8nrnlxm4Qc=^p>W~vLIvi04brqZ{d3=rIyU1pdp3G zUg}~WzzD4G$`K0fxe}CWAy2o2OltzhlYAv&F|*wXVcgs)Pn{s4*Mg^iQxT9*4NAzo zf?s$G*{pXH;(;}yyg;mloUv}WIF=md`qng#a4@>o@q@x9RU-!Wtc2W_Y;jA%VvK#7 zUvLOp$T685y*7<3+lnF4-q_UQL5KW0ffaN^DBEzBSZ*_`Ff5vJg&-kB*(0zNA`)S# z>?|)HI!J~%c?oH3*nU)4rt7Nu1!l)wIf{+CcMU%-&*xcbR^~z3TAkj*jA5`%*>9!@Sp0`^6@uY}tzV(h6EE%@<2AYuG7t319%ccl1S_F)m-pL|#Cx z@6M-)e_nH3Usnyhb-q&!pd&HcHs>O`)JIp(S6A5oBYRXzN$Tq%~+M zE25W{1&`|dBEYy{cyc83T9R&T%<2XfVyexEFUa48R6Sam{>WFEdJ@yFwEuX@8J^)P zAU1v5<=DZEE)vOTXZ0F=A*AYx6A=5A#&q|-8udbeXgNtiw#y3A=sGWgyX={P4eaO; zab6Ql8`x9=j8}ZcSg4{nm#N~DRqGo&yrcF7i71D3Dy!5@xF{1==VY~5$}Rbcbl>0o zvX5XQ0*x|nOzIzQv)R=0APQyW<~|q|6rkUo*_5rMP6<_^!xUCs#2@ZwNm^HdH72gh8d^me%G7}Z|PCWPl()CD3{SbcN3m$;5g&5zU%vVk21q!K$z{bONOPQTm{11Qb`)QDk z3sT7z3u+-JzpNKeuC{&1#C_^2rnN$H`sDG~_2vS4fM;QR>x^IJZP6eTRL%gCM2Bj64xu)V^n_f1<7aTYfH%c)aNUyy9NvxQ-kfoQ6?gIc9=4 zDN*4(5z%>qM+;NaClpaIrxP2C!3%Le>klnUIj0Q*9)$Krzek*LBU4@3i?ux6{^8T_`TGI)6#qzJd>WmWX^>i98vye#f$vVJEMG{W zwl~D}Y`z)@BTK-9^|EqbQQPGacXxptc;K%H(F-riqb+nTs*V-uXEqieNS56y@Fu`OJ$h+xB=^Ih1+TW9r=p^0WN&Eo#bR0 z{f$R}1vube*VjC~(!S1elHM7i0}5U<-p3>;g*%Jkq9V)BS*>#WH>L`nNSU>`kl%NL zh=3k6qGEUXs}+Uz=Je8(lX%0UmPqes)Tlrc`K=*iMBksI*jw*=^!mp$zIn=hR{`>W zIrhJX)?ggZ72Ap?*d8~ZSF+v34eTR|upJ%~p_?j7v0_-p4)=2?!4B2K^^4(j>_b#3-x zP&^b`gO-p(jksC3AKOd}2_LBlxkGb-x|n!b_GoOT6)L>?6tzTB90o@v`95{d2}piE z(Z&E6i8$C~y-j=8Xl9IZzyjaqMuk{9z#gpBq~D%24L|%V4_<2w8{qwp=Ev&Y9Yl&U||vLtWfx!*7M} zOx3Q*MJ{vofyaW4-l*pYvxSs-W&gL~^?UWHcSKhk)`!m z-TCatGm9N%JVZHfvZ`L`J);axB;%JCJ8$5UAB^HJjxCg8#iI#kN&ll|05j0G*z* z@)7Z{c8D2LM#LM%I2_>k8Vl5Fb;?^!i3rl$jzKQtM=Fd=X`@_Pl2NBYWI)8x(K_0=^l9N!xlpdU z_2XpwZ31q;E;{(P0Smw6IN;osbHwWG1yS~lhnTc$iAAztf+-_o{9p=+>647PLgcV7 zcA;f^5AssAAM_AC2bK%(U^_c-mi;(dre}|(@1?t6GIdq&0Q&cbg6){%Y@9vkh$6p)M4b*~I?yha8JXKUPgsldZ}r6`Z&p3y&f#8E zez}iTho%hOG+f%G?#7{t%A3y^zlB%%RWfOcLZRr)clm6cqp%DZ1s~N zN*rW@Ph*utZ#hz$5nV%|!eHs3k^4I=eXW#J80Pbs3J zYwwOw<@;;UTT*AVgtJg+{_Zh5F@sdsT@tQ33TrkETV% zFg33ZAduR8xvS+SWjy7C13ofZV@irq@FaYZ5gpcO(X-I=V0PUJF|A75l) z_s&f0R3i%6={A_rnrITHEKW53Qfi~{WIMpRB3U0;Nt^&i#wT|x_&NFWZ0rOP(_AJ) z8mWFR1rYa%JtHJE_Jc+g&T&-vi=1KYjRYP9Fn+r}IXTR|1^U@~FSAN}Bxxj0nP+_( zvS~tyzMEr}4A|WZeGPropxz8a8NY-@F=h-+9)DbreRUM#cSJ7fIYR&G)saQ^dRV(~ zTbxC4SKAM5Q!uIZ*Ej6-_kxOlgKMe>ewRlOI=c7K<4rVMkVHG#`(#V7RbGAiAsp3*)0BxY#++^ zyn9S2sSsN?!Yh2-^~e3ZODh4jhy1Jd2X~Rk%wZ|@^g{GW_V^Qj1s687{%nXuCML*5 zH0C^=uo;n`wHYHU{#uj8ji}R)aI0aG5l15a}kjLr^4ilNx zN?c1l$L}f35~4SJ{akP1L-+l?A6p$6wLb-7tS9BcH>*sMv#yFmhL~WKQ{~3fzf{Oh zn^v@=?T`--(zk*ft84E&h6-_RIp||WuTQ1*gr&voNOG>mod^S6MOaC{t!hUm+DcZI zq_7nLvH|^MPPmJph-U9Ch~psyxtaqq@sEzDr9 zesHadp)_?kkULg7R^ETpnu+r9qKVZ59ZMp)7GkA^5qKSnTIvB-4gFUvXEBh-_1m!o4%*##ppL@38H zbxr=6OA_6iSv;q|xxt_5;8?9XT@Vv`$IslZ)-0y_?HI&P4Hmh&Qpfxr{rr6`;@16n zNm*{h^|Uck3=;fsoE+~*qyf&yIdQjVesL>y$@omSd?1i8s>O};GrxNDbw53fO_Z5q zJN+{t+YT>s`EQT~#->>p@rzv*Di~%+ZyGIs8?xn%xzZ9_pX zlrG(3t}i?V=}G##m`cOS23QbyVV*6F^7F-dzUt-~KL_!-EBV5I)1o9~9|-x&?A_ff z>c?~t?w%yK>e^fBLOYP<_n8p3;PYG{xPV%@2Rjb(`&k$kS?#7Iw3_prxhh$QDvM*2L94ZN zmoGB$)p@DPJMr3UI!4o>-KK-N`(p4hv!Ke3-%efdR)6T8D}&yC$_qvRz}DM>l9mb2 z6#_e%Bfq11d6q1(R}L_gIkzlw^?Pc0F=0%7ZPw;BR9Ufac1D62%=je~x^xK_AcU_X zM4~|AR(TkQu?u70AD5ER&|l`0QhE|$V=kTkdG18DYrFqX;NEYR= zR}}8H)!gIT8>gQ^2fKk`-7NwE&%S5aGj`NJ-u+Ir=Q+;4#0!!A85kFQ&M)OgQt6G9rv3K^fG14Ygcs$?%R{U;2G13Y@*UYfmo`kAV~Jys@pw)H=BnOlK4+H|h&S z04u;=0npDi*mp_P10KFUfhh7gIZS-kce{KG*k7P6a`M@a;^}yLp-CZ%KyQZM09KZN z*L2sy{!~Pu*VS}M$PUt=W9CR#qgP8(<|opgNE6)Ooj654@1l<|q6*5pwWR6~+E_f! zNWuq{#jS3KEN@-=ugYnPpYNAOI>9*eHQ~lhe>G+TEDT&02%qi9zJ9wH^X|;ER8}AK z?cd>21l>ExMhDxP2E^sE#P6Gf9?U9P@U05kxc^%cHZ&4SWR?A%9atdTWsBk1ClQcf zEQ7n+J8!i};H#5KFn9RmsSvSPPwz@J7RjZ8@RY+&r!-;T;f+! z4mnf3rQElRSK;huw7q*%W`VOi^Bq!e$eHXj@u zw`;i5tg=*I3@h4nWo|$eUB!1RzPZ`T8-82)YvZ%KkMpH>J8Rs6*P?El9oY)hbiks^ zI-V-xVEtWpp9c^*t;Tj|K2@|$-4Jo!`nQ0pS(HAek(DCc1 zVGEXL4SK@R*vU`au=u=J(9Y0T%67hL5w8ZxlC1*lc1%RVnHvKgA@GefG8Z$%3~%4u zs3!lIFMebWlmO{VM+!<+e1VPRMgz*U(`Q=^#(}YPiZ4;bzR5EIA5jDWLRCgz@eQi_ z`7P6X32(E%agWu>D|-Sjy>@NG8D>W${-)@r^-vZq^KQJ&%&KL8LN$j+Mnki|VS>_) zi9n8Fg9;c4InRAXPM{p^J1s?t0~2i~tLBFjUWG3t33gDys8!cltCX)em_BE~m;|X% z5lkcvfW&bIZG5)GzwBF)bGcK|i_!$c5-mns%x))+Hz@uT&_q)@nF~+7=CpeKjXpos z=7)VP8f2zH!xmR^A?34{f?>2A$4vLvT#d*JFOjnWh_c<59?1T8+ayks)Ytc_{SSXozx&M;pN_!K3 z`8P-fNI1Ux%&2d`K^0Su2iv(hXG+l)@hpN@D8QxjuM)$Rq}VpGYxz3;6Pl*z)O(DdGTF@$in>c4QB zv|E&gqT$qg&lS9HR2*)(&dI9h7_8KL3vu#4PmtI4h?6}*tS6@h)LCcwDDYUC|5OpQ zFxA>{y2mL>4B%%$VUHR;lWYP}12x3jgauymH}he&5=g$>$=!?@ezrnw{D-I0wCG>k zyS&2GC#zUPnTzcp&7FEUCNB6-NWiO%U+`y<6OLajsMzEny!_PnwRgzt0PyMIF7E#N$hjDH=b6*RX~l{u zqAq15N`hU;9z+7_Tv4moV<=UWtQ}VGbPUB7WLRDhS4h%zw-YyWJ9w2rwd_UNeYHuG zZudr{ot`l~z(=?8>IU%J~HISJ~92`v(sP>$MJYo9#TPGs@|=!ZPw+4KB*(#XCi2^fzSm zw~K_my8NNT-1v#coc!uXB(A?*$%P23!#w*K;udTtWJ4l)D1ZaXPvnQb3Ile?|8Rn4 zql5J^z=ymIWXM2Z5SIA#x)p|Y6Oh)Ok&@Sv}|vw&(*9fLSQOR-^D4`Ov5p2DW)2>LE;Mp>Sy z(;uuT3Yan^by`I8{NwKDu=XYE9oB%`RUn0nU=d)rcBdq%m=acDF7MlwvH0z3)sfO$i)cfHdADRsCFAKiiJZUAp@?e1a7UEei5z$*MrKru63)kxA| z+wNNp3L42}P8u+4e*rZs*T#?b#eYigi^6Ik7W^a`9&bn7H~zXO-p(MC8qw33E6r&* z(643A%NI3U6AX0zk&N@QRZ(=YnM(%I0d%g^vKV*Bzuw#SMyV-aFgcES;cQmZBj&T0 zSWOI`MaKty9``M?$*hl8yN7tLKNv(R>yR-8Dx5Yfss#T*{Q3*F<7om)XN6Ns83T;j)7PG)@Q zxVGhDOt)|gr?|$lMY~nr@yTzFUXAI>)X8i(KNd&>(-IEIMw`mb|1f^~gYWff8X162 ziG}kOXDWmjL-wf_P)^@1q1d)}JI$7ocu>NM$rTW2E({LF6q3I^EW(=nC!t6UbF1w! zZMtp`&2g|_8-Adbcwaq2%&iBkvzVv2NZlI{i8X@s1^bMAq;>NMoa2u9WyMCm8bE?YQXh>5B_9qriyXoR4ylGHc95(T z0J|2@|35LV%oMW9SiK>glt7Ir+?rGVz0xW%Nc?hY?%48s_elgF&)<=%P^!YhI_v4H za7ntBQYR}VUs`CT5(J7-6%*g>T&@3JgmPHb585vc{(0ENp7w$N&4HnDj2c9c?bAp< zoQ??t+JqK`*c!4zWQA$bnvucAB+ZJy5rBIv#Hzfu(GqU)SvSK4HN7EyqaOINf^4f{ z7yh(=mHE-Z0IYo&LY@V0D`K52OB){Y6CWz3yBw4Mqxjq@df4LpuQd1|K6>T zvOX2Icz*`O*F=g2Rzb-1=w;3T6hM;Z!^u=1tn!O)7Nc{g_WvSr0Yn6h70DEBVq+s8 zWq(2Xn$P}VL@Ixvz7VnEsFwtv=L&czzFN9@K58y$A<_p{Yo7|c8fpx#@q>CV_rv$BMr{N#JmDQYs5>5!OzlRs4F7%KDhvtxtK z{Dd|}!s*%sLnfYnH+912tuKYjH{o9%d_B=zO27ipggNNbcD*=X$RN{m%Ss8P4t~{% zo;1RjGc?Ec0%D`sJ8kdA%S$9+&!OlWniU*0wm_Ico+xka!eN524I5;qujwA@N=PV( zO-ce&IP2~a#mIRBKQ_9^n|2X>sXsZPJWJQLF7(TMPo7wshR0|T%YAJ&#~|UcDxK&4 zGFI z*tBxni9I|z9+lg~mV1+7d6r}|UI55`BW%wsdcexQJxj51WwTMxf%|y`bA2<0^TmZ4m^V_0c8$kGvSnLx*qc_L=1 zOg84Lk%?~1MCASZ~-7gOgcU}@aqk%co3x<=<NjF*{stG-gDv4nE@RzT!Rgij!Bl zM5;}VGe_u;pI+62@Ew%uwRy`W){+x_s{@YMgTOwpwqev<1gAO-$q>Nee?@#Pi_%~w z3RwG8YL(+PJHq!dG&2e?NR5AX0rt?LKosv78rH_=n!|tEnlS6z431tvlxHc{=#SzV z#(Y&XDQ9--Lh&Qgo^pmr2|O4#QNr!pmaK($rU0PZ+Ckj`mNfTRl+#sqat3B?rJ@78 ztTwi^_y9jpw3!$8^<+&bfe0tgbluHbsgelu2Ct=pPT$28-*ic;RdhyEiS;Oc$k!da z*HmL?9%{)cwVeBZULFzBK*tzm=_w+BGWwBP;Sd{N7*r7Ho4N%sesu`nMH6KdzyizB zcWBt-6ylHH6S+ap3W`UQB5=RgrRRG z+;lVDdzQ8S`P*&27g+*3-^&lOlUeKO(YqGnClNlg4z!KzS1<<(%(%%97W`^}e3_~h zo2>mvn#$&%m6e=+z%iL+O6-`sowtS-&oz3T4=gnY#{IXR!#(kRIvcb|TA^ZWQd{OH z|N9=I?9>L3`^sEA#%nXHvztK#GJz;RN7fZ8;|)uYn@{bhrOb>D$Ap-54#uMZ0({-? z+d(ZN2l32fnk>k=Z7Ahj&O3iPS1hs0P)=Hds<%oe-Fz514%l=`XZ}_;1T~7 z_r*c!i`km^(v*p^@8`h~%CXbf7tKs!*ExC3J8|RMr`M9bnwBp)+ikzbSQ_GZb0Se@ zA?EVZbH_ifQPCN15oTdcK5#TNexVIs@-3?XwRR52xfnYs{y*~ZwQBUlC37A!Xn-tki2_qmQ(J9|m0E`~65nPKHNz5=?j=uRzf|EP}-uB&AqLs<~L;|EuV{e|mlN#+cmSokDRrdl( z(Eq57rFCcOcbPGyQSyNW#VPx$lZm5`74;bH%qAo@DW283%c}&5Xd&TtIoNppF~}f* z?hao@dV}(t%$uddK^P zJZ_(oW}>)?LE4C~L+TbQ)OSEVo9iJ({S{m@^y~leVRPQ>i9I^I`M7E zSf!x+#4+iTOdA=$ZCk^awee$>t!pOpzVR6*y5yexmO=EgDfhX`IU$Kt>QjC3j|4mZ z!xcw=mI|W9wZ9zyaE=^J2+F-@`u&QT=H@`>)E^UGHBtD^GE(;O@(Vk$@3pd7^dU*H ztESL#kQB0kel85eqeK*}An_VneIvYD@1wIMujphQ7%qv0Ll48H{Dd^(1;sDoD| z-DJ2w-*|kq&M(Vt+;F0btZ}TfT!83P+By{j%=FK6P5DrC_z4?aW)^oSq*dR>nP9AT zz;#%}KrOm=8Ls*2E$3tTXHy8SP3oKg-Q16|y< z&jTjdu%Dkug+i~MeRpr9b(CE0ZmmwtubsL3L@!q!#hoLE(vL7J{*O@Q-aLm@hxX}s ztg$(dDK~r#Cvw!#C~R*A2ryhzcW`y38gZ|9ed;?1&^o`JGM;;0+Vi8y99A7B0=Ae9 zphwGo!e!Kj{}V1hg{zG4o^aVI{2&Cc~7)cwj3d zQojFFjkanh?&Jgx_*KRg2GQoWOUvHF`Y7rK~_*lu)C%p z^VMc{`XA8`*|d-DbenTsg+sL+bP?23xj*sNAI`;l5^mohMNg&NLr#k*{p@OFxPDGZ zA_>Kr4EoL{<;XU+U2&2S9Z2t+g{ft#sia6 zj=IOiu&w(c%I|#DvJ5$6_R>-)9~=pVzX8W8xWVOLSW1kskQIm1B~9veABy}F0deS} zjdg&!IJAT}5XG~-?N?0*0&mYUN!P{q5w8@AOhqAmBsZ_k2@R?XS(={TyL}*mcn^^l zFulLySw7j_%DMNEVEi)I8olZ8{fnj`&*phvsE*(D&HH~}?QC(*I={bsN+^|qWr4j4 z){wrIYPAc@WXqwVu>TS6KzMVlmJ4T&r%Pd5VOLOKEV1DITY2xZPI_#Y^mj<1_@3?| zY$Fx#KC$X?j%<7L1WL`mqehNGD?*1O>4^<|%ZZ}f8E@=``2O3I}*wP>W*dez*_4uaqF+1GzZ`feix*s)1 z-8%mwLQnXu#9u$*cG1SB(y*5NW#9oLaBqXqe@!OSIEp$YNv6f}d1Vd=1030!P6D1; zuf>A(GpohsaX*Q>MivvGiYMWw4`6JfcUGKeF(macTLMiPjO)S^U;N|{KC%*>txuv+ z`%<1bApiR7?S-e*J~&{97%cUXG1;7^=2vO0GDLA=Q6aG2e}IzNm3lcB#8({^nIn20 zL7V;%>B~=n0ZhV$J%w~MpH^{#^IZLf?vCLt@xC8hyU5bU+*Xu4DuJe?g+2EYGxE;` z`NqnJu(~D2lUvX-=AK=)s`5uSRv7BRH2g}QjTnr26lasbg)5!>+PT|1Yl-tWjC>Lg zyW6S!?WlLrL>LppXmq$v zw2K8-4Hk?g{F$*|SvVE7xj*Uf4jg#wbfyl7&zms2+Zs%x6Ez25ntFac;Bvk zFXmv*JM{L-xc_9xe|75uEaCB&J6GV4orNc>{ENS@-HwTuA<+B$2RTW&4^kG!8U`i61Iv~emVdUSIYs%# zMkdq76iT{!O1bg!54RYVX@%1c@1%E>%=3cu6*bi(J0*QZUi+-fB7OCgyEfdunpX>1 zyOWdBK{oUtY?qomk-!5;A2rqn>o0G0aYaFxW`(VjV-7QN)#_Qjq+mRk9p*>FaS9xK zhKBh65*k2KMhUfX?fvUki2uv=+;c#-Pt|dn%1ahMO_k8W&JV&t_aT`oUCL1{NI%c- z?)nglr}-i_cBHTJZ}zQ)z{H>ClE%tAZ~r#5gyr~9VuM@ZWx!6hJ`F3w0*Z-=i@ZAN z&ned-KOH5Br0y=CiIh+hnd7L(o)nZK=QU1<#6;Ms2$rLnQWo_&`ZNNQ3lY|9DIQIa zZ8hLmUF;^0);M4mT$r*df~6tPZFnSVyO{0R>YR%G=$Imuw&rsbop5rNNM1akHhx`T z9#qyDPYfv@&P}Ek$j~kIsTeX|X5eSx#jq`7fY}ykNYzc6Q7#et;2-to1yCU!I7B>_ zWjYi-7z`z=wss0pt*6F?O)cp_8hN$|OG?ZlOP2gMKRhBWFlg#5MxT%1(RU30zi7RT z-I|g^U^tzK;@{tB{=d+_fi>W{=xDwcZ;YK(8xwHUum%Vx&Qx_cZhJLT4raj;p|}^8ygL09diAafq$F$$C7~U#HR<{ zA^=ejI}jcC{t!fz9BuYUzyB}C;3JU5iJ*j?KEm@`8sry8uc(Lw5_wh@3Z+5^tDZaI zMgJ|F*ttLWGsjY0mqtAQdacO9S$;G?I4r*a9&O0XvPX7yw{%UWY3hUmHXn8VuX)ULV^5{)XP8o7E(f1If3E)%QL-u40#y)S6)6|MS|z*BBNYUcLUC@ zcgK29a{)eajygYo2LUuwa%M(SF0!FwI0}PObv9U!UuW4!GyP_LJMreHI)tWDL5v{sn{yUOsU?v~u^Zu`-2+=LQG~>UQ7A>7En51)N2?}vJ6FrMd+uH*g>o+5K zDg+zfegq$$1jJA}OP53neo2qfggt{Ej_&zTG(}@uByVHohc!I7x83S{z4&B^D`2ASZX2)S>9QitbHi-DZ&j!>3sbqaijfVb?`1Op#eG&y zTY2|n1mBGn$4LZbgkRBzp(0aBzi}xH^0M)D-dj!RO5~D~v|YVapK-@4>r-QFmlU8T zi#e&w(Wu*hOZ^3n&g}2V)65{SIzI2%hqE`{Ydqs~G#%E!?I+w|`_uKO6x=8V5yqTz zXqKSmD{SD^x0!c~RM~2O&B;*H=oRi&X7WZ*DMFH~?uc7)mMdMU)6PJkQ&gRj$#<(o z!yBTmd5ped!8Q3mX2aEctbF823d90jD~qPK3l#DG-dwy zP~CL&(J?O`<{N8f2o(#kdkvM;q8l6jRcIBF@G<@iT`Tv*FTQfRgS;#fYQY*j`Go(# z8-@wgwmUMMtXYkYRPpkra}jd_>rck*is8U#UgZqGIA%0a(*>1XF8c!!bwEpsQ$ib zf8%R^eavbbh)AilDdru9;S0w8O4Hp)%W@DZE;|Tw@=egJAq{u`)r<=geJN_wr=_!7(z&?o;dQsX^di7mSqKHhbeAVi%^y=#H&=a@_XlHCmN9NwA!0BW)g^|6PLMRl? z+{Rq}38h4{zPz&DId4i2*r{E_u@IWQz0O1MwUK80b7lrQSkhLU4g$Kj6nYk_$&2Df zrz>U&bSv2+xvw$Iin`zd701eht9aYR_x zI10auG|uvZp0z7ackTSR$kKa*A0pZKg%FX#U&2*VARK@PgGGi87O^2$g(xmY8GI*K zNCX3J(Y5EzkGfg4F93S8?Yc_oy8lT9X*;e(|A4y2Mnjhx_PAQbyOMJ9F~&so?x<_u z1IAKIHcSzZ|Ahwd!p7D=W6?cF=x*daIT0+Gx_fz6eeonDj;M{;tmtWZcxmbh#q`K= zpN8iouT5yeES8~epQe1PI}0L2;@^}^{h)OqJTgB2X+ z3ad`u^u-enkCl6g#C_Ve1xIBx^~LKU$TXsx2BIAkl7DoY~~o)OuY zab2{6g*{B`#`X<`A08il>az0WQH~NuKh4&PELr>aIxGU-!}uftZA1*r^*GEL=| zET)2TuhSgUeud+`{LiK~_d!_w(|8l>HO2YeZf{bu=Q$%#W}EB3Gg{S2xd|62%KWMQ zvwb4w#}=_(rXh#S}(_%%5ca>rBRw)-H5ntV~NoN4oa<1Y}`}uBqUXCZUZ9#`%J!@2Ah3lFk7n z#S~0jqk=VIzfMSc;P;RB+~4FbA6cBM>SH@c`n4>c!y^$pqsU1)uFOE0|C0syLEpE4 zM^_)WvurR>eP4y&R?95z!XVQXZ5Cm95Co`}G59{^sxgVzWHx^n&eG8o(JA2jb^hbI zOzuhaKg>b#(fF<#r#}uTYe_l_ocAK?mYhZ%S$3k}o}yi(0`o>Oq@NdCOkrNj+U9vR z!-iLnpj`VVZ(4_~uN@&m7ag>Z#IRGKvN=E-!h4EEtW{Og;eZv0xPri$I*S+#Vc3s$ za_854lddtPx_-PKs@*Ydm`b2<74zU@=mDEB4&N?w7`t^tid3>>D!%J--O7o$;0YYGnNKlv(Jn=!_m z_|~SvTv`72fKLWqaTQ)LNa$|E7~{pWlB`>5&Gu8-P7xqhg*P;lcrKQzyUL8MUvzW&GhQuMF=~_B%6~v}ws3qfUbu_eHXO^b(7~U~wW_bcI`Md4{GOh8 zo>@Jy_ufKDmt8KHLn0X4^^SFc0XD}$xb)f!)cUqdR70iT98Fiu0>ZYz#{45gR46Ao z<>gpwg=+TX>!a#U9mGE>3`i8?i)xMZv%VC6g+KEL5B*)I{C6vO1N8&1(;G`-kqhRM z8tF1tIIi5Q2TTk8C-1D+bW!yhAD|~*GXY;dqQEL$W}L5BI$qu`$@p8h(;f_PGM(NI-^aic5Y zL8?eW65+yDMG{AP6g+KVF-&7aF(MeoRHGeOG;p%cE#}SQZVe+$)&{S44I;X5PaqI` z?}dAmLDz7_dyI@M`ysUAq|UsKmOvPMzfAN5v$4XP{V8)dky*7Spb{S}K)i#f#`*^O zEhBxjT3*)=BU+9JTq!o!`nbSCb$`${1+47-;wF;Fbn$8Bwq(d%1I1hePc*+ar~V0j zoz-Aq2f9$apQ^X(7QN|@r$KU8VY3m5m?e{5?5JJ7CEHzRUn+zUj{GT06B*FNLjE}@ zu(Cw_8V!w)k#yA0`22=m6@ zh$Y1{Awr43%E@WX4QF`65i??TYNBA-bBa~hMzsf4*p_Rfi9W%E8M@`vb|qA&2LDWV zNgerxy@~Mt{_0f?+CA>Nz@I8vjb87{wK8jX@qpysUJ+oi{1K+AM5VWqrdJv_s+bEL zxZfqXfD+25`~?If!_FlYfv-;_;VlvZZ=N%|heZ<#@xzT(dNLce^g*q8y1ouojO!ez z+3u`J?l2Hb-FRS54fp5TB}a@NZ{ZRu+n49BQ>R8_%dF`B9aB15f>D&wnAji|ZGepu zq2w8OFcd-Ckw-f}2Qet(B!p}T5QDRWMxE(Zy>Skz97m7X&W$WeU(&qLJ9#eAaEbkssrL zO_^>KxBhTJ+IMC)2`uY8`Sxq~OJ`FeS*}4FUz1K`7eMsDg3a{K|6g(T{-;*WvB0l& zj_HqlLsx?ZZo4~nBjf5}^(3x;!Fy3A)AbqtcI=_5TK^$SSMMw8 z+-Zz%t87Vr4-!g0@7i{NIsdr=CdZAYP^^Ta#>|p5X`kLSvEUyPO@W|RBi~W0I<4fN z)&jUPIzY|D|1pwU-c@$;e;bJv9pzJK27d&VvSBnB*u>9 z?|UP1EQIg4*9GWj9kucEW1*0t;??!x|G~TB~`_J(!@hQFbqS_wRs_UzcIj)BO z9`v@Wz0hbxoj<{p$o2{%R+Mq@iF3JBgRR8rDJ>h}(ov%pHd6QpZL1H0E`oN9yRtY8 z5g-!^2#l79jJ)S~&EmT3c!h%S9Q_HN*ByUL$GkCfr|Kzv?ea0i{B0ql{qYqT<7#2! z)&*T+1IC&r7`+}cIc2g1@l)QI(K-keS}wE%Nn#jPB?{;{Hb4x%c);qa9Q8P9sN-Qz zUN1fP;j!`+C1DsP*BDP!M{V#Gni%R2D^(Fq&p5sy}GJ3W(wN(H(5~;%DGhG(mmsQ`5MF9@BoR??` zpkzHX@J@^9n1X7Yp(^FL6oV~60nq+ZO8}PRhXeB@<2a7JG>_VnL?|K(q%ZT5bO9yz zGpZ=>5+(mkWg004?Ky-ER{&L3pTs-&;3$=5#E5<;{FBO&(;r)cWcS(nG|vpn^2$Or zLQsznLf^`&oA#BR&&40luCjha@#!onto6|YyW{qD-Og2BwyK*Y7bK8VMxKHzWGq0C zOL6wb+MZ^Ze(A88fOUR;v?gp}1KUyw9)ng8e*<=ID%Sa}P7CrvXC)x|f&8DSHjgA|_(?l!*Rn&eL)+J5IlXLba zcnLlD7CkIjhYA;-WA!u{DmL>c@1~X<>HJUzP5t=#WKJT{(zd3}s2;b}HtkC$DOmOY zs(9}%#a+i0TI^>aNav|hBZ=2s-yU~f%{nY_N{k@aIclFF*ly%Rg7uowl1Wi=Q3@cc zY)EeP;kgfKlfN=Z(P?8adUbX?Z9{>xK0WzW9bQC^DajhOK+*Ozn-sF~W_u#rRJY_y zJ7}u)r&e|EOZW$Opx5F+D5U~JsO7oAfWd}Uafg-DM^q*6lDVl4O9@+{&zR<_+ZK5p z`M)!a*Ni|C)nj!_J9$G_^Yi$F?_Rv6utiJv`t|CEim5uNb?zuN#+=y(xLSE{AZ+Vp zq>&(<`8Owzq6MuCC*QJPtGQaQ7p0|e9yH5<%PAcyrGFny^T9}oq;E*>Q;XKTvNO?g zPR!{Dk`gD2%dM6IXbP^R;tcT+ZL5D92l5h^n!kK${)Kk7P~&zvV`9YcNaDN@u$q*Z zypJuXL$s)B>HNV})P35p@pjt4_kVgG%=iE)?tjDg`u%@uo0#NMsLCa-Bohfe#2Bobl&^tAM#qaUh=p< zFg?pTWn$#`CO;5?kwclRcOEYG81wlHQt=NULpv<+sM&4|piv?f%HHX%!J1`@d zZb#zfMWYe&odFF5@lq&qGJXFj3iE%(OSn@;nyQ*svMn;S#7bN?eew8y4p+JxEU)S! zQE4ms;uoVlIkAvh0?4)A^SYt?Ei5YX|is5K;roI2| z@O-L!H;3_yQ0jCf6O9dNWPo2^m5O#~-ih7WYZ^+`TKyb{hIY>> zly2eSHB<1j5W}s=!7h#lq^RQEQ@JVBwy$)>u6sV<;H`B`63-*vbg-n7`mLt*T@R-( z(umkjAjxvR1BI6Oy%x@x!uLcYIt-TY@h|G)e}J7wk5V0zC%LZ-W_(7Gqcp-|)9`3) z2{gp>(^*0&0X!!ULhey>hu=fvO);GMx>3G=VsrP1Dq!Lx4veNAh*ht~dA-kst*Axi ze-y-e?~|9g0NAA*3$bEcf)_(#HrD+Tx?cPpYgQnX@O=Fbw&x#SK0uvoUe1ia1@tYM zu4eu)nD?TgPa+0rS!_z~^HKzk$fxcZ4e;tXL4}v-sp80kR#xvusa2lR>F8F$<+`b8 zm+guN=EUk;5an{_0c$80oqVR5+WhNX7DO+ll2EgYlPl@Qs!;{2ZRraeF+$-Ib1riJ zy0l45TY8>&d*Ckz&+&uUV2gVj3!}AY$VO5H))@ot;Qv;Q?=VGh|GH)UEv?DX%`Vv* zpCp>#%10Cs%h8(8C^VEk1Nrr+L+_MDW#Ym2^s9w@+n|oQ_Z%QLtw~PUDk_~fE}AKR zp++k&9GgC)PIIsWh12hDXs$tt25a$yYp{%-OQ4^vypHeUF!)RN2kboEu{(6Vt?WKk z-v;%1_dTSBbna$99E$*U^jOCxmK6xZv^Q2`OR3G@DvO9b>>DwJsbaaHF~racF^*qh zS-};5uuf5>aWa_WWzLUc99yYsZl$KL8A7<4APG7M93fg}G4x{9sJ~cZg4}o#6LE!l z9fc*C$@&sgND}-&F*G#Cl-3;#@ZJ1Bv524yQeyj<9!;8^U0JlL^vsAC75x9galCI% zT(l=-D4;u&Pwce@^Y;<_@KMe>CL-`UAT#bireJ`&z76C$VIg-Nx;7Lru(I#C8epq=mCk8=kgWTL&&Hv7vxZ-Z!I+b5|LZ zjPbD*O%BbCGk@12K?lE&)M6P~@UuHZqb&dIGC~&WHuhc`AI52s?J;5xL z0Oa>+W4;+YMF#FuJ^rS|1^a9~pb5-85nV#ACb{lUk;1ZdUm7{)Ngr2XV;c7C7?_7+C|TGvzIxhd!Gp zlup-c)1Ai6*Vg=+Njv^wsu(}(t}Yc2hYlXH)*Sr$$q3MECrs-YVYc{30Bz->V#xw; zIQ@o!8(`0Es^;>gI3_g5^6$}$xU9OE<4K5qtP9)ZZ??~^6CT({rx`S-z?sM2} zEm)L_2Xd^H-Ke;u!w_HRoAtAgejh`l@g^dV;jF!H2^@5H@TZM7me3OjaqWxx_iMl- z;~LRNC{4faheNUKtj@^~L!t{T?i!|(^S$tY+`Q49IK_%v+_@4JRjPD7QT0IEOL~Hx z)Nxb%Fa}K@ekliuU-ghDykPhqwXJq`OGiO(PT;~wid00?&i;-DB!KMw=XPzjd;jfKVJxs7DHO8G|WpIFh! z&<<`f4@sdjo4t|i5V|mbO9AVuz=AC=`{-m|CN`eYN^skjDf40GI_}yNsD0d16kC~; zR(z1RL@cJYBw21oVnREKKS51HD=DvAEL530OJIzwW)6$%im$n|PCR00uk@6>##5YuCHmjfgsLp%Bh~ zbpVWqdrM3k=@;mgEvORS%9X3ldr2l@kuEW?J$fL*=g6BF6JWz? zYP1d%+8-Zhr;jgzr8^!7&v|dGIlZzviUJC70g{C;D-T;r zB}Xb_XnBMP!$DN-zQ@d}1h(TE5LI_P35%oZrhmgng(5~c&HGSoT)@32(iEoJu~RpS zLKmgGVFxH6VezR)si8WEHz_0|l}BS3JGRp`8Njlj%B-K)$FSZT)Ks{E3XV!71ISzi zf~X>4!4pljv_S#Hi4#K3giI_!1D*vG&~{W772jd>rwBuYI0WII4Vd$Y7BF!0TF1*E z_n5toH-f-!EnZ0b-s5dy1tK&q2N#Scyuo6PHPgQH z!(8&}sJi?xwK&cF&0&0u)Ql7s7%O=^vDuO3kO1FS);;ez=(tUGhQ>|Q4q{`H5}m70 zB;Tzl5gZsBT=g7IG*v+{p!lyat@twUN*0IXZ@|d$!2oioVzeSj(2W=SGBL5g8bN@e zOB}GG=hdxuL`MvcILYz_yYLkMS%q)ayvP`62|)N7(k#9D;wE+pJoz9he^||B&L` zd*to`vn4=q-f(_@kr9k80Z|PS+P-7lDq{D4di{)Sqjx`iPICNe;`jFCg*eaVmCdh> z_k;1|VbG5dKy7iSc4p@J0IYcE7Am24(Ks2TthgscdUwJ(HY75El}pAsO`k$U!+TYl#azW4f+Sg9o_pH6>hfVMNfD8w|p3iR$WU~ zp#t8Mb5q^fg|pQC6CbJ1r1o4EUN|hsJ!4E3zyz4`T8i2X@xHvcRZgbWTT+42>$=#} zfN6bVO!3#Y_?UF1`zGjM{1HLg zNAL#5F%!mq!54?A)6xq0t9hL5?sa4xBgY?WpMBWM$Upvv%H!!DlZ7xCy6`wAuC9dk zzi^$)OhHP-W=0_K63Ho4cO74;5ac*Qe&b#R@kXz+a^OXiOG-AOqkG(*Tzdr#m*Y6u zp;ryo@@&u{j zz-S}wZJ(EUG!m1~Y6n<<0J7`BxKZg^({(tT?#Vk`d|oITt(To2-Gf4eV^)>lww_ZV z*UMaA;3nu;1c1=Nwiy%428m?!!J^UGS zeRDt?3)#+$Y@cSS*b{mMg5+9N7=!4qs4_KBv`r^5V}U}SM8^M0hwgjUf-pTRw&%5J z!y)8QXoroD)}2HZ5lq$6`a`fschoH=MW!n7DR;6VdRg3O&-42TZZ9|0r96DGBVW5H zE#=j^mJDh-iN((E)b1y14;Hqa;WWp)hlL5WmxY#BUr-3#m33IXMT>yYH`c^_v&}A*>lxO{CV!~J2vEA&gK^RgPr;61s_t89)^D*!xGC>IQOC`ZIaiQ1 z4_%wd7e?Pva;qX~(-gDaXxVz+m5DER>2s_o;mp1QFw1j8M zg_gdtbi6m1ND=QILvJNJY4A(Ex^u&CFm0DFyI9n{{`8g^-9aOIF;`A##{+F zWN{t-+TknH<+<69LYg}Iv#N5;bp>CMJi_V4Rn>wNH*>;^=S1Di0Sq5Gx6aPqaU^WgnBkU6N`T=kV!rtQ;ps)eGsG2!6KR+rSK{2uF?E;Gb5pX8)ST?su~b7n~@d=qr`St;U=7p%60u+G$6Bc2N}5VXmlb zmf23lU}G>&tESzFGy3@)M^5#|iTUrIikh}g=;6rG3ync;YS^Fm1621bk!f7t6{lKQ zeeb+!KGrG^$QJ$lS8bSLoZ&u=K~Se5&vu8g1AwUnjv7t51Lku=|;(Ug$5L z>`oA|*YIQ|v-vf06}~Uf@_C^(;3zPkjj1dcwT zs0L;)Kn+(xY+iIBwH5R=hM70)VD{zXPuK`ZG~UhsB^F=7d(oNz7(!6NE(cGzzN*K< zUu5Aw|72jcib+hGkz#FeK=XBd=(Xa;r2C^(1!Tn(17$z0bKG{sx{q9b9!%#kHyE?w8?CQQIm9 z2;x#A#6W5~)W{L1H~FZN12%lv0_f0keCRmq*0Nh-8$U93uJ~9Om>21hy50E_|04<1 z_pjDexxKdh;~k4Y0I8%ZUnX9I<#z*W{RlM24=RsM3wSML4Txz^?=`O)+`jS+7>#C4!m#RfXx!`#>K!8aXqm@)hh zIhUpBp2Xh=ZC*tB-gzl6`WP;A$;*E{bbd*(h*J!$LwnA_96Hvx7T>sUV}BU2__vcO zU(M)(D}(R^jeao{Sb2#*P$VkBgW729B@I#QxmP1HMq7E&3wsDtUSLn+?)AY+3H!aMICpWVc~!Qbb}yS#8Y&7 zuPj9rGu&+ce1>N0%$f7aVSM|axxJTgJv8yac2dVOtG@AkED++B)z+GMgNH!0kUyDp zCwiX`TNG%8?*jzA87Eduu`m$+ckQqk)#GJPOj=+mkj;+LnA2AHIq>gHl>^TI2yy7u zhb0GW5N)Mi#tWCe@ntlSG%N*^)~X<0X`LfDR$b_OJmY#1N&<_ZJ!(QY#Q_g?4rX9- z4yXWd>umAQz+g|;y3$?I!Diq2HUug)_0p)GQbIOrasQEArVv0uqzBC4D66h3Xnd_} ztr}8Yn*`Ya`8~m0ObHFoKPb?{_Wt2G8XG~-7FO!;?ncmkUB%hGsN0f_SZtiS$GC3~ zj&Lvsp-YrAKrxhnVo7a95U2-d{#PJj!Uhy&wD~`1zWI6iR(Ev)r7bn2If4X$Q@TsD z_(~FdT?e~iKLWPhjkbeOk;mCSjZqu527Pi0__;a0&JZ zKS9KT#V@P-%lFCUk4+65Vp0fQ8^yaho582!YO3Hvj`Qb zclZC%+LksRn&N<&`?_j2Z4bnII8vSp9#`I;6n~}q=1}ibs)fAI)F-_Bt%6COE{f($ zf_$y<$d9NWLd{>CDZ1Ci1OK8>mC!`y4Lm^4u&2tR8R4$u*dR5Ce8(&CTcrwvHlU7R zcC}j2ruxC0_N!Sq$nTHjLi174UyT`p{I6}hC#<<7LJ;=%KtutqCQt-hq0N0fg`5H#@ z@x1g9m;v}9Svt{G92*yJh$dHePA+p55b@u!19~!x-XKw76nK{Q;xoSLXFk>e&><>5 z2cd*uD=u`|a!lBQFk4EZ0HMf$a0vsf^jxHN!z;(J-b3AJ3JZ)q?V?o}cT+uD_cJwC z5XldBKh;z;2>Rmh`lK{Z+Tw%^D`0HhWZmXWlg>gn8XL5x3#Yxc1SByB?E9OcZ3XVn zT}j7d7zNRY`4UgerP>2S;VUbYlkas{lB*ML6<@Gi3s=KjMUwli5M9!A{;Dg31)57z zCOPRBxL7bF{GD35i6dxaRr3>>6RZ<4A9t#?({m-^t8%JZgEQo5bGK7e#4Z{;Dw?bI z(a{9WnRlDg7ZUOd|7@Sw=i$HhcZrJb+awh)j+R)1xMCNmcCi-ao`6jVU_?OENN%FP_wNvi?>fCR* zTh6J$>9ChkbjRF%+h+q~KVvatY3S)Aaosv}=Q)nmFn|!wv2Q|=PTjs8uLQf_L z=%DR{HLfLvkCte20?w*B$3^F!=T~2|*c`@5zo+8ze;`&1?z0A$C(RzI$ zir05~lt5dr(O=B!&i^K!&<0@Qsbj9Nqv@7g&`0;1KZMK+ANPEmIbX1DVH{ft=Jcl& zmkYfc%Q}6*H+>`B5mU ztMSzzy4wQo`w(Q7`JR4JpzYS`ES}vPp~*YxeN^RKrC;6YoVrD&MD6Zvne>n3oA-AD z{?F&$e;+!gV^j#1-o1*U{;)IXSyz7HG2*&s|EYzL-3 z_LR%qRiU|smkY<)D>@#+Vvou^i)2<9AUY;1WH{=`kZW2Jlk)VT=03@1xrX=5+lyS# zU?09e*9Ke4%t=~vrxsRsgI^zux-WyBteu#;Lqh5<&9?7<1L6W{YH}oWDYJWaf5p2d z6qA(i0!_lX^2`xckD{Kr+Xn*!Ri#XW`r^Xx+qGe#lf3EMUZ=TS;~aHps=69;-<_L9 zYE6!~)7;Q<(K6*b4GRT-7s~F(_Cb&lDH;A}JG*4lb1HPr!%k6OV_lT%;YGJIdx7Yc z0I$Kl?TYxoV64Yd5mA?&1cbS{-E)?b`q}mn36unlXfK59ngO081-$r|CtMG119Y6Z z7EF#{fgEDpF~-}y@mlW)s{f*b?)R`j4TAIXML{Yd*NK5Hk%6V-Hw*JQ+lGq-V2;rz zk?($8+6GP>A2?rSbd#RnbRMNNtaWLlB;Ds2^dl^vADHZoGd!Y#uNQ7h>mqVt4Y ztfw0co`@}eo5aQl>wN*S;eEJVNxd#&6h_beWzTZ*S`sGM#!iE2o}sY~{6LSoH2KSnddKuKq0y?O^?$&Q>O{WIj%ybn#D_ zw&w57EMLL$p>lcQ(BDI!etpikvlOWFeXnE7*qS*vTumJ1O%>f0(CU34e`x1KYCRSd?(&8xw$90z5{=W_yR=JPxYBp5QE2i04CZfaZ67+(DwMLU~5HGEFgj5Q$w zpNt}ry82;=W;!!)dBfkr2OPS>)rKkC-aHJ$Ldq<(JXBrwydRYwF8^~OiJ4yfZn6n3wdF5T)uT1d6psN|w z-{O95yl!zdMzq0_M-x<{?c*0QgjYW^ez^Dr;XuR5G}i{RNA4@GCZ%X+5w}-jhAA}6 zBW6Fm+I0LMCh>3*#EDT>JS(O|AWBxM^st#zdRUEOf>C*z32LsNUGe&0e2f@Gm21-T zg-~@u{~3>u6XiRB&JAbm6yubZ-@fqmmEEltPRkBE;xSB+g!YpT4-8H&J_1wlfDnDi zt93B+XLJPD;JPzSir6~!`gqR$T9GnvzED9-?r@P7*a1887l^{C31hs-Ka}tkO!15IH@g(s?#zL10RlC{o0WdQhmqNruv9eKFMZ(?-8tp68fKpGurJb`d_g6WN2X7Qi&JyZd)37>6gj( zUp0Sdu5ay43{afbGJ8~&<^!DmRwrg{bBz0f%ng&yzL{XkwsRN z%Ei7X`sP6otTV^-dNl$)yyTEe!FQazlIg0KMz{9Rn3V|3=~9+3Sz~J7`1R;W0UW8y zsk9O!r27DlRHSH=&&$MlzwudsC^THoJE-M3%iRx#_Ou7Ioq%WXE5?pT0f)^8>>cKv zA1dv~mGLX`tKFq0Sp#wvZAa|VL}Y1)ihUjl>PS}^GuaTz19tha=mQ0Ag}z_qc!;0N zIkywqJviGNcz^D`VdY+@^n6OQD@&Pu=qoO0ql{fgkMZTh`=XRED+7j(EnW+6xO@sp zpT@sh{Ns31KNn^O>Z5lp%ZU;Jce>1jhO9}XvZl~3ZFKLfUJB2>ps~|`lk;bcg?_qz zcreg8>_%$Shakr+ghbT!E-|E~x@|e^MhMaTySAqe%$=>ie=eI7_mc|zwfqx0-=_~0 zAquOUZNquYJ&lGWgZie%c#yz zt)Hp(-{g2DU&pCL9}s`yIwk*ki`iq9{Cv9HZ@2R^k^E|2olMl_>T>kq>P)xit{;9B zX+CDlM(^nMGs<^z@)qM;A^vvaj27-ka-L1K5Ou zx!s3f>mhiG-z-8=9tl}hE;AP~MD9+PGwBfyzk{?z{+vUl+~m;0mFDsaHr7Kxih}T6 zZ0BZ>C;ic;SkI#}=cjzhFYl7|eG~hVQN-HP{5M<{yhZ612NDNO$|d4w(ZYU-dtJb< ziSu#7IG_f>DkfC?o9E_=-))Ci*hoBnv11%uhyk2ag9wIVB4b1!A>TxRpu;9l^Y5hy z=1rv4LU&NXB8|UYiy+(@HTnJ<-3F;qk=ftCNxg95^OCZ5lhp1j3+#mpgvQX?2}R z1!Lh7eH18w?#wE4B(hVeDfsckn$Tcf>gt3I(0gKE42 z4a;oExPx`}1_Vs$<=V<_1pU>&j-SmGyHny%1fqhfq-d+KQazZJcc?okW?&qBBQG&@ z#Z>qvJj0U=E@#1m@r2A9P%P2+H9mvhR+p*!5H@V*q3`a7HDGV3Bu}!aSLLL%+_b~T zwe^>lQ>JxP&JARBE;nHa8yRcZ7CF+WY0UReseQC&S z_dj(rE>T)x+GxJo3J9>8p~j+~N*gWFYbo5|uTL=~f0yG%j`=&n83fMT|h+(%+L!I(I(L(@!KK zoRVR-xW%_>Vx}84rMJCu!NJ!pSxkwp(@*PA!U6A~5P-=`GS=!^ex){|h`Ct1gIQ4q z8NO!GV$<Q3Z;@s*#DJ2k`2eXv(NU-nP1^;!)#_iZqz zpCz;UNY96mD`GIQ4=HbE$yQt~XL79#ylHOk&cy~t5FpdnT*h`NUSbfYbTM5GiCjrx^rh&gOzIR^BsjJ^#M}+Zph9Tg%b^>)-eP71o9;}j zxj)GfZaP^ehwT)>-x3h@M6~1gPB|^}?nbR7mAT0u7FdSptlt|GA9L&v+-u9JC~Ub| z;|796U!^iK?1aaghFzUD9iKSe1@^`##>!cI`$YTLp)M72CsOj^?k{Wlw8mh>QBS~2 z3RpQE1qHl;+;OHBTkJrvgHt6R7hDSkY;z+cjhS)3Wh^Dm{iPa1RrxSLEnkSwe)Ppc z=^SJhS4lX`|0K3V$~v-86+ENP%zGdRy1@zw?xBnhzMu&LJ0mz|jLYA=;A zOP`KL%~^Q_x}OL-zK(ODShxyt3`+Htj=?Y@?Ld9z`Z?hm=p+ArRRnJHD9eu7zEl!*{Zla2d3jVthV zMX?-Lwu#LLI#s`0eYS<78A%(&eb61ANzB51!qPi=a`lOgKa0&u?!i>DW4vL+C7ahn znD^8*3juT<@82=E)x-t$a2)Nl9AArS9GMF^1WYdJ;r%6UgnJ!52eAzv&YrdI@z^rE z6>Oec=Z>bshBa)YEqx^Vp3?v>UdMM+#sO@hEkPforfyd(Hl|XP{H)w%mTG9Y#*_>k(J&l zTiF};LRN%NYF9Ee=2i>eS#Y%qbQf$#44 z6KOcryP>eyvh>|ir}8C9bny7OWYgvCYEN5nf%}9A9s{a^u73|5KDZrk;`z z{WZU5kxA>bC7C zc%%+?T9LNVI7Hm4x><+JenrilSlEyHwyIns`nxKiU%rf%uMJ`7?k2n^lb-krc{2z`PC6%=CO@%{0LFrs`^o{#|9eqZ?RNzn6u{DcX> zPXrRx+P1u~Tn{amda6qSYd?;@Q^xsBk8AI`^1);4M8yAFT(fMY^P@804gbErj3^WJ zS1;)AE)_=dXA)gy{9r0iqB6J8p`e$2OS}J9MT!ogCYArRg?KshCy52BsaVS zLaKM}8P$lJ2=_+;hpT1Oa%nbvf*)}DU(r=@A{V!76pRz$q;ti^kU^Bmt(eV)fLlmF zY(e#L;;^{Nd;^{-fi3?_M(=4-cuszexErM8#{{4?Ath0xeoaOe(;+k{a+_l-5e$u z?z6uY(S*A8%0f%29N;2Aw8!$b#?M(vWfp~yBc4`-7nKEkQN+HmhZ-#b3jGA;#dM^o z)U!=Qn{aLj{Ii|isU?AgQ#1Ml&r#_m9SQWA-wEL-ekZw^xj9&!+E$}k#b8cJ*}suK zz1Av&`bA6_ueA3QMWdz$bMFVT6DM9~-oW?lBW}G%KV{n#f{ERq&Gftj-02QT2~~6Z zLK8KoRJR5S3+&Z_v`r~BtsZ>TuTO=MGmVgq?}}9D>hwrqV>Qg6M^=S4@#ieEzlfIA zLr~AV*>nTtV{3WJy~DYk6>=Ned_#DErhT0%ZE)~mg`jVAQ@xJXbUI5@buox+CM1`2XR#1@q z{Fn(aBgcvu%j%<%|7LzGGr3-J$=~x2Cb2z%j4pEg<(IB_;InJaVI^y_(?IcX_-baO zXS?qM@3MNZ;CiXWC>j4CvnnYjbkmrK!d+(E zG6faPcoV`FdyUU?(3=wYOk?*;ZMGy<15I>KxfDJ6G#BZHZm_&smjrI_Hv+Px*OSPZ z$L9(^+=tVqp_p?nTVQ>=s3u$Q2Xu68Oqt7F2#@m|T^JU2Hs}7({Oh&1s3)DOT62;( zIc;;(;=?nEWPC{+$)xBYkkT~v-LHr@84b;x6B7g9|A!xN7JRSX&BwTd{RqE2Pth*g zLOeEHk!^<1OIpb1%`xeW5wM_uqE_2e}z#Mti$)$_C?;q42WZoq=M zp$5|pRYe7;j|##Op@>tV()tJ069%4rrh~#2EDSuXNxWW(_AKSs z(p{`hOG)%m$%D_-t^=Iz1FoJH@Ef3QjlS!KJ)~7IyM2GP;vYD1`%FD7-q=Q)jKb{6 z1>p_IrNpTwB6&KCSqk>aIOS>5Yc7_}Wj~ywRm)jBWwRIL$-V=oM-M0Hwuyb{576z( zdF+9?4J()|#ayigFS_kG-(AP`Uii}rox!ld0QKnHzYl*(JFL45Vo7S^a&@+m3ZLo-b&B6n!hETP;z?ZqJoGgb8NAbr$fgO8)8{*mx^mt zum)B7KRBU_?CY3J|jX}u9ul>wiqU( zi?Rww0A1M;!bk$qedZbi!Y#?}%?fwx5#(=eSZBwG)-uj8Um2!X3g!&HNG%IqsL8BT%)ChXi)hq)^p! zrqcF@1d0Uv&!FEp8k`KJQ4H%*bq)OCgA%cTfyk zp-F#Hu|+~tJ4{FZbBxCFJA=2%6xlg`*?MqbjbOsc$zf-*fHUD9o2Mb9S~loG@!h^F z`)W$+Z5Tx%DzHr%C8ags0Nth~qNLM8&rCio=+isO2C3|f7~x*Ez%m+;Sz}ogvrTi< z8Whg-i_@d5Be7ls5{I3oqD>!+(P)3hb3apuH%t+a#Va+x|ubeTE^Lc$X0IH!Wc4ynlIQc`e5scJ+Aq*$%e zG<;HAmTA~)!V<_85dK`w7K|e!Vc&DmX%}@%T8YFy`k{!45kKqjBNr<{Nq7;XngVpk zOG8Q?k~*o;K(4F3%Yjt)`&&&%odCeZfD&AM8THNmVpi#OqM*t#xNnOm9#}t_Gm{D& zHbVMkV0Ap#cixTe5qfA~7EQ5&;`kc$qizHXRN6)VXh|^S)m+KvEcMWM-~9M7l?_{Z zd~v+-ae@VI2=Lu#lE8(>KvvSgk5wQ|$(Xsr6tD{w>b}k%^FMdX_^ytkR!!aRqOB%& zrIvseq4in?U_-w1Dy4U+$tJ?+C&>zpa5A^T5@=@ltdv{QN=JMo zRdBz(fAgS}{4J1+<|(?~Wh#lBLFO-8GZNdEy*PwGFry6h)^KsZ@973^2>h!c<>;zNYxc70pfWko^to%?f)MUiX&m?*^Q9UpCTr zoyPFRL%T>ma^PZ4XD#O$L9_5Xv!vktmlh1-Wee1`@)U;H&%(&LxlhXfjIH)kdWq#y;H z$1QDG_s;mWLbS%4oEXP9T+1~yY*4aoE?0pK|6}3M_-CYYWu+RWp+FxTza{xA~f-ul0rDnG9$9m0VpfZcJs;pjKV= zRDQR*Lh2H@__3Fpu#5jREFcK)46msZdTs=2@|rBJ(iYj-jS@?rpp>NDuoeL; z@~;U9LXZfZuw)E4pbcM|7w7EPo+nMszNtlrUHqDCqe^ME;aPG4I09}{i%mC%fJmsp zy_&+ujh5Fj$7uwjCI$?e;ib-7420($5m$Y2+p=qk0>{M_qy>+&R{@)038#;q^trc@ zh_YH*Ij>6`Icepf$gBD1y|;1lgVK-x#`DRr<3h7C5F`;j_nPOw1FpGb-R3p&hPDBM@2p80TQ&XL8ua z(&fa6Wq&2hvLhw753f5T4dy}zn$43z;Mpgb4r0A4^AyLQs$y2XeT`_yXI?7K3{+E_ zQu5+Q*=L+= zi+3qc+M=3R%fCgO4J~Rfozciv;$kEBY`H}5d(@o1g_4v9-IFuOj7Mpu1%ts1hY;UR zjL_Y0O=5!g0UzXjMuOy!r;@)kOc-T&c%!DIKxTpGidoYg##3I!EhXerjCM*q(u`y* zEC(3ph9ele6oG)1QAC$FhQ_b z7{p8pyNr{hms6$Xep3O0T*Nc-N0G@k#jb+sDO<$7BPUy~OxsMnR(^aNr)%IBz9inM z>`ZZ<(KSgBHvy89BuA#xvOgFrJx=bt(=E6PI4tv{ej^ef@cA5m6=KNWqPv#2wY()Y zvOwwWh)gm`7)=oOrD{1HJAawQq$33jUKY3~qQ3VoH~#Wdmt>)0{Ag5~iYj8U1WmM! zL$po&yfn%-P*$?eAdZQsr^qgl+{gki7fZI~gA}HZT;D7Om{xO7bs*DFGF+Z&qSohR z^^qpXq;x}eEz0vCO9Ny3I&-bRC}~vTZ@>!&nP^9tNhB=lZA;PN`j;zcpJ+4P(f3FT z$@!_HmXUkWp-JZz*>;a7cx@B_MQ*o*P+g?LfZ5q25B06x&iFwPO)J?Npkng&tK8W@ z63N|uCk0R9M8>O)F435)BL++uvY(rGGh&PyPh%FKtIJX3y-b6TX}pNi5f(^?&$J%) zCogS&-Mn*CcH6o}6G|3LAi4Ks4S5v|iOOeep#U9rk-d!{dAeCB>vTH&Y@rwQ4KzWE z{64lu9%q3yK+#}8v+;$Z;s-O+mz=vm7wPg2k}4)wY;|8X_@I2T%HJijt(SF1D8kCr z*+LlLmIy2(L`5jylQ}9;QUW|Jd}KLEzo27}V{Zeowd0T=a(SitBaJ4iP{Pzct%`pv ziqKuf`|wlfys(>YDL+^OCUKyXkJAP2-b~)7xBX z$0!b9b-#Q~<|?{H(784`(?L88dj96O7cLPh*IVGHba9Z7&e*W9jrom(W=B;V`F^w< zHga1{xN5|fmEy1z4MKsq4+S4iX@Gnu8kBS#NCX*3Y4+jUjuBu5qzV*!s19~Tp4c$b z=;mL~zne(}{3gvO`Wnqj_uT^O?#}pj(}(+kOJDRIk`g~Sz#nUa2jXPG%9;xGKygs( z!YLH6XtiG%l(9&=)P%E#fSz*($&E=^z(1*k3>INz4%(-<9{>O10!p|l9Q?ydRcB$Y zSalH#1GbZyp?dVpngFKm@r+_RKlRt=>hrtKZkEjp1tWqXO1$+DZtJ@svKj62lBNf64@LYDf{A$_t9<;nhl+~>g_Ec63>rfqknoCWVCu;h{xE3Ph3sX zf^@lVAMnDGjL~78g3iJhvVR!nehz)GXzY$FN>a7QvaV{63Oj2gg6ZQUVX}|z^M3c$e~<4H zx7Bpdu^(nv%^$G&)nu`(>#y-iXlGKNrI2Mv5&zDnrbLIp8T?R@`t0aTC`sOh7!1{>}xE>L9OJ|36l});sZ3qMJvi?V79B9uZX&& z_^#?eOsZP79>5B!y(SJCc+-P0ZrA4o#-)K>lo@LcT?+IYYUaq4gdrCtQ+JTEY|YT9 zZ&MlF;p)?n)>hi%Jcge5RV;|Qftr5GPA0%gv)q%&sJDh729pk59DOlOalR7jaA_46 z`(uwH9~>ct#3pk%^yjtA{M@Ac7Ee`e)&vpDsV4z6i=H|CGS6Rl(J-uZfH?S-6@whb zm%7aMu3g?Md^s1e-nhEPLW+&bt)<~5K>I?B^$7E2-SX^MDVCSxDW-0eNQlXzF3zpk zIv-OGbz1{jaIFu`Bb(b1Yb~#Txt`p;Y)!jEU+H5?7wmqI8@Z$-=D~gaBtMA6eVR{pQeE z6oTq4CWRDtp?_vZSdo_xwfR#&c~;UA5?Mcd5FNVn5R5w&Sy@!TlHr$wFh?gRvlz9+ z+Y+|kRQ*gcuOU<-SZyf3Y=p?6KC*9gjBd(O(RuaU_7F?qKxN1zHFO+>0F8W!&%1cz z8|(8Q4+|PoaXbtMLxP*11@Up^5_9@p@q4Gs$ETouq4Bv1Njkn*O24Q)i~2s+Wnj>J z|4V8j!cM{=j6DfwKulggIZ^$~!%BI2h@r49Hu$_u5(A^4&u-Vw;-2E@@w{D&-3In3 zBCuiqnjGL9C$3?p6_&v{fun70m`QJ1)>I~5Nd(WPP4|bYnWYAXo~}`-=nhcnNwWGr zdb^eCb8dSF2(3NxRMrcd`vL-m)3zKBUE=1as1(vngXWw$F(F17cvu8H+CqQ{9h$&{ zc`bznn_!PWg<42m72^Ay%-20l!g-fK3gCi z2b=p_L+bLPLh!%;whDES%=*5`w$p71BE(0|BtDYe&>n>>+0)ZW(GX%?Rt*Z4D4dG) zLc^TDkw|#np&u+ZM24c%s14QEu+xRd%@JomF!21`)~5eT=sr%-GXyXjk_&;B9OapJ z;r*mzygLIUb(AzNEWr^Jft_cQi74MnC?PfAe6 z?@+*^m|$5<@CVmUmSSj0rY?-(0=p6>`LU8kp=u$pH;M*dI8GB9iG`z)85`24Ywm=L z3TBVUvc=%DHIwWNy&}`w=+m@(CW24o-Cg-A=eQ1m^Ocup zyaiGDhuDfyB$Ia*4sAK(Kaep9mQ<_z0GeM9^?K0=MC~nrVT1 ziw~U!RfZ`glm@(|D3VoW^g5`ajUlMJ))-_f1Mp0QQ8YuKBs!{0{r1F{!#dKvxg~m* zc9e<Pxv;;Noero8)^ zISQmSljgRX$(o6!{WJDhbX%JfN>0S)A=@pG*xu>WnkxbFJb=@6pfRh#Y5t{=ebL;_ z0DBKgz4YpzD!0QSE@xFHr8cF3ksId7Lrbhe2K%rf4CJsXPX21Hv1pWd*0DNhUlfjB zWwi2f?a~?njQ?dU=KS=z}uafYvzdq$t- z#{>O2tlh{Z<{CmtP0YCsys~lOGxYbFSdtG;A2&$zFaF?$h+M)4Gv=!rSlE7igsY16 z4^!~emCWP;fV(XOlPi(&L7a!c^li#&G0qgt7arQVm|pzK_}5T;Dsh%*i(;tFraLK@ zy8UnSzsEKv>@!2B)~^Hl^@_$r?24ZrBqGN@tZ3b+y|l;7Gqn8xJVzpl=s7gulxi^| z3Tn9SO+ThjPAi|Ew~VKb-oZ;ImYlKl?M=S<7mOV5~adD7BJhvyH^?!6%i++!m~z?{F8hegxJ+tTD^HAb&k#FU*R`Cc+{cD2;ig3%RyrP9YiOiUD>8<#(8OCnVMH99# zK6J;6uy1I`0d`o3xXmi^NoF7eTf|?u%(Mn8nH@vii%9G;Eh2K0N<1Hzen=I&?1{)E zToqu%h$g2$X4W|VH4z|ZEfiFY+#%kc38vJ)d0VL-nIRT3`l+u1c0VY~aOe{8q2$}% zRY5!dp4x3%Cfjn+DbIQ8{?_4Wkh0Xxu@4 z%#mcQD9d#jTjCqP5=M2pEcVe?H7;c93$Y9qioeSdtgqs+au1ipH<@e*>|_*PPvIr{ zCah&i4Jj#?;yI8L=MZTF{Ey!o#EB&w)7!_nHKKF*5=#HWJ|?9zk{V|}UO-?$4Ey(j z`7^RUm-Wds#jB9r?2sX7b6*ziCW<3FOBntX$p0#p`FrOXjdP%(bs>lw8&qPpzeb9inj=!)oQ@ zYb@?S3|*f>YfgeUPp)jF41FOa?mRrqEtyS9dw-OJvofJp13VI+y_gBF#(mU`nFE4M zKojQTb!>N7%tG2qXhAlWSijn&X}J;Qp*qO05 zptSxSf3vH7?o`bggYG-!h#2I3QGbrF?D5LOGxR$|LNe|Q6X zMuZsZe@SCPVCoMNND<>I!?d-ix(;e})OG0_uuODcnmv zi)BsoFz{BI$4t zB(_9439x~H^O6d98>-3?!)epq`#veNI?yGZb$&k6gALgxAU)G7Y z=NdAExPVI4Uuyt$+_q$cnl}3@+vgbB;3Qb29@LuU8l#Xz+05)yGttw>itTryUKk7} z>P&xKZ&@5DjLCFjCm!|R<+Wv5SH|@6cTvI89Ai+y2b)T_-Ub>CW1iB5o3g(uW60m} z{Ym^ZF#qWb6^i-og3V;(=K6-}q&*9=s!J=^!)v$O&&#w$4lHL~X$lG|&=pV2OEFhN zu}q@n`r?2d>};;WyV=o&DOQEdLw!EbfwFNeJZJyAVTt~w(oxaj)?Zc`E#EPRji8eq zi=no%ru~w=yPJ-jg9jBos@Xq^Q*S#+#V?!q(j2^I`*gZ(#Xt$CmV+9~yxnng%II4! znx;5W-lG5oZ9a@6*YGZ+w8;rou*=VvXT{8;J!6V}-s1HNoely3EkpH2UQBLa{Fbsw zWW5K98ydad`sCtObDgi{%TY0GO^5e@km0EVkXp4dwC=?2#*g;AzP<7xDN2&+dO``@Cw2{Rmsu4S2(9kTryWCa-{2$7#z zSE{Wixg@x1+ndDWV}P52_!~8=W0-D-6i4CZ0h8yiIGo|KCj@6MFMb`xxRgR0r9bJs zKVkW@L+ClKF(Ef~DfjNP!b>+o(}g`|0rtp7!FrFU^i;1@E_Rbggxu%6nYgw7K3rQu zdRIk)gT2*6)hFbQaX2JfUtlvS4DD&G9yyB=!DPzP`45*uN3*zM{R z>M!%62j3eu%t)ZX$gi?@g&+oIFD~8i33Qm6U9}zWUP?3JLON5SWW$&fZ2))kKYEAq zR~(j(6WfN;w(M(gJo_Z2ewO$BpHeTOmYcNJ4_b@QR@C87UB-DKW6d(3KQuzg)WYIk zn)jUDm`Gw`*R~) z&m{t)VJS{vxnw3wn3hHn`A6zUXy7%pG3w<7c$}*tcorbC;h3150UNXk)ctI0J|381nYZ^*g_6N+bT-6|gMaF5H zs%ou+hg$h6s@55R(g}F@+I}rSDoKI{wJ@YBNBIUET90l*v~q0HPer~MYmobIdHL;pYIFqyC-k}N$lR{Ab|OHawk-<|QI zcA~GMcKB(vHT@({_>>o(Z)d$&M=$8wG0r);Imq>v-&-Hpqh`i7fsxMP3TMfPks@dU z^3fMID|tgVM82}t)oq8U|19Tt>4FJq-|F8H4L+5AC|X13@mF=d(pV<$AI!A$ zLc#W^rs&!7E?s6{9lBV|&}S6@0Ek3P~=$_Mr4K7+Zd*ht%W<}venD@twFmEo9<*0Flx~*%BM{Gq67VyRL zeoV?8w$$nt+`p_lH)sFnA>nq0+b1YLVr1#AlCVq(2)&o$U~|gMSYDEt3jAbBm(i>@}$Kg7B%Gyd+vyx z1^sJ*1-1sv@nFKl1JgHN`MZ%}S4#@CLG@A`ZX=r6UqTH2;KNJC=%mGS3QA1sG48?= zOHM2myi(t)oZc~IFP1O`=Q%748!>u3s=Z$Al06l1w70i(-9$XPS?Ja!7B*4^9{PUk|Sygw_|0?-Vn zQ#EfX*pJ`&l+&Br%Z8q1z3YD_WWe(^G5$$njpu>-egeyeD%U4*+K|EGP3^2{IuIDc z!Hx}CUJ8O3^K|5A6SW$vSzF4@uZV%dpEjyjJkl*+m1_7xzDA}LuY#ko|FWK2T?sZC zw#9rz+=?>7_P|x}xOd5Jv7xp$mThmbmqg>Nz9jQ3$d`hS63l-4;xouS5vE14Z`)8M zQTyzgeEV>wl<<+4#)A1u9zbGL>I-5 zzc1cExfB&fXVu|G(31Y7adwuii|eCrhGoL+dtbTDo*q9u)E@RXKln+Aorq?}z!Crg zr9@(Pet2FyNGVkL+GZ;72WGa;>6Tr;Wu%8_PItUP3}4P|CJhw|_y_6`Tw%Zg!!`Xg zUgpXR0~1E|msp>Vx8BW>&*e1&#^1Sadq7VI&l4yv`AWO${Z2{4H*(-p?amx{N2#46 zF|sIvo=3JClz?36Z_7o`(G-S85>S^4i2xlTD7iWMc0sPZ2fW{tbAOwf3UJhX`S8RY zK4?#gK_x9_^9&X4%MgE%ypvvP*+*7Chm~tIcVlUwlwhik%(;`sg0rvNeS}x8OiC;N z&I$N4S~?E;Y3SrB&A73|bgtP470OBkX6lAT?bQH;ku^HFV#Z0sfChE!sttck@co+A za#01^^AcYxNer0js$xlZLWaH#hQ3|*GaLK)x7B4&yEq)_TkLgO{up6FZoY7TMoR!- ziW&(&SR8e68ruJlFcq0*1L&0?qo@W$|F_a43C;2d{_-4pr&A zJ`eF$1GL1fC^}D%uw}W=qTG?6+)|^L_0YxRx$5F=z`yAkKQW=<=g|;8no^0N+~Vuj zzEZ-dL8`vpVjW}nJEuJs+f@SLwtR!N@ZS?#O}&mL_Ecwt-hErrc|yajxA`IYrREB3 zKjuF9*DZf~IT$tgtx75%cYI~gVYu(UI@!}Rr+(DQoa)S*Qo-0jq$8O9{`&5jEWb|{ zFhF<8UsqG%l4>1)+Rk0Ippr>g9y-*5&)(OIb$MOCTq1;5xZd`BAgy~cr~BES2&u_d zzCgNM{@N3#=+_M=s19%yJ%x&>l#`$kYVpcysP&C$qC|ioH3Sf224u2obPFs+{Dsiv zH_nUC4i@Cw6j_QvDtHFN_itY(XIY@A3`n|Kv&B$7eFKh)DfZ&z8II&we2t8#6#~Uz z%_1(AQ879`RCoW#oj-2fM(YUrdCzoU+-4x7zJ%J&6{2QTi#T{IkXuXY<)0f8k3QzZ z_}x}xGYM)IB=*6cqNfZH^*;Y~XRc(i_ik&7(ogZis19r>wX4%fypN5^*M zWesZs8b$?nJ>h9J?3MY-Xq9%+YLfJ;-H_5=$Y8`&cwiL$)i#GNo;>9GTPa9XW>SAb5Pu?{Wmi4gn9J@5jZrmQc1i9)v! z5Y!DZCuzUNcVwO2b)p>!Dx3*TH-TF|sN+-d35tY}aVjbk1Uqs*h z9N0b4;fOPcpo^u}Bz*yih~SBeELtr$!y`F0>+OHGS(X$HK}*tbAmE83hv)rCm%PY! z+{dCT4I$PqG+oZ4GIr9)>{k7t4qeT3fvlC1*KG=2HgG#}pF?}I7w=M<x7G6)y8 zM^UlZc=E0E@Mn>zU%dLpotiZXNep}Q{HxYCRPgto(;SnIBR;{E&)dv2P!dKS4D;4* zT?rFAesSXfuIu0n9pF0ioxkJ+)lH83eT)BPJ|2P3@BNArt2Z99z$qx=7!p~blx8X$ zTg_1LlZKe&9uz&WBeJ}(XGMk-G${Cg0BRDB-_O;f+OVt2taUFx8d}6ZJID&&Yc#;? z{Dq00vNY6>T`x_{uY59Fofb_a-v^S5w=XnU)tkBtZ!}J202(MUYaEPVf1dr z4eY*BCc(1R7%v~Nn;RU9?i(|O=YGM2xZA)@v4A8EAZ(h51flS3T6;lsFm8=HJRkc< zC34kw@>vGoXT*VS{gF4ewUSicnpLIJyG>^&x5>BB;e!u2eye4LZn!dISLb&V>?dqw z+G)N6rOgq8SvH95?P>uI>uRP*)lt5Wllh^&->uR_@uyD5k7^S-x}Zk4ETWGdUJtWT z)5Ur7&-2n!spVCycs9u^6P{a&6y2)VLrV&6pj&b#0}6s$QqYoDA%g~p$yB))n2#*Q zt~dJSN~5QFu>kmUB_C&O+MrU{A$xTf&$z4s$aY=j7YY*h4V+OQ5nHgtf7q}34_4?T zI1&B2@0s*>i)NAV<-YIF{~k`j|DnIZ#OQdg_t9G$gYF!z0}eJlQd>Q-9ndY%Y#Q*S zQ+DXT@J@RUEvbJ3Xm?2* z4m6aCB!OCVs0g4b_!eQB+tL4WuS217kNbV}lNv&?(>aH&a%ylwMpf;bu~glV!AWf! zjV<--A(IJYZWOfS9V$XcnM8$7hu*ie$Bx1HttOK)*zQcYN@Ol>_W7%}mRr+g8Z7WG zr{9ldTR?~g{8k{bA|GrY)}tzKUkpIcNeN3rEF(L84;|S_J&oT_VX=5{~?$vJ>e=kwzl(_R@EeZlJ+n3CL680jU1mc&&FdHKZOkQqUKhV z1^SOV##a>D1m;5$8;-|#kz>YnIbJPk0db@0A%o<0JM1$HSP)ckZeXdAzRIjiwBz_n z>}{q5{rj~O?0M%3Edtj!h#o#>2kYH}-VYPI<{@Yyr8->r5*l#3r7E%0imeO$ulYN# zq*_=)RF8-Om>~lwmWRjP|K92V0(sL*HjcaCb&JiHN~}LPch6FPHKNq5lskTCd&eW( zND00Pm|GwU=P}p_o?oqc8Da;RM$8OoQ)<>u+2;mH+$5fz$Wmc~cL%;=Pn@J3TK(f(Q6`5etIGct3nx#P`drak^zpv=bCBaL$3wtH!$etk z=WZHjfLw;zRukwi)`c87LMQfoqrcdV+&csuMjwCtk3>TUFeMvlJa|P{P z$y&Mfe%9jKAG@yXCR4%azyCI-=<m*xbtM#&uHi~l=?$8mim5}z*+m{IfZsO5V~(=Otww_N;OP<* zMgqo3e-=KRCKFM{PG|DKQXo(7Z(_Sf*_Pv?T}BbllkpHluOfcZ&|hkqEK3XJxw74A ztsxYp6$$4H-@uRG`F~n2uc_GGejBUZs_y!0juJ=|mvP@n-ekf9e3vz^ub26L>xI}E zv^56gV~UHx$J^`YI0K7J2cB)Y1BVm7$SEbPooM&28@H^4fTwgdwsH?Ij8j0866`c< z6_la@@v>!QzFCET~gKP^fv1)7WCC zGM%cZxirmFty-wSF-JWHPZ;z7QVi-*Vae}%g&>Bg33DV7{O?;o!gq*gghsVNFzQNG zA_M0?$r;2rR%MDCH+_BvR+!+77II`AZatecZen2@{)SanygPSx;wwYc+{9P*yrEA` zXC*XW7*KmH;6e=MhERJJuXxMf9Dd+qc(}SCtf`tY3J14~x8JW+WXL6&bo~;Vn=AV% zU*vPL+h^pbs=21rAa1^T`bM1qF_DXwn~M&NSy+~(+_(#zmLlTSkV7v!2}zbf{~*e_ zMpPIiH=6Ot2r)wN7#yR*mV=_;u_I(;p`DaB=%zV(e~%Y##JA9)r2pXi5je5vVf_{a9{kfgTf8y%XZ&lYsKiEitEno} z>#S#UC(93V&|60yq@hXC-sw~4G)(ZSoBPhCTz;61OWU*FU;evBaT$D27P}7JehTPd zjw=hHm;;6rdAS=3vQ>IUN+ghgZP#KS&4d@iP$-{Tsa8LW_>aCc2mPZjX=!C`1G%p2 zg}Bnv%py4^NnE84_{p2j*QxROBW>Py5t7!JhyHl;+9{+`61lz=xvJ>(jC5He2F}FZ zr%tS&i~1j$8T}8vzSsl2Dr6g0(AQhH5_g)%rsUcD@xb zv0%gX@N@O}q=@V$a8w=%F6O_dl`D5Iv*~S} z;xow{UG1}WM;Hc2fgQV5>o1=0Q8VP~X)j1Rk(LNW?^t{r>|YN34@Yr`@n!2}n@hhh z&WT{)f7>Q@ns0<3n{I-Y6f+ouuSjQH^6~taYv#0ln$XV8D<|EBA-;p!=5vi&t>4#8 zDZ6Qcv%5+=7J(AdsGL!*Vm0On}bs~>T0EuQ64>GV-dH`tzTh@#~ z7;pYv5?$DInc^RAmkA@Z(4_F*Nv7bdMddF(&Jx%|$b|=jN~9wrSxOng;OPHSYDO}N zt(xp(rjUoRrR0O{*I1IeywzG=)_7M~^lDo@b(7!sO_tUwYLa~Ae4P3OUVI6*`!lwn z!!z*$@XVk<<~CGOX)&Bki5xt=qCxD_m=I$!;4WJ_>F~=L^ap($KrbXDYF08gkdpB; zQmewYX|B`S7p)%EOIc+5_xO|y%S3|nLX^ZYbk_STpe4-!`%@wlU>h5F>hdL7qcN%# z_lvl91;xkeXpm$hCNOL!klFx777xVWqF_nLcsyEyO-6XqG+dPgFw;v&0lvsOz!#}F z?g{v}MLo!1O>&6&)L;PeDc7$9FM|*ODb-*>q&Q+hJix_DaiArbJCYyDRu9$Iz3HPg z2+|=hdxE>isV(wHNDS9$Y)AsIf$RXi^gdTKi4g_$(rD2m){>N72HOERh!dvXb}9>T z=Sj4b+ z>&+$fx{Roiz_qPeJCbLwdQ?=3c{W2swnWtW#p>!m7KA>lUl?;MuP=LuFM+DTDRxa@ znH)6K)a5beZ_64u2>2YW4NSbHpQ2-^We~i;f#vfhkzrCdmf!DCZ_UI59e%C|8j`G^@iRy8`#A=9z50qu+BKInrtMY1P zF7G4ku{He^2j=2zXQHJE<(h9NJ9@MSd?DUHN4zNJ^=v!)5+>*vO7eX}B43Yu zw8mQPDiy}H%ExYb`69_KiKxP&sWXayNJvJWw(vhF^hX55b-O|jEMx(wTvNeEvQ&@*Gw`_^ouJ{B1-AmDbHMfzPreB*qbx02u?Ge=NAFJqAq5qCm)BixTOYqhRwVxqujF z0{|U^eSVZMFT4=e*SOHF7+PL1e2^><$A9zexPu&a_ilCjo`C4s?cLL_zua^i1d1cP zvKZ)SBR1-52MrO0psjrMsk|<0jTaX=YzDg@Pu0i}F>458XWhq2M3soi7~C$m>q@5q4sVz=3v34byDQH}u(< zN~bwlx}@vVke8Ru#mHUC76q}jUEtOmQ?IE#lle(c1ZyRC{!R){zXk39XX+C|tQ(4v z1$T(HKVCc1Q2?J77z~mATbJ!(a@~&AYS1tXljJ`eIY{Ibb~8Z&azQ)p;UT9?)2sDKGUz?Y^{0bs{5a3m=Qg$ zy`wI#xSx8AB+VW}0D1Q_Yz|9nmCy7Y7+f)K$;aiCeS)G64WpKLR&|A9M&O%F=RsSe_Ce8RLfmO2R+V_03nZiagf@VDAqUNJ z%O|^7TcijrN|rYac#rdAivk<~Ajfn6cLPdJ0kzb~3RQLc6E_x#xELMVRq6L{FbT87 zOtXByYi_9I6jUfVS zRWVTTISp~%f9PJ(mJLC%M38&=Ux(Ckq>d8_rOynyu++XK@#MF`04qcLI(E0d5XAaF z#GrX^-8F@71@p~xff&TsfNyg6QRxe zz;m|g%tZ8tC-!Ji$#rwj4STWm8TiFEw(fW30QAkuU7XO6h|&XTgY(MDi8(EAR?SK0z#ln_ zz9|xDJ>`aqM1|O)g23n^k8}0Vu!jL?3Gk|QJmE1XUALAl_rX)aHTV#Yksaa3%*v~1 z$xQ50!dqx(Wc#$e|8;RWHe4MypuY;biDUtsijnl@0qG#AX*OXiRS@h9+wyGhk&*&W zTZD0{<86gRm7$|4$-n7(3=1*I^6#TC`V$L8fyP5^+)jtdM^`=^LS{f|O!^_5Dkru~ zAY;H>)o62^jB!4FK+Y>PMFpjSP&TuB2;Zm5$g31xN^xDsvcHq?!YeNNwJM58)fgjB zg2aL*g+qF2mI$h-Uok-MB!Gw-$zjA}ceGqdT{6w)*s%6amXPa>2usYK*dEd*!{&y% zObQdG*D2}Q&~MhfovJ6>I9P)0#Emod#o7U8+M08%%DUTO$>diH4u9(LrG=}cK8Ge^ zZ*#71vL>gXfIHBUd%JwdVGLSdeop2EPFEYonY}+$B;`5?t4uV&Yd{d1)74IlWJvF28`RrRQSYV>yBwiTA>V@U}FJM=fjFQn~r4?uKbcr zwj=?ixU#~0(xA#j3}pRwn=X?*SOGAFm$eoJy=R;2Ai-g7e^s!Zxpq_hqDf&lMNgq>`cDx zZ%?FO7gM;+wSQJfVLPt3JxOV}$Oa`1_7o|7bVcDBE0R$O_hm#KYv8MpcniT_s%po6T(m)u0K zyct4N}yR~~ME2((k$@I~0lrdV4)oQI%TB8r@o3xj=%KGdsC{^QJC6S;^-bJr{OsWU=sd z)?;V>DFq@Y0=jirdXoeg<zmYQ$yjE|HZ}>L4gag$#BgF5$MjDvxlPCeX-!KVLWYSCd_317^i|F{1@KK zfK+$M?LL2(>rvF*X#a-T-zh_>Ml$34zDY0}W!#5?&Y}tV{#-3_V5lKtXkHFkZ#|y! zdcI>6FK`uI)PFvLw_8KR23wbPyHEcrvt*3gkq0uTY@bM|B zCJJb-9=*|~wdZi4C2I;hwQ8r*Xs}YLuB&Usa;uQY>j1);e&aXAmS3Ay8~-qO20b6; z*8zMs)!`@!jwTL=T{%q6&H3mM_W`qQ7r>zjEQA}OTa~BR{wZE-mp8y6tv2Df@avb2 zWp_kax>AhGan|mS?Y9PeeE3bg_YvKyj(5g7u10q3c=dN5)+RvDanOa44Ssx1!l*Rd za(F;Lbc#)}b#eNEZBOw`uh4faut>KNx#m1Yv^n5(6klk9aZ@t7ts8NZc{#b6og}Py1xNu@aihK$D+98N;qU;zNm&ZB6;b)bBhaC7P)UQSnz1et0w^YaBcX zh%(g9q}}z7jfgDhTKay?S9H|csjWK)zAV~2Ip=vFl!B5=YWOW=q9NlrEe`bD^Cu@J z_?i;jp%*e}R|%lq8a#-cRBiC>6NJ%+%WMC7=iAF(tw&)&3SVzuApPTYI@IPhzp3Kr zPiq2zn6>yT&B{_}a+91&5BYwf|9U->*pF@&^?Y zt(#3q6xakH2nq`g72tM&xVk;~F~XoX@R7S0TiEeE;?Fn1fa@u|zz(!yIdM=XOL9*r zw50VEFWytU??;Wo*0nE*{;%4rKkN{%q-os2A}RUqZdY;g)fFZ*J1@oST@q^gB0;f_ zbPS<7o<%OH-kUa=*O7_}9`f{$9_@JMYsXY$1*SJNs&bj#aq})u1vu@9ZXDJxq!^9X z8_v&^eCF+);w9yxFOCjyaUnjBK9_4FUmuTee(vE!!KN@|5)H1 z-6hVGs3ML0(ZF)Fmq#{Oi(Pj=_Jt03Pwok(o~=&aTF>dedxT&V46LecoaZ?!eB2_M ztvJr(+EzDoYY*;3bHR#4xFE3F073lqHASJn1J8DIAY6bkuejbL$0C3Cmz?>i z-Qk3*giddnPU?SBdmUiZ)A1&r25-OH6%25wf$tpR7#Ft*o*=5+^u92=2NKeKb}v{| zv9>p0e4%nmTXf&%nn1ImQUKu)YW=Qa$XmF|o}*s=pKaf7o?QPnS~d({CH(J*PB^6C5YQq?L2I z30dY_`$X~J+BJFgnqZG15H4h_u*LIi`nGl)cNg9xKwLD>>m&E&q}a!4>)p<69;E&C zcgMF5z0M*#N1?z%a+j=J3dQIhBgXCHXWkL~Ds1G;l4Y?QDH5jn& zkN(Vf5Dibcwf_SjLEyeqYsU;s=jKbEL52qQgI#}P9mFsnKJ>v&_0vIG%LM!})Bz2J z&ms4D1$@H2oJQd3K^6ENh=q#Mawungq$BStprWVaX&^nR zkTPm1DTbPwGI)G(BR(d(oq)zrTPYM4Hqzss1#9X2_Zx=kb$gqupr)=3?U(QvDOq(U zhwk6IGPHlpJu>^3y$6j4L*3v%Mejcc-~S>=Z$r;-xC0u?Ucl?um2~_W8fSorzkh}N z^N*=9@NoP0sWum0l^XZ2^}${YJWra)7xi#gIlO$D3+?QDP08D_H7BZ=fNFPB0ldh0 z3AL@gXg!s1#K%X}l4EMc@z$R~*R6)CM)LfJ-^5ZYj+bs9?$w3YG}MUZFM=-i^OF|r zZrOrkl11gAiGcSwMx_uo@E{|l=_`Wxb|}x!hRm#TI)BQ3Hv|iNpl*l*{YH3_mdB1y zz_Zg!t&a0y=KpW+&Htjfx_$q@;Cs%w-yiO|uX7%Ore|gx5~DGRaX_PjnmD0Ram0Cu zpfU*}IH5tsC@LtUfXo8U%AgG5nB@Ps(|JxFPlR>%R8_mGtE#J;ZfFcYd|pad?_Ilg zRrh}PT5GSRb$$U_DD2>pByym!uRbq6A9ZMqr!SO}=cDQLB67UoF1o?%$%}ZhoPktSBk@eiKfODrW zLmTU_GHoupCPn`jr2g}kqyCp__rHFMv3M5&0w3JD2ItOQhKlAcbgoKBFxg-l>;Jl1 z|C4F|!u>5rb9aurzd2}pTJ1}@_QAnPaPej}lryM$UY{m|85?(hYSB4PT__>4J+;*7OvOrP9R(cC7X#dF~F+`rC+rW|F~J8C8%`lRK!H0E@r{8V3Rz1T!DP5zs`M z?H{+Dy*G>>vNM}c4tEL*?zP=;?A9wn(<`iU7ZFxsdOdkx+sSyzbu{$^`J!yioB=WD zZ(e6=2gw(B^}$H`niXp%EFr+NoGz$u8;19wU-L0GCoIcqrofT6lmLwg7t?9b-RqWg z&c*Y+)IQuv7VzacEeu$e!qh|x120=LL_kQd?2>@SsRuJmcntO#)U`8s3zj&XY+O!= zop*x%qPc%oY(M`{C0%&y4!ZzNYr#^F-AZTbU(xwH9Lc>t6XIvu-CTcyYJY2UXe>s1 zLA(SssQqr%ei>`uhT2bI^EbfFUmBY~d^~#o8FJs>cVC7@%%T%BKNB9~Icd)(7MxR! zbXQL146BRVO3!7bbX7T~Wsh;GnfN; z*Q=nujsE)XdsGUmO>$RMPW1qJKCW`HHP~wMb*u%jHsV=nvU^au4ip=jIXeKSD`|8<6;*!G0 zgJ!0Z`_tE)$$(}6c88c?f7x>a90$n%`)FM`H|-@*c?!E@f^`8U4qKa;h39s4HC)K} zAuxc3pJ%;YQ4@d>xIhzOb`YRR$Y>tI4{>F23wbD8+tI_>Sr0AGe}~_m7Q#0OK$6l+ znbkyI{IUJ`JP}%AXP+it((T6+WH1wLUJmsv=y#=6fEh`|LetNV+bJkaU4MoA8fnEY z9nrNE2C;1M6oDp;0*w$9yOJ%)Q#W0u?Q`Q`Z61T8lk=nnJ+Dn2Xj~wM7dK9a^m^>v z)3o|_)j@8YCnWF^f#wyw`?UeKvoRVM1rGlDl*je1AOF2M=O(kdDDEGb6P5N!SH$*- zZ2sD~`AcN;hk+(ByG5fg=zG%V59s|VS0r~p_oFswtSo|qac0-}9F@2n8Q{!0Mdo^- zDP6SUILu4oHhR9W+Y}cc#g?1!wM8_5GGm_M7#veb60~9qCF*AxI?h{eRvx*|eznW5 zujbgd60o3l3rv!wr2{_`cwuvMT(Zt=6wklZ#MNg)?TgzwMYq7?+c~n>8WBiH|2Eh7 z7zP}VZtW9a6Cj6&R^Qj=_zZaGP}uXi{T? zVMlQ%U~4@Fqf{2}@}ryf_?*ci!TVx9wy zT9EHZfo77CZQc{05tu*|g@7hz(W#+c_Avh1SqyvAo5=%?zd&C%Wn!s{H+beC*X2QLw5-jXkfm7W5P6U`rj5l?_dy8fjQGlK@1zJGNO zO7f3D>duXjaiK}HV2xz{2+*+OkFTXc@{WCwx__^zlpQO@omuwBka6txp)K;H|~Pu?K>rH{GM27c%X6V z-wn_htr@i`>muB4ejt0kc1^ap1rlsk5$jZ`aHFfSY@y!CXE5j zIydbF_}Gx~GgLL*lg{~V%-EDt0UD&( zITUDKw`Gg{OkGpV&Y3xKph3FS#^#U3#25jZ0R}AdQ>go^BX@=bBxfGD1)2ec%Z{J( z)H2Csr*_<(j#a*(F<8q@nmex4ASYrvwS4v0r-&AuFuMda33le9`t}qVQ)6ztEYMhW zt9U53(5xnLIPZRKg-vFw%yKhh4|UJfrhP6#&eG%UlFLL`u+c&wT2^M|aljC-dt8JP zcK!_}tB$KnJt&xhPA}vy|C=Vz^tBulU$ZW~%v@gSnm{w41vCnmlXYn!=RR}YLFKl8 zCD3p#Cmv|98>_9SAD;L1K+)crx^Q#2l*St6@Il4g`1$t=?l*q-QaroAsz9Uba-x>6 z?%JPZub*Z2CvW+`Y3_zH%{mHq+4Wu6GlPQ~iyUZdxzXNCY?}p z`I)fcGdnq!u)l&u=sz01mU$5N?M{b^j&5i_oj_bU4Ga`EI2q8)mjg}0rc@}%&w~8I zJ2cY1yAn=j9D{=62VpVilG&gFG!_NO!C6`P_#X}MheC%i{?A?2>_cwFTPDtVIuM%if+oNN%*BpebtPDsyT|=JF zm(R-K$WIxNh3*B8EBcnZKLzNujqLu^oLIyGO`dptb-9aNtTn-3o)FJ}{`fJ-MxUi6 zF*s&sF^Qoed1yieppmROI3eGSXF{;=8Q8gXFQn$2M|0E*x3C4r4bXh+rajFBe4hja zryc$YcI?VV$7s;`L515X1zTu*ux;DlP-7^Q@C0m(GSHZf0Zo*}F?5kxP|hqd5db+~ zKS=+cVop!c%kPoiXy_8ejA$}QE8w%C4on=CI4z6Nc#k$dgPt8tyb!?VO)PO8_>VrX(o zAIa}u`#pO97_hi&KRFJ~U$4siom|R5WGhrW9&ougbbMiuUe={JhUVv&y@rzrp17lZ z|4%N9C(qA&^!zM$G8Ywd12$yG=>{3&T~v0Yj5T&y=3YL5JJUv}Py z&2)=80h$m7G=tr;`}5#ds=`7cKYm|0j)0)Nhn|1;WQ#7)BxJH+{3{1ta^(D&S?Th8 zU`qzEqQs>^bC3M_tUbR)8Xr3Lrl-us2=R7n8N{0FN>kUVDRsg zeuV4y`dr3VxchSkG`(;jCYS(?;BrbSli)+E{m;8UXSkJ#z=t z_rCYZw(Swe)OZ_9GXXRK0yJiQpoz9PhNCUcVWq2x*W_;#A^FD*u<_gJp!Yr($-p2E zlGbm89joGDwg3{m%g2`q>U4H4tvz+0eCUeS1i8YD)kE2&c$zgEH=y4wfLpj%!R*V0)0{RT5CAhY&FGYt0MgX$~ipy+x7`IYm2uogD3ZQ@?T zjNUbkQRZNOXl-5#oxkF9aJiJt->W*&MKzWhDd2n+p9C344#3jSZF1|4UhECC+|b=p z6j)w1q^WKR4`smfvOZ0M98S{~Y=D%X_A4MmCzEjO64aTfYxd4j+NdtLFRNGNUJ- zusKwqW;l^rO3Kh?PgU;F%)xw(Cf`eU3okBrPMKVA4i~Yzdbbl&ZwDBPP zw0-UP1{ocw`3_y*L2`Y1mAtJkt|(2Y2^!CpynPEYhM>mNzDHp}cZuuy%L9!ifPuzW zFyk&Uo`Ha0w;=Nu2b%FLHNY`qy$QE_4mZ5zMyqPLUZ&y+pwX5o&}H&cs{OgE4W$M( zdR7|q1kiX{^GU0!_ho$m9dNvW+tpN zpRV<0T*8fg0&2z^(CC28rwuiJtd#AC%G?t`6YxMYV>qX<3LbSnhZoPg;7LaVR28Ja zV(aJv&E&WfDv9&_>|V0?31-FsXyzuKhDTh9g9il(6W}sZ>y2OF#;#d{!85S2PXNuQ z2sD~-GXkjbNuaRS0w3x{-@eT+GZsMOPtceEnh^lam3A)22!fi|Y+I<9M`n~_XmAZA zl01sbusiB;GI}864ra#KI&-?|4Y`Lc#pmF{g;S8RZrTK__ylk?TvJ}cjZMpPGa{>v z5_0T+8GX_~;{rCu$|v|fu4W_v;OAs{o^IP7hd?tC6l@S^qQA`?>LhiXDqw?Es=sup ztQ6AcSVn)BlRNn{PR3U-;}4*5J2wkh34^i;AQ=m|arh2ybX`&&fz1Ted@?}e1E}%d zT4SEjCjvB+e58QgwjHyW7N>l1bF$M402-dW7OhN=J08OG{%25faFzj(L1TF^0MA=%p}p&^m<6*o zca7L?M@|KF^$$u_X8RvQY1(oLWTqd4hNrK@^FO)I&VTqTwkXbov*qow`Kvp*Syq7Z zMsueu)8^CK6ENFp3}h;v4#3M-Qu3<7{ysG4gTsw1(=W*uT=obF=aD z**jdFxljTaG@eVSzgNAtVYedJj?du6!oiKAzLb_r$~*x#feAOJ@eVcS36L2FE+=>A zoD{(Fb*5k)3(aW)H17u=LP^ekSf!E)n3h6#kAS5TiVLnn2Uq(^c+ZJiDK&OyLp9V? zV*u)f3p*~5L~O5{GNe)gE3cA8Ww1Vl070~UE0k2$z@4UNq&=xpEm~t}ts$~d^*2Jv zl`?ojYS9cp(dr;sEu|;7ufo+*sg!+tZh~8jOtg792(_%<^);gFyTST@10~xigq?1E z1Mm9pLBq|W8C!DxJ3Eu&g={xa_Ttd`OFrk8a79;5lYPz)XHdW6yf>18j- z-?-jU@#QOUr>z@ZYZYt=bLs~_6U~H^SIeNPte&M-?}e7Kn^03*4h1{E=1MO}sp-3# z(fz5T_owiC6I{ASVX&{g3`$BH#D4IxwK=p3bXP+;w6U5_PwL9aH5e)7V5Ge`KaZ+h z=Eq2Tz45!f{-omskbZkoD85%H{qXL|S^v4ExFmjt68KG6Z2}i;Ok*H7yP!Nzz!#v< z@D~J{fP#?_g+>>2yeWM!W9ZE7&SAb5$D6)qP|YkbVsXmOA~8rfc6KI7!T#=UwhPd- zoQzkvZ)QSi*Keep{2`W^H@)-)0fy4;G4k!s(~ptG<#lrgw_r1%dD}3&$KfFFUzXKO zf#Jkb1VwidFHa%+OPl*0Tn=rp5nN77!d%^6 z!h+sfuvA`>fCXZ|dmt^|LWS=BJBJxi48XAn2V~Ut)1s2-|LL`Zq%MmwpwVu>D(!ye>XMqU+5|Avm;xVaJhRpW z1}FqPbom%+MiWkg&~xESP12M1kmFr(O1y15{>Qz;my2#eYe%;THn`e$VtTVi;kEaq z^7Klp05pT7H2gO7rL2U8O?h|eVv;ojqAhDlHE&YnQ4s?Z%ZdsTps@=vGRx^gjnBp6 zWTvjaLM%M3$Ixc#tr!3RAOJ~3K~(s17~JH}7l9@*`>w}8L;7d2H&K>@&>>ir&}*Br zN|{wge*NwF^I&ZrJO9afT&aLI5oiPpgX;V-3&Y{7QgOZRNA1vDc^OjTtordnN+Iy8 z6|5G#Wrr({iSN&L1%L>^^`iQK3*=x+nE)hbX4xRM>;(bSJ*batgVn>`wcqPze)ck; zIfGy?^_FXU0f@B5@9z2u0PQcM)v#}FBgH!FU;QSlKJJs48@(ic?%-yGRvYsK)O_Ml zqvwM1W*1a|0Zs6y3pBolmY@(p#$iN!K1{|HWbzUC=wFZbK*Q&unY;Nq0fyI&#}OPf z(V}9P(;#`vUP#@wN79xRoQ38MUEtJQJkyQ<4m^H)FB|6kc!L(>yRzOT$W{(CPEDYR zokQQ(p1V{8nwH#oqI=0(pxMBHCfd3Mn%=%2CP4Ff78(2dSNEVK?=Yk$Z-9)#CefuN z08NVwXxb&9$)gMQlWS?PW5<3--Maql+_K!zbl4m3=j0L_e{ zRo`0ViS=fmr*SWh88GDs&i$eT2D(6l<8WHukYLaDj+ex|eFuA$JEfubKM`YieRK8*`=%NR}ZW zdG~8AcndUY?N>9G-C#qidS&!utbLpXmK|g5QNJhd$bm*{{KkML40aYhbjU6>#!M78GP1 zgvAJG8v5lH6cK39`J*k%q53%u%6(LN7S0wnisxzZ1ZZ$jYU?kMvNZ$h*p8{jv;`15 zkHx^exC3WX_Q3JNYI1HV==Xc5X2GhD%Fn>r%iQ_NaXx4m&EI}Be`kxJrF#Hc@)O7c zo>%i2x|(i4LH1Ed|0y3@NRV?c7j$WS_e*nN|ABLGk0s|T z+ZE#F+L{Ryag&A3@F~y3uOmpaX>RDi>Yx1 zhb?fI#i6tayN{S~TlF{!Y{`j-S_CY=J}(zzTrkk|l9-%07NmR_TAuUC0bd!n&{zb^ zMmO6X!(v$~kBC9QIoBV_#?{$=kARo3i)nJ)5oqb<&foo7w#zBnxfLoNsmx!>SET>+ zn_Y@yZ=n6sKI3_H7|>L|_?^ZkIn;pWmFBLbDa$g&9Yo^!f7!+X34*IHZ3IXJmr)K0 z$~6i!tUc#4%Bf-PophI*>iis<1#3wFIBGw`ih!n#ws&&v!<;Z>srLB!7#erGvaUU) zU{vQpFt9(f6DzlXt8f1{5JYUyB{cyypBU7bd}yti2n_bzqU5y|#;gi3dhp^7RxE<7 za#?xVc-d9N9cOJU8d3)zn=9-nK}QZa!whPMkUmZ_S^f;dKoer1mQ&2M`NL~gBti0z z8(`IEcGbmy?&3A%c+%pzzOTgXiQM$PHt!x;)QVOH83LMm1X^#f%gQ24RQwP)_r^REk%xtHcHON8X4jgYi-o=d=Q?DYAtW;L4s4Xa?u z=XPTtDnwx;0uMKE^66U%IfL71UyawH$IZAPh7n^M@b|G$CVAoYI$I zqtgctTpsMZ2h~LdP*mJNTte>$YsJjRMu6r$mnX;5`b;=5c(5OxzxW(nE@`Cae^uw2 zN5)qr8~g+`e$hy>J=-+0GyAl5)&e+LTn6pWsD|!BdNb-GYB?5xyJ9Ij<~Dd!1LydZW9HLHQWeR8|4nE zaJ#2lzbC-PZ(w5@k6`0XEvN~Y@i)W>78oVKh~Q#VLW=@c7%iDp}#{?cW-u79_B7Xao^YfQ`?g#xwynpNjrA0+fQ%Z%m>9%_ zhVlSo72QWJ0Hc5x9$a{sPy>&MaBW2jiZCGdUcLUp!_}Zi4|L?#92T=PjKF3Xfz1$_ zlaEM$qB;72=IoD<383*2&^W!YMtEzL@x)CR2tebHIWSTjG?0MC>7hnswedWNcmixj z32w##)Tn`tI~P>I2kH6)WP*HSjR}!~j0VIA0K*_gu)rt*Mhjjd!t_8TOjMMXA`M8T zU8Jh$dG%mN039Xd*eT!)Be)qxU^9f~3_yuf?<+V|BM@@juUkhyZUuc6T z_lqG8-Cr$hjp4YOKym^32x$K1CCtdJF&4Mh7&8MI-V(z@jDtap5@5nPfZ^dq0v8Qn zVK5TyXXycu5_WjV$t-&SUF{cOz8r9d9S-|20-GV5-S!c|&7WwVJ|L+113`@n&`jO` zv8J(gxbECGSD=}C0B*OoLiNdw?u$F(pxVZa5kSRE$SJIXN1e~%#q%zB($N4_1u0_f zs4)c^dzf*kakGfW&dH^T1IdmmFLrQwVzuzYA}^E_kR=JkTf&>($hX=r3pETfEWCVenxNur5=1y=!0w}Gp|=~kgGc?Ro|gKTpk+GjKV1s- zZTI2fvmWT`>4e6cCm{iip9h-|6Kh|?+KZ5((Ov`&S6LRMK}B;56dp?O2xcq`@{`xex1ulcX%p#xv&YFWGvetZ;T1`I7w~oyAT`UU+G(!J3HTqxZ z=C~&?qXjY|#Hd(fJb@SiVAiK!gNNOn@Z?z++^;(i-$yt!!9@);lCrMBqn<8!+SvsU z>wkt7QRurfDvT-Itu`II29HtuXF~gEdAn%Tk4!q}e{knK{D98SL(b~sG~<5biTRur z$1#lNU>JeT5CWTzNPi-*`CzqL|1eurfF^qO>5sj%W|0ff;0(by*GliT-G+eX^$39G zO8Yx5hs<-DT<_O6P`Jc2_HHNTHeq+ti4lqYHkW*%yt$Jxa*#0!Gd>0yGJc$am+OCC z;tt5zmk!lW-%;RL8frLJNB|nu=ZC##?n>1E?lh==@@~w4X3DbjO$+$8fay&5BBxK0NWh!rms?jnsqAe1?x>n zh)#PAsL80HJMu0iM|cD@2d;IKInMe1Z!SRd90QHXO{Z;i297{pjzAtp=#F@gnVWk!wo`REy-pEX=8`nw3HrlllC z5Q2?0S+!#O=dAs2T}80iAk3^eRyVTtD(A=JUli#StvZnrTS>X0_dUh%m1Myg4#x^} z3?Zobi1a6dnh!Rc?GKC9>IyWGq02tv#pKt{Vr&f=R&Ir+$?4`90-86h^g!&iFFb+? zT)DfGTwsN`%{tn=4lb3ILi!xb*t(r;I{8l=J_>gAc1yd>4S4x$f!A5Yb8h!DpfMSq z16dv*<@2L>Z+3ORI?#-UYi$Pob=z@#hG(%tE(KU~$@Bi(vm%(Sa=&8dpP7_xkn_Rw8s zMaln6{;uwOZ@4|y@g_RH_GUW19<(^~$EU`ACJI|rF5jb>xHA?8kGOx_-_E0{u=?vz zYKcMPzkL4{dH*Feev?Lf$sNVoe-lap!=z}hfRa!&-}w1>^Y{`>HrWirOmIjtw4w#$ zO-~8T;@Sy7^P=`A^0#^NG;J5u2!n-#qo!gAYlta z6@9dQS<3%U{ubJo?~Q?2^d3FMaP7-e{~P&RY`-tsEzIbhzYLw9x9Viy=_kp4{=sgy{b99R)naJoe=L3a`!LS%i-9J!pbVO-i(wD? zf};f<2Uv2tnQ*4GP5h;YYckayPm%%6+b8wV^5m817HD+isuDDL(J5Lj`Q~O_mz37| z1!b2!fq@4%p{S@;d>`JvotstzFW>eIm+p?{-X9004+h}XlWQ!qG48)z-hb{U88GDB zdo9S;m{X0_aHOv2(&#PAnvs8uIKRJmpw9=!2ox?p;MOW_DS^#S$PQc zatHLBJ8~zrtzLF!$DbVOWKZx_L3wYazayiWGI05k)S@4%hM(&w-2#E%lt#2kWV zG&h|+o$&Zs58S!9Q;e&b6g(TQ-0gv$M@>+7uSfj;s=cs7f`h1CQ1NI`?EAs9mmUGl z>huzL()&{Ue7@{`1O*2d8}Hx1`41I8fUbKbkXP6!K7W1Bsvs#g1YP4a$h_7p`+m8W z^`i(f!67T5sQ!uU`@5t1IDEz+#%fsuR~nzmjz6r)g)bS%L@iD37#%cR!!}J^v@E{fpWI+AtGMHF+`D9{nA6NYOqz zTvvR1Jf`_v`{%Xt@#C@K*YEwjMzGurV%>G+<1xX6|e_FbmSF2FZ=fn`43V_4HvFcu)z&1y`Yi)jn#?jFZ(ude_$oB?UL& z2`h0>zI&Dd3k@w}@P6002Hna zcK`fv*Dv<30Gjhn^b2a>Q56&y7EAXpH_i~y=w1K3#7wBFs)Wi~3e+#}S3*_UO{lH> z1@_`<=pG~ojJ6(x2c#}oDJ)U3{6#x{qQ`qnNWCmqx7TTxD&k5VxcZb_dox%4T^U4t z@$PH#rFwlwj7tEqUZOtdclqS}eGTbijLp)cw02qJnH8cN>Wke~q9wv?0BFb$n);u> z6igRa;d9ob114(1?xkKgK(n>*G3mSN*c|z>S^3N@)C?6;I(#m2)@tF+_lIFMojbIUb)7JnOP8Y)? zb`LHl&mce(6uc2G-mHT1J9N>0UVl`y)JzIm0(Co{#zA=9+X1((6~dXqTVns2%Kj@*|E2Q&-5nRKF=hcT=4JcyPsMdyYH35*;7T(#;&&_eGUn#K5(5v=EH_-==zJGsug|D_gBIS zW{pWLrJ(nu={gi$`UPs*y3qGc6(oi^D8z(eh><`hS`fCpd`I2JoL~I|e(%t~j=(UfD<^YVr*DG>e#A-7fjiCks zO;n`wV*~=4@G!>*Ck7gaT^(qW&)yrxAL6rHP7Zepb&Rg*OaY4dRbO?P3Qme~(LlwG3>q~W~%(wlf?-^7x3rwt=^DBX-lUh++|5iEBw46@RPx_|gCW@X)gX)w(bGrTwsqmcrxy`tH zNz28AtAS_JFRykI?}4tr`*(W%5j1IBdf5wd{iVBNH0m#L?RnSAbY>wCfJU*1i@<>^ zsq47d)@IbRT37M%=g00K@0q-qdw#g@1UPBgNJU?4QZ7yxQ*{^R+SCmfw3CG)I-(h#pEOOoP#I;xMgo;;duYi)R z7buKXrp@(ucT@ZkdfzYYh*Sj{JSSUlQa22x3(k_yUpH|>ajvJBG%`m7XqXF11e&)E z!)rrAi7RGy>K!^x1PrG50@7F4og75V-?^qHBum8|Fo0OwZ9Z+uOTr_Hnw zYfPk*K@0~n(HzLca4|6Rexg4Po|SAs;Pi}sZ|7YgpO4pfGu*n2<{zT%JNfqctbJRC zTMLcYzH~htxS`VC4bXVfe#%Pv{YF5CKn?<$C}O1{Koc3kfW~S6!=VK@FG!F z+(IV3wFCXy?W~8E=fA^mPYYpFdb391$oI4urG@>%M)0$ND`tuPwZA{t5cGwsY` zF+;3bM2c9lthk$VG}`CSlew0J%HsrRR2Fg3C8PkFO&O)4)kW6-@p+Pk20uSG$)Y7b zKQN%>VES5{(Xo%PG-^JJDT4w_+ETxvBBO;Qt{$v===Ll#UTniWYz-+zrsgEIKtLMBwA#;C%!j2A~%| z&}iWmf`cDlPJ`qvdm(k#9!XnPaKEq{WI?^nQn0bd0lITHUnd`k*Nw;Bo?o)iyrI>X z)y_Bd2qD6^_p)Kmy6g18yS!c&{H)o(7{9^#_oU8}hI>r}8t%ROj$ekx)`wyV1^kOC zZMx09RpyIh-v@F{HUFlb8tmAyA5!=4gTn`?Qg^O05bW#b`kfNYi9q8;PMuBp6sqr^Tcx^_ZWD`}xPM`l zW^l7Rp!vD&ji%*o-VXZ3f}gAGg%%fARFrcjEQyL7FOfHVij<}!MERh^)1pg zuYu-N6Lqx}B2e%((C~6HaJqkGvu1m}+%-b`d#Jqt9xIMhaIZh}gID=y1fWq`cO(l< zg9u7^=T#%#dHC!q=h{L*^OXQJX=1Rj9B62;uwd1|5F-Fh4YqtJfTPj?(EKfmes{ll z*#QL^2Vu+l)v!Ci)&*G9`gb`VEC-rO8PE)p?{@*pXl7qCEY74r(|qYLBqr@d-!VIo zcEZk`J7L$B??sDDa_%L#bN7Ml`#WW(m0D!b50pLmMd9lY2qJ0c%znE(;0tsrr1hrrCg~H`zw7uk> z8f-}=e`BDDkpWHEpAq5C4`Hf6V`ho$#7lU)T+j zg=VUXB|^vLwEA1C{I%KV#kd!D=Qjj2I8LVJ4KXLTV+#~s6xo(=-Tq|(sU850){d~L zC-n2suthGr{5g#=!SOj-JFJ-HVE&;>>i5OFZ)DZJIiL|2J9Pc`>Ghxe-b8=Zr*Q2B zmlX>db+JZ#&c;LMKyFe(2(axh&B0)JwHtuGMGF3 z%TwBaoJAb#)HUq>X;>xPN%#6Wpu;eS&(o3pg~t{;3~2QP`deWSbF1+{6Kz||Tt(=( zP|#ForM0*lhCo$Kw*+P{Hvc(98=F^3|Lm=c>$H zBwB0k-`pkwN7By^4Fk=zoh9_WN2ZFeEy`{cfyKPCP_uuR;|yM8=T`xmU{IJpHtq769Oe|5jB)laf z_{RVMAOJ~3K~zg9@+a~0aXaO|k=Hh#r$2rk7jF>3Bk#_D`1vSYWfEVPwNL#Q-?qQD zL4*-m`_(4#_2?)?`)Kv{SnKkbtN-jgSD=YSaN`)Vd^*5(hugNbJK05dGpP>u`pJGIhePf&he`! zHBek|4ld{HkYbdcqy7)&%@>X zon*&WdH3(+^`~{{{vAkxlV>kOOZNb@aM!QBE6Dxz)9uzQc)kBFl%C3k!joCB;d8qo zs9nZlhMxVhK{eOWvMhGIc)jZO^SOz+P*qim)W%#!_n@l$CX{eHxpo#klw007(0MH6 zp=mFJGSsfNsuF7I%AsKAH{$#9>Ls8#Lx4tdMa^D)94abHknWQ6zZ>j;vYVw)oSQ_z z=5R?HJgB<@Co(eOQZ+TdzZ^$W4RGREbzrP*-(<_#pa0}+ky`t=)dAxlb}x4z)M7^|aaeNh7@wf?WM{&Api z&)eSNy6YF=L{t z74^TB>z@V%%a6O9pShLX>K;R9%MJ7$dKA(Qqwn_~npWY&A~VDym?2Wa zOr&HbInzk*M|b_tkdb#?{Cwmru}DDD*e8BI&aMiTSy}k@nfX3!A8(O>rip9M0S(rf zCim^Jt~|!j{t(h;+dTxDP|iYQb_`u?ej~G5&|N?1?>S~MCZ^)SfWn8^3uOmpNiL_p zXR_o`-Q`)vTuf6BKx1dWi+{4K?vxlGqj!D@I0j`gHLjMVEpV5C8V@SE{U0>mzrOWo zP{R*PcLb%Eb}3$e1MNlo+^5WEi&4&vN3!;v?f1wR4-Yia&aH5l#fh|>Opx`Hb6wHC zjkRYBI*nb?7(ee`!U5i8Ph4W0a;`p<_utw<`_Ek}xt#hH&rfBh3e2JYE1$T;$lzM9I56`KB#=qw+J-o_zQL%@0wBp znzcFVaYB;oNr1Yikf(4bVPNalhyma&c-fUN#4V|3nDtJ8nl&16N-vu;NR{s+rShQu zSDp26U{0tkLEq7vJ!1b^*h0gVQ^3KxrQ()hdhd$%&X+;O;nHrgy%J~ycZyPiYY6AI zDS7rQnIA3di(XK$UjNv#^S~uOYyhgx?>06*o%RBVl=u8bo{wEq%p)p$Fo$iY7eIvv z8k`i7|NPy*l_4eayFH-!`A=K82&&QeUiXy2JQK^wGK*UB%8q_ZU}4Itlkki|8m|(A znSy^Rk_Sw8G*Pe?Vqhk(%-8N;?>HMDRyxjcg}$%mhe~A%gj_PAp-E8spwH#nuOIr7 zSY(de>U8=3zWd8w(IS&xuJZkUb)O-aA-P~8e}sxo`RAi7eWC0Ao<4)khFNN z#(Uz>@$Hbj|UOKWb$kOZgwxlPDj_j8eRX!RS^G$Lmy_; zGTAOz3p+L^!NvvCJ+C>0)A7$=i_X0fHqQIpx5)toOWe1KWNtUk`CMlQ7kYj+Btvq- zXC7Zav1BYyBy*6oe6GiHAYT9c={~K$C0MQcD|V`0_q>Dj_(0Xpz^F-Oq-I@xc{Ei2 z|Nj_c8OA!6W{|Z(Da>Lm##)4weaUW`kbNy>Uz-ULV^Y?431vwrvKxcJD9a?0tVPz! z8sF*j&+nYyJ@>DB?m4g5eXaNPd^{hIM~*3Bu<9+iCcKNCQ6HR!TXc^ID-n6=!0}k^ zRYFp2Zjjx~%}KkJHVu)EA1&I9P&qKE8J9lYPZB>lAQlnzMGc+l}=2 zW^4aCF#QJGIrG!`Ne1&KyMe9bN0m@_qbWNVZ&BX8Ee`v)K0Hc$!F4|0n%icNMuHrU z`{$Bujxj@bEXTM+GAETV0lTOeRnF?x&GDTn;08y+aKQq9cLbdfPR0=lsz4Ga%JJpPnYT*0|O6$oD83$PXti42bTv`ZSuf@#gs8X5C(|BiT6a*c&2A_a6yN zUw&wlJiK<W?tV1=m~Bh1pXX7v!p0MWBAI?TM9?Aldv=_lVVzBElNJM~dG zSE3Z_8Ejdk8ia+y)x@E2cBm!FG^_;3=JiV?*fo}*P1>_|_m}(K*a>v{5=%4yt3|Vz z6%#r^49om^BwNcA);!g>XH7tF@RB>CTNqbgg+za~i-&oiWD@ql>Hy^J@%#~X@+Ecn zsq(A+XX%G4F~{o$L;Tuoa40K0J49h}J|`9j^f7MS_|I0)#8t`PLf2mI@B#;~?r>b! zaEMzNyP4`pEl8}jEI#;RjxUSZXAolOz&LU?^keGJxsT_=IjnVVv? z#Jlj2uZmQH2u*{>C#RiqJ(_4Uz~jBotw-#OK*ACwXIOGJo8Z;$IFQO*z71v87 ztD#W(Z%!PA6EAbID3+CcoWV+VV@FGK;`KF(RLucI$5#cr0ZXdpJJ;FPM;b0ME_S@1 zSETQHUga~~`GD^te7wBJ=~q&4+Fzl$1h8lrO>}j~q31<>3~M&|ed3vketK(e$*=nv z)-RC|uY!H4IZfJbdk=~%g)+AEgy7>fi@?SKTu)U)7md3DSAJ^YD~c=H93Yx2tuQ;w zgzY8gm;MQ&!w1EU+u+dAN7$kL059#D@YTtRw+W_KqRPev8*TD$1?+fb-EVl6RN2T} z7K=8+iZ{nfH*b-Dc6ihQ!cQ`ID_iR`vV406_QcFdu%GtDOz!I;8_I%p`|C!)*Ee-c zf&5)~^Mo6d6%@y%=3`m97>{h`5R>d4D1S@J0dF1pJc6AerTwY}3gYA0ih}MDAdWiL z)z{<`=Fjw5WEz+k0S8BA>F3IF*6y%R4}X8UH?!tFAhE?2{h<~)nL5pNX-gbj7 zde*3(aGg6BxSQQLPSUwhJ`$$4cfya^pwd99z4di7pIYQv6|(kZ7a_yLh641Uu+c%% zMc@)_0(9e0 zRJr$&74E835(k$@t7YPJY$ZG|B`G__z9oP_@K5KR&ciFPvk?IMCd=zPH~e7+SMM$HqYHoM@q`QkqNA= zHc(43?Mrw}KL`(O3fMSR$w@exQRn<0ur}8&*KD}Hze{MF#AcJseT9V2Wg)4?4o#by z5+|JyxzB1g+u%8rnJc}8ZRd09Ga9NB#LO=^Cx1z?Y}wK7dL``ad&&2RNRxaYlfJ#~ zLfy|u_>l5<F_sEzQzr)55lW5?W9n-P9xLZ+^{&Zimo0pWfSwK?V*@Y z3k&3(XhraimjbiKtbY3ESszOobhMd@W7DR?(uKidVO7>WcEE3>&diDY^-c;dS6PJYZErpg7WqIeHFF^jm zHl1fICnnj}4=TEUOszd=_LE)u2dCObp`E6$|1w~=eq@97#<0E0lXzt5;K=pHJI}ou zVq0H5tUy;9D0^xPr9}kX< znGhZ8(@g92fTGZggeC6iqJS>m`4)Xgc+Yjar@a#zM~?pGSJ?0xFZ77q43a`D=y7C| zD!ZB~=_)brYCEL1pMhZxCb$%IjfJ`k#mTVp!({0(oOY9(7<8GnwWH-h*HyppqdPa=h90jTHu8mx)jOr| z6)W?dZ|&Qx(hoPNxDlc<>jH;SPrOaOYPxkpPPNeGh8^e zB8GXfkXNhVX6!3!g-*!7+Sq@BC7B8sX#&EHHml?@d2R>ROx@drjkO7O2JTUFnBd39 z7_K~%9hM$F#6r=2~HtR%S zU#qQWE&lcteyMHJYgahC7k;a?;?E%}^l%Sc$7WUz{9CdWYc1+yaW0N9aiRpG^lfb| z93 z#k5&Rw?+!eqYU~h&s3VrVcmw(92yVt5I4a8O%DUDjxUFF+7Km@@2;vdmEBc<@6n~KIMXDzL4oxOMDx+=RP&+S~iaby@d>p^;U zDD}iOn3-iCP@_npu@bwas2T;(Amo?DQ83flUapn$Ud%_FgXfqnHkkwF40uTWahgkA zkdc^J(Zg7_>sxe3ID=8~_rGVy!E%?9C9S#@I?b@F!Cc|=^XT(*ychR45MB`YvSnM{ z1D~wAXioj=?hd4ye{GLwwa5!g4Dg=u)$psn5;=Z)P-yM86;SmxoNEp!6 z78pMY*nccO-wuAF82` zuQLg;uEWW9o4LMzkqVQ}y+u@O_<4QhD9~U2=U(>O@n7FpOQLb?9K^;WprRA1XbsFG z<8S6vKsl(?yB!+$HHDE#e`0Zpi!VI!BT3E=2c# zGsE9GYGx|%DEnjlvP_gmnsn25ZVt}O8=YRdp&45;$ca}`;R_#l)z-X~dS{2IJ@Mhv zWi`;lJ2%muNkDOYOPB%i4)epg(2JH~B!RCz4`RER_iX#|0BB!Q`{>>hl-Ci4_yXca%q-$7?YaPlM65bDL9?~CKYuTxoR)WcX{fR_O@3q z*GC`pPUO*h#r4?rVX`p(D8_K-26?*D*G5~H9bWKpnJ3)D@y5fID=u64t!H|v;)MD? zIgJZk6r=@Z?fJBm4;Csl)<%3+Okn5XsDHBv1;H5oA)T0)57cn)R2$)w?5P{Jh|2 zNt>*rk+!!!cgIq?V-Z3uL^zFf7lJe;ZL)if79ldvB#99}Zr}v?+?Y`Qv;Dnw`b8zQ zEQ!PQdYb@uPb485rfAQR*?d#ZU*U})*Br%h`$Z?gK@6utO+;m;rDh79?D&cxIQVI( z=kUZ4$4sS-%X`c06hF(7zOG_0PeW^OaT+z_29QmDxumA@d&QxNxvOS6O|3Bpa&q))S`6kDUrsEnH>Jpqz=Zlv%Oj z%^Gw&4VXUH`Y<|4fKGbSrIP|H4MIMRrA2bU2V75h8Ef$!rFw3u(+EZdgvKD$T)P(P z;n^>yzC;Y2NjU=0NlY)Xa7^)mVDcJYd=8Zpj4LU9f;4hB8ksxKNR+Js^LgsKLF4xC z2fnlI|8oM@d9gzaI(sn_EJT7qi&V80=pNKWeC|ZY?M33mq!rJVSH) zZ?zT(k4Z3->L6saGh+^kKLCUFls-_@zh659dcPe#se%$=^5LgTh1E;*SndclMh;YA z#sLlE1kWPXN)XUVcpUakhAX?797#&k<1e)iB}_TW+WV!_Wlr`eY8CYRk~T4PW;#6x z`ESH9o1iulfL^>Bu1xHnMzf%yTTBW4Z!W?6>J|vg2E6u#QH7@BDMw%6seug*Hu!5j zJF64xK7ww^0HPM{lBH~%IhsSQ?5>;@$c7*l;6@QuMGKTdke(8NRps)uEfAi@^}iB4 z!ALz9zt2zYY4T-E4O#n9R%r_az3Q6dwyLSy+>18|DPVH1G`*>lFgP~W{nJPA8?HoS z#f%_`_Yl6;N#wuL6|2C0<{>lzUdPDb#CL`QdQv+NtFdor1Rr;=Y@XlQ+(Ot6$}Yf0>!$So z$EIf3bT-Uf#l%w9=~piZZ_JA8?EQDL#GGU$_DIn|NNRZpEinwIU&?|mwTb8}#G9!Bk|Zg|f161?;2i9&V3b*i88#m$CP z?rIhUf71M<;eZkPI&oj*ZvNCz-1Qs0IU&W-*EK~_j_jkQU&Jg03W;b1$cex?;>qqH zOc$q5vcRa+rxbxvh-^8`*b+r3V((KU#3oaf6cSI5N+Q`Z>2J7^+sIN)J$)6FpHT?z zb#c_|(!G$Pw}v5vSe%9oa4^V=p#mh&;#)2mX{UIm(o2M)&#LW(6=xC-1QPe<)4kH& zxFk8!Rmv{~249e1EBL;G`F;xC_~ zHJTVKGuD)^FT`c5fKR;kr?>FFB!{lf>vSb3IWxVAcjtbK_V=@2&+(&pUrpS^%92@y zzYo5TbeV}KPKLP`2^1mXu|xxQ3<&RKnIICtj=`~wUXt>_lm~HY_*iza5P4XLPdLab zy(;@Q7sOwH;IPra^jTq?S@azi9DxZDzuwA=6B9Oyl#aM-93_7eM-SPSXaAQOrdwcf z5EG2`{5xD@`B_)UU!Dt7%#~m8@PAdMa$NhyF zH$QC-!iz)jM|*`wd$K@sn`fidi6HGy$J_=)62_kYWv97tyqkP?U*eJEYR(yIir_(5 z&2}*I)2XD>UQg+XzvheT6ucI^tf)hM&txj~MR@YZ(3FYFa3U|yr?AD&WpTWT@A>&D zi+ujXUBj(=3lr(F$((wFy@6u6f0^Ym*CHL6qP zyu4paFRW3=Px~LVf$*z{&oOR|&^WT?fo>;^ zVVJ0O%q?0axLDg+;V z+}RK0weBrd6?wictVoqsjHhnO1IfBwS)G2?oIXdPQcSkO$7Jt@zc-EaEe*WXKBeiW zRk56FRxMr$mPd&^UzVA(EQ&Q?y?p(-aG zUcB2%e`}b8N>ZHvRoZD>z7bTBs#3_=Ou|n=-p~>?C1NWV?Fl&#-8ftnMk`wx6qjLNwlt<`Xf$Bi|g0Q!YkR%#ms@B zzQxmB+h4~b(G+RwtbFZJmu8atr&Y-Ud%PbfPDhHQS9ceyvdz*#;{YKqjq~B4HswY9 zr?cC<;CHfCAdkE#+wR46jw9m5Q3jUVEN9P4@{dMiEfYk`_-1FVHEN(8#AD&LvL&v$ z`T6-1vYHpH84A?z|5+b|^b4>3w;Zy~$A$8${1fx-=OjbR^NqtX)8FE8-+qkBDF0<1 zcCqZ=x)KPGI^wfriT-LZoA3XYi09{(brDr`usJ>vsS_qL0RXUIO$_y{eW~B#X#PUf ziHfFNmCEVNXe5U}MOORytzQfC^EH!((wTc*$w?GnjMFhz${-QDm|-b1Ao+}cSXfX> zW==Iq9)vc;p_OsmWKr}LW@lpCijJ||d|!zA^P#3(+}nn{c1a=Ew1*laf`bF=I7s4! znFXy-UI0RBuKrlU38zAHTOsuL{B;H4l@J5Rb!4UE$FW3koO$YR-BsyunTwo2alH;W zSKXd%|B->U*Op~5vrqDnE6dRL#?OtM?iF&31u zkc!H`HRVf57}k-0HoDU5%Xp1Ft+R`@bra&gLHP9RrkpyORnmMtuOx O%f!gS@Rhz>{Qm*5jX6dD diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png b/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png deleted file mode 100644 index 2cbc45e7e25780935c53302cd8936405a3d8da8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5613 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 z 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 diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png b/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png deleted file mode 100644 index 29a31e2c23b1de78e352e793ca95613a7f025c20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 69079 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 Z|35K>(k(LI&#V9d002ovPDHLkV1kNdBzOP- diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png b/static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png deleted file mode 100644 index 19ec945cdfbf9743c163f9a9d4441b1743cafc5d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41068 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 EA8Ss1t^fc4 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png b/static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png deleted file mode 100644 index 785fc1290a88784ed1151bf4db7add27f7424915..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50615 zcmd43bx>U0w=J3kcL)sx4-lYn2mu-oPH=Y#5Zv7wNN|_n?(Xi8paFurcA#;0Yvgvm z@BGfGdhgb)`~G{~)zwwI=U!{Cwb!0=t}(~xFeL>kEOZj|7cX95eUcVedGP`P@Z!bG z3shwIkyd?OfA|-ggS58uix(KL|9)Oht@=K^c=7hdCvg!qkEO#-OC`0vw3GIe5NDwk zZ^c2u=I#s-p1J$wlY`<(=o-IQ=;|t7XS=tQ>rojx%1oW{N!b+q?UW2Uc4B3DDMjYU zNI)i{j7*#P5ebFN;UkhnAL2{-4_rS1uce&=e?RM=vwzv z*KS1n`n!sfCC-bdL21Ldz(5K9vk3z62^j8j!ckwMw~-~Vf2rV0h2m<&VI~uY+o6_R zS|^!Av#sRPb(*slr+3{7kEh0~^YBrt66uMkjn(ql1|gJwbDYmQE9M|o$j`}7m?CGs zD{@*rW~0pg!X-U72R1GKFA@RuCQ;T$g_<HQwS=sb=s=nlNyE9Tpb0 z;BspAWf{>2xY(>*x~xD({hSx%zK`Oe?@3oJw0OZowoWY;0|da z0i+$?I4ZNae+)3$tN3(&d#asdP;K~k!TN6;0RTs{gK8oit1~n<1@ASnpwa?bVew2t z-=B+BacH@3%fL=^fIAGPx*=KV2-wN=!^x%JZ9Ig8!-&pKh1={cbS z!VDFM2a3XK!%q_)Aa*XtR_fP6F)iCybr>+?jfGIBKzs89!6=`{*YJ4(0PKr%YF2+u zWklFOEsLV>PE}g%XEsE&s>&3m4j;E#{J44@7`ZdbB=jdq?)N&$r8>m50~U9q!ve?>`0R>~;l<8cHc2 zp}#RXc|1!ua%`EfW8x9-D{Pa2K0ue`^fI~IsRo`nM?R^)jnrces{T*Y>*>Et>sLZ3( z#!-U&CNV9aGTWf4AUE9qX5)3_c@PHr;{(15_{A1%J7jozF>pEr=krY$Sd09qMe{oW z1F)fvo>FTAnxW<73 z3{V?bE_DVAqo}V!*;$|-Xy0r!EXJ(p+^Lt!uONyg`>JDwXM-P~EQxcV<;q%{L=nnW ztDC}C9TK|;-YgR6YR{Qy?mrZ*>8%J4sp*hN`R=Qqa=efi?fpDGQs-+-t~xtPbG~3d zRds1YdPIW1cd#RsAcc1&(XL5sTbN$r-jXw6j^JG`yYWr8w%U-WTKnIXP?&SNJVvVU z^Jz+IVCT4|xSceD6j0npye=0iQKP=}TfF5hntM+k8v3IjNB!jNmY6QoXN8eTZ1ITC zB-nopZBJeawRmxfn1nQ0<=G~Xg!ee5fwℜL&;7n)Opp`CHvN;|Km@Vk%Y9TXZsa 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 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png b/static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png deleted file mode 100644 index 98eecb2990ae46f75ce1d7d56a6720c46c9b83a4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32517 zcmce-WmKF^(=Li75Wx~$1`qB*XRwgq!6mo^2??$guk$@9wU;s;&xDl$XSOPVyWH2?b)`&5(+lr_X^`F z;)$#!%Qm8UW+SC(kA(E%)#DF&e97Y$35gO(`n{Mcc>bUnVxuPc^FkBWGxIPg*W)%Z zhWlDbX^E3u2v*PJB3RI^bX1V%G^e!rJ* zNSf`WcESn%geE1$f`W#E_KFf`el;1k(F_rQ?<}fmP_ABmXyR>vvm`=JjfJnak|3Vv zh5C1Uo?Hj5#22k37b}=I=p>;MnPXqxM&CKd%U@cvEv4O`V86ql`i=udjgRoMx}18j zn0+va#6djk3ASdDU^fNKri^-JBX5TZ7#+Iv-#3RXIC3^*6i10gYV8dwWJ*G#lnP z*c}>x$c8N-AoWntQVCBRuS~=i z-vx$hQ{G^c*?6vuk5kLWv&JUO64|mi5j~``1D%e}<~7YWjRyh?ULUoRl9HPI-UzhY z?8k?j5$>@|HPMLO0fjmBs53K-tp-6RF9=yxQ}r7?K4$ZndV~xH{>%(3%r8Evn^~ig zq@`p1knNsgOLmWm{N4WC(V@j2W@iFVSrTf=C2rgoHKxmbBYWP5Zu$Fgp;ql`?cvBN zBVSsGJ*M=0E~ANrjnAQRW!&V7%eJ33{ARr+(mr$YT#5duah}-P5iM0ARiGo;^wUzk z;04ilkjx2^x7TL}^ei;7+%W^|66NH`D?yQ>{Fs8m6ii9;L$#~r%S9$Y5&UIbvc%_= z>1l#LC;Fwr1%k_dagBN~&lB~+J(fsQ&y|mJ%B&`4q)RjPrWi#n5$IW{o~brM=!M{3 zeuwsNLSC0Zr%m}nSj6r2r>Fk70{sp-Pe z(ky5y8sTL$36yj}ZW6}P;WizqY8L6lKtn@|6*)103s7y~2Kg^_x3)6pA2{i)C-Xu? zoKqd@NT_sjS7+%o%itkBwwZin@g_ZNerlk_I$Lq91c|77QArXdC*|o$9ra~Y{VRoh ze)eaZjvlSPl!6nJe6R@9Ebgf?gRYL{7a#W?l1uU<6+0hSrWPEaOT z0^A3+N?mDkRB<$NvVsT4v*pWwj806Zi|q*~&OE`3cBYoq1&)R-CNI}LIl>i?7{tWH ztl8yFeUYyGNoNBP3ExQZ4nk+e;e{&^x-0Op6Ax`W zRdo%%%e#_|4U;RkF2gzf6+Gp7xH^DxD?&a%7@e#*@5 z#{%#fimyjy&@0#38%~Cm8FZq8URGvqT{eweBm+Z+zxW8?vBJ`@`!*?C*L%(*r!-3SOR&7A`)8*AZZ!bW4$<{Ko1OA>$cJ z8s0IZP(IdJ-K@X=BSR?u{d&{M;B{$dqjq1si^a_MxqN z2o4Fd+HU63IgOZK*-halR@L`+BtZ{>HhF7)d%a3n^ehuR*g$NNVv!Of4xEXy$(`Hk zy0RejERA?zQ86r~2lkB%v87k>#V?;QKdxsrs+Ts|$rDrYo>zHbuP>ag7!g=?1BL_7 zlgSqvF!y7<%1}?RcfbdtZpd4=-xQL$1pD5d&+SFM$_J_E3(7dyZDDat?X22|*c+H= z4=j>jO%hK`R+C8wPf6Y0J~3NrHOLZTGmKO?@vtr4?VqI4}+WiQc)s^&>CsBDe zJxn}7B=`me+5sBM>=IW~ixtE&kfCN3(!EZQ+%>{2@ z0zrC7=qH>2(v7agU2)LrF+*m^!oor>}(v<-tl|&yuw%Ct;H8P14MNQ3J+|48GknY+ko&rkoPr8-dOU@r@tgOwS zy-5x@%&T))kK9J?p#rRXV0WUT;X-wAaQ=S%&fqZd1GWhC`;_Bkt{i+}i!Lrl_dsm>Com796cwokAwWpYc^c zz6_GN_{#tSS}hQNGf&~>Xk^DL!d9u+)MW6VH+l#c2olnX*y77g6)2g1I3@gZw!4dy zM>0+)zCzZA?Pofe0HbZcSphq4Z+rxC;|-Vmk9qU&Kz!|^E6Ul!~G=&epm5$MIAH%OgCls2OW(xUV~uzErC)&$rEas

    4U3*7< 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 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png b/static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png deleted file mode 100644 index 26ec22370168982d5e0e5ab272e305964e9a7980..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68953 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 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png b/static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png deleted file mode 100644 index b9e53d0bc63df3415cf8a049f2f78127c1fd0166..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27450 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%0D1bQycoV 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 ZeqhT}n23C;6;nzU9W8_Vr5ZLN{|ksx)|LPO diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png b/static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png deleted file mode 100644 index 754eab9849563a74eeec20bcd31dacf6863b1109..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11670 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 Co`IJD diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png deleted file mode 100644 index 170488456534b63849714f08733b7e5dcf951263..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57084 zcmbrlWmFu^7A}mtyE_DT*WemlCg|Yq9wfLs!7V`W0R{^$g9dkZ3+`^==6%mS_s{wD zt*=-0+H39Zs@f%8wV&!|N2{yKqoa_ZKtVyFD=NrnLP5a*prD}Zkr4iB1U1@9{t9Fl zh0pF#P#Asx+|WbL9R43y z21+>Xp5Xo7$lxTg{-y%v_gJ`CDx{FV>3`+_YX1A?|Boj)tT?RyR7ZvMKN9qS4=P9n zV*hJf$elRjH#ahq3-jOVQ60-jVQ9pCbtj3O_Ae@T*GGQAM9Hu#{R2zFCWEcFVVXJr zDG?-4=le4*VxFu8xhqKWMxx3Jq@w?hZ&h6Y={Vce;h0_c8tOXQz2$i$QSm1Md)eII zqD?n?tZ>!9RvXsp)~8@D>>j6x5BV%Lz(MI-7y6o1N=r zO|Cy>gg*XLUw;`B;ErV(eDugMJ~p42%yKs>Mf+JY6agTTS7P{YYj$RFKxwJA3^Hqh zRVKYfZ$qQ=)j(HMSJP6}$1VLpMWKJq=`W)NKtko1v7fQb?&f}bJE<++Zf|YMnynkw zeCK4q*vxvC-mE1um)8#ZcbFf8L--nJVMg!YrzV6uGh~|HNp#7(gZD|r51jU~Bz_mI z9NZZ*?k7csE1<>q5OU;RwL9lsw&n{sJnm;McL!aE(x>5Q2_--FQp2tn)7mhf^iR3r zgT~Cc8YOvL{vEoGVxa5Jjk#61%1U5-P>I(s0Ki>Y*X8U{FH_vp@T7a^((XX4h@;O- zjlx*`Cg_s`IvlROpt$~kjW?<0O*Yue<3n7-dnz|6j{bf-*_Tej#0=Cy0DWntW3Y6ysLbPtux+0<}q=8o}82 zdf|DnZW$hwr5R|IgU*MtWpLAib-%?fP_Jf5%PO*^jL3tlR6m}oB!2(Vm><3#R=MGu z+ciMxoWRdTb0~*Fn6ZX{_cNhl=lkgXAnS1zX>ztfY+Q<$$JqIX6+wb7gU06?)!4Xt zC!|GHD!q+BXN0D-(}uM#c#ToufYO|~oI`sj`7g$7ny5MIGoo?((s%MPv9Pzz-c+>R z7!~lxlLT}blrHJX|I9FPH%PWPS%}s{L16y|a{yX_y_MHD`(MPbxT#f>8!alCqUTqk zv=aG*37aH8K0Yo)SCS&R(Okv*BK5jwt7~VX%4?|st_|vZ3x$5rqj$dwLoHBqZCUac z)_}lBL@$@j=4mx_w<0uE>)Mb=T}}q5UUZ{4U%-Sh^vgBpaE1 zKAQF-!d$*2Kt6glMIjpC3qfXLpfz}ctO3+xJ$-dki_ZpSBU3$jgB`(K zkcLE{eFe^WYY=ZmOCa#>JUT{x(%l_ErQAy_-z~Q2Y}KBD)iZadyNjM5YP8%j>AsUv z8A`d&tZKkmB1Qb}W+s1=kHfT~dI`!OOk+4~=wk*D$rYK5eL`oWo!=nlr{6u^ZPhb@ z&L=G~d;A#S?_EUrXV2)X30O|)yE9RE{%U!D+pfSD=wB2|bAz&84aoToAEdGgTuSyf zw6;DPV&XO+HP&`*pDuH`wZfp3=$o+T%v{OuYDZ}|D3UU|c@LTRR39(%dc{dW$VdN( zugh09Q|2}txX@}3ruESlT3>%LHeq%3}(B2pf zzNvcieDskm^4M3v|1fXOYDm9~|97RkVnWtkl-oDhAE|%CjM4`UESQq52}{hLRzIUL zu)SkU4y^haDAsiz!M7)v1Wvl`aBNTA4N(%^k!wHuZmHF+JB!&BQNeTzu=N+!_<>bB z(+@Cj`k|W`IU&!riyBxCYvi=;=`=Ha_#Nl?3VbG-$hzZkx?t4{curoG;G~c|< zTE3RY3=Q66u^717E zuN6`DoijlLcPCn+Wq!+Xb$8W#{mS~Cf$XrWLLJC1hEv9$I+Su45k;j>Ye+7EO~C)_oYi)pPS< z{mOuV7fY&cKj>!nEP)|2?Y-Z96HIUmUBka@^B}|Vxpvh5%%vlwg&r?lkjS5#aRJn` zR~Q`;t?UV-;Iw(F$6I}~SIzajkrEb0ve#J=F|2Hn!P@tI%!F4%4cvgD_8@`*8{xo-ERA;P6@ZsMH z1$*y7D+mZXz=UT3@8@F~*QWK&B}LZkYcW~~ByAYl8w(^!aG`swrN&BpB@c_+a8zJt zcj>d7QAh6DpGeMu=$}DO4xAK-19Od2#x($+5sO{l9UrOJd!)BkF1vlOE}#1nRAc_9iSo-UAMbDmhLl{a&`Iq zPOOB_N)U_Qvi}|YD}la=Dv%1&<}}goZOn(&P0ef+z42JAjQ`VP1J@E^+dUO<+a(LO zSY$zJbdgk_<=(LDvTkC)?tWv3ry+MGR>bU~RGHx{Lh*q=x@Y%E=e#^@M;XR2GwR&d z`FSt%Yv`A&dsv`$qF2M~+f!}iX<_dst_l6Um^i>Sd?E~KX+Uj9Qwjf{jqOne&i>5< znj)ljgI&J*Jubs&8cQNGWNEoRLUFWx^KBjcbWm=n5?G7df~T{6=Wc!I%RpOOL%ECF zSI)*H>E=Yp&->DiSl@fK`P<)uKmOyCF|35Lfan9`K<^oewLL!z$qj&zQY|KUd{8%$vR7B{_#0nge)b8nuJKs7KYM9 zI07;!iXcW(U>ol>@D9hnX)>eD4BpTWI;efa`ZgUENZ_Pw$+hO2m5C!!HyluikHBFB zB$y5Q(5PAnGWA*}fm4SrAzbGN~mv14%c zx0h;(D6b?=UOn5a1VItgpOmKdM!0X76YpG%Zx+$$xND8oThd6gN zbiYA}K_5SJ3PhTqYfTMS2pbalZn1>p89b>L4vV_V#7oM=Cq zF9N&N$E#F)!d2#;5IGy55T_X4=`ETYa-$*S)h=?1Kw6|KbFFDQ6gbLP1Xpbzxw704 zJCAKaXVp9XfdV7=h*fO0u4NR*pe}x5N7DzMzIP&LU)l%zc!*ce)HvTPs3eg?#GBnQ zw+~f)Vn$PrbRGF0+@J^+Jl3n<+{P9d_4 z(7B*>#~xLD$1bu?O>g*LK=&74`ShhRNG(B1!vyVX*>O0sODIRR1ggSM%RD z|35w1aZb1<-*_4lp6ot)VtUu@u6p&kR#R+>dHj*1jsr@R1%E?<$NSoVmSR>Rfn2B< z(9-h6wQUHjr-%M2x4B)S!3j4cVKl7EDBd{};9eh^`HKpTgR)Eh3zPO)@NFd~moYTa zvd<298s|{N+H{+eb^VyO8@5~VH4K)?Q|vHwHq8QUa%Opm(vY%{FD3C7nQM=7%RAjZ z{p%M4PZZTs%-qIWP|N*25!VD5Yv99>HOeWOPS6@d2x- z49>m-4S{_b@QSG1JXo$5Wf#Z@(8JRG@m;;;Uhm}Fmy}Q2M*I(tu*=9R#WcxWPo{A8 zP5f|Q>Z&EAz$>Pt`B%_z_Rv{gHH?o*A)bvw z-Qeb)I>E0Q#()D})FcV~-Cn3@Azvz|7o{y`h4qv<*Tq8SJB2*7Gm6Sv$jFOXlEiH1 z1OV7g#T`GeWYg}5@J%-EJ2G)p&8)q#*F7y6YbpEdw4>LFp_!FqG&GH3+hX7@d7hg> zJQ*nDrDd^Elq#nM+N;v(hZ)-B2wa-DBHCs&dC}N+UVoB}=uPL6)>dj)WPLu&(j&ba z`~fvzBFo5HExY-e|NGE=?7_?Y_ZC#~xFw_Q>A=;15m$@QhRjP()KAHbJj#!poMEY` zo`v{{&2{dqQX01K*@(YCqZ~Cdu}JNO3q$7k(1^o5iNrj)$KT-`%!~VcB1hHMS!_wpBQ>-tg z{NEGS;Y-^p0a;Uf-Dc!(^G1M9?ax982KInfcBxO1NH2t#qj&VWLqp&W@yPsV6fZ-j z?B`M!hR)fCyewnwwE7M<=bpnsBij~nz()g5Vie_(DF(y-J4bA-Tws0Vo0TcG-4`o$ zLg$!rL>>UCG#`?eXOOi6_x1HE_y_lc``E2O;kSKnTOF2C?|er282i%+R1H0y-W~mr z(hcI=jWxy99UyE>EQ-cFSHz$Ni_hi+(1_B!ql#i+V4&ReN$*#p^f_*bXVd72wK9DS zYOK2MW^B`FS&6k@B`UsQD~RxWH!t3ET{92Bjf@?mD29d7vWZ9^xG$ZyXQrzg4rm8R z8CYT~wY+Y$`D%ilRCTAu%MwY>=u||p-Tfj^wmt>&z@IDaZEiD^=kwX`8K zocc+;$okfHJgRe7UQ~lVo2#&XY92OU;YrX}H|Vh>B1|LBh8ynLC#Y#T&D{pb{##b< z5gBAVjR8FFs*M@z+O`x~UnJ}Sc3T!KChQ@D9GVkI)CNra+ML% zs@>;2E8iKaAb?wrfuRwpmE!{%iPH5HH)Le)nkrk4fQ!CdYhPaaLNsAw@w18cU|<>A zS+RZgPwn7_Q2JYb-Ky)hjxN-bGPkwUi9+T<*jh)Jq><;-jd^J@Q1ldkU5!wpy+eH$ z!04iii?h89zqUFW<5sN}n52wY^XG0-lIDdDE|z63hw;umJitb@vR#gA!yxoy25@d7 zPr^z2WoGM;IMj+k%e-3X(hW@(bJ5wbrZ|%jtvd(_?^m-m z$9NdnFi!mwC+Fd>-TV;5O+`Tz^AgwBB z8Q?yemf3=d8G4dW(yT@+*V;!jozFfbE#ea-KcTM}ok@H8doeKR&Z2JPXLP-mJtd0P zJGmMM{?siXeSjr}vrab$y5Z!7`vY1JBmm+fvULT}MJqpf-^Jw|ze7ve3%D>l$tb83 zRl=EP5}kf@P~eP_F{m8;Lbr;IAtb$`UW#I5n!DD=S9~~%8Lsvb3nylUv#SMdIQ(^^ zwd^sckBJU909T91W<0_K3$qu!#_pc_HJpc}iGnNcR|ZD8q1D&(_y+$NDMB9TRynYo zV7CZ~WMdxbP8C32XeE9OhiaKuhCDtS8a71P!R7qOPOAP<7}|X{bchkuO{Q2{MNV{ZVSn9* z3KB+@MOiSfQY6p;M{IxC1NT7b0o?GnAQPdHj)rFIr)8v@*qGh z1ei`*&Yy4UNQs;a28sL-Murd1Nd(wIr+@h7FJeS?fxG0Py4!dNr0&~RPb7i+?#x%& z)Z71rQ{3}GxH?C`c=#VELaB&2OqVBX1R5$tCgxMi_;tOT{9Dk>P=3ENE5 z@v*1ZJmByWu$pxk^)-ZnAW~zl6roq5kkp`I-Nh@eFLMxFGthT={acc*_3xtoEixbq z1qn#rgQ1*5&f70cTUw6GlS&@-;QCQ}2Rtzf&#(A>C<*${2dzeSTi0`RYv;rdKx0uos^`%@b$=_+SBlor~=ZP~Azrr3&sc1K% zaQ=Ml!C1)NHX9z%^d})DQ!&$`8S+;a%2S-o?nP-uXm1Tnl@H#fcLS%1r>3J=s+lhor>lk(8C98VTRcVxS ztP;^&C6E#$3~0?B_!D~0w)jBW5=K~Y>|kI_1aj!WPS%WrL?h3EuWfL35mgQLSBsHu zFl7*`9%jv9_AWz`G(>8T%h&<$Hs(j6{kyY@KQPXJnH~F9Ff*($Ko-sj=HLs^KXCD!Uj2h($-Jf?KfFWHA{T`l zyxUEgk11|bc*H|#+K$_A?GcX+cjruiQuf9hGZO3k1{Mzo|55-^Rv7d=)5+5{ZLkF^ zkl=0+jI*uheHULN7r2(A zoo89G*=Z*Su#P&thtLm%A>5ts$-sFTk)Cdus8z-M*kUgk#Qyr}>1rT4SPnudHIcE9 zvt4-+*S4yQNFzhqTKr{S(t42$HfPFiA>1Wo1wpNt%7aIPOlh08&|Z~?IoZ^amwbDA zT+mePm{HmJ;I;j>fc-v9R=>8AnuPT-SXLXqW)m!viFFv=QSr%hh_$mvotcu0{04+e z1ZA>GK7P_HpGY;>BTK&drWp1zQ1qfwX+%S2?de>{fQ68Z?ma{ID@a`Vg`VKq!I70_ z2Cij+?xar)#Tv0V3InrGl%>?VS_7=)B>5RdSvj4F#gm%z({aeD4@ER`1z>UP(ulk{ z^kULns)}@htF1u{E0e2gIn^ir=qHhkMSPVUuygrb;T$kaVKiiYS89pg-YXUM8^bQ6 zC*vgr``Z$PWX1KzQg*SS$S^pbhEhzXS=2_oMr}G7D;RA$``CML2K`64V4>%;f=E5S z)ido6uh-#@se7ih=qN^Fvmp@8&@`4UOo?v4T_4(ZAM(Nxvl%R{dUMHgqfb}tanHve zDmC4n(U%rQ1i!I;D?9mwPhxH2`6JYh#*BO?-NU==qAyY2!jXTS&yLA4a&To1%KQ7n z$ejO|3$TmBLJ1Rgl2t6#?(aSLLlU#@ti9#)`3zDzj&*Da(*4BX%&=n~Kw9%V?Uw-_ zP+mR!NwH4DN96z}Bo!MgSpI!jh?}%{Y9&s-*i2i-T=8KRj*kz%v;i+Xlh3|pP#vu9 z1?}UKptf2XZwcqJb5{GJYeB61_HgXb#&8;Qfxt5lHo<(9*!bzl@*l=W>fp?kwl=-e zwt9aooz~)PONo_oc^?ImpS9^4TUJqf=j|p~_$?4t*&br*%23~52FtT3x_X9qGcqj9 z5N1?Aeg+tR#WEK{wx# z6=zC6*u%~Ry-s5yAsS~h?7XZ5mvP+n@xePwsm&^=HBPfG9vCM{{3JthN5^Fdg2G9M zqr->fJ)4kvjZbzQx{zhg^mzw*Qqgc)y3{80nAKooL^4`USFgS|3Q`-9exTBB_ehnM zOuc0Pt0Q(EQ$&L$48#5dyuBzbnZ_AvC4RKOw^-OF-?L3TmlW`>vdxkGUd|_47*mxW z5u0FQD5aE&c>+_N3_q?{vE~&C>wX05N!nX0b!1S1sO7-y$x8r%#hZb(cHX)rHs+&r zf0Kl2#?70R418II^;jED;ej5;C#IelJ9{V=juBkmOWGv%wmj_aK|^oW-c&@_fr$XB zS!4_*@|Jb(fQgwY(b6Z##|KIugsT2UR3WK~pW7#+?$SQXeeq+`QFHFnec2NR>xxr1 zY(rgcm?aLppWD8!rk)jZiQ)*w8e|VD#q0;;g_Ye_2#;;>8u-7g5D^gk<}~L}Ht>V{ zT|aq0v~`e&RH%KA0Lh+1N^cuwLK2XB`eh`_!BK^^oe5oci|1)77iHgvi3@r|oj=vH zkDvsRizOQh#f8qETwt?O7u~L_mx-9q_mQ|?g#VgOts1Po`F}Yc68*$@AI>svm5kvGg9`V{2 ztAz%*_|^tC!ziJh@z37z#s*YB?7o#q;Hn1b9XeH=Do&q5gfl}qBoGWDvv0bDqzpXp zxGCAN>t7uvLo-70$HvD^?S4dZ1h`Wm5!iEd+$9z9czv!wpZ}Xp)*x3P&SPd^YzF#j zK9}w`sO%!NrajFz>e^^apDM(mM4k=6N=-*@dl~CA<+P?|T&lAJ`H4k{3wP3JSLpWf!b(XC{2{Wc*YT=oKNC0lU zh7<60>qs980~559P<}JYr4n193}7Jy8T|}e?2M%WkXwaz=o6R>ONqhco^D}hB}@zl zc(!fgf^--F+nLMS-Z_zM6-WvW5XVZ!9|DX@mvVdp^*FzG(&V@EF5S*GjuA*zdG`%| zp+12gJ5W&I95sMH2`4m(2;^`DOpRKUY z7>%oYi!3*4!xF-(f@`?cu@d_2uGZnrR&kLYqGbtDAG4A3FiB50YCbSVx&!}6Q4Tgg z0WHx93uNNXx@Ey@x8ECDf+l2WA9Y#Rkag?yS0406AO~qSR-l$R(LSIOTFP?^LdJa4 zqWIy0ZKxoGJJxRSjCkUkPp{~wh5}T-ay0HKqy_raV*f|M<(_W?%X4#3KmQ1+S6g%| zf}QR)`ge=XEKS-&x<%HJH)9y=V6Y><2C%Sb^}lxUA+KN4=%9`_O_nDXw3b=1)aFe}rP8 zvKPJ?ToaES)cz{?oMw8E47>uSP1Rt7km<5N7n>PdQ%bwT-Adb?pAom=gG3=Q3BV?9 zNKD`BpEC*&biW@bWTguq#E2G{2&@B6C!a^IojdW5cuGGL*-QSwS(v^`68l+59#6^M zOdVDbE}iZ{+dARGL^h4h+Uyr{CwOrI$0AOHmB$jf;-6QgCSw61da0u9(4(+fpUZOf zd-Hr`20;qa zgpDV+6!FPl5(QfA;aJ?YK?I;2V!B6PGlc_AS5GvUn=c-6UqBS-);)a^xbE4NKTR@1 zz-H93cXT`Pj_TrNB7dfl7Petvq>DKN{435n3fA_zrs4IpyuVFU<(M8x@r=>B{XOTT z9)Z2ZS`QS+s5d12fe%VQ?&?8kqd9d0)C+QQy08f(6W`Ry+gYq%;8+WTw z#~v1GrdQEz$w6HTa_7jpJ{EAldBy%rt0RQao-~D&Slsbt>?`&)%CG^Po&fF5?>{Iu z__1wr@Mr}2F(V0`YZ}X9RlqHui&@s=HwZy$JhFh$iIq(^F$Wd%R?3NOFoJL8HYeL5M|He+f)_Uec4`Vh8Ipf@hWBG2D3wLrBLND)J z#79=_Hy=N`OoNlF0&y1E@_Hy#&;tY9CFZd(2?NufV_==0MW!*%>q0AG0=ZLRts^;a z&nx^?mLVtvt)98#+mv*G8y(Zjos7!GJLjKMSWdCuQ(W(ie@qFWrn}|opgdsRM$K=t zHd{ibgz$FE7oyld0o@F=6a{jCH{4_)AK*rF<6+czk7f!iU?a;Z?#l1|i4`ZTqHLDG zHp)DzgW2h49d37nCv-f+bL``T;sZFfd9E%P0fxohY|K(-VG^KMZZNZ6CG)O|InA1x zGPr`mu86via9dU??e^^3b8i^(_sV!NgO5eA*dQJI?oC=iS-ZkDZ>V?jN4CT=9)&ws z*()Ty)G{n*r>HU0CS51w6w_hhxfKDV1;(lpO$~mP>c>n$U2m^mR!aYaZxuMK!y~Nx z^x5Nsqn4NT@k6&qZ#TvSx-``N*j`M>o+s|l18Rgjg;^B5HtO8`emCl&udEv zFj?+-QydmRC1`$bT*1OXd`AP>I6RpJAUJ$SIP%9OBY&OdDzmL;zXx{&mbUd2G4!KJ zmK?{WINtXxp5l{!mN2F{jYF1^dWi6n_O#DMeH`esV_G7WEovvfMtHbDhRgtIU})@h z4$4F`B@@cXVMfDS%#Nn9EiuY?lfSII`=DX-*Jk!`LUyb&eK(?$&y9y zfS3!Ks1D`TW4Y^|b(B_RW4@ z@_+8fDln|-=ecdyLt@X;QS3I0RSd4<6MS#iKb>O5u2(&_fDskIoU`HfbLXV2sS%B% ztblLe86>GWqE}D^^)D1#nHe|907U!TTw5t26x24q7oOFgvCS;wPfb7RD|vJARB>(1 zJ3YevE@XzpDPHbot&ZMl_&jrGiRgL9`LX0VU=apyeDd@YnoWU8OkxG)Nu0~b*LQB| zs)t+D3aS`ajh+Hy$Q@{f=R+Gtb$+yE(>A*5>0spS_+wXO@h6|5QICvJD4N?#7=i)B zAauS^^O>a5_!Luj)4xAXC_q+_iC>7HvTu!WfAkKpAjh&!mh85I8&P^L^Pfd#pSn0P z%FW2BabK2YtFR2ap^Jyoy>R~Pd&b&7F*D)_{Tfed6 zE8OQdQiehX2C|&TS8hCh=wMc@5I(tKUb~-Ar+35x>+l?6Ba*dXeyh!Uc7E7^=VwLV z18t~$h5Ea1d|JVWOpD>0M;^bDF-Hgc8HU=qxLm1&Yjm+L?1JZ3#p{q)uAozQV$vt16szPowCn zmBPZrVo(Ig2X>C*OyCkQ$Z<9{O4FTyC(|lTDXtAele(*UVp400spko;N=rE#+%12S zM}SrC97(=iqcQ*$UFvv4>ngCv96K~d_yP^2UEHIkHt%Mewg93DL11+dxm}I7;Htde z7fuJ(I8zI|&>oPSgW|lD#`Zf7cD%Fji*nrJhu)Zg$^JEhjz?`DxiYh~)z$d|Og|P} zq8xAr{7D$eBBhZWM>mmNV=A<9hlf0uH~!2W1~X0vaJVEkob53@R8UKFW6zl4BxtOL zJ}-!!O9L0(02h`hYnfWKio#Z-i)c&fQlITKKYZJ1bd|Blc;)+Jbk%t+MtbsAA?Cpx z*RLkM&yIyvQJADGTA7)jdpYV5lySmKcP453CSjf<YbA5_8lTKrp|Uyu(+gQdudd|5CTiXRj^3JM{f#YRcESp zyr7F?^zF7U)qzDcB{{*24#=yL!* z9NRfWWvYHkZR(ElK@{^L0NIPQ77IZa1)KsM21`QGLmEWtyq#k=saG`LunamY@IgmE zk>Kd!gKqry_qo0_^yyfRWu{r$>rRLe&YN{EXrVaE|K&*3n^_#i%`ND-ENU9oPjF4F zk|9J4g0Ix%Btc@mCln6(yERK>Y#~(x_UV|(mHz2YJf?bx*s zgh|9(JtH4RMHV^t(($QF8s+CrN7YJ`@g3q9Sxwl)%##Qm5f`QISXb|^p>{ePJ`3@L z=jlQ9z7{2mwB7@wllaP8B{_NdBP!xQoUEmo5@?Cl%4fR0QWYUa(Pvq_?%oQK&sYa=oh9YUzL51f(TsJ9Tz& zt$?2Xe!O%FY#Z|K2Er!`aZns6dE>tSt&=kn&t1eKv0~P{ixz%CG7F2vLNLEpE~?aBMYACU9@NyXuliq!PW+;#FTR^D3!Q5A*Nq;}wnd-=S7*m?ih|3g5v73Nr2(#oy#r8s zd|$^+w<${;8D5Q^Mp+U+kSt#|;a$mv7O+Rv%^2GvONovich{jXy8Y2JUyDa7oYL97 zgpnVK&td{f_3)q44BJa1mWMD_G0q|-u`=h0IV_~$2o zErzupVAX1Jg&!9n{8;D@)M#*63I1-)ZZn%DthEp!Dbc9P!k7A_>XSF++5SCJ^WtDj zpz1;GfiMD+l7?RM9y?JhFQ-XD&{7xehCysx`lvbyT>*kFsJtH%XukU+7xx>a4*2YL z2I32u$*HS3f`hN%zhouuj8!orx|OnXy-Z{Uc#}(rlN@>lUS#1A`jv0X7y5WT$d^!; zNL(!zlZx_Jo7+dm@dcw!fnsj0w{rDvLIe?v&Z-d1c)6>L;6Mp5qUN*CJoqq~%b%*8`FAC1l2irB~tVvK<09a8ZKk7r{G!kmQI<>>$g!aS};xn zdU(Vn0P>C$l;RZPzp_@|qpm+j=MA92J%2NQx!#SQ9|YjmYtn4t5=Czqk}$lNL!;gAXbFRAPQ$^X^-m-aQp z3by)%~iBMKYj`wK)jsW%}d2xvWNk*(w#y z(iRr=A0kf65 zst?u{;1?aTG2-iWgIm&cn>@lP{#i~|$Q2&NavuJ8iX)P06s2ezd9N5OpTju9Cb?gZ z7jwphXGusa*ar1_ir_IW-sQVxWoi&mq(3cU+5+X4?EsyD~Sd>_^MuB-uG& z+U@)gtY;p&K>Y4rWawo65xtkp_m;JOp!KE zFvW(8 z^}OroKtYibl(2r7Rzj-QShg4Oljt-_Nd|Bx4^Xd*CjN6Fp0tvmwc)zllw`iBGD)om z0P$v`&}#(FhKH<8+IC9ZSyS9lw}8JRI8K#0C!bH&HOL`tR^+bQP=AK_5fp`FkvwjD zc^*W^sy|V$45Du`R8e+D=LxkK2tw*?UKAn60L1j1`m6aHD2q4+s?IJMY7Qt4L)_%v z9rCR$cwA$V^zhEd^Ab`Vg!vQg)#6W&_r6q0_Y3NKy9o!XiVAG3azW-)DR7u=x5I8N z?eyQj-eHlV2H4mXXd(A5_;Ark&2rZNj7@{Uz_lPq{t{!}^FXWnN%8AkA2M;xi6ge2 zyy$(!m>3ajxQ%5T5`9KK=4sKpAdDe>!0Ia?w~b8^YZU$LOQ`oUinJYW?i7n^4io*8 z;WB0-0%(Qr_u-)+x^PW+sA0l<&SAK&^K0~FKJDu!wC9E~r=UUeU1U>>Ug<809 zkpqQe2{}l0kjZ+`qF>yI7DLaAO24q0dNXa`$TWV0*XOo1Ml1o3IPEL+{tRxsTS|y$ z)~FA$9b)3u%LcB;#jiSF7v$O++C5k07A0bm-*iY>Es&AcT%kN1Qcwr{LxH46WzXv% zvS^lnbc;<*!M64K5E7+OALGlZOwEtaZ2tsWf)ZuG>|e0V4r{X3HO7U$N57K<^Hl{| zKu@beGpGsM((ek+|%twJhHCnbG_pMXAf_hjGejp``Q8LDuLk_@sdAHkXBM zD^p+%4l6xF{|5!5Hs}W|4<_Z@D`Mo3181siVMqq;ajL|6cZB3Sa*Ng(9z~zm)t}Bv zOw|c&j*fnYSQ2mdr?*(G#|J~8@(A(*HmLMGfif?tM;o7z9wD7Rsvuo*kUmN!_>~j- zF;;91Zu}?1vm%Df$d0siKS`CvAKMQm1I2ozzt<^1q5D!Duf6b-W3N|vvQS+OXb_fn zvM4V=EekN@t``-*SuNA#BJ8Po0?Fp{z?F8h{@+km!INKudJNM<`g)T!j20h5QpIvv ztf@DTt*-ZxjQcR!v}iAlYc%553lPq8q`o*f$(kMr+o`t+IAV-|w{%@{J5 z*nwd7sW$3D6AYpIfX@{-9y(}Ory*LM=Y!9}1m~v~DT5Y{KYN+5Y8O=f_YT|B_cp5F zuDgh@a-=YM9j0kqT`ApKwaEp-4Lip?xS&nU5i2AH7RRzkss` z{w8uARdeLcC@y&?Ds0fiOH`Pm()ik)kDPijGENIYA?@g&FZL8+s$9C#h!qaubNv8# zV=ch7o(n1Y#+1|>SbO*wJ&H152U&rn;(Gk2_th8yEgvnvW3M&H>tL#O>f1)dCew~A zwlL*qdE>A~wVPh`A|qf|6OmHN*a>33`?e#Vc%Ub%ow$VbZWlyz!KD}W1LF}IM1kG=Z>HRCF%rKE=Ow;d&FJz3RHkR` zqa3~^@^pEO_8;Dl?`qARLhLr-yb$fK;=2fO5HMTU_mS#6dmDOiJkVnH&R_q_1&HQk zJ(czROu3-Sm!CN_#L;~h{ zLiihmod9Y!afpsEP$2ltS5+-v#j~_zt=YH&g~;Gmf=ePIrr*Ex+Gn6;SR}lJR6|U= zHF0iLjqkMPt(zr#I!U$GN9pN)tiaLyW4psNE`vK?qwBe8Rox}H?R|NYHZu78!+H|@{C6|z}WK@t%%-})?+;f2SQj5mw_(CDt z3@TGc+us=Yg{YNyvMNMPhMxLnlynzan6JqUl=wOL0^_Pv!jC0_B*RI3Tv`%r>Na$9C& zFy{5EYrf}8$0D#^b5Yx^oxc<%rOthbb6@u~j_Q^$G#L?{S;E)vw8;eZc9_*<*B$5k z?P=-T4h$|J?&>rx-)<5YX|`6?+SC1yGzPSIk+RGibz&7F<`1PsZ62h>ff+5C+dMO3 zHr^f(xUFu|_jghv4ZM~1qS`y9&K#x{RQS%@beeAz{mC~!^HRLI&`8yn`rJSNe%Qfg z07MbkOMcsY^-kb`OTvvW3opi_mh=56FtdUn)aeYf!8`Fd-h?7@$ChG z>Vr-T*YcCc;;j$dsk^j>AEYEssjgu<<+iPdeC>0=>g7*`qN?RNyFXd|?1bKsPi_B$ zRi=Eez?o3Lt>BRP8+JjwQX4}qonrqr2OUGyljd(^$4?5aofFXt4Bg>Ufp?Ez9+!FX z$h>b-JYv1Ov%NLB23&3<&b2yKpRi^Ak>T7oWz!-&p9ippP%U3PXiSRz3=RsYz^5Z! zIGx&GeJJOq`D$wWC4KLXq}mHzfu`+Wd5=qHJHRb4uL5+QzS73kaeB(t7;rHM0DG33 zrk&Vi+2~?VW{3PeO|GC;@f2z!|@ERNDeZ9=XRZ1r?{XjnnXy@^ zGjHFbTAT5h6Gvg8N?Sr#vQ<-EtJ(w>Bi%_A_a(>uh7tBT+93k&)$7ls(ZOPy1o+%+ zKdk>+>bqUudn@KkATu}r@|U#2>0~}vcfxm*<38##%3XI>f&6#hj?DfJAZnB=WB+T>7VgK7VS_gbgxT&X67dms!{(du}@PH5Fn6gJw9CkI& z*bASC(@oC{(nfL}`&5H_(Ufi-JPrs!IsLijML%ey$?IsJK9q^z*i%U@5M5XvqR!$! zX^IbdZ%gQ4fjmv96X||A(|{KlOtM5LlvB;yg55QX?$Adhl8=#lqB&i`3fLyYh8TN< zGC5&e3Y=ik`Ca(tK{SeyhX%rVOm3yZjSN&RvV!xQ3Tl_no?rYETj4IQ_xsuOGoE*u zY?QtG>1$x~O8o4}K$aRshv5$|JmWER{HHs0ihuJ@de*2(Ybh|su7OP3vOP^ z8uDL{sQ=fXu^@3}ciC2NJy4XGAJzTUc83^VL4y@4_kC~Khlzcu zflI6lq#JIXyOUrwZT}Ll0YFIur*_YNM8tgD2j7%Yxdx{0&FXB4$(t{11m!IXLi!N+ ziqKEaE_tRI{DWKZL1B1Kjwnxf@yaLQQaEu|P>KfqF`L!C8QxiY)-8*{0uNo8k$u&8 zL~-G#nOXZGG7F!QZc~&iL+5$)#qXL1dN6Ti=VEG^A4tn1UI(60rFxC`oZG*} z3H8IB*UD>HbDt}4Eomf8T1g|FkL4(dmmelYBo~q6?Y8b6v4fkP&npVx%~S*DO&xGa-Pp=q4dxwCn1p7RPGn-!5(A-W zi6|l{R#xXXLy0#dA8Xk!tDke-#~gf=08lJ$ zAKPX!EAcjXB9VEz*f%}NqQYBHpE|scKgxd}FWG|P*~1^B;q^O6_!*5D>zRmS z%iCYL->D}8Zg88v9gv@7;ogQ*MWH9*}sY^YVcb>2g!nQ);+f;nFNPQ{(s9-ZfVSaop zZ%@`wE9%}!Ta=&A8^))`2>c$o+}4`caj+;rT^fPwq&-3|3!h*<6}(zP3r;K0YyYL^ zS`!oxzw4p3D7xX&FQjy#)^`s(_WTA{W#>b#;HLlT>i)GSW6k2 zf-;%xKOY+?YK_D_V`o60Biy$RGB|C$t_5q3dT$BgGm3~4^Wn83ZOXWLdxWhnNTudH&ReDD+`AQ-?Tx3mvKOz<1bR#M%cfm|6yu55&E2PU2-0ra*4(km_PEd- z2!eX+c^@FNJB2WfX2?tU;QeH6r|WR&sPqmqvG=V(CegIFd-e0msxpiW`$?kv%2QKn zr_7TuVYaICqDcw%ZYA4_-`txxj(E0C8<`1l5`{trq9K`~woMBB`#nzo%dB+Mls^6u zrGxR4lmbWj#C5}f2At%dr?{1Z{8F1;(pRwIk*{Nv_-Uy5c;9hJ)|HLmsbNt4Ki4FB z5mc!z7(Ol0AY3q(c;66)u266#c_ThO7`rfgw$2{+7nBAq!3fdm{&vhS5BEew#NXL> z0N$LI!HBo{p_P|BKykUPQv~BXwi30_{r5Q*g+!er&{3_Pe>(a3oes-?YNWt_Yd>{^ zb^pB*m zF*!5tzfDySLHGk`O_@rmc3@i+wZuQy7y3F~?OW`rY4D`BJ{ZAgqd%Pq@bk{-{h?f|*Ojl+>4^9HzkBO@RfAQWBjY-T3>!Q>k6gl4GEMfu zzmj9Rb^1VuTO78nqK_h}W2QJZ{zM+KnyBz`I)A#~oRo-symVn(w=K>;DrgFs!J{=uXm~7HQRyCO3GZVvu||}XJ3KN!&M6=v3DuJRrJCmyYRS* zOIyfMlVlLT>1CFDuV}H08^yPT`xAMhdunA;HJ9#S0=K9>I1DTt?4v!XkKWNt&5sbA z;ygney4S3&>!`3Fcj@Zs9K$I#s}3-{dY-omt<{Ba2h=7q0PsB9S%dyW>`HG3%a4iR zmvJ;{;PdjDh#Gc&(OK5{F{PN2AUR4kb!F(lA7I7kWRTWVeUW+|qQ9!@nz@g|%5~%s zJhB(g$i7Ut!Hc4dGPHkdI(6=cOh!2^zuDO> zGO!yu-z`GYzL6Yny_;({RE6Vzr8l&dIZ(%37V*1!qNdt&v(?d$vy}dZ`OPMGDqt#v^gi&i&xCuNi@!(~|4$ly`Zgoo9IX zaHov9%|c(Yc5ji)XrtZ3>Dq;E=hf6JU@xl1s?EE~Z)v~dHblLTEriKRR$wKO( zpONl%rtZ;6(TP(r9;!{w15b*m-2sr(vckpoR;bBHZU?%kw@^P)-&Q4#qkhP!N0&XPAN0Q+nY8Q6&Jn3F>`AZ4D zMovjZ+}JnJB4}%%-Okl*-_!BO0~$1d(@^rB$AiuLIBl0iftG=lh)8Z_5|6Sq6nmG79AG+OP`PM`;0&(UE^{rw<+5V7IQ`IxG!}qe;sv39P z*;+m6ZUb{1(Ieq4>AH&C^V0SCIbF$`D!yrss_&Ndsq_Bhx@@yX?h=1Fw^m4qxM=Ud zoJf^Fh1*p3CiKs7=4u@^xhvr!AQUYXU7QpQEU(~GtR0G53+#28vK8G6@Ov0E$|x=2 zxoC&aBtomLVYZvcMxdkv%^J>)>(T~GPUZPewWz2E%a=AAl=yiEFDAW`wzd{3Pf-ix z2-29{$fV_x$MKx^+Y(QwPS63LFFqb++L%Ln%Y?>V5!9UBk%HlQHwF!=p8)LB5?!pS zu#}iTK*az=RD|!OX>;HvRCXv&A=LQv0w0o63XU6EECs@U&WbF!f zIs%P(kpre$&&E)faGDm2K!dGc*YZbW^(|B_zdrxeh3WfV`3V74Zw`kRdmka*SKeog zPu*=yK`T#3E88yKH!CbzNk&q9xf*<4H)r(NX!G|7&kt)2Ppc~*oR-4dDw+nP?q0ct z@TAXZ(h>!Q!-sT?Y#i?TLm*_|Jf7rtM*UbQQy18uR5JuV zsGVC0quMVbzJ8iDOVaep4HVp}tFUeAzfInMyuo?r@O;vY^Pzt;q|jiOwCmW@x-jAw zX@6t}7k`e9mDVG#Z;eS#%a`}Eq6wXs58A)<#Uk_0eK3lV77?3%MmAx7jK9_lE9~VR ztj^BnctAZarGXtEyWVQ$-gY-PV9sd}k)Ac;I6E_N@hq%6pHSnwr}(G9LCj*(r0I?H zT2t-YMEo$qhjS@O{T3^nRUUX6RvjpOd_WXZO$&ya)xVEq;AutuK7s98n@@;GA48pw z(;e3Q>E4oIeQC!--N<2`R4mSH=-F+ZsKv>=0|B;)< zb0ZNH*<}?nQ4nh0G!Pj?OSE&W$ZG8YxjM`yF4$K2fh0qtjibtFZOmCwcs`Q~Lg3^< z&{R@CTpEozRUi)sV+G#p85x8IopAdKmThc!#+8~)=3IZ=Fp|G*fNmUa`}*zGH_mfX z=&@n;-pIsESkhbx+cQEhmJ#vo8>Mt)q6lo?L)_VMuZ&zX>_1!8C+t^SZ~@hIO9m#E zdHe%w_yDoGFKHU=V8)-*kDXJi?Wu}?t>+jC$?^7#cX7mZL!|t*(|&@&Xd6W$@Q%MUfnI7j)1R z;)m`efh+9gP7N(phN9xMX(xv=S0TPVWQX3P{8aJrWYM22r7y4fr%yO!6)$T+Xu|?~AZY z4ujNkt+@A$T$6IEYTk`KP@)Kaim#TGa^|P_JrXz8=(WA`qWhK7RcbMG2oW!@+{L5W zDh}ctkK;?^)hnU?h<1X%f2)lAmJnsFwH{7DU%XKA?hT`i+Fe0}bJ%7fW$V`HW{`X*AH3zDE;-h`innG1>&^|AAkw*f;#p!jc7_5)rz=F29uPN}RTj^sR zr&-8#M+b#}$Qk^{JQ3XVi4@V|juD<1;B*(bd=hvcFu`lXRlcE zb5f>WbUKM>4dghP^yBoC%8OnKaK+2915Q$(Gie}?1v}$>InYtwVwqRn?n6w}f zUnY=j3^J3S4vNSN3k7Q2#>_GIpRa#_NB8pB#IZV#O)&2`J4M?HplJ(tqIh%Da@Lp+ z=rVxqwD%C;acbJ3d3Eew60j;_O3_|Sw)Xwrip7s+-!M%uE*x&~%Z*9eR|CHzUp3tk z*ET4lSujf%h1WlF3P0w~)nUyoTH^X}W0^ioNJa)CNws~Sc@$0|_9@Fl#*V&C6!Z=A zn>EQ|(@7pbt!KK;hHo}4^RR|xnaY>7Q*sC0w`s@lddn)B{pN;hO_tUUdDI<|hp@iV zq_0gZqRaFqbW5E>7|UQ6Ft~KK;8Ti`S!rZ*5dU0;ET;f2UHo#de9cwno!~s%uKii% zd9Iu7+s=E|QVn&x{PKjYEo^7!$ig)!7xhlsSxBh>wEVl4!e?SFG4{HK+ut{5jcJj_ zYNLy`Jbn&E=hdD5cN%uw8hlCwmS7zHpg3=?VH(+sDl(z;+8)Nkq(%u!@$-s~YvYfS z5L&kF0DS}Zq!@TuugV6!X<(xEvhKp1q~#Cz(u(lJywHP5UoInucu^SG)FiO4?IgfR zjz+@{}M--`$BM3cAkNLbTR-YI^fD{#QSlpRlW;bK#IR|#69L;T@y z@N~IeJW=DPE-l(Ap7G45caVIJN2DOx$~*?bk*6r!*~JG2pSrAB=SIKC!g(2c&@Wa2 zg$Kcfhj>eGS^hxThCDe!#F~Xz;!&0XA#Xj>dv2%DsXVO`c_Up>s#3)uBD+L zWF<>^-R@|91Elx9(ZJ+sVD6i3lI0^5gbXvK;hQ-yqvgBPR>0T#NcOtW8|`ijbw8su zJhS-slUX;V9r(b8m0mVnC7k2-hmW=O^$@_>>F@D-EC!s3L@tgmRUDjsMkbn5#1I<6uFgnbZwN%V(iW(RuC@02^XiYFK+^|l|^^A@<)oB#z`P$hDt!J30MNb$?$ zK#9!{t~nsU-+xBHE)=R#k2Oj$v@YPk+a_T-TC?Dt9&?waLN_D94j!-HGmxtXP| z%U=|j_go$4F;Y@whdWs1?TC?@@I4-5h{*&lG5DAB&YilK@8Kfk^U!Nh_7z9Y#v3-X z$G^Wx3usThj8w>am{D3-<`~SrB46eYDye}dnyqBgxkGr^jZ4I)db?rxlFoO9o#w5| z@Q&1(OV_#ECqgTFHg=B5`>YVLIL3SzL=_jd9bTAnN_qFO^LX@cJY@}Kv^O&xTy6x* z-UL)zaf6D1={MA$!iOE8d;juxv0x&sbn_FlpN*%mm(`-r!C=WBypSJGBWmssl>zZ`;PVJ*XE< z{O$hS-dg^&@~0A}9+KtALg{xr#U8M;nyRinucW(SS!14tHM4K08`G+!Q>h?yq%yI4 zB?Kj1jNl)o@0>qieCOF8mTzQD|3Km`2Znp5T$aLYdl0N7QaP&Lh={uQR z2iJS2v?0bSPfIZ&0iNF!RHEzmA0xtJEyoN$F<*wQ$Bl$3ZEV=So@7Z)x^$RB$hA|t z3JP5u_I3J^w@aCCIU-l!ZzYn=4LHHNuM;7gIWTy~<(}sMF#AqIK5ehVfa1ufOL)2S z&MmO8%*1oAUKa)33ZuAVnG=5SVU4*R;Qa-NsZOM&97AyJCSmaiqKTjyl{f!bELWwA z(u!5wV7XZ0QTT~Tc*^k$Q2FFT@fD&%oGz#pqu8j(VDwy1ZXcrMsHl~*g!p@49jiSr zpA0qi47*gPuBK z5#ea}C}-lp(8B&b^7?$U@yE_c3>|rQa7q&0gKPuWc;7k0ED-zBRp;q92J= z(z|Y?QgCt^=;*#06wz+l7zs2kazz>VIK zS;vY!H-|eQqxd5Gz%f5Jr~7)+!r(D-}NlsoCcev-lWISgL`pY~*q}*B!XnSFYBjOZ}dmWK5 zLl98cQr;ZfvmaR0RDnt{cm253E!aLWVh)_ZQ##O~5SV+PVgbL)!6xK^+Rj4nu3m)P zy-XW_y=63`Y~Y#jF;1Yo2TB`A5?FDFp`<(y>TmZeFjPjx zU!^G2T{-x6aeWPm>A=n22Czz~J_40&zXyG6$cRw62>{WYfQkTaUw1wY2}E{2#Uk_% z)8dBj6IC?!rC!@|IoVjHZytQRy-)4p&r#B{dr32@>nZMQB$wu`gr8cd6f{#*KgD;U zPFT+ukl&f{93&F-yn$xQ;lkzT&(qTDzAs*Hzq?zKKP_)>oz_0z9X`3kVB53emjZ$n z>7hfPha zTte3S9Jrd??Ey?t4n8J`{T`)&?}Xi)N4JHl>rMIZhS3HoT<0=Ya}?*+e)g{;`7Y7l z%?J4?rOY1h7KUG}<&Oj%SbTH?SJYi@?fJ?hs=U$`s36T`pnnNw}&;4|HhFGEot#t+f2$Od_@%I@C!wiK7!Uu-BC@&h_Y4tNQR6|i04 zB{fuKbQ-_enFL`hPd-lVwU3K|eQ-btt}6`w&XY+TLH$U|S4V5Zc*;~hK0Ea~V*@Dy z_%*|hf($;T5w25H8U-H5W-vv*$wJW7o`rAlwY01CeRo1*avrqhs(>+3?# z)h?aqGz4xz$!!GRn(q8tARuar6~d2i7Qqu*625;4vzE^xFQ*?#LrXm#bGjT6a!Do@ zsA?7i@1NbMz7?R!y2fwN(wS811CmRoMZ3#I*G4?_reN8eaiBoH><=q&-Lw z>prxiFdvER!Ttb@K}@=f`p`YfrdKe@Q+-q^Mm~D)W%uD|U90DAG-e_`@zS9%CIGVm zQ3J>+BHW0wR}}ZtCw)Vu&MdR7ne?H9pL^OayT3LgYZIy2m~ z38IL~Bby2~_MX$tn7gCOmf`8yhe+x2U#!VECHvcyxJgsz!EJEWReJo^j&9uqkt}cG zDSPqobX?;Su5zhG*pRlPLkY9vgU_fPw{IF%lL+uco1V_*TsW_Wq?%=(?`QZI?m=-U z{i@!+FMB*%UKy1(g)tvClQroZwSbG@8HYjH|bS?qY*-r#=CODfcU9}L3vbB=&Oy-mjl0l9Zl2XzPL@>*CqI-Ch z&i(rFy9RW!2W3aTaS9MJPjIS`tD@!)R= zK+V*_toeFfsWZ%RUY%?F+m%c;ae6&@ADNl~r$3~Zng<{>+31RV2T2+7M+Oh3L2urK zDq?Q)A{U+~Di~c=Tn*%1@fT?!n{U6oX@7u(jFa0d%w{6|b!}98r*7e(*%_Gg0s{}L zQGr`aZ;&OyG-Vgt)Q%Ud?dMq88)XX*Gxr$D^2#cmWKuNpZn=2-)E&R}jW55zLhqfn z^VxSJy}a~PYl6?vozlmtRq9qG?n{0DT33QDD~pTgC8cr;327-=tBSD`+*Hk zZxeGHKkngz1{o=$=WgBw7^wGyi!))z?z!b*=~-s$WntXoSwso$E0_E++Z>A2RPrKK4yM? zgl1Wc{GNdZM-AokLcVN>8UQRGL!~ZvQ z=@I(EsTA-be!fk>@w!*Mb@!J2Cz$GQQ?IMlbgf?AI&kVoEH?NzRcsBP2H4Vadh$g0 znC*Qz4L=Dej>Y<)f|siOKFxt-e}a&{{{|yp%KvLv@+Cm|cl_{w7pVNZng1zZ`JaaV z51J-0Ant_H0AO!<+%sBk+D9ne(xBc32PHPnO1uCSRTbb&NtL_p>7eZW@r<7OOgIgW zO=V4{iEv%sx#MSLx|bfkm<>yC7UGk#vNnuMT1%Ix5lq?aUY*HZWw;*dkd_;M)V9-R?<*{@!QGf$u=8uMX zwVt>4yTnPxFj`xB*d^1FryyOa)f0i}Q8^c1e{;+tUxVnM)bYBW7x0p@PAYKn;_%fs zj*7`(DSKn)PRW&DA2Yqb85`2!VG|a6L@f0#ga(I3WLEA-W8>1vQnHYwv^JD6>?tmd ziv0}VG}~ElV;8nlfa|}b-<@#*YN_jb*#!)jeU|327#tdAEH_@fdqglx78jSv2U&_A z%e^cZDRAX=JM@^8ktVP@pK(ktC!04daSr$iLD#50A~g&P102)WM{DAWew{#7z%WF~ z%^mFTFGMseUCzz=UHDrdsBLq~QbL1jPC!onMkyvX@w=PIr~dt>>ce~`C0-J4=JcE? z&HY|yt~q7}jVLJzk+)|3)a1E_a&qc2-<;ng2KO6cb5@w{PpRe=FfgTYM(11-6y4{| zCE|bPB#XN&wp0LPh)Ip)WVypnejd5@pc3XT>?*tv@QM|7wB(gtU_ab5DWD%xI3tI! z87j{6bw}LWROk94W4q|91Ck2Gg+wLJE_LKUKG)wdJ~t<=$B;LZ-BWzPq7sT$pObL6AQML%f0^7dW;VzK zy0oh`A3~EL7P-&|uvY*1`R6Sd93$wg)vce_vHFFQt>Q7-x^YLn{da#|G=G7&Go z+~1`yFdw`oWT?dA-JCk(=9<&Rnp=RgF<_sH&`N7%0Q}$ue(dQM_~%kx!o+joz(~8 z?|f21G8?ZjRIVN8%o`A3i0`d=BUOWqfu1IQAciDtX4gf&HNgt;xAcyDadJ$nF?Z!A z&~UR&sKv`TI=+|QkN|`OIBILRO8?NTe6NNviq8T?B@)-g#79YKcw>sstyQEKBx8Px zfrdhB-QHI!^toz&H_&)v#=N%4)|^hJL10b7&5>H%sCH$RP}r`&PTZx)U;SNL22Q?E zHgU>^6__FEX!&~dUPUcskCdK2EENiJ-bs%>{hZuOFJa>R&=(p0a@3Je+>vr}M$QM! z6j7KQ(w@X?qzsoYdjqVIywjK0XIa!Mbgyz@2fB$A0u*7@AC6wNOAFz%-Wiy%0(;+$p%MSs(I~C8}jyC{ac+jv6EgpB_Kn_ zGP|E~NkkLtQw>FI#%5}XbY#qIficU{je{}oWcz-3o*#8FM zo*h%q@u$m+a`p@Kb)^XJPCFq&2kd5l<_LkC6q}ErIWDy)jn$2tt{s<;m2o{ZxR*Y- zM}ZiVyjRS!ViJd5{{=eB%!xAxnlY#{f*IViTwYn(k@4-LC`!aLA)7PuTFeL7W zR+J0{KC3vTmk|1eNez`(>gnpOQ`_Bu3$;DC*USC#cBs#ynUzoz`E6LCQIbMJl=Q46 zn=d=2(;1${E`7i-YB=P_JXbqdBFBlV0N3_R7oRiBthcnV^@@mOSBGxwqh$)OyR zo=w#yLyE4LC`I8}O^W_ZL|(7){?*klladxp0-5K8qEp##FYa@5`6)cmqp@n+8pgbZ z`cuWr&F_)v!Uf2fSwbqcCk;1=SWE7N{BzGdoWe}Z#=A^nS$%&1(Z)^Mvdj&pM8MhO3J02KxOoKiph!&`< zV<)I|^zHKI;@Jsp&SbAxk;AkJ;I$?#TOf_>HRM9c11>_-i={E`$P_KXN*rN|@z}zS zUaWcIUpJEDd;4$1=n0K<=0}gegE5-EoU8YmLHbB38G@5%K+_`nKZj|IetG{uA0`OY zB5a{ytdOu)jxC$pgOJF?Ep6-wie}Xn<~T-86mw;$t@o1BlZCS7_0fsMy;96D%tDoyFa!yU zCL>U(>hzNRwzP?;gkpe;oz^zkHDy?_dN{y1s$)}Z{bGS>s4f~4 zQ_@^M6tpyFSBpdC8dExg36@Q;OBktC>d2Zf)mT!t>%~Zl9sa$_bwn}0y*E${WvFIV zCJz!IZ}9jDn~d)5>t!-$oEC5qO`|ZekADj^b7OCcdFs}#)F+P7aH#*w)50@geabe=eqT+{BL4K} zttfICvV1~{kmVz$+sB!L!3Z+Cnpivs4Rs?sC!gc^?-#Mg<46|++$vWhl%FyZMa3a* z33FN+y83Ij_X-zuV0U>5y8IfJkbm|y3I^SDe;!2-b+DN#;o>VW-xhhdi2PKRDxn_E zomp^KVFWKFe>BzA8(f!5$M_wLjDj3G4xh_M^=&1SdF^z;@85l)oY6xaZt)z-JB5IY z-CM(bgldWSMlsnilA21@q@GVTkr?j=OO#Crw#@9=3hzpak1fX(Qon2JQ!Z68E$9?Z zV7#dK`wKZ@qc)=wKiCinON`KG*I4*2ZX#?>B~p%F?|CK<_*H+eKH#Cz88)QqMhDy0 zoANL)Bv+!w6=?A-#YKuSm|WBuh%K zG~eapIE(DZO7&o7q)NCI(fHNlrq>)Ky~LGe6crS*?s)eiX>oPrMUe%l82HmgN8N!_ zQ!xaDl4^BOukt~uLB$J6IJ=57^4y(?Qc&94$v$nRFhE@q1lPeM4!Nv7BrmKBfm%tX zr0r8us;b!lTN)>Sd`?&|TO`fhMEEH=cSQZ7+l5kwb93C`lu%p`kV304_DZUjKz0ussvW6Cw zDPjI!Fb3~ib&(f_kYhg($BRv0meJsBDCN*JNR;XBBeho4aYH5SHL(hn1t-3|P-_1m zM}J0|w1?twXF1I%8Ar|cC}18Px^zOaH@Vb{;eC3xCOfL&gd~+1(vD#7i6Q8y`{6PJ zE!h#)b}j~ChRj9SW8Obd?_K<90Q|v^k~sK0lWpMG{%r@V+QS2GJWisTrryq~Dw~q2 zrh%7Nx^UVWQgGgQ?30=z_ii*E-wVSPo$g=S=}YZz!s~y3@(;BA!~XpPasMg*Q)|a) z|66zU0-gV>{I>=t`4579Fw5qH*r_gFoKT9Ld+<1G!(H5NL%)cZ2Tc7dw_j&D`G}i;3 zUi5GWUtv^#L*CPaj)lMF9RCdL)=Buk$ML7f{}1E(pGNwhEB+7u=f7sj-^NFGcxae4 zFDdq);gE~nst29*7wQnVyQ%8K|Gg%y)?s0?KmX-F|9AO+V?@6o`Tw5~y(b_1!RqP{ z7|iqf`g-V@)AQp$Pe=Q`uRc2;pR|k&Dmps4W{X=K0vb_NT%54CcbnP^ec_+w_CmeC zzZa90%`YuQ^=sE%uC1vNHZh?xGc&8Msqr+sTUy|lxGYW_;pTfFesGT1rn+N`*yoo- zoCogxDk%7PbU%|2U%S@hF`#Wa_t?QqH>M8!YBqbxm>Tcr=Lxk)ALA`Gy0HM69cHH- z{i?5z=szlB2tXhU-{dPX7P(R0afu0hq;ixg@s=LY(RwrZhIg1Y)5Pk6mhZyR1_d58 zZ^&1q@A_~s4|tj0_WL-bcoj(Z%F1&bux0r8nBm*EZ&ETcUe|ZDS={b?VfXS!RL4~{ ztwZ$Q8u|-tCm(`1j#KY{;&*QlA4ttq8?d>Uy+orQc?AgkYKB4gCRaM@T3CyZA8yKN zRN8Ej3H{a6ep9rr;mjtq5N3^}tvjm;Xy_RGDX!N}EDWt~o{xGKco|0p%FsV-Cv6b+ zXy}($A!QlEAP1{A?`_W04L(a_>PWq(0vwp7-IFTFb=IKK2SYMo(8bi+YO+m}ZPpwC zI`2+5ff7CgT(2amB~!|-?vJCtG#11Ag{vCqTm1j{6;85pa{QrCsO(ZNo3Bwa!=s~! z_$g02q9mvFwo~~T;$WR~IAoFUK&T_M-{qYOPv%VgA_E9AhUSb%<0>X*$=c&b*8VBD zw|naonPd-R3B!Avj1Hd4WJZ3j3Gu`TP0f2laY- zk{uTfWkz9{X{ODia!Ie68ig@PF}1R0XR$@8H0|PZ1x&8|GEFVD_U=a{U0Opj zmSp+#i|$VjJE-bNT!#7%09xn!KKLzPe6@HM{=1;BZF$9dY&e+|-`q^Tfw_?u13d~zE|0~xtFiFfoRh&wwOyS1V&&H+Um_ZRgl|#5BsY8)LSxij zKYG0V$z@c{9;W@phsYTS1Y(??B4TduHZ5Zn=Q70jwNzAADD63H+iSAZx+C#6+P)5* z><=T%HOO3jFTlMg+l z{`K~hY;7bbao2@3mRX+w8t{TFg4(V`$JHas#4(({g+b=|Zb#aq42Sa&N2ih%#;cJc z>*8WtfI~)6a9!87Ze;L2*P~W(ML8g#riD`;+i$z<<3eb|x{(e4O#1`IU0Tr5R-A4U zf)c0MNJBujIcq+h)mcMagh-vkoH34wSi^BpnnYQyxeE>vZx%W1Eyv79V9~Yy#-{ju z6x6OJXex!D=EPh;6wTVCuDscEF3|X3PA($l@7 zG#TwmD8#i%Fcf9kcA|ZPBFjU*hK$*8Jss^1bU5_lvI<>z1cVg${i@T8i-+pWS2V=+ z1`Z@aXVd(p_xDkg-dw1LQ`Zg)lkYS7JOBuRrhRBV(1Fm+5w+=8j&`$KWSV8YlN`L? z6$hjbi|Ohg;&qRtZ=wk?zW(;(1-Kz30s*>ayy&wT>UPxGsjclKMc`5WJ^Q4QB*N>S z^HY_Mk7w19^YeO@-xs-ZC$6`rGJMuku7S5pxy1(lt%1O1tCDv=3+2sU6PhKIpSB9a zPRUk1Fa&rWQ4B2oP1W3wQEvGtr!%^rmi* z#}##c3sZ@f;>ecIV~2uE7>(ZKMVR_bUBuTf(s>zd4$%Q|tllx6{GvEPRT=TwbWF_4 zuQmNC5D81Ng^J|ky33C!FMNsV4e$?&9;la~d}f&~yPM^g;PL#yAAq#H9!hFmGJyg5SHMWi&xaPBqgtilU+pU!j`|jg)Ibn zV8YB^%F(%8)zs(9tC*>jqm`LUqb#fpjeau!-Yla}toa*Yp(Ju=aDXqNb@M`e3$0&Y z?~4e0bCFi!Q5HNg)+;84gFWDCbhT%Sm)~6-gZ6=;A+|Q^TQgI(Pg&X70w4q{vIGLF1}#8)x{Tlm z3UPBb+AN7#ex+?4$}e??0<@+S@Zz}xX{P%t0BeOJM%2Wky<=fql#4X_vDM@?Qxt0j zJ?;$}kH;idX7-XW00)&y2-zX29tt-Gu*#u@(GjaR+LCONWTFw<&#%1Xu<-Wl;Uu-9 z6hfR1@6{?JUq7o+bQPVZMoId-R*a;Q?z8CqL1GuC+g$7&XaEc!_~FB}qPR$RAb=4? zNTlWRTVRpgxW%~rT*}&a>s6`y9HhB9RbpHb-z88HhjqG5IsedNc(}uBMkHh1T2J)y zf|FvF9B7wN@~+tfPjz~a9Hp4RtAba^@fVUa|2O}@<&CEjU0yoxj=e77#DSi{8F0Sf zATrMKsz1yrd0Cybs%=)HypC2Dpj}GgHp0$>-$4_oUDy9VDErEwxRy4|dlLu{EVx55 zSa5d>!5JjD>)`H#6D0UR26uu7cb5slVSpgP-Q8V=C3nBO-~QOD-92@x-mdOB-CbRC zy5INd=RA$V%5O9%>FWE-(I;{6UKFW^A{}4{>6=9WctX2k9IR=`l*4Kh7&_Ai+q+Sc zV)UCRO9oH=epf_s^NTS&w0Zp{sI{(8zk6&pJFJ-Y0#1<>Sjd8|ETpHj+|t#44{rAF z$-XXEQmbhh?$D`X9j|T@m-~)Q7}J3y#+^wWQd>cPbNU4%ae(8kIa=m20>aD%z#*qD+;+d|#<|LSz%+kj6h>@h!XhlBm zv^;HCA90)KIAyIMP)UiQIx7P-tYYFdOb!oF?c3;8QTs*yT5}L?GXK6~zvni(S4%CV zr}5yV=~0s50s8j0jOnpwD4l!y4qPDi%O($LOuO}XmQz~1p-FVbj+e_2=Jl_;SXlUY zGNiSh%ZozLRY*z5KKSr(Tx;Tyx@0l4rtL$$OL0V~6Zrv~O6zHiPbh9#b>F+0yD-jj zv9f~5u!<)AVbdckoZ0n#`jZx;-Z>YtWPN*Q4EFX#-)s~6#9*xEvjvGA>J40a&oE-_Kq&21tMOi@#a1{;_0o6UC)f(8}8G^;CPa*XQfx zuH@65el)|4%Qi3i{q3*Dhjy2E?(5vsfZAOf`<#LIdDYMcD1mc3CQcdk!>36SxGZsO zQ@_76bYF}}-q=T`YD>`5X_r~Wys~TYHBa^R?YUOWFARk>yb95puNMCO+eRrQpJS1R zt}bCGv$yCOLI87JMhS6+{FTjeJYW0DZ}rU#>W!hVT8g?uu{^?ke6#vSv~yw2{VcYR zGJXUn(Q*$*lFw7KCR(Gv{@lmmqgm(eqCR)4u#3X*~n|d)BUXm(Z zZ$>LJY1?+(lPn>j31JVLz^J?8AdMe$W|)nm5jVYj6HBZtKJ)5u8Rdqp1S(+w3v0=ugAPw;lGWM{XS z_2mAxhEH_hJR;}1fy_HeQ6oyB-cf-tlDg`T9ikoy*HGnsuUW(Py7Y~w z;pWj3WA>tmKCBMbmsO`|yxjkz9M5@Q+1I|@#7pl*c0hDES@t=5j!we*C4LU-)D&@p zk7X0xCP}Qmu~$ZZpH>rj7S*6KT~u9_&Af?z z*2&E^kY_U6r+|kJFC>e>#Q5;dh>HKg(P%}>$e91Xt zsdcx~rNPyTp!jG|D}EQBm+>T!y>zO3lpz{c;K9>`ur<2#xvqNp7z?Bk4A)1BpzM$(1NCg@Ij7R2l0w>cttO z{@+>5;V7|_$?)In+b8N2F+CmX4iq9^&WVurb@o0z$Ciz|vi`l*>1-r=v#&*(v<5K_ z!pwfWDZ|t1verS(bln;);&-0t+__?|Ud~#VH>*ZXoHTZiyg06OJ~eN6U|9$EQ85Oz zej&1qJ$u`noSAxcjl6%WaWn_idGn4dW@@cvXkZ@drc8x2@5g>b7GrdurL-HD)a^rs zp7fQ-BS~%A!F4xXmTua^U#cn^ZziAp;6-0WiWR!Y0ipSn9=Qlv3`cGl6Cx_8{(>p! z5)hmC_^g_!?5t_#{ItkXc`B!(UWM2RGDk`*D`Ph7@FnpjOgeoiEh%9n$3kIEj)FiS zMhoEL#+3acr8frmM~=yavbRUfPtJXv8za2U97Zl@dm@IRGG`BC6iQjGI1dD?feW_D z=?<=U2O3$@lBer=mCbHvqYqzsE&{u6cNHHa)`=?4A4l1o@ZD;KP1kQu8)L1tGtXVF zYRS||z>7Y?G{PMtv*>)DgoIKv*w@XJsn^a|6>px>3YY6Yxq6tq6vFh*xn8m@L<_9bAF*-s9Z<^`m3L1F(`^@8iyssh~nmGfDHM8)3^EMu>CD9(14VH)RI7Qn>zbzQU}j z;>eaBXl?BK^ee9Utifq5Wfw%}sH9ZeN-J9ylpSx7*N)}-e61IDo_sHwge}_9wTvCT z>g5!QZnUsnM3qU*lgaApbU04X@hCpB-HEKU>?!MTj4~Vbh?y3b<+^u(=^uCQLC76m zIm7R@hgb!XUZoyIZ2lZz>(Aoo{rTQnY;k4b_q^{DXGZvTY%^8T$c2ylY|rIQP~8&~ zpbNG=bqjp>Iu%&$Uk<-ZsI{y(yU{?Z%o5uaPl@e0`~@OK9Ksh@xQWy*g<(EWwPdOj zPR1arj`opr^}OpVVwM`$T{tbny?_Z@_Gx!QUs?d}@kA+k`z-~OLzD5YH`V6ibhBqd zKj0ywziM0f<_ftvUYgK4)D9=9Hrer9&5UNW<2DZ6GRCAd#n(on8#@YCSoF-z!zi{8@S|_P0*~YtHG} z#CmH6?BZ(~CAG3{|HL_;*A=6D@2=m7K}$rVNyKmjVF$kpX`iI5X*wR2i)sh8vj0O? zlM8hAi;dw@OLsZSC~5%W?MznXxKOZ8d+*Hr!!4WGr~A&ElSUu@^U9}z^&8#>QFHb~ z(Gfq7$eYlw{>NDOr;C_4T|Q!GXZMx-K8V+qk&rs0&r9Q4h?TCDZ9pvi=d zuh2{h_db3R`+Bz#N>M8}+qh8ETW0FymQJ)g+cPU-#LcWGqMRgc@Vvhtp4$?D^Q24k zLUz*};P@wYjG*hPi!sh1^aR_Y#>X%dCdQf9=J@d}iP>i2 zFW$Rd`oP<1OREIYemK0a#*y*nWoT}$E*mdeM31 zL>0E;01tlwg9#=_PHoF$9|qgXw?foWYj=TQ%F?&)yY_F{_zfeiD0PL&*=pVTIcjRg zH-!?EHMX^#qL0dkRWv>+T(7$JztF?uPS}Xcf{IT#Sqa-ITz|^SX4y^xN)4T)_Z7jf zNR~(GL?1K{Fln7GCoyYUw{JHbF9`4QA0v0N{q8*zAkKM;5K%a~KTM*$vG2@`3AyJ| z;n;7D6acB`{Pn>^3VlB(Y@TCI^`qS5Te2`w-cQ*Q))VYGgxKuA)qvtknojWTywRg_ zPP;yP|KxlCSnivudPo;RZOz)2iFMjIqgdOM9$VIWR6*V+w(PjzxIihLc1w(!ppSK0 zEp;O8<>tzNANe}z^^_PX3QX-}Jmn_#_ch9#No4MK<6>im$lUjTQvce2bAk$j3Z4s| z@BiBWq@L?a`cv?y)_?7PQjFS++W$QC>>B=S|C9RD*dtzTV|(Y|9_c*dhtcxQ+aFVR zq@|@~Hv!F(9=y}}aDpT)&Do{Jd!uQKzn>cFI$!V4!`7P*kLC0#YuY+4nI5aDZ1xk~ zJ>1?i{ps`LQkeqw*zbv<{)N}~o#3gIo&6lJQyL`LXlWG2J$y4MoQ?>{66ew0So2DN z%yrztI!@T}Eo15*$!H{QS14|BY_8_k0Kc?(**YpAoveuaQuTi4Xry+%}8J zOj>PS4nb1mzN#bL@^^-L*~E+7MEfDELnjF}iV2x3xVg@<$Y?!Mr8D zu19qy7`l2==REh}c{Ch4okBiVzKoxZ{+&F~k9%;bZrq?PTTFtwc)3lt>fGw&iPvAe z3-Yr`sfp%iu7UI%(eaiBB|;WIISY~1ZP5-kEUk#Lf&rL|6E%J>Sd;Oz>;Rh-cr}}X zBK2O~UW@!09vK5t%p({R+8Hr=SFSC-`2>wsTYS0hVqS*yOEdh!HSI%0%7$_b#b;TI zoA1iYWK8e=?kXsDShFj^zOa*32~@nZb&0qfylwK!-{511 zH7LYqQ@|xN*Br7Ru2O`x*igW#Vn|f50 zc?@IIqvvwIOZY1So!L%PQYT4H`F@ zloK^tCi(VuAgs#)I|g!*n`C^?`25Z?YCri&qM9CRmdP>PNG6p?6Ydnt5p~w6&T&g= zWhK7{0^H+U;p#=WIO~Pp-jL#6a#LpB*Shq}qcnERPzo}sgaHY;Se&U4VSJ)2zI zYRZuV(e&*JEk_>@3W?(wvFL3dY5`h+S9B;+_FT+ZvL~2)@v{u8{xvVO%%T&Z!=Gd@ zomGwEho!tE$bRcoOZMfDNq;`;wgQ0k@jYVH(oGTtwdI(tiV6g&(gh;nEdqo-uGKyK z3|8s6wLc{4sI#&PJD%+!iQty z=fiNtN*$sH&Lj=z@JQ@RX(vEEYw|_5cENXUL@H2+!QLgs-DnkD%Vc{OV%?c<9K%u} zl_!tPD^4%5a0HZ1n3#Z|{3ZqdvvliGcO2_@Z;0}Q{RMPZ(*K;s_2umhbvgbOGXI-E zcx=>Lr`ax;8H5PrI3E%tF-wc|js-;%L*SPl8YU2VuOTCOyXQzfnI1N^0 zyT1*%lL|l_QflLuyiwCB`$-**YV(c5S^c|_@4l#JJ4MA08bZ5={W-}s56}oO>_?z@ zw(sV4rek>M32&oPxh+NA>Z7hhC1gmV+zuI(`3|%%$&xoQ8%_v0H zqblo)G34TJzHM#Did-@cG}mjjMy13!ai!mQEQLbealQpd7q&J$#pvi=xM?$@b8iv ziEaAd$gu-IFUMUE&!_=+%a{P2hjap!F-I}1YZ)ptT)Hz!dDq)LxJPgc)10&$E4-}e zw3W$SGqsqysMLj$cWL?M%n@JQ8k3+K?s58`}z z-M<<)A{7}GNr`fbK>1w+mmRwy4&(Nk84OL^OBPIM9Ah*ZF()31w{$Nri?sp5>Tt@cMlOjouIQPcCWI}vC(U-M z4g_83^PTn(-WpHN?@6M-*z*-2D`+RPz(g%m%9GsX03dKB{~kD%V&6woGsp36TW}$K z!lGAiymQbL+j+`K-)ph+kZ^xIf}8eN!?;|I@?C$b+NpPV;)+8IOMzn^`87IDNnp>n3-}Z%2{W5}7bbqUP!+%H?$b)2 z+y3Efw`2Ei=$1&3eBF`^T(3>o}16Q>;AHnCDcZO zq^#^Uv>gKl$N5XypvjbA^c7f@oqhOdf2~2wdidhaYCrC5ydf1sFOCCko-J$2qAuxi z9$+}QCrNzU6fczyo!5x&cl#qoj6zl2<7(3>7uUFiNsz=w(dWQJ!?VR+QRL_-M+kTL zLrUI&y)MX$9a}FYcx~Wt#eaBL^XH-t{Bke)MmU&xfUU6s&5xnA_=z6uXV?NU5vfOCj$& zc8V#tBP|h^BJr+|7I2KW6Dky1=_4Q7mH%Fi2&c)B-)s0KQ8*N$@nZ7f6Q8wG=>zyu z##a6AtUW{^jyTH*ok3si6%-(fY!J$SSj{Og*nfaKn}uo`SHj*fr(? z+p6EZ;^?#DzIjpfpJeu-Z?H%0_;L{b3Qg4Sx-_18`R<2MKvat$JRPx*SNRM=Pk3zC1U5 zUIu1zhr0K}n?oQeQMvb6iKg_&BJ%Tk`&Urm%4#vr0pC+;r`LjaEcPuw1VimD*wAOqqrC zc9t>K=AbB)v*BtpAQ;)Xt*(HxX5z7sm3m^x4WI4}HQ&pE#nNbk?z5li^hf;i?k%$F zb-`sZXmfj<96Im~o@lP+j94|v(F8-FaXfZW_V8yH>Dkq0VOIL|#*&(`o{>AEz7=5l^)oG9T$wc5-o4&Ma*+w& zl$FlGjVk(1`fTELQSr!yY5nY`lGvAy;_0ZSmkBhHG_(nvt)w-Pk3Z<#XRC1)SUTMe zM)E&~PGO}SvUP2LeY7XE%aTmHLm{yq?lVuYu3eMwF9d0Jg9^X!ml8NS;MoRxm8dSH z*b7_$-)33Ee~?oG4@a=vN$8+Zw@@PE{;$LWhAQ`@>9vpDQBAjzcfll)UzSvTmC`d} zC;M=KUIs*mI)E?Lx6DUfQ(vpEhUAV;+U!K6zBmgW-kC2qW zdR7a{Y$In+mEsm+j2|f|sd(elA96Oqbf`qugkJ12^b>U*quL#@L?hh2Q)2QsV_JmD z3A0Kz?%0)=rHug0Fxd#5x&F))U=atbh2Bp+iB!M;*vb23@bu8RIhv)7i=`PhP*oSv zb@X%7ZS|7By4!qg;*(;{^!G~4sNZrQ4Mmv7+go4$?rtqhfr!?&^gDRAjyQBwLOmOK z>SBi#ZRAkq@5wsPIeWv0wtKD1pst&8RLI|X3RNM<7apzs#ZldDf?MEjqWx%5PPK(q zOOV5dyZ0GQaX6qK{lt+! zy7BW_-1wg;`ckYnFs2-q-OdA@w<=@Mpc4D6hSWeaKnORyWV2HH6MsLu-uOWU4}N8k zYgL2P$YC>d#Oq%HO<4BJuwf@K7p=9kq@FOo+emfM@SoWHpYS~(Gc!@3x0gOO&A|9P zGr(or*fF^$6|I+^E;UupR8Q^8pD_G?MeP5V`21fG;9vXy0|xw`st(|yUdO|TiQWSm z-Hj)ATokbRJ?0qs1xq~f{|8Gri~Zj~gnz+=f9-$ag@1GYwf`v@6l*YsC@UdnN0+eq z?f$2cOBsL6J+Z{Re-MhZ`P?VMoPQtt*Z#ku75|RHzxMxSG^VIDs~-Ht_V@Rn4-Bko zXy_do!9qbn5q$mZ2mj*=ADhamD=T9=G?ImNiJO_xXqFOGP6G`LC;~rxkO}&ygU^2h zinO#eSp|jsygcfZdd``}MRO;oualGNj7&@cilhFQqfb8MRe}?rM^h#5BaIM8Z)Z31 zy^Rr#Vk7#H1@^l&2;b>c*;4@vJHpf-^-wr0Grjlg5dfWRQ_eU6}wpI=;ST=}3ZMTo&gg~g8l-Hs{VSR7PUNSg3K9%nupnSad z+xd{qd|ma*aj$u3@-swlI>2=2Q`N`K0ZZ}Dnv>ax`-FhE+K5d#Q_6s-Mo@-5!@V&$ zeom{giBfaqtar)e{-7PKkSAIhOY-$DfK$h_DnQ$E{agv)nDMsl+cgB^2w7A#`=vFu zMAfzE?<)y`1wrrV?{TM%n<%0Our7pWk>d4rwEfjm>H3rn$+hFcw=&D4OkQE;^_9$) zcGl|?-(^CkdE)Hj!~I0Lf1IIM7HzS|3pFQ|`$`ie0qUsBsG!8h3_Rswe#(qB^O1dp zXozF;@1D>9j93|I- zZZ805`mDE16#z&Vw27VM+3bgio*aEIF_)jOY_l{HrS>$ExU2Jxea-xUlzQ z*4})KI&f5io~ZAgNf8?W3W18d!cD${+DE%X;HuxzHS=3rH`$2jV!N%A3(_0J&eLjI zL7II#@AI7W?1n&*_h)M@pSi|}J>Fix&3vQdQ;qSa@b(N5)*x4w(_t$TUGzbh0&8RJ za__{~{>0krWz?x7PkNSiJmzv%RdUxTm_9ex+rU=(C)%Q?bLP>gxm4m~>S-_K7Zhe^gaN|Tdkm97%6I_Rqmit+aTH(Xq>f!v1;>`*Hvzvp6qE& zD%+2xJ7wdIj;E%aIwLOhI`D4uLwnd9C`OqlnQmd#b!>faQ9b`OwEZYggRI5%Jf2J)yu(fJZk9fC-#pirZ$>NEyc%bM1Nke+VG1_;CaHCJ9-Bxwv|R@tW=^MYjuFFFrtNbA zu%qF|^3y0<83e@+-XsukMya?ShTEn)_*hHiR3EMm*?5J_ROp*>N{U`IDq3i>U3HVn z>fh#{P-N}0R=Vlyx+>feWB%$qV57hK9-rk5YAn*`l@$hdbhgv*OcG=Ww zmnbtYv)IRSpHo)s-^rqH^JUFf5v&p0A*ek9b4CLwGkI85NsWhBp z`Ms$_vy5=d_EwEaSUTnbAKBz&eL5jwtVz7fqmc*P-7Z_*Dh?0iGVZow1Rah7-V+Mh z{YH9|EUdoSEcYRjRv!J7`hQqVIu|-h`t@fPI$nvF@j>;?{Dk;rH%qg8Q45%zEf=oV zR?vF{W&4y6K-(Ii?MkyiB;ZXfv%kas*zR{RU~B9a2)6b6wY51uP-+Hl<4vzvAuW@| zDZ8998_8;l&NB^PMf^gvFFwNM8<~|OjWb(hhOA@_Ja`$sJQ2c4g~ebb+plATvPuRw zfp^ok-z-|aoX=5X<1`C8=J8<8 zeS5e90T<|TEqBBRJ_d~@Nmp1ii{u;I^T|#<%{Oa5tpPyrMalD)*z>#9M^t7^5g9cw zJZ$demD=9kE)g+{EoxWy%qD%lj255jjV~kZFp3b&fhXhv0#A%hh1OmhpQ`Rj|RHyRHwHCD9>aK=d1<6*gTyL zOIx)En|&fArc`7xZXXAihlOkP7&3I&qn&+ORm&~noE+=>Mk`*gU=!igqmSK)x%1No z10b5==dE`~^NGOqf+Et@i<`zqZ36>rB@R|a@1~1wrlz!4I?GEYg#+EU@!I#+0#|ZQS|0~dNRM?!HcVFqPq5hXBgHW zIA zu7i30XT9u4v5eQ1ul;%X>{e&C!B*)Bp9OULr;}rxx29fFiupgEOn&5aalTzg5=Uox zmaH~vg@N#ekA5&ml2I1^W;!t%7!Y_tq{Z)g`f6F!?`PvRmFxN*gFoXA$hn?hG*>HWCReFrJ0DgVP4?cL6supT&?!0dlYf?!pTy`m1P&sm1`7CA5^KeQ{ z5mVDnK=v~OZUI#`^t5#S^wStSC$ubC| zqdv@Wwj((xkI?BzcWEv-9)#ywxDCiM447vJRPQ z5KY1=%6k~XbK{*>(^^(|ntZJ$VUGc?Kry#-_#V}3ocfY^6f!Z+Ls}LUATj88XzJ1T z=Ce)l6U+ugRg&9)G|HC=>X4!5FE>6T$^pvL%w~hH-DkpxLLZv!rl9GQm;2@ znh;662k8!#F^HaqRL@nSPS$TP%_qemEw{BfJvN@@-fkpzd`Vr|4@A#pi&7>#Ux&&3 zhFwW#&d;wdDrt$q18bj1J1xJq9(pHOtQJKMJ_VgFE*s>-+U4eop-T}27NL41X$Ar1 z{BR5ppx$ql>0h!w%SfT#tcp#|jJY~=_Vdi!lQWEdPj@-R>9uaWJY2#7GY&$f(HC`} z*bc`h$Jn+nl?rX#qr=%oPT32NCjeC1--_~rzg%{O&9Y*Q%}fqXmXPlo2M-`dj2HI` z9PER`U|IM{VXjU7N3V8+-{CBsS57R?_MR*d?rHr`K;N_TZrd0Vc;y|bYUqsUmLn&K zf4X2XMV-1;GaBP;c;HK_lGl@Z7ctdG-ugfRsU?Fc_Go%Du=P`KwYuti$94ZK6n%PT zNk}0Bk@v9&@n_j!YX@JLgq3Yg)W||Mi;)}*ycF(lmKn8Q^23A&21=K|{t_N=ykdL2 zuynfLu&(eWlNw4uoD2Tboj*KQH>E!d_cIYtz3M-)x@xEDzo~!ie{!B11^)T*pXUFy z|4BX5HlF!T&t?Cu=-&$eo74Hjy6;X}EykX4P(};Yig=$r~zG%;YECy2khD_o7?^Tg1lhFkPPa99p}_?U-#XS z%o+zD?~fn--1BGC3O)>l-?h3E6@9A~ITs;3+#WI2yHAi&(Kp5p`LQ{>EEtEUv2|)1 z^YEQPI+OsJbcb^6acu*c>pFGM>L{~T5woIWJDv%lKEZwezD_`g~NV;6~<@+ zD1cJQW&H&TEFD(y_1H_Ut}%Qz(TG31-&Hv&Gn*L=gU#^)1YV!Qpn$k@*I`%RE!#~z z_Hf+2>eZRQ3tm)sW^?Hp$*7I;>j~*8U=D!;Z1nO9{sco;H}teOJ`~#PuDe;!>euxV z6}ySbmS`Rg#R|N5iJ!XXMgk0Q35BAZX5y^o?~Jo=DdQHg)`nUjKu*8(t(JpyF^dW?|oGMEVl zReBhk?R%bK=jL7^9+!9Dpd3><=Df@NzQa$d1@`Yt+IuT7E@@|iVhd9*e{_GnPF+R! z`&mg}E8DI_q=9!zXZhyX|9Hwu7QCiZZh^qwX8oIYdU|$d$<)6ri@!BER}?epkGCSk zKBpS;2YLLBqFE~>EmuMm)f3dSM^j+>`EgNYoZQ6I6=har=36@rX4vnbS(~1Cm7W^? z{6>0G*;9dP(&KskZn`4eeQv~j;Lzr`DxNok$O;#6IF^0PoAZmJoM*556@foY8&;j> z*az+_COHYg`M-_;%yjg~ii(qo1*Uw14cg9h7887}SG>Fjj-2BeVe{5~Hr1<2{e`wa z!(D0tp-RO?z&+yx`=0cPe$xPfQ$N-4m$%iDH>&T4M}Kak)n1yag*&-Cbw-4pb)$@TUG8d~L4 zg2p-;Rz!KVupZNoQ8%na1}K^6YA>Lp)PDBwTD?D?o+TJB+IxV+PzoSjlV&|8jdD63 zM7so;WgY489hM)Yt26;tN^?FTzKtZ7E&`b%FU`6`@5W5Q@rJ)gKZ3bf8T#}V2G8sW z3b$aQzAHMCmvdkhCm4g?UVr?zB)W*kcPpV+BMlS zV`-!YqmTvC^+Ho(?{g8!AuoP%UWU<7wsQQg)a@2V$s-p2=bceLmyT-d4a?r48}^Y2 zpvpF}w5nTyL~oGZRU&VLSKN2<8C2cAJAI+uYE>{v@=~|9odrrW1>Qv+$#OceOInh# zpJx7`w7N^ZFPpAhOys+YsxTIhoeKC*+CHAUs|}Ayva?O%sa1o(!1vwF_KXw%&&5eE+B~8z8tZg2h)S8V zVyYWOnrj8*Lg`6chX@2iyCjtSV3TfNLhX#I$`3i|Oogr0@e2lc32|#S$Q2wS!z_bA zjRMnh(M%CXS)zMqxIy#U1){yz^O;E!;x=|wM&%y#R|%#`(z^X}PV%$k9h`;ddP$z( zB;SVC*F^?*y(YzV$8?RP`H2s0vr%?DR z)I{=o2YW^n<=0OJO?pifUv%iFwC%dN)y0v~cXnz0?3dRxZ<+v+I#NWQwbHU*XjUur2zjjMjT;_o zs?pUZN(DNHupTA0zjV_mFn$eI5yi|D@Bp;UG9y>U)+k4(-sBR_kpiXm;53?7>@ZG+ z5-xI}cc~qhbOTe|ds|@*iTyhKrf{6U%lDW4`zjkY^#KJGHnUh5Dl0Xnu}mgsncr%J z^rJ<7iX&F=UF}0Z=*qEJ=L$~0`J%3Cd7WAbqy`L1U0x8o1Kxzb<&Ba1nz8eC3MaU< zD*dtC0k<65&Cg|RaP!unZcaY8zgDC=d^f^b9@hYuTwne2)px~O9BbTF`&4WTM!{MU zT=m+WlmmeB#=stv@kVBWQ=XJ_n;Xq9F{U++Urknda~Js(Wek-M-%)N7=0e zCby&n%_fYj+L$Wh08o(KDlxxOg9b8ZdwnfM9Mmw5E(8lLw%;q(;T^$Ey2WVyD5Mm8 zInI655+eGgBNFN{uE$hxV+H7v?gU6$&R^2ZbVV?wuYFU#0B6^DcTdxwvfuUBj3s-c>hd)1 zTzp&O?a(fGjox(~E2KKcB(6Lw+*R9s{=Bf$J$U2Zy~$Pc5c8fb(k(>BB$CCHnOz<# zGZ@Wc=Is_2#Bcd&;cSjB$Ys_bHCm?^=&VJJwyL^~&}j%`a_ZHV9jwf0(e04o@R0Z6 zn>`rpBxmKb`5i@GM}WujF>O)UV#ARkVLyz8H#RBjor|xEHdoq=&&2fn#Z+NbSz1A? zO-lSb;b{ZLM?3nWhFF|iEXm&PF-8z;Uz0#hGsD47UM&NetsB1AuzyR&XyW<>i z8XPze>Fgpl6)-X4kE+8eC?1D64|?U?hb#qH$n6FLg!0Vn_@4ICg#VD3=n2YJq`)32 zcjNeFE?Swo(|z(_5-c?TY7(i0B(s%E+Wt%g{yt_ZZqwS%*AL08-~dgdR|WM2GRDPg{Z-D_#FbEh#PjF~|GP5z@^iiWy4R0NSz6i9y1<+b)Btu#MUfdYS2epMsx+0-%#^=~cfd5Wnr@!_44QR$< z9mZ2>TmFPHwsKXo z5u?QxP8L1=x4#%UEn==zgs5MnZ@yIssb1bGJ>`TVSuY>)mH^GkT*)DL{(>$BA@k$J zv;L(+WUh~9v@=dL8{?eZWca%|cg)Ndc*y1BakgB5BSO>hy_0)AxyYDaznR|sOOg;h z{mFX1iTCS0W-$dO;=ZnLvGqdg`aVZj*;_wZ)kY7|F-A(#z&#jIf}u%w7`yl1-E4Gg z*`)-e*b5EO3(A!CPBcTPOo({Q^D7C`E6l3uR=T+J0*M!eg91 zz_KvWK73Q$5KcaYyt#6ME~VBYTf6Z7a(L)wdH3xA^Ezv37C4j+$g?XcDa5d^_d3${ z%S9!?g?mmUVrOKemEeD&u-jn#8_^?MW|ndv5Aad>m&>fV*GthIeidA4TZ8 zJ!EiLv8nENHz$SpX-;}fpgW;AW0f8=P2|_#8}zHE1)ru{&pa~qjkCOQ%;Ood=%`KV z+TZel&obkVeH1}xa-!G+F6-5Eda=B2@`5_He()mCGWsx~}>Tv{*dgVV1dn1d0;0gtz%8cE~#Qax9 zJLACl)YMdyRi{p{PfX@}BSJ2Sd$-^QmSB0pZmPA#mKM7vGmnKHy8zyfx8+FJG8Cv# z7gdu(^5U4%!QwM_BT`wkU^71jyO3%m7h`DI6z1(OWgS!etqszKWTF1A=%v)fFR0;% z_LZDtUxQiZq;++ao$i>mvrsj~7nlx;FUv?n8|D;zqpJ-Ip`mjxpnX=&T**Vm#;Iu- ze9$QjLCgK{*qX2U^Hd2f@0yLJ2Pj-Xis|Ib;vwV{-_NI9s0OZ_GQ3`vOA(CWP~rvtg>GSaoeE7Bn`7G2%2^SyDdU0}8X8$V0h@0xcNhBdWZuNDYjA zs$MnrgmUrzT{I*kevjHp_0ZyCYY(mXNS(Ki_ipD~OMgFU&qR|Ms@F?V*A&^ZhcU~# z#^41d35DrmpsTS<_t*lvWCw?PvO4Qs^=Q+<)A(19JkCsH$tWxQOP){A^>~+w9d<03 zpoDl^;`bR-UHSD0x9$lMmOM~#CO@b|rMG(pPQ2@Yr-|bMO8$E{I6Osi&cn>EU?Ann zf@6tSHgr0Yp*g&Gm!WVwX+|*mr_j)Zn>sNcHvmrIVL~)KIdX$I zwh>kIQ%+tHokVUA_4PW*uZCpfdymZ~#V{$!+{p5Fa~xRz3U{eSw`jFlP(h-FsiI2$ z6f1J$F`NL}K+n-8_`$qp0fT>h$6(R2i54#%RavQvW@2LES#=slPkkSydaTU^jW9nz znzsmL&aSg}VZd9*Q;=&tB-Sa9sWGPGthZpE=_|i=26UdPyY+*6ckYi)S9q)xI=Y~Q z^cw9hUCt|(CN&ZG)br_vy`Gloz9{(tk_uXU`3M)hgei8SgRYtl)Us14q~vS|cc=}| zkSMbH6oGMUgX)Z{XO2Kho+i@5+Qn*8P4xay+3cJzl-k+;VghA$&*hyYV!SH4?k!OZ=g2pq{^9>E9v>%nX6@Zo z%YM*)sBd#UMs!S-Rmv}ymuM<<3nVV!j(grDM{GDfZA$WU?*`rUiKd!Ogt_3ND3d+q(McdfJcT4(0jGs2CKGf7v}^t9glba}k~ ziNxMM1HS@iI+vr9%o$wml-NGUrFzoJzi{4|4O9 z_vd(#oyr=Tq^9botlu9Qv@>_9N)mn~RHC%}{Ii*A#DiL~xcm{34L

    fsMZ$XQ?neY=UxE9``jTdZCu_?+uv;}m@410WB~gzM@{YAjH^2!Y2MvB zyLztv4DtyxwJvkOHS^|}vl@mGpv7TanxOR+7acdT#WeKE=Ad3Wtd=5cdd6=RvU9Q6 z;fq%d5OldOjNx&1R|4M%ZYodjG=WUl+-f2-5zQ3bOE?Ct_jNXB9rAC~?~S?OLHwHc zNT-Mfgbr~RMmP}5UfkJOCy=-1)2{_RdPpDt!k*RHh)1=TdZIfp!5Pwtdz%Jn5syQ& zNeOJa*7_2>dAQ-8Z7pOn)ctYkv;1Gb*ui?6(`o3cXRpfYfz8Qf>gAy?MtGz|*LZec zsC)Ip#beLiA4VW$_ZGQ$0dx1vM^EH%3C*_q_k diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png deleted file mode 100644 index d44a70de3069b61c278acf81c709210216ab3feb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18047 zcmb@uby!?Y^EMcQOK^9W;KAKJXpq4NcXto&P9Ow#cLtXX9z3`c+}(X4&-1?5?r-u=o{o8#9% z@b=Q0PVe3!cfb8W^xG91zk5gePDWfr)qUZp9oAXrmq8)DRhC;ug>hB8mB9R%Z>!zW za-Lh;2|!P~!NkHwj?E~VQZ8?8m?aPj4D}TX?yLAH4=g&*CkUwT@aXSE&?&+10!ZJB zkQYhr+B$RbN)C_jznBJJrfOIkOj*7InCcKj*t*Q15}S(48PUBIf79x(@kn}lg+`NG2@2d#MjK8K|EU$N9RA73WBA)tfty45Hilf(?@BS#qE3EdIs7zGSk{P+ zCTAHIcBmZTU)5|DQ35=4Mb1?bS&t63l8Y1*v?rrqwZhn3R_(Dq*B{wq+to8pYP)>Y z8{O*Dv@8&mV{t@(v|p>KR4;`2FnYO`_&sN+Jhi(#1}plt0Xe{Ss0_8}qY?eYemxM~ zDDaHxh+m-$8-+&UkGtRdkHpk@2Dcx#t(om`YFn+(p$Za!CQBE=2QK|CnpftPblnYc zNIk|=q(#-35AXA8ZpMiiIz$tbhHNEFJ`<7?kode0FzLNYVBgd;ka)8bS^)D}OWenk z!p_8<=7bgm{U~@8n8di>dSUd5Tn=_^&{DQ`V#Do|_RV^>yfmQ*CjOC4cMzC;@w3ty zh=cyr)>lKq8)4|`X+#R4Sdtmo`_PMJy{9q=$wp9`t%32rM~Qp}kz;q@%Fk~q!_le! zc)z|Sva6ZlwRwZkfefQYL0(yqJ#=-hxd;nF*<{u8pIwoN-QTt%1c&c+OagG6Q4@cp z?8dvk|8U0xsH1~ADUbcR@<{#JLYEnnA<`86+g`~n_#W8S&WgTfVxv@U32@SqH?I&3 z`j95!O#;34z&EMnQvw-$=5RY38*nzdfa+}}&)s!E^7FLq5&&yY$p|e3z=^V}T#l_^ z4gFmir~cicGv}RMFmbn|RJj$Vgb3R0wtu1$lhk-9dle~E262eTreNE;EURx7w8I1W z=_tN~_X!jxdyEj7VI&68K)7s=+ib*@UX65xA6!{?d+`2m0qZEH5YJm|WXaw?Swc}F z>WeJaZF;X}8J86WG+ADaJYv-E2E#rWxOI%)mPte@B#}N!q7~{epIm=QE!s*ElQXJ0 z9_DOUzrRe><*ueDL<>DJ(kTgi+7r{IGc5Fm& zi`W61ri=`pAEK}i>MGZe6#tN$T=_OjX?SNCiAnV zx$d;N%!KG{7YpuIW582Njjzpng_!V16gRM&#=Dh8<*@r}h+%V6`v-Trjt3FK{XYK1 zF+t(YO6fzUj;Ma4N!->&xK5j#Fn$5DDs>cRgOs?cYJolOxuxiEJPv11$SUkN>!G0n zObn$J%oGfUhF8_MD@+Hp`0EfJ$cch8be7W9IwpJ*dSv=7Qj2}sp%C`ccFjc&pUvAE z>7i?acg8P)=*VN1M@v|@4<>nHb-BFBH3xI`6d1Et*bIWp0WL3aGxwOe{Y{Q={eR%C zS9HTxc!~!8a2zh8M&!2Mn@xUN4IQu%k@ol%g;AFh`-iBCe~G11k2m_UT?CGM0rEQu zxw92_ZI#TC6!ImX(ph7Q+@OX)X$3YI_mitg6eu9t%>~Xi*1q9}Gg(X;T$-&w#VUyh2DxRe}X(LjQB zJ?)Lk@n%C}b9W0#96c-HCQLb9uLJUUM_(m9 zHm3@7A#XpSnTH~vl`wt-OrgQ#vH9Z$Uk!IImP)N`HD$qGl}z``GYcWXb^g$z?1S|= zVz-dBOgB;R+;bmVTdQW+#;{XD&hZmkfJs+$t#cce-*GC(EaFDBU=1|>t^+3zI>BIT z&jj>T(I#2r7ub>1z*~_^iJG3E?Im&dlqDw;$83z1jy-ctK!su+?J_|~hE%==F5bB6 z_wW;&u!M_R38p}#@*Ctnp|-R@&OKVui8i;Q92u)MthfE>ksXTu#dcUOXO9-CGso;jT zqv8^*+g6uBpXulNwNXwzinEcC4TFTcgPM^ZJBmjpxGx8HjlN1ULQ2De7u>kC3@Yu< znA^|tS6@yHP$NfFXRa>pZyu&RWNh;H2d~i#0qtdX@mZMRll^#^4u;#_`WBZJ0-U}q z8VFpP*a)M?RJWmM`h zue5d^=GQ0ABn~ubR`I`SNXh&4~oODDxug+ld;U)6s6O4DclNOOh3BGq{FeZp17-5fWZ>fS2a1*s9J^f>pm!xfcMCMY1{qLp8WsDE zG?(MO8&XUP@y2f6=R4?$crKx?bc=Him7M_fE8Lso4?sr+#IjzfX>p;L?ZS=jQ<%?i zU`M<{WkS42UD&j7zQQ17>pVh|pWkAnsuwcGkR7=MC1r)70wT0e-L)dVK=z&*EgcaC zFB+&8$42+G^ms01rHA&i#FpehAdUQZxAX3kYba1^UJN&inqfD347o+)hP+P*2||Jh zSHmi2b~N|G8eR~P7IY7hXqLx{c@G0-E_we;ii9EZ_fy{8>A75A@}X0;2f1%E@M@ql zO6&-34m)~)P4_$MmNEM-3&&h!BoW0w<6%Yym=MoyWqwIqikN2iz3j#CU)Xkd5P6?l zWh2~kxi#uy`63adJ{g^4fm( zo8mNo#L!-(_$X>vSxBU8OEPJTt^@2JkEDKcd-~aWq`KZx&UAnXMEZ%lw|PDcKJ(p< z^FgF!#^o7oK0pD#+^O)TVmRrh#1kgd#^42Bb({g1&#|;T7BTvDy*G(sTR2 zJ970%PF@MBfntW(|uK)2Si;VJmu0nIZAG9J1EsG^vz4OivjZB z5SiohQo3QtGRhZ)M)(~DeJAw1qnhB;>WIl;T>Tl>koMoQGSU@*SC40_MrFboL4*2W z&EBUirG$3mOYyN{->ajVVrD1ArZdPU_O=#qDON8fa71TYt$xe8P3)5=@=B*`v~5TJ z5<=#2KCxVJ?0*4*R&^32|EKvYxqU zOV3fRyFGs^qbwOJ1pyabOEoUBdE8GI&? z@}Pbb5(RsrsaPe?lqR*pM|zQ?`7I)PRkcB$Y*!ijEuzFZ&PoxNab!26nRN z=s?s+F9@1Gea1Gauy7rG*-tyvfhb*a0BCXl?LZXrvYijZBw}8AKlc9&;(+t4Vp7}+FV4Iq*`!XfuXv__6k-fAKoi;t9; zD>vmysHc{JoVe69j2%AS>#^lR)F_Siu(JQ>< z8xH1z*@g+NjoL+EKHq;l6Cr-SBc<6s{T zzB=xrvITt!fyN&i=i3RBjJ;c0&B*zed>VtltU&@_UI;ned^Ah*N=DuH&-b0oK4}Zg<{-B3)S{{^ zG0ei!*}5%z@Q!4D(q!VpIjnLXd7U=U2X{?}yLJO&l21oF^#cG_?*?4f`1r8!aB;wA zPFq@WPisYlnZs@j>1eFQ9tk5qaYAIb;nuBgmY|jZsGz<+Qcfn~UXYo?JpkLgy}`iF z{rx971tXQ#dwa{JQh~6ZAoreLNmBNL&r3=LLVHHVaHk@&SIWjT{S>_XP_XDjzh6|{ z;=4^nMV6531t%Egq-D}^MqLp#>ydIl3E&%$AJ6T=^(1rt;_}*gq}{JwN28j+A!s3y zF&T-wR$mr~$v*7nR{IgN8-&E}93#@As|8z%itPyXWddTjn>#t>YxOR7PjC2R5lP<$ zUYa+XFMxTFy$tnEQzlH2L9#yxStB-|oSYh&)xdY|6f8BDrWYu)X0efCg-Sv~v%^En z51%5{+a&=@oG~CG>WEw$jM_^jz9B4*&vZq%)#joB{j+s9gr$&fidYus0Hf#mp&Cr{ zZkAZ??x-ui+_)#qy<4IKy_7c_=Rvn5ruUkN4;3HJ|9e2Bd)s(aeV8?Wavn!+5fjeZ z+8Vjg@31fhsi!|}49hnPrsM_Hn6Q%=y$(Gd$Z|jLI%rzMK2W$RCA5*OXnUijC&Weu zTJD-vk_+jj56uC@rKHF~n=nZUDY)B8+HoNiCKA#LQBwCga!L&Sm$)<&*G3Q58FM7W z(Zh+$qQp$3^E>Zqk+&#VS+Uo^WCJBfUv;3ZKkA_F(2;+{W?f&BG?_74I;}Sbk)4G; zDBI^^mcToN!NH4Of~kj@TeQ_+(_+ZzsMVROq~lK-$fzneZMr)sVwYX^eoH{vEC-aU zyA`B0X+n2KCAv?rs+m^~3hT5L=f&s1$yM|=%|oP&L~TH?aqGAto6OUN#qfL`D5t=U zd&$9*=+)CtYH-cw6@q8Yc|c8fMM9_p6zHHc5D+FGNTb9EhpL`oUo|Pm2aH#nJLrZ` zqhi+!~xQGC&4VsF^8uar`ITw-YTCgPp)&zM5bO!;dy$uOY~Ip z#VNE7aVSQu9F>Xs@{J<#eYuTk60Bm#G<2L;(H?4qDscroSKj?4=Zw)1BeVy?;lx}u z85c+tjGArCYSBatU|IK@Bat&dgOA%dYa;P9sKEOPw&C5h7=E{7W1fayO7N=!z3UAS zm+7No&S0!!fg9d3wHAV_Jo`n6^fY%pl|vSM_3}MEO@?zVm>w?Zm=HTr^IsfIa$=!* z%6bFV69QBK)1*S!TpJ*m0>GqNbhkcXgm}mmQNwx5Vk*FBi^$ukAjtbI>TscwNy`|pOw}01UmPtZy~4PwbBvvE-AxC_&`Q@YG#(f8 zb6n+ev`Ov@7abH?31Rny{B%ywTD}kW^oBx_Sed_p4C81%d0Xz67^7;v9yBM+?o4Yz z%TbAS@KD_KJ|8j6OT;zJc~z5cz|=aM(xB#~k=}-d0jo3F3^UQ}=85d)W}%VN)@Y~9 za=>Aa7%q11fx9;*1cYXjmA!UgLn|gk#~m)J>0LGJhgJ$i*6mRSVm(@6HvgSt}D`Zi`WB2_Ev>iurUE2(wQpaVL;mG6YpHAA66^JLO|UL>`x+(BU`Qe>TX@eH4&y1e7m{bqF= zb$O?#kA;W#930-m#OX@gk!Zf^SIGStkN9lNep4)53 zUcE`&{1tJK0Cb5=o4e(KvN;Wi&FY-%LwRm(03Jz!&52m^IQSsdo)lMiTa>FAp^8E> z6Oq%D3B8LfGi&l4W=6Qcp)DhT?ZYm=8hzIH(Vx&4Ct=T)i z^G38JfL%tb_=erkklBCiIFfy#)9NK@V{lsMO%Y!N9L~8m&qsd2Jf;d8A zC?UGB6@owd?rI%(AEuf&SUhvH2n3^$944n2nBZqBz8S?fl2R+>+w46T5%i^sox#o3 z5p;A2&Yc<{G0D_KT%@Odi|C+h1mW=qaD0p~zcps?M%L5)wg!;|efLMTb9}vzl5!S_ zsVeo5J3K6qCUdvY>15(-98vIYV#k;p={ybINEs&{PgVq@2V;WTx~eIDjDYVmKqzgG z`rJ_Ecbz4YdZ`~1v8BeovNC{W0V~qHD(34=Oo3Aqf%eSHJ3f>Z_m6$r150fr@vSVb5>=PVge6zh9BhjucsT`>8yV$O zPZe6lF#0}e7?wW0`LmX179%sNf36KYl@~pIfs=IV>*ycaamZO5`Y}F%Gl?Bs?1lv@R0u&m7SCyAyrJXLq8tA}6iIGXS6m1ZSHWr0(avq~*gT4vHcA z;v=Pz;ksQ)&rRJuJl;`-Oo_^?rsJdeNP-bj)S;~QMW{a2X$u5g885rmZvw3bdA{qB0^G_VQ9bK-N)9Tp!Ua2u zJM!#zHWozOd$YP8V^Pa3$pF#qWv{Zh6I)L~KnWYkvnv{C`h-_d^%~KzJeVdwTo-bj zoN(7Eg4YdYi+8Go4FP{ST}%xrqaLg1w*UvMw0(jplauy;f^d9%w12F$(M&=@^gNSV z3FDKRj92j>fl+J>UjFE_hZcYph7p@38_JG-=uTX#;5N9v@u}3FmyIxWBvxOuI$gAS zPz5sC4tM5`$vEglB(aIUb=Y$^`8;P&Ow<_Jb{@y!#2%M?NIRuv2 zH$x-YKr;%+1ICp9;X=umv&l2t*%RcJw0@U*IOXH<9 z#~r{4S~;1FPK(ta0+k>=McwMCsr8@N&dzCHS1w4zs(U=jqUS;%u}5leGd`~dZuU8N zv@H)oA7DG?VvGwsID%VP;iL4VyRVaYartAmYVmWpm^%`HYKUM*g_WQF1FB0ISC?o^ z3qY2pgNuPZ%tLwZu>HiwP2OCr^9^R-l%y>G^KjO$>sc|m?&o$$x?#R zXGhMag!9u+oEyz~ubPr^0;Bo_9Y&X2_|8vt75S;tWtU^dd6j=VkGY~jcKe^mXyA)k{@7q5|AKc%G+qgDS9ob30ec5$n_HJ_umR zNSC(KREliLK@IuOpE(RO&3SNNjH#xcLn#E?yVI+?Xdv#S&L6?sx0!Y??FDVPf$mUTk8aZ2Oj~Rjl8?fG7F*|M^v;d|A`+6N!VBvWSp2dB>35f+|lKq9gNB= zyK)ZMdo*;q(v8q6Q*BkL`bh;kalcKQ&<+cQrBSS}xOQS6Y?LK$%(!Mq+E1XB&p?E> zkVsg-OA7#)1{rZ2&ODlUtdn7jh01@45B_Q$a-@Vel2^w(A417%sKf@*FlW1|TbJ#L ztE zrXT#nQu&$VLlYNQv=@jDE(Uc=NiF<*Unj^Ws@G%w2YVCXN6>CLzv|3tS9K+xg(xTN zrX)X>Z4wQ+An4t)EHO4q;5pvzvkAGx;So*dX- zb{P^j(Bm}J{kz&Q#fvh!!c;-8EBCK(?sNC+W~UM!8@A%1rP!XR_k^vSNGTia>)xMg zCU8ASnjt!x81RBEkU+VWJ*JzHZR(^#jql8e`F)mkq$ZwW?dJcJ3-CjjoyiSN7Db_4 zq-2T1Ok7_K-Y{`OSw}gzHkUssgZQf&Ak-!oyOry9eNNY{@jSN>FDI=%-lv0LyC^2R z%?oqQfOP=NAt?oif{GF@w32ZkKrM~vYup?XW{O5cOGd!lunL)6!pvs`@VTh;IT>bh z#6?y{*l7^@rJO1IY-D~lyN+HQO!KO6-?Q{mB0hK+A$>4H!n==5RUMOJLmCmA5wbV} zUeeo@Ojd4CNf|r#>j1CEa8C2fdvdY7c)we?%1e}WUmvLTQkvx!j;R=O2jcVIJGv1? zDN%JY;$fam>;(!kt2j3kDnAXxHdJTv;yMRHJm1#%W#0Z)h&P(37Mr2W6?r3%0+*P$ zZ(t582{HLwT4o&G*3|blTX$zdC*H^<5Kw8vV8z<$pf8u`$2@$L^kP($XwF3I3q>-_ zA0}FfCBwUFuV&}OT7v2G+8Vk7ZwzgPh)I~MD85YAV0_O!#-n-XE3JH{v1(3yXxfAP_Fk^MYiL5ODYBUrgS zp&{$L_8xBy{theK%OQoTdLTlg%6xQG_?2X=uZ&44`j)v?<~DGD-(fR3Lu|~*Vi9er zT_VLmA8!W>_uHVaBaCMT{^W%%W8%hmYVufccPV&jDL^L#dxX7E+@HGw=Cgd1 zp|deyba8xuTa`K#P}zSuS9~iFp;>`^fq-?HSwDwl8NW(~q&V7rhl^S`xdcBvom(^tXciG-qpda-WyTt)8^vEVG|>(^7+OvTm6*oIz!yh1m}##BNta-4 zI12noR}(8zH(1#X8nOld4pip$XxGShQ0<6GLR24nKCS_p%rbmWOR6NPQLxihNOY8h z4~(0WNI@%2)%<=WcQ-A}y4_(aWwvxRm7nU6a&e1S_JI6fK`>0S9z+}` z=IIBS`g+C_m)R^kiRph5AKS>`XW|2B*#+H_$7M9DOKt1YUkTL!2|exV<0%u;>pygt z$T0?o2Cy;P{iFqlF!h9e=P+=|cpS}W+^YrdqYLm;hx)P8C_(7|aJ719MPk8=I9AG< z$}#8r6x?1Q0^Y&tw6$3UzLtfwQ}?|iIK^zSlwzD4YJkEUXZ-&}>;A8pTI~Oki}QcY z7SV%Zlvz{G*6>!kz2H^cKT(f^-oEfFq3TiRe|-SYy<3fvJU z?}iOT&n;+Z#{Ksaj3?!hG_FE>LLBA#Qti!qX`S*$b`Q`fsC0(^hr<3h(I`OTf4293 z;|ouoNb=7-8MqGIr*p@`jUzEq>rQ~jOw6I^$jI{Pe|hyQ-p$?1TfZXHQ+?{9vj+@> z$JXEQ-oD-le&oI{ioFb+rQ6E+T)@6P<0I-<5n2Fd`3~!*efFq%Lgy+->ugc9Sdfh~ zdLq7< zdA2252nhfgMu2{txEwk&+OrmGAOUp`badKRF zS3o#|g#E30yMmldT=~4rap_GXuP!!gfXgrI5O%acN|6^IM=jfu`*JhX)+xqYXtd|$0q$e1^7CspWY~}V z8)c)Z!?&1KX+jR3tuH#@J%I-!38DVD{S{Fj>u1&XpKY4g5{%Mx}lbeS2Mw-bvnbAQX0`uRP3z5~Pn_H|Cki z`>05Mh}j?4f>xze`#01w!`upFM9cX-7`WhPr$(QI=_@}lc@rdUkfD=^99Z9A=stfG-aY3s+EBi!t-i2b@`yy_&24g4c3OG;at zptP(^SxqgNUZYaDMAf&vi6JtQr3L$J&NQX4}Po8FVmPW#s6Hju8C5(RNuB2qfj@ z<<;Zsu)?OV412sUo~r%)8pB$kbU~A4)L8wI8aPU!7)jnlWrZez=-CWym8U|*tgm%~ zxyajVR;o^O@}fy*)!E3eI1|L*agaSX`#dqb&;8qj7vmh zuF(bKeW_jKiB^3wjnS%}-{JK|@al@N_ztnySXUW8#e69L%Sf2jZcw}*AgyxVtI&QZ&A}_%L|J6NCa~QGe@1Ch+o$&7qi5RD~<^ z^3E?@u}-Q|huA;iN=l2GR)=Na)7E9Vwhomhx-$8(5TR4#!o=kVm9{MW)SoEZNi0p7 z%#ew|u|Xr5_Y9Vk%~0 zQox`D69@qYgKy7MI-`VME`&lmJ3E(bXhG&gyv}fv8)cwq>E*x|el{A!aWj71fGm=% z9*00>Y*LFmrs>C8W0{*Bs^7d8>}#<-*Ju~KZdOTV?UNMzcrDOVc%N}`xbD7se0WZa zYnuKd_?UX@GkgE2P@DPVX|9cn00k#g%OFEUPLurl_^dl7W3k4^4vFb%Sa^a*&WBKN z2|uQ1ljU%wMicG_^F*0tJX#GbU!zS|%MmNL5M_)Rp`^nf$wON63-QvPUP2*nu5!s| z6AgjB-&0R>ASYPY;}!qYB^V@vEDAs>1R%xHlgj3Ytud5sfZHICG^pPMS6KJj*Lo3z zvFLWUE-Xm|17gywMtI+jn)Ka&7gfl5v6lFGuYajuX+<&#bttNPIt+2a-$!%DV88j@ z%gw6Pez5YGKW}`^wa+1~W#8#MyLUA`R-$PugWe>HWsOas(2t#9YntbGdhyKzQ468V zg5)oJdG@7pL!G>@s~tEOSRq+8yK%bKeSR}M{P__~@(9s!S-|{j?Z)rr1`Pv)qRPtL z{O9oSFnzBD`lrjS61>OCB9}e4Af=}YLrLsXQ)L)A$hpRf1cp0Y(aH{PRw_l|k0a|H ziWUCT6q@K*qT~5Bn)5B+_#3p#&m(hFw0=Fii~2X<@XMR~>cj%cBw#1x9L`*Y)D3HZ zp3d(u>hO0}zchUZp*&pJcF`u73ZzBcG~DJEmLS&E1=1oce!W_}-q`#Aoy0a9zt#!i zg-`___(Rm?Rskw`MT_^KNvDa#YQxGzrrC=U`2juF2q=kow8U~Q+DOrQ7N76)%C(Ws zP-S_NFLTM>02AF1c!!ymgfih)zavD^g2v^q^2ohWR7Rr_;jsd?8i_k()S9?BLreU% zg6x)q>Mvp;mLc=+JdB*AsTW{qvXvsw@hrd)RU-p7#5aTm1kj6Zs7g)*-`hirbz7A^ z_2*KDLI|*OPUU#1Qu>=OujcCc(4sTGD2+IiF}p*$7Nvs;UylEs38ntxc_PZn@sCdj z`Y*iCx3Mp{e&;lPcAZ3y-*!1Ri1N&Y=V_wNZ6AGj*%ft`xk%GWYI3ARL4yrIYhr%a+F&DWzw!ZB zoTxTkruSYzW;fHd-=5VA!&RKH_xq!q{|1`g+&2$2&(L)`u*!yGyi_$dQE`M`=!Zq` z8n;zJsIY32Zc}mMRtlA=2MXu|SNUwzawz90a|d3IcWDjb8;6MEz(0EKRemTU!H~7U zt&=lRZ!wzBnNR!cGe-Jg6WmJy>BX(!@w{dF_!urB{p!sc;Ky{CRmiM#?6rpO0pv@O z(QgpV5+^$MFt>eNz>@xRl~L0}IH3^b=jFet3D8#4f{2L4#l>-*C(ErGw#{1T<;=ck zk#n^sk!=e2c~mY~9V+QeID%C9W_!IOezbxc^@wn(v*gO&$(}H^a-S&WN8$=5H{>=D z9`EOZ9x>N;)JI&XWB@I;BALtw7nw3L6cYRsRxSZM9Ot}y86lk;c)~9vJv$D0dr~xx zkDtgJtVMTg2)=h{MChh@$GIGmAK#$lHnXGWXxa<~fDG(DwP4W)fY?frZ5dO$SYv^B zLBQ#Ofa#8%take8@bR2A@aeHrkc~zS*BY*8({xE2MyWh?k<(D#1XB83FHbpbME4HbWz+ z!ZJf>V_XZHTP%4GGyVflHD!yRq-wkSvudFb+QOGWugQ_@Z`kI=;UYuT?C$LsR`53%Nf_U+WAy`cr zSw$|1y|+vKn-+1BuZk_$u`|)W0D5Ry-We zG*2?A9hDoP)1$+#gr0NvO&m_`2P^b^CQ+INS+Q#RQhdlsPY;GP^*rpw=1h9P0fypF zOHPElX<+pgi>uvo$lTY~ z-mt|hAex~k{lL)adG&ELgOBEg_?3u=r;yt8s3sQhq-0Lq?&kHnE`JnXDDRFbw2tFf-Jc5L#?A_hIgw=hRi?&92{J_pP!JT-hYyU*BqSs$DY`Ar zGPZl3Tk5Q2a{AiSHZ&jx8AX^5p(4>nZuKJ6atihFS#KN@k{*EmX5_{LN3COfaqm|w&=ch%3`Q&bpOSXOram}cl$ z5Vy4wUEfw)tiq^hSz7;aI`IS&4AT*NNPm&R`LI@Y8d2ZeRGZl+#aHT0l7%xbaOvj; zi;=A*W+3@1$%L*o%`REElcI`kdPLYK*>e^O!}_W6>k9diN!Q^3T;KG>hA%SO3#DYp z@*>iQSfHc&#Z*sDWHkdVs~|4}iJ7}9M1_3m;rd)+-uJXwVOHvyaGxTM%u&%$v`Hh1 z??3$Z3AO6K6Mh>s!bONCUa*Kqo*qohy(tT*`OSr+TeebAk%4xnQJycu#YaA9P3$d$ z_T~z|o`d+a)*X7zaBN^;z-|BM-QdvB*&lG=Y>bqp)8Iu^-Mvk$vCJ1*X-4_Z4G)2s z-+Nk_KxYeLhR~wma&hUY_1pvK3m~Im1uBO{Y3NIhWdsb}ap#xe!R0tM1)8dW*l0-E zUIF$j?jQkeF4BfIw8+0u`e0{IHz=B#?b*Up;dn;-2a24h?r2ri=RbU+wb+@dzldnD z9IwjqHs(sx^)0|!KYr;Bd}A+usw1}0PH0?3&3cKAW84GrK_kL6xqo=X1+Y37y2AC!+SQcJ_W`KYV_tet z?ecqgc_7OK<-L-w)vKrjtslL*=$sb%@D+)kZ^xfr0Yf6T;WE(2Y7z3&pL$a{GFZQ{%WDYgWjW5F!&zXucQyrz>O)6;q zHp?yq7|l(1JF&^mNjH5P5tr?E;;~?7Aqy>&;QIw`T0h)H_ssEK_L6EqhOV`T8PJo+vKsnNxk4|3^NuwVa_+!dp{%)=UGW zSNyD;9X-5cYJG?5^lReiOS~NBj)DK_Z8A_s5pf1Ddbf6AoPzSePeFcY*+1*z^D1d{ z+5H&Cm-EEnBkV|i`R<}nNrwsZF0MkeWkp2U6Lw6I`)8>Q1VRkaLYy;V>?|YXP_vIJ zZ|s3m^$P0SP6aWBTf$2wu`=l4ar)4C^BMh~XRID^0wd(b=5;SCxSt3T#V#u-Lg?gR zqlsM2!8 zhD)|?aEaOMhq2zq<<$Xa%(LfScG6~Sf$j8@XQfwcJjGLVTT4)7d`fP?_yRh1!;@W( zYOL^PMf_Jl04FkzVXt>sXD%IbC ze?9Of>A82&hFYvygz<%3I&h|lP~k2k;A0VDg9Ng{KNj>i@A~i5ee1~E=JfZ}-7DGj zmZ1Ls{l))@Din$VRx0jjkll*Z-giSk^Q78lUd&8r%sEXsSh)8}x#S+rP{Z~FW zTwK9a`$!CLDOH9I%!BPjRJc+<)uDWPo{9)n9%6y?v!-|9yu1=Qb#ySNQb>fBDOQZeI^r zzNzcKHI%0WL7PXL;zoyL-8*o=uzjYccq4eD~eyhD$hdKkM0%REYQ&Ca^y`-LmdtU%pw*+v{gyDMVhw3)Aa?Cn34( z_wU$w8>gbK-MV)Ih4Y<}hN{+6XYsNp33AwQbEXM`9-D474ldUlmGz3S40C-)S*Oab zrv+-N!0lBACi=^lEQ5JQXUea6sKAj|whiZjsX!4~OMqRm#|qVuJEZin+nl7`Gsu?zm*w4E_|EeEzwONbNxf?5U@w6`sT_Gvg2rLfk-1PcgoaYCF1u@kZ&sPshT>X4)eFn5-z;Y; zjrBg8Xv+jdKAOnwTY$nQ8MqX16$Bg^%gY17H%ov9KJtai=^81$@@2dj^I~wUS z2t8aP<#0bIlYW#bJ`0K*Xq^il9m0usIpwZJY0Nefr=K8|ndc8VSrs=ZX+??+cT_44 zmX0u5;a~mQJ?lB{`b?-2ndYFM!1UJ$MF*JufiCi*SEuBU?Oin#9fWrt(5L70T_zc5 ziBDXp>m>fVzqSSj>3gtG+>N6c7h~RaO1smjlX6u-J=ehgUJ!y5)2Dym z5Ncp$Ojldyc&VEnk@XdU$C1PUO`SB+`%$nx60lQsHa?ao%Q{3er21K;&; z?J9ahMnrCDbCH_oL#wCxa96|1y;Q2j1vxUJ=bAZ?1eJRSK9BuG;gTRLKju8vDFJ)6 zp4HOfqPF}ZSw$)leMy30i@2C;7DSjPN;GGb@8#l>Fg$n;9H8e8b4f$_leZ}u z^#cj_pgBZ%74A@>L|FZp%-w^A{AK^0Dm6WFKg=Kfw)H_Lam{?YO-8p3Q-o-k64wMg$8ozaVZv0jJ8IS|=>FeB zY>O|CkC`jtLgk=qZew21me>H#<6BuVBr!?Bt^^%ARW zv0lNph`?%$`N=!)MS9to7sxE!^2N09@<<uRvfCWR@;UvUx-Wz@ZEza4C}e!J?+Fkq!L&V!M&BjndMAylk;YRWlu%KlT=wK~ zYrbdCq~!={g!s*;hxJ*BNzdbijBg;+;}iki^aRc^CgR;K-|sjXRdXJ{4=7HB7aNF(R!a>wH$t+Nx-~m@1+uo z!Z*UMRub`?^JEytI~jN8TI9e8p5b9S)-u&!8}XThgth^_7QKhkLZd`{F)rF0O80-r zVyHqk_`Hxeo)6zA$y(@hB$axYr@%JrV+L>pQFa0k>D$9=nmxu?r<9m+e|wbbNXx#D zLD7B%=Q)WJjLC`|8ipG&?{x_3MeG_3E1L;d7r%csa-$J{{D>Bc;AH7QI88x_5Z!h2 z1wW@w3s^s#UBXRdCov<)s-$c7L&QWJZY7pGSjv+RiIYZh-|=jw5J?ALX~SFZli+}0 zVD31}CMbGs^h|6{#~vLvI0>5g;OppdTr1qFCQbh6NBCrD8xCUdM43Gk1;j~zde81< zqDe6;z!-c_dyeEe^3R4Ir_TaL=hEN8{J4>OY6n5Zz2Xh2QK={Cs*1FNNZWtp@L?)L zet?NLv@q>vTwOcl_L+xxoi-UvHnjAYIyj-C+2+$N`z$yofxPsbY zC*|Ri>uY6A3*N|HZcuBmHASqJwRsQLSRHlDc&&}5c@9(I^9N?9-9O#kZK5QmE1jhPXL8P|FHv~0yvk+}pV8OOJL41({#_w7z!g;9@56$@Qb{GeO2z{;E z3Gs^yh`psE#~ba9sCc+k>qyuSl0ZdUihCN+`J~UXS!s=nc32n}?&?{D)WV%FASsVF zI;!tS65{!npurM{DU#v72ZE)&d(!N8W+#dwW-JDe3l@jVAd*!rjG)H$T6;rp|x)MOa9dQi$p`r6ogwu#w7u|js=y!q@G+1-I$%$Pt&J0EZM6&kbigv$W1X|B{bqwG zOZNZRoozFKQ+`*1CiUdkR&cD9JGd)sZfpMD`R!_%d(+si`-diWZ(q){ec6HqYvsK% zCsg||Tx*%T4BGTr#5K(%e9F0uHqVZBksdW+6K~<#S3DPHFMS$TIrrWMqtm-gCfrHb zR`Jc)URixo%1dAWcdO%Ov3u{|vcCFm(~WS=^3$D`Hrb$e{lxnvAOsgtO zx@v4%`*#U|V=!_XHplTx79!H$s?B2a~`pXwcj}gb8j&OTgR0Xsu~@!y3}a1~qCS zCN;U9I3Kp**%c`-mc!o7A@CNya)egz^Qi{hJUr)Fp!H5R*R+-|a<)g`$fzw(mz0>t z*)`Kr=LPSko?uV{7IcaOo`3T5<2!iw0W1h?f&!cAP{&W0pMLPym*tWYb~hnS`4iHf zg&$A(PH23nE_!axLufaIW2umb2gA2FjNjg+Cj3Zg4p}cG+_=*+E*oSNq!W(PxdRyw m>fC`wBN4r*C%jMpvq#-r7QkEdA{Tg~41=eupUXO@geCxcZVjRU diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png deleted file mode 100644 index 45c395f8d37b44062f5dc7d0114a850d6c4cea17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28485 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 KrH_xH!T$@*p@41x diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png deleted file mode 100644 index 41b82036fe0bf709691dbfd721ed0086a0fd12fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15601 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 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png deleted file mode 100644 index c2de857a3242c3d577515e5272f1ef616079ef0e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 124423 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⁣!EFn^;%T$`%oGka=-oZ9~a4azpnls@Ry= zgz(p`9H=PBxIw$8ep>7<-@SNvq;a8Nv~u`KP&?sLxRche(n{I=YAdqcXa0#2)lT$< z%Kz2{H*+C(NO`c#+K9m#c9pVaJ5JCOAkZ$|)5Z%lPH5j^?Ld4a_*qQVafRvE(NR_MQHdh8|G8l z}V+#hMkr(!i3@{ua7T~TLZ{-87;dirrLR!<-%qD77#ugr*`>3{dJ z%l|mic!jW^`el(&H|D1VYq8W=zf!;R#1vFEzZOr+)Zs-zDivmmnp$wn~c#64-esxWcm@xrg&nyq^tYo~iToNK>#v;J3PfKfr|2xxbzzd+NkJ3$+B!79_| zOWci+OBPOaEuq`85MV@yfsan@1g^{xbBq7_A|ubgQ;w1v+r4#s7f?>T=(rONGHE8C4`FE>{p!nzM0)W%g})zO*- zJjrqRbfgaX;YeN&0t+rgN{`B&5Brg?fzJQ4H~QXfN4vLvlF+yAjdi4trsTaBZyHsX z3*sACw@!rbaqGu{?C($nzP;Ps(58hxv-+!MMi@J1e7`apFe3}RqEKp3)O zt=l4x<$hPR@wC;9{`&hh=~QTxl}kQzMOpTlh9)Y zQuTA}|0yQ{@)zu+n;T`~_h_jL$>7oVL}!5hJFkf(_hC{78b5*YK7Msmsppzy#t2r< z*K_atCp_?EZt^(M8}&BVD&!(6aSa~#;6KMwvM|9C$~KeM!v@vmE%^}>=7ygEkG+`% zDQ-FuJCQU&q7Q{9%Jv!){39Qbr}m{;88rV7^r8r3w?dQCl^AVGnE$A84ta98xiQn!7%RjkTSr7mbueS4{Z*~bMT>gRRkVy#diT8SJA=1Hm{-ZsHz9j7IXr}x z$Wg2SLjki6)kT2b>S*euLOv4i_WC~GuKpBxYg-g*>AH5!l3f<%+R{NVU@MgVX4VlYx}(-IL$G0vZoBSRc!FT+lCM2(|_KC|)u-Vscn zCQOvj0>0G`9OwR7{rV=q#Q^#B>o?8)MF_pMP5Grg2dc`0Cc(V)j12yBd3jja840m4 z)MEhg;GZJTb`tK=5n)Lm-PHSdDo644uEkxI3w?Y+V?&V%YE@}PjqQK;t4$A zwH^oAf7nKBoBLkZJ?h)ctnbk@=gcR`L??8ma6#SAqbH7=8QXVP=8=PiH0#jaVi z$mA0+{qj)7A{ABNTu@IK>y6#!K5L^B6YnTh zZa>*mh@#7y!?dH>HlpRPh@(3k3dGf6ZUU@3YE!XrDa*JD zVnO=A0ZY59`2;CdQXl1okGbOjrS$Gnc6|1&PzA`hxisZ8t>Xlx!Book$N8AeXTd%( z+9<5f-^Mn}98qA5Uw2Qnk-?Jl|H$umsreA^ck>lKvU>J%Z(F<59wOZ+m+)(qg*9+9 zj-zBq2P12n>EeB;Cgw!{;uSeYFma+_picC8587Q-(Bzpfcfg!hb)*W9Hz|ajvz6OE z9;@R6nw1nvQ6&~hsUo5Go1bEUuxsT<-R1J8&*x%3)xfi-%8~r`jwfNb8@aX1(d_u6 z*0N-~g*;|a_8D@CaVFlpjTV3GA}o1{C;_-v6qw*kpCd1zL!dLU3q5RGkWfTY3wfY(5I;NGyaMs@_%qg8dh@0L?#6 z(Bg~P0F`hMp={qp(57_DH*Dr1?_G8T{soBkY)$!8j35c_dy@QJ;oA;b1yvlzzML}^ zQ|n4)$c3Vsrw#IJgVEzG$J#&;x5(BCvTnu|w8AjKNSk~+tM6s4aYx1G^l;DN1IqKc zqHJ!r#*#aZ_#9*ho(LD{!dU#Qyrl$u8~k~AQ`>DUEa<$2wF>O}+724tNyG`t>nDcXU&2^roKUHFkEmBZdFN zj{)67&SX#GnBK7bj9dRiQS&0Q>&=A=Fb@Oz4+KY)PSIy?f2=oD9C5mFdZ;n)?P@+j zEQciey!>?Gy!7nO8%+2E816B` z{9z+>lTSkKu&FBtivom=t~laa1O>$nsE0zPV*yUK6TpwQI1a!{tb#b6ZzLsxJI)Cm z2>!1*M^&I8njt>lDQet=KS+lRX&X?uh+s+VcgV2~@yc{u3 zefQdO+Cb6gWstD@#WJZHTU+B;W?CFqPe3x9kySh_QfwtUS*~_hMxz0Oi_Ua|zW2X; z*krNEx9&7X;83;ADDTPuIif`>jLzG-vt;$g;r|fXUZ*6$qmkr+O#4yaBzXIWcw4US zkINPRk#GS0a{IXuZ~SlH?J8C61HJH_Z$h-%owUQEkV0S5u4SkTs=?`%^-001OBzgF zqe3-H-=Ps_eS`EV$HivYlIwHzEBX}!g74gK$)A_K+;}TB{=tv&@FLxSzTC5UQsYcJ z#fOd#oc#7tAw~Tp+mqZDNfu_Nh|pd+`Qb9?vkd(Fx4Bx0^#OIfGrto^c38^i?6$JB zc`<~dSc}qudw56S%jUiP4bTgFkmhxKUuzhPNNvQ;4r@teQmyEk8Vz*w71* z>*IWgidM3nqwYj&h_3X61Em)IOulN`L?@gxya zPwSTH?X)zmH!rJxOlPhNlupTcOj{4N=)R{Z;yK*0kBpqgUp)GL?O7{9A)sCKQq=sF zG5`5$@S_v=g}!J$xNc5LTy39~5zfch^m_U{csaX5jBU%egp}s6imK5#;N06#t@dDu+uag(JTJC%%-m4`b0k!`^ z1$1$E4)U!7?QHfkEQX)PJ|r5jtnppr0AI%R-ZhpFiDNABIq1i@Fbs*=dOk^RPHkbJ z*1uTAhY3{(%B3F97(0FGL(a#V zzGU}2fn%d7y*7zAd$7JUA|Fk`pP@Sb;0Oufg*4#UoS|}$A2n&ZaXXNm{<~VTP__HB zGdHv42WLbCg?QSa*L1vz&bGkJO@D9aY@~NfaHiPZhmKXWF%2#{` zhIWOOJ&O@UzgU(eqC`FN!kqEKn>x@8SfUOY$93|0<%eU8JzUGq^U~?^m8jCDpWX&s z=c|w9$uSeSQSO(OUaG|Cl7u)C*N9J>Q&k;`2M`*0^S{cM625DeSnurC# zszwO^cU6$#tB1{#{=RQL{J@~+$mCe`qr7sihqPy2y#LsxxgsGk_N0=p-j^Q~T=vIq z`KcgC#|tbRbk3i!OP)`^n+AA!qJnSsNnTb(1fxG{B;-VQ?Qgahl)6?LaqhS|{`5ip zw+Swc+t-K8-f&v!bb>%-o# zxDF^Qg|m7T=VD+&62Ni$2|fP**vntb*&WNn{1#SnP#Qd6>|qXml2zIPsr`=@0GXS} z0^vJ~pRc67#Kn{$;Sg4L`bb~&+rlF3fZJ?v9F>mUY^vQbCREoNxew*p#oG`um6GNo zyQUtZUPn)MKwWqCz?I|1-L>D&#lmuKrw2TN9;=i)RvFY1P|Y60B+hQ9CY&TN0z`&g zheu23N{@UwawW#Kr3tK@RTv-l<{?-t5Z8vUUwDYbYUTplh`08F{+~r3{zBM3obriM zYgc>8ec3#D1SbU}hQ;LdKwDxNb2zq=uf&J&C_Y1?^f~?>u?!I4 zm1ws|PL@T3BvzZ9N{9vPu%P$$lkD@jIRE{ZPle)ea%B*|{2g2)U@-%1jKroa3?-HE zbXdz}h-6GeoSb&z=Q>UZ_^|9418)~yNTjop`M+g@+Mus5UGK&=$eGA$`hj1|y)6F! z``RYkow=M=7B{?#=Wz(Wm-8aHk`Xz1*biJxCGr*A*_3L0&5(?NS`=-$Ybtx&%J!4f z?h{h=j*S}IKk2BfO>jZOJKqVF-l52a8#N7--@d=iMr=WhGJOmdwB}1|S{o(nS>wRu zAa5JuJqw}-^5>tf#A~lGSH2K<&j;vx7VC275hMH!*oRpz5DHoN5FB$jUx}(%3@@TKDN36e{92i_le6afFFHP zqlpXjCVXI3KO#q$tn+ag8T(c7A*=rJw;Sv=$Z6tAL`C&+VNP7*jVb(*r3+=;wKkl! zyFngWZ0PY%AF_BusYk4bZ&c!jOK@KNwBt^qub}$NGIbvkSv;T@F0jM=$Bf@*IN}?S z%(eELRy4V$|8*e${!`0S6vkMCSus-yHkY*qc39-~g^_M7W5|l*%L}2LTD~gmbNojz zEa-fp13tkpF;dX;=t-}HQc8wbB&fb{;*$A8Quj^&1Swd|u>XZphZxHqO$Wi%w@{NY zb>UhcdH1pO;iGMNw)KkfNAQvUsrQ;ZeL_}WoRs@m1|~!mA{Cg>#cBwGbZ~3Y16{03 z5wR4SIbmM~FC8E}Egt^rbMW<#Exr=iXnTLM+^)o%b$U_INXujD?#yJ@3~WqkpVB^Ms=6vclu+!QgyzicU59^ z#-f-|A2DUWNc_pqwGG&hpl`4X#pyV6yp;E$oKNI&&staKsDBch5_zvN8P#Y>YfDyZ z^h%~DR9a5qV)yqh+7-!Lp2;2zZHn=-ZMP$+0=WPDS|O z)@NeVqV7=gy*<9Y5U~f_V@;ofmZ>)W`B%+w%Q?L2Aa#aXE^T)FA-yMJUDh@)FTJ3!1r)BB(WhZ@r*kZukdPW(|tI8&)$`M;?1G+ zlk)wkPE-f53WUkK*o$>pXfos$X;UPH_yoy>aPUkfxpGIPc@$xXI#Kw!Gpu#!KloWN{z<^PD7e(uUt~TuHQ0-5-3JP)P%Cu~5lTb6_tVdp^Zo_ERmRP3$r| z8FW`V$%M-RLcGW7K;(3=6}FIj(0`F?+yfS@tPQfe;t2f+Jw@4NRALQD0wiuf!9CA> z%r~bZ6SJ>}KZ~aPs%vOy=+e^<_6M)~WSgy@{B^Q&c}#ca$san}VU6y_y~~<9D6pBf zSwx}pu<0@wUt7Qs;{84S-61sHj%-sg6&)lvx%>N`eLENF-v$t^Mb5fW$L~*5sH+B; z3y9slYOKOvKhb9Bri_w`8nG(VwE~-!=R* z4BtBH+wCX5(0oZ_`ZeK#?pPA<5#jkr=c2M2voaf@@^rBtpjt0VU}JSC0Kp{d_))}H zy>gdf$r5dJf#>j0zA&0J>=lj$R#njiuMqWujxLPWm%kSTx33o6HPm1Mz!qkgx;*?# z)uT-dqeO-)cy~uh>3-FV_P5uK_FHHGx%lPVTL?01OEaA7`vsV&=n5^5#{18VD_-PXHMhvkyo%p~# z^Sa6dh_KY~T`+Pc?3`4okF(+(o!l3Vyq)Mage2sf7o=J7-aJc99$Tx8cagP+gniXr zy9-)*C*pc-;@Rf8M^i-Dx(HG-AN-|ymkoQc*~Cm4ioeiaa4tDd!T6nNEas2h4rdJy^;gXi0g4e`Ak=JyxO*Wgt#x=iM*VLsS2M@-Ae=S_=-&*UQUC< zP}9F3yO+0wkaz2!WzyU7{2q|y)}N%3zl@3h$ZCL_AtP^3RNp>00o?z;3ttA8L_9;* zrVz1z#(}yvAQ^#hT(0DMtd6!CCw!cO8#SvTiWTA2`&H>cJhGk5@H`E@#e?*qknZ99 z?vMh{Z*W__5lXU3#Gy0gRs}%Eh@=z?`R%Sm2dSGm;5*}l^FQOT78Oo{Hlzr4m_5`e zCIFIEiR7)|_Dia$cn_y$9kC6&6VD_F;HQAgIFLuX$2_ji__)m}&%N>`oj>vi%2qJY zSf74o*`U|cJ5%*m4cpp8*ss$+$mu+%$Ts5%yzX7eg#7#C?0-FW75vZ+bq~v8^2|%; zhWe2jK#atTJXW`P0?DgH0sd>i2roCO?U(8P*hZJU)yFry=Ckp+&L31N2()KX<|Oy; zDScwsondpZoH=6^Bdc^vNB-{Be|lD4n_2HJ^t>22Q~CN1GT=KWM8A&n!HA~P9a*M) z+_y@IAxV22kudM+1&Ps$h@?^*{gV5a_5`gZ>>kut=1M6FU?dZ8 zomHDdsUo$MKX^cQdk*)=!sIYp-!NWxR+`D z@u&P{n6t^>kkW^;Z3wjQ)Zr$W)wF3kqxKiFxhCeyqgtkXHvKmC-00f^%6OW(pR|#z z?ER{Z;2megWfc8l)cu1f|KQNK?~B&??6np-7_VKmUPQck?L2rr!_s2kmhWyWp{OzO zcIo$9oy7*7^S6>7Mv(dmCfNz6=AEgSH+#U9KDLq8WAfA_E!o8E>EoaSpZNQz{Wb;d z%ew5B&Z}KMf8J|c=b`7bFyiYna4zTj{NGK-I_ZWYE`W*M_*0L5T;9I0h1wVP(nDjW*&Ork1DN$UR25l9vzrW&aI?_J<4FpRNhVLyX`Wt17nM&&C zU_r1YWf$m$8%HbJ%t=4l@NdNpcmUPYvVIj%M-0QWg>5@3=RSdpwP;s|;WfH?-02A> z^)Ez9MEvtaqlAMlxN*M?PSvKl-}bHdt*QZ%zQ_Bei4w7*e3*r0F#4wJ^cVdglQfZE zC-|VQ9A|(}=f4ID0)@*Hp9hnI@fJkhKm&DC-&8Kd=(<~52`j;+itvnPwgrCQGu9$2Z=1%a}Da`-m%o)JjXf>&QE|^#O|a8pIhI~+l3Xl7HZak-(S3s6oxR=4}S`U4hU6zeY} z-rz5!_YL%xkFdF$M`#Wk63JQNf7VldLmkX1AUjRC-g8mGi?PRzTp)oQ|ImVqNb8VE|XW|WZmEIN(-`y0?G_0Mob^V`E~G*{0k1?al-L5@Ds)%X85r$ z7xeZ*|7_7ZB~$XI193UptF=>X7+In6gygKi^%Z#i{*}vm!MD)%;zkEUIihGO1q>7?f?YGn_GfFM8`o z9xbl1Z4v8#-l}BW*tcmwk$hP|<4p9I9W0Br!Zs-B*88N+sP`*w{d#`28(tR=1Yq8g z(|FgM!*`WZH--tqo4b<0^h%Z$5m&kpntO5YT(fogap;U`WZG7WUV~H-oER|%{%AOT z@X8F|dePhD0|2ihJE%6@l~|hhJP)!KIN_DM4o^0v}i7^>DmV;pm zS0v2f1qMxv;~yosJ!{W41cZoLwvo5ZwlXwE7j@oY)$y6dQDnOTG?co*0)7>-yW!&& zuL&2Q`wocDvdvsjlda9l^ror;h|m{KycyG*-teGOU9ZPuI9368Z{>$h6z(wiyJ?g~ zat>z8b5M3!=}qYl7ZzSFuGq5H<`J4g@4MZxK!AcgpeF`zSJVvM-uvyf?>Sx?ej@Cn zFvc$Yqe{I^7vV9{Sy2yV2FbVlvtM@*;?5|HaWR-y>b0*Dk;*61V^co$Wo7k^aW3O1 z(ias{i8ElU-R0+Q7{VP$7lbef~dCK#2= zYQ3WhUk3HmrQVg)?P%(Ftv#Lgc?mzAxSj6Z!@%4`?aQy8d&BLg%1TCM=*bKZagj=? zjV`|AEcgv4)4Je#%&-QAPg}BRob2sQ^qvfC92cn#17>9vX}>Nd=Y4%vmuDf-|Hj_u z;6Z0pDAH6Q{Nq(?0d-a&+oEizW@OUU-t7cZm+$gA^)HA?rQ4XSoD9*uAgylqfZBLz z_Cjc|&hI7%+jA3}={jgH=w6t_IOYqc6xN$usMQ-hT{Ijz>KPhyh4Cf`q8F(Y@0K?^ zuT0t;`NiWJ*-vr$9i>1P2d%oT{Z_gcZDtv9XN07`Mv|=hkxK)wp5}~BvhV)+yOT$Q zp|bZ8WLD<8f~Gb))be;NXb%Y27FF!6wHLmNm^It3mf2fiQ9@*2tIJHYio_nE&S{Uo zI4QC&o|m2u8T=C7a%t!kfTEc~>Wo){$uQZ^P+#%7O&AB8T!Ys zwE_t)AQki_C&uw~kSmb6-6T~?zI?G@FNsmQ?&bO!5E1Wf%n5qEtEt-J zdGs5Y(fKv9cVEqA*)EuRuOg1QU2oYvg1cI*o~|(Bf!~ zDBC74H)+d@;&*?4wPT17I_R+lTYNu?ko&Qv17W|a+al>7O~YR5jO7KH?}z};3I)|H zjx*1Z71N|DPKpc%p8kE@Hqv!1tK3RB+R?9w=45aQ^X==)dg}WSs&Uw}KewBE?D;Am zT(0F>OKOUJ316Dq$sDxQ-y>|vG|DILh!AqVONM#l@IO!-MwjPxq7>K5NO0^e*5E&O zjbfBcED68OFIv%nN?nqCKimAwcPWn6T{j0Cvu9s@hat69Yg^w&`w-sW93gB8s9LP- z7ybfU3qOn8diP{%`GNi3H$i0l{LI&T`#phPWwxgYAiB&*T3}jxr_HbfTmt7HzC<&2 zBoCx*E$~nC{Qz5!5Gu0anNoIAf(R2#Basaf8{;2Ux2!}-fpNS<8j(L?GHw7E<`gP5 zLef70#jJSvYCeUN)J6E6PF&-NV~3qwcM@!retG2%iF2)e_JlpJ2BW+AKL3W&kq~Pi zP&@P~(x}e(VxCuU614_C>B!o;_N$|FD^SUIftyH1xD62AV@e;d@cuHJlIjMUx7K(a@-Yoka2MYg1aGJbm1bc}jw&)p z{$uq1bj0bxX4c2qV!HaDcf7WR3!KpBJ)n`{?81?@eJo>>cJ98{KV91#J*Q*erH-ed zFaB74Ln+A_Yi1SX0yAS7fz)nA&UF2WC#!$Wq<&NK+9ODHMH{~c2w&{k00(=26TP*~ z`K8CQBI{gk3|z02&i2Gkc2EUh>#eec)7xE~htB0%Z}^QxDEy@q_{{FUEUnZ;QC}Z? z)>Qv;zDA>Uc~4|{{QLbr`c6mh?jOE2-e0|*>o>L^bat+93*Mzo#WYGTBj(b`@@Xoc zQQ{t%U#4PQ^~x3vfmy5i%4FTci@tk?A-*i?3(a(Uf4$ zIJP^a5=YGO3nFfv1+Upgxv9I(M;;UZ_!nHRGqzP(*oD0`2hNe0w*XVb^ej|k%}91K zmk=hkCTuHjxVB&%f!mG`k}48`(1B74*f4l#Q#{!H3=}*gcSD)aiZr#X6M&lZ^5}^X z`r|z;R)Gm(JjrAJ_Ty<1sIrB5F7sD`euvleHpYloA51CMF}lMLTws?K<9)j?guJ#l z^b@ypAgYU>mnlGo`^Q-Q2#SNBtpDU0c>;2*^>qh;O7oj;pKE8i#IzEAxc zZd>m3jzka~nx5FPfWLu`5oRV!fy&Hrt~>kn21|KZpK`nVnOZxYBv}l#v37$K9-{EG z2uglBi90=wslEE**1}6UKQ>ftwQLFBgGpePGyihodR^xLsm1x)}|-?9XgrvO{{@>rBB%IT&*>Lhvwc;O%ii#k~^GVOlbN=&<`X zm-esLZXS41+9i+a7&1eSm=^Z7+28`I87`U<47}9`FrxQf_omDe{}SW)=(8QrNPlpN z-1RP+8X@RLNc+mj)6ps(Ai}4^c^w#mU6ADr<>88RiCG|#2H@$nQGl6N6076>jA4_4 ztzm3tQMQMpQ6>vKgIy?QcF>7O_8Sh z=k{22#%#sU=;F(t6hYH3Zju!b8sn@sn=Knr#g$j{P~^Sm+h&KkUo=1y?;qFzQr{}e z2>^H1n#cFg9?KCDpVhn>VS+Xlk4W;S=P1tFi{&NG)aU9SfkvkrcsI#u{W>vDC|cMa zpG%*Xle%D<^Mj{7{t_$Kfu z!54q5xY0%G?u9uyjA;=AmUy#DC>PV>d)5Q0OsT$2v@^KdjBRejs6bd19RYpmX6I4a zki?654k06B-LE{=F2asw6VLaAnvg6#pmYws>g2Cw5AIWDDpMhxJu4F7i=n7NoMioHKWa7B5 z0|!Mr{$bgzGqClqW1AFURkigOat5j4eb2T7$b(hrXQbJk$xZWLbH-#EIUT|;^BtKZ zWg~ROOF}rQvI%9oM^z5kfE@RIn0)?220jaZ%|AiOgVRlGiti>4zJU*VZ~ z;9!5$B=Y+HA6qfPFri5B#D))__2P8b?uh}UhYrPd@vi*Ee!)jRQWg7}*)0W@JXcML z6*yj29x&hHOLZNgDypZcLXAkX`CCj$t6)AYCZLkwrC)KkkMKA?uiV34#~a$S{(O#a zmuq>{Vcx5$aj;d6+?Y`it5>mp!Txi|(3s+j2++yOFR`Q=Kw|wCD55|MoLJJ}#1nK& zz8m1=fXaiek!@cVx^r>-Q2p$i&31{S1+tYNbTba-_CqJ6;*1xw! zj2d<_r}k(aYTuN}5EqP%ij%0tiNo#k;XOfh32W#Oq9Pa;=htEckGA-Sn99XF=~~DJoD+dycyV;R|DPoJ)>$%&RZ=j6#}b;1T1dbe&abY z5vF#al8cr7I`v-5FZ?01{HeR!23?=}%cVE$)(v8Ln6BoP5cFc-BR`+7Abg;PU8KnH zL3)6}bJU`zy<^1UC90?R7vQmowx~!Urodt5qV$0v_?KdT7=#Ku z%g4-GU*0)N_5n#Ae+OIohuykd%+b5)=FQp>dqdsg{rR3>y~f_LXQHnL?tS{w-~NH} z;HTU2JF}03XPi0Mr89RY2r~hGzuYaq8#LO6f%n9o1yshsxpED|+|2jB?tkc;q1rDR z%6ZYx05lvi2B^? z*}I?%CyV?<=lGi7J2qe9rpC=M!-I8lxrO*=C|7m6{ZI^7?T-{$PVKAYWPVTn+K06Y z5n|Lq<4ueGa1Z|)(weSkw3ze`IHFin_24mVjgxXgqGQqbW+YO6SV#U;`~SB zprB7sL5x)DNO{uVKA zLpVZ=N&MHmfgI!#%$=_DDxIiwlVl+cP-_6EUjtYpmsEE2jByw3V$sSmpfUWJmrw>i z?U@uz(GeiL_s2r3!dpDt#qORt6-OLu1;2ha=qZE+>C@bmDT;c}wNu^d{Y`~K{5w7m zthuVAv3TAzco7dD&y<=>y&*~M(t9h^KE^M7&uEIjtLw{Zk;VH5Ie!_L5PlaeQt zni@N<;gdXfA~#W2I3N*VNwF=;@*i*V~nCPT1N zD36AC)kFV1#l2K@E|GZCf4&k6@ug+pr(*G6bmfH+z-9M6`ztST=)=Pgm2<{CNKtDh z%PU6J)zc`W#mf0^OQEaaW)v8~A6Rg0yYd&7!TDs{WpS0vEjF?Hn!1ZvR^e)ngtndW zps$5!HAm8mciV?pg!j*sf`e$tih>w;y^7S>$?7v#%HDC$h&{$`ojo%AD2#{ES_y6Aqv|c<>@4 z6XrbcLSicB0B*h|pT#x2ttuLw^v)s` z3~K)2xdJU%`^550)ux|iix?S-W-C4`aYcd>foF$~NS_$MvuxSL zC;YXeU=6e`cgEkiq2kBCr!rDo!LS1%jzMUB1A-5SM?}8H)Nx2=MuXf}Zs<_%qjO?0xr> zF20S`tD6uNupZmx&Icf@vBLH;@05Nakwd8}3}7USN-g`XDVe}D6wfr;coT}FTF_1^hU4!*TJa;TxYj>kcHuuJfr0e=R!31)kPaAM+3Ar>Up|6h#{`5Cp~fUt zr@ys?FQDDdbxgF%H6VEy((s9a8}`qe{<_N=aQwZAl|n^d|96@SV`nG|O7&(2=F=kT zmt`@2*~8tugD%kYF|Ft40ox+~Ft+?TnRv@>Yb;i}{-0@QKSdw$| z7z$i^;z9HHs;oD$2Iya$L(f zoX+xOxh5AnH&U+o?2LGSIqOyw{l`1z*MC>-<4}_l(hqv{CFg8jwnJNRF~P@11+F;F zc)CNb^Apst`0uyW+Rgo4d%Hoy9w?AA)Q0pB-fZlmnEQz6MOo%SP9~r9SD3k`h<+^v z+u-R>_Dtv;|AdKUsWXm4->J*+rKX_1?`95=KzT(XZ+aF_)L~ zuq)W7hglR4Yy*6W9maey3FJ(bHNycx423o_qM2b>_Oqtj4#;`yo>KIED|a7IU8uN7 z>zJTB_t@-SY~|{b>rS?}Ed&pGsf(bYVf&uZ_kE^iY4)CdmHw0&(9?}@>&NWqRhy5YZ?BS~f}jLHd2Y4RJhcw44RZU zypG} z7kY8ehs6@5;24~k#|j*G;#c@~J)@+D5G<|hR;*!{I!Q6|iZ$q90s5F#56)41Kg#Pmz#6q}m&kI$G*L)^k^isNpotuU3K?)~8K-mrMHg)V|zQSQ-C2JL({c%MKU~ zQ{CI3ue3&)miU<({|H`i^Yv3Uv}beFeB$?aZ@v0TylJYQ#Xi>#BCO6X$T-paCqFcA zueoT^-jp@p%Ox8P5q>YMSth;1r8aXue)l8g4<~4%J{IV1(TVxRTrksuHtVpGZ`VIt z@J+Ro2|GqL_O+D~|3`88uDm39K(wOk9*JvONEy_X@kq5dAd>hEeTq!FwkUA+C-W_p zn}6s-YgpwQKU{BP#N=VJAVT5Iu60_?Zv^m{v{ppLc2+h2;^X&#c29~#k=d#N7hxb- z8?7|N9nvg2Y#%VTUt&360&8Lhe#;?lw9nxq-Kd8aQfJI3-TzbOrq_HIrp4`9@3r_I zs4k_kdSp4P)6&;<&Jzh~y>#ndfuBh=HkYizWT``@mUEl`wcVpYQc~An20yJh8J&D> zur|>fYR%Ws-8y@_zB_UlW${`VF_{5U;!E>b&p)lq_~-ueL+RFkex7X$_aH`9tKOVE z)MA{E`P5HX4W%}Ac_OZ%^$rL3;vw*F8yWJqXwgy3_EYa4ZQ-(d>Z6m)S_8y$T4cy^ zcji}D*zfyp(Rbf@zcJcfDr9-z;DlLc+Do*TdNj!0876F*vTUqPCiq*F^#qIa9^H>a z(>tKK!$p;MLiPipWqRK9{`c2rPi4SpBZfY<9BVGQ*mFh)#b+C%?!%um=A(W+UVmgj ze3!QCCWoj1xUdttM+0+m;7h467iAXX=bZ#VlieTDK{2coaiklp-P>~0nTXsp895ol zKl%L>W@Rtft^s~JTn(MmX$I8=)0KW>TC@5@FxDc`eSffn5Uo*VoG|t@q4Rj zMb58@ED~PtO;FtJ`JZcZRBj8M)`(R#J|BE_M$4ekja%ha}bB8D^rNssbWk zV2N1YazBlT_e>g1tASw#BF7Ei!iUAC<^_t(zl;SiVOw|Fl74CY6~RsS5%yx>0p>Ck zl}UQUD%iRP*__f<2&j|=%D6Y4BcH+XMq~?s;JJ<}kgF2`a#qQIr3J^xVS*RP7wWjX zfb<|=?$}&q*0GJxkhgQ)8h+qo_n&o+^ZRq4cyX5v0ajIr$bIxVQtC=#7e=l(%y#CS zye&D-uP>08MFylIMjOR@yJlXVMy4%W)@g9?K4n0R#y7gYll{G%^Oi}oS0!m4j&@y5 zpNiW*p>n$%?kZLGbp&HI3(OV}o?p zSZaJ4&u{BLDDcebnVuutWPbQ=YTN-Trh~c|OZ&GQ5fZM?;rB7M z1rRR`&57}}Nw-~G_FtPjNKnpjzINpj0zL`tYlSez2sb~{FMN#!nL%39{{lLHQ+FMn z4(L*B$N&Mzxd!x&eoh=eTNn1y0}oSHV|)!f6Gic?0_QJ$lm|3*NrkwWWF%OtF`f!F zO6O0=z$2|luQ;(tsc%ORqSw6UpP|R!0u?!l-!K8~CFA$-8#$`BMbm)qQ(Z7c4Ca$` z=J)ju?DMqrn3vl!*;bN|*QxDGhxXcp75G#uBIRI3&7Z@4%_OE)HBaFz{V_ACL&b}m zM8gj$bRJus0@>;QLEiI;L414BR|5NtSCr2{R^Y^G!p8!=rC{MJpl4f&MdI8ND!;c5 z?!fMS<7+I4#a=>at#4@i6?hX|UQ~}Ki9bCSMUZ|2Yg}gACb{J^RqOxIP3j9%&c*-E zMr}lx%+!lY2b~aZ{(;LJu{986e@OMLx)4j?(th8gQ;nS_>>IEG08#d8q~UvbveN9L znHEnjSyz%YT~YWJeq%EkPc2NlG}7$$2(H)Pa6O`8FsWe~40>YgwU4z|`(Qtsq|Xix zJ$50Ij_0P_M;S0|diD&(j~{gII@}V%#GvUnUjHu4T_!$zc2 zbO)-E^fjzFWP#73r9b>j9&1KkOO=d@B2uBNfbyPHXmynx#*Sm-Txri}^#EN#i~Xf| zVy}`5ZpbKI2hKM63*naaApN&E$6I*qT(?+*ahmIWsaUU;RiZ!zcTN|&>>ux1Ap60d zZJ;k!{OigD26BfXG6`v zSYp-*$kOLb+;HLa}0477qTqQS_%vjoIpet-f&d2OlH~xt{3vi! zuXxpQLpbbA$ti1%c`5@gXbS^W2{M*V8Z$u8IcWVXcDS4HX`MHx z3C{bT6D>#e{4>S!uQ;9rC!5!d$Xys_OEzS+vods(}v@`@PBdZM!C>zoL%J@ zuy9>c;2OWUVQkmjls-!4g$k#(H?e1evCoeuh}RXb5oS*z_JWtvc`g~ba8GA;oyO-{IV)o7-ive!I@^=uiJ0g&aTc+X3ow89oZU*3BM=XfY3PYD`P zKdFm-f%!f8%fZNb+>MliVrzpy?%vSDc3LppdzK7*f%Zx;j|q!*AF1ZAk7r?*8DZ2U z@X%ZQoml?+mF#@gm60_XqegGx0dCfaM^{%cVa?2uDKvy#3nB*ui23K!eL9)2!x0;i zP-g;-ftm319rNVFZ`LLGIC7C?K_9MuA*?L?o3NgRUYE05bY%xi5)@<D!OGA7x|u$tUi`0R)R8`QyrG- zdS!t<0sC(%2S7mRK?jCGKl_g!udp=uB$D8k-CGj&#bN}lRMC)#nAo>tPobDsfCEH) z56jQB16^~&xcM769&UT7z;XQ%SQQht7D;O2>N}tJOmiyL6{3G!+yuV)UHeA_@GMAXDng>m{-N>xXzQmWq&su9&AkHxc@%EE#=^>{htWo zHgZM^$}My`C{4N@7}TS2;JUkhhz&t#ellD_%px&K%4x=h$HYj`Gj^1J==@FIa+W@D zy<~F}mqBl&h8IbOp!}aiw&O`KdIN1M&>M~%D*=P@Qtb(dH&jSsIOR6*@ePSk`V{#S zu!xdGXs{@($Qaw|ma-C`v6ckzdwNsO)nwAR@*qHoK=%mPsB>zGKvWW{`WP?M0qI4* zf*0jUiln$6cb?{&|5?ZXy!&JlYXve=n6ohT^cGGsc!W0-_LK|($%MVXUKjts!w$sS z0x5LkvL`zuP+{=PI6$RL)hLssYUX>11-O~RsQ3luJu=$_Op{T?c?`#|=k^kQ-bU_$ zFciptLrO4WssHCM{{HE+CxjCK3@^3bqb1N=OqJZo0X*|Cn)Y~v^zWd&9#mR?Q6w}&v;@b6 zQL8pblt<4$!~5smr?!^%-LQDEy4yTKKDLfM_S~VCBGBO=c_-a4Nh_Qe ziMzLsU8d@^Dt%O{lmk#{u^}k98NM51ZC6$K@LkxM_vVjI->`+7x3K|R_8HsRA_I7d zF@A`g4sZDtq!RWo6SKBjj?o~|n^40L$AVDbBI}HiY11URZJfnH9Z?w$UrPm6k1fyq|PiVc*3)hRh=QACV zSG9fRxpiM)BH{7PVMPPyEqCI-{64zVKoc>_svuXvqW-4SoFP3QcV?RoSHcZrA>2n4 z9;b&l^5!I?fO7!?I_``8=QEF>Mqf|8Rw(zvMf?Flg|Qy-4I%L!Kt1)5B{Dewmqwj!AO6Z**|d?t;f(7hXXPYc#ukXx6{c{8dZ zHGhuz0l)$Sm|vNZA1|7KEN4*Z;udWuksO%s=_wjs*|&SZy|>}ms{dUo_t3r!2De;! zZ&%$9cT?g(+2Z@Bw>4cqZkkkxz@kd%WS@-ETeKNqAAo5uZ%@`aU~TyT5@@IcS!PNa zKkyOm7%2YZdLgBP)PC6-U~e7Mld=^Tbnry|MS6J&Vu_4}%Z%Ff#meF}7N9S{7IYdo zv6NwjkD%#!@Pk)!1mtn>*ECns`Cs$Yfru*KS^Ag}{{X-`KI=ZC04HSbq?GQCkDbLm z2fW`^Oyf85;$Dx zuib5PH;5~ceetMZ81P65I#_~l?y^!hy6#p%+}$8IkYJ5k5l){DxZh}7Q~GiO%3?!( z`V>3tpx2>Jo2U{f1_W0=UC+bIzpaBbTpsJ@pk}eR!mn)_TzE}`wKoR!e$Nce6lxaXl`lz8F zX-jlEFxp@iN)k-+{IodckR7ozVUcHz8y&HI)|InO@BNCO?Qr7!fAOjtGK zJUqweW&vOoe#;I7>a>iF-JBW-a8akMu=QZte@C##nDj3h8!Jl`kwFZ+%Qz( zqYXL(Ai@d1ul?`I`|r6ct%F*GcoT_r?N=?G`QaR6y(v;o1NtNMFCHBeI)KRA5_!<+ zI20!`+7apY8i3__&h$#R>ECoSBx!j8nMm_xf_^xB^7n#2Xz;h>yLrh8ZimBcfmlo} zGFul6u1QYe1uI1V`OBmUpB%b)2(Wzw=-Wmn+%c$EXKaI91Tw3&f=d7{*~s7NZ8R<|oaJ)jH{Xr7@PjE8w3Z3J_!qoJ^FGWXy*L#m3PiB1 zheuz3Prq={agMm@mJOQJ6i|;Asio2Y)ON{{yQy$RK;EZ5@$qA$N0`$xY~L%6bF=$0 zgkM~6sehc&-|x1DZ5`)=n2G%FdN97Sq}R$u^|>AX+8zHm4bI zqd;*&na=G%cq?ci3JPRY?GKKlrVEW+20w0PfGVmI6i~T4DzYyy$0fAja?jgWZ{l@L z+!zoN3uqY!jj%Q{AAoPeA>j6-nf~CIGje5fk~ScD2jMdhA*pcxe|XCOc$(5!Xg^oc zolib8!15BH8}9&;@{AIiTKQN9*Oe0}x=JYD*+k_`VUwHbDT-c>a&2nu05c!V;9!Cs z^PXh8@d$`(eXi(Y%{n2Ajp@+Y*Do-J=VAFGFeja=0op-(^VoEFQI%vu2umgi2(Z2= z@jg#Q)rlT&(1aF%c5i{5|L3dx{a%^@?Kw#6Mz?m5MK(%kdLTeA`YZuiOKT7W=PEJNkL^L@K`t;>4KyLJbMiU*$8A3HY2pwlJpq;HIRpDrKThR^( zeibc2VcwAE7!&MYCK^#cK$5C~IW;T;TVl_{`u@jA0=Nrih^X*<$kYRr5P_V|h`NK1 z=~lXTq=_E8tAVzka^~0leGm?PXu3TYkkA3?x{PK0gpdGY|K&%ARf@#e1gWd8mh>HD z-C-aH#))Mu9NP&wr{)a~4=u3XmV1U-OoqnK1Fp*FdkX3?uv$*QI*uVN|Fg3Ma6%Bdnq+a zibNp$GuJW!U5XrmKD6RRi|3f(h9O+*k|^vlP>#vw_{cxStf+%j!b{Q+cc-0sF9Wy| zo>*Q>WIxbXd<>@L>w)0^KPx64`X&$hQr>O8;k>~OtQ9XJ@wkw56HMzswqZp-F&f;W zN4&oIk_6OqxlX!epCR;y!2t|;-H&742|(ATmk*&kw$z`lR4MdV#%d2a;XrX)KLM!L zjrDf>AoQ_EcQlTsUtlWXV^VEEwFSs9)PM=HF@JRId;Zlq{pZ+e)J0HbqwLGUdr8uv z+WJ@$fUN~GC7|*0fO78A`PSl}3qz-2@1R?{Z71F4djU5?V{u#s0TTP3JU9#P$1qZ9 zV(H-_$7cZxEgk9rOe ziU1Z+Cjw;&o&hUT^oC^oJhnWB2BF`HwO()HKc}H=WpIbK_a;8AeAcRGMObed=Kb~) z_|S%)_`|4L$Dp?6otX};USsop%!M2a-SqT;p!(lov!=7};;h^U8aDQ_&vk8GM37r^ zL^-ypb3=A|v+P-mp zD8I6`f^cu#$-|VHMGdVeL{-^i$(8zpNhvWKP^zL76a(N1in2mY;sUi6O4 zJN#MsF#{9)lYZ5~PD4}U(N?zDJr$H9-R56<0Ml;w>h_CYyd_k_v;)*00$a2L>C5!gRje%Ov#{2?kBPnpCs+jGToV zld7K%0I8QkrjqG5u=Iwc=sY0GVSx=Oq5C-1n}~V}4ht1Nqu^TYn-q`-4Sn@|_6=$i zU{4i&kQC8IW`{~=^+RwNn;*79;cnT<@QdA$v3MY@zs*b#!w)bT+X2n779dWhR6-cS zpgpDlb^x%)2V-pKN?Q^DLQIuX^2*MGI_83&HH|a<{_2dYH9ufKdfo&z%pwuh1-|~! zCu57Ry7suQ+h>0mN3&>%=Ub3~8~Z4suj74xs1mv-59UHHgVUnBW={DuO@AJ@zmEVn z7q$BH12EXfO!g}!eZ5pS+%qNxG&|4-bY31CN<`qHrvgKT8X(uffHB4MACD&(D2#aMgYFF}R3n0HQ~q zBs;}66Af<<4#4l=9UrWw>6Ufph^ksa8djEM#zS4vO%1 zi@0jupMtUj+i~9DDHdA~ytpek-hJZaT-Tk`nuOJh$BIBJC1KoqWoL0bH{FybZl(MD za?5@J)Ir1$J*0E^_a4W7?m7A07e)G!3^Z%O=1m}-A;!o)$e%AU19dAmN}7m>j{#|Q zDA?{jK(lu+=xTf1U-hOEniV1-z!W;6CHx0hCPCb_AJ$p-3+}v-l{St3JmMrlRD;j= zgcQOSeY*3!cjT&|fV4oC5-m>1^x!=qKc`U>r3c#I-0hpI4~E#_AkT`HTKK*>E=_7b z4c&|N0L4dNS7}n7oz*6S}VzM`F+YjVlu;?wSr~6m6B7U!6KX{RH=1p3-&Gry8mS zZc18v=Stp=OWas!atx_rJsf(_w99(HnTd-r0Xztk+NwtFP+p@^qp8`vOMW3~b5%>X zH1*VZrHKsh#i_Fgk8?H8-P>`g!a}Xt)YjC=^1`dPYd%8ht8BO?n7=m_n&d-plO6P1 zi(Dm(C|00He9FH~kZd+&I|J}03e47vyLUT<)}L%tXfK8QDE@h!?`FEsMnzlpOz|Uh zVQvgS^iT(ksE8$GT6ha6pP(bJXOf6b`@NHTL@x56MM$_!?&DR>osuSz0Mw*l7(_8( zE#3xIX({w%r)Mz<4amzw^fgzAWy>6=j&@4q!-x0va( zsKUCf7_OjY$s;n|p!1VodKjH^4rhf<<_g=Y^+TMJZUy>zNFDC&lWm5M)?72$pUtD9 z!iTODSn}kjDvPG+36DH&a3=IJOr<}4f8%h!2Q0A3 zhw0HG?e2s}nZ}@Mc}B=^rw0{?K&{W2leAhJb2H_*Epf7CO*i7rr#$H~h-^mNJQu5v z6Q7N>92%?iT*Ur-x@D;09r|R(ZG^^q&@Zsp-`!;=c&zM)so#oft?N5~FOA^7J#~b& zcUjp1`^=;IDmZr4muxB>Fezs&6gc=2q5rGCOyOtwFDw0k~5_|Wh^X)1qj zt1CjLKf<_Mr6hQII@#a!w?n}~@8H~Z_0TV=AbyMM-RdX}Rw10)Q{Q;?{M_1dCMOoc zDslN?=#P@0^aW7C`k81CcYDps>89hYei%)L}ox-J&%^g`N(E99Gb_GOg=UB%iCj>R6ETcwa=J?;|fLO~p6oV>0tlvF05aQm++J`v4;w=Q&BkP-uV^;)>n%qGQr4;AXtyewmVo!=QH=^9oDYDx6k)BIuKa39xG(gf#PeZ|S3R;iOVb@v;i z+^m-Zt+j9L1XZZ3UzT!2r8J~M`&u+6Avfc#+$l9&o>nO--+r7*OrBPdfBJd^%}uS= z^~{wsWYPM@6BYKc*tZI3HX{aBX3R=_arEb{w;fmIe*QN5a6(vB_v^$q2Uvs_^0Geb zsU+*IXBt7DORRR2%b6;POP|AXVoF3#khA;Oou)HaPmKwM45j>>s{M?=fwN*tGVYjU zyDVzjGv=(tJOE{?#(ec!5_MyC`>sg2SU$-m9QOqzwDp8KXx>u3F>_aVeHZhNFC`4a zHQ-d3I>-B?HcVim9!k5q78h{Y)a~H+=7n)|pLjD&x9)yR-x2#_cKS>;(30pn zfwweZ?^1onhwVL;ySVX4_OOc><>V`r-k;$MnSjm#1RqGxb2^x-Q&(=J=!Yb$;xnEHn5*iBeYnj3Jy0xIaHLj|Fiy#-e%@{_|C>2%gG<}M2}sMM`+t~&TU4f5#o98@}x?ATCuv~pm6 zYG~EjgPXa`-w>ky-Qn3+j%QT@Au)b~S9b!U85UaBpzEt4u3Er_XQytOoW7x~A$eIw z%c+_k8Z8)lsHYwB9t8yZCoc~jrUD?Ln$|y}+b=4%7SpLFUXZ)gj=ht+JC3TCAJ3%N zI@(0~X+DwFxcXJ4gi*ud;nF9rFaSWKXDYm_AMnJ*>gKAD*Iz&jMLRNmGdd~(lcVNF zN<=|T2tGj=LznN8A4z8>h>(e8<+^3xlM`=!C%$rCPf$-VyJU^`FY2Dlv5LC&oh0^d z?CL8gVe+{f5)X2Cr)jl&NGDD@7++(L2BaRgOyA7`HDIq#FY<8?>wb3Rdq8I#(Hxh> z*;Y@359s!d?&rh;85F}9|NZL%CID_B;{kym4!W~cNCf(uS5c-&lHZfmSI2U8`{3}T zm&d^*-M*np!6vO-k_RxlPs7I z$Ehg}(7I=tR<}&OUzkpY0h%&14bQ>h&$GZkzS3mG5;H$>SgM|@dsSSWx~U})s`-;; zEtDxhGC-%6HX8J^_#?|jHJYSR+)TVXt?v`5JU&g3ODEbGdzjZGApf%hdC>Zh!}#50 z+@>$RKGQq>muXFZ zO0BSAij#pW&gXCt@BWgT2#H!+zs~2b2aDAqIle;bS`FL+KXZQ_nVhI8HuY~{u(7Ev zWeB1^&wBVm1v(~FM|ZfdCmj4;dfi>|e%AztNwb`Z#>OvlrfpZqk0ue_gJ(}vK zQwbaKvH?F_+yxl5dNDxjXRWZ*KR2fyuX$Fu4)VbjQ1$tQ&JW%p&Vd?!lzjX66d;%f zlINkQwwBKwpE+uDeCU@YXHHEe8jjGQImr?6NDIN9bbvoq2c^=qqE|%MxI^K1zNteS z<1;VKqqS!?rZDl}Rv4FQ*7o-COhX)A*S>J%qJ(xaQp@5)-lTTmZ)rtK{%W%4Lp50K zm`fg0^WTX425J1NVu7SxyQZ`QxpHTKPd*vm-&jQKZ6iCU zNh!E0*-438Jc3Y{Pg3Co)<}sFt2lU3-JGNcL>bnhj}3?$NGcx#8nTx%zF<)bdHr=H zwlp`wX7agWp0oYamES^tH&1kXP+BE4*VPKV9kEmPi9?qYhwQQ8F}5==zPwhTlto7g zxtzbE?!mX8*`*lR!{Exgr=uJU6kYIH7FXCC#~3`!{q zb-Nd&doSpf)195tnKvf8&RNv14@HrV9Ewu6mY(|Ua~fc(`L8=g9Wj1Wp}Y^{yw+h} z^9Kt$Vb!e;CL?DPxzt_`zSRlIyIz_rwR36~Ti@xESBc|61GvEn{Ec2YPX3LcdWm+d++I}~Y9zZmZW~}f!;sl201ClQBg}(&(>W`}77Kt7zJ@_r@V_{K)^>PL28sLd-of(; zX8 zJM_MI&YnlIq2MO3b2)K$(0T^L-;qN?)VVaXkpdxXL}>AI%3aTKG~pn~xZ{BB71TZ| zj9b!$eBZF~jiwdCx?;aO_mJ0kVKGg_A6Gc?E#0xc)5+D<_FDv&lQ13%^a6-tncERAQGrpn@lYqIOJM6e2nU$jvlE2y!C%gH0TV%{>K9?fpu{sF)cf*FvG=K*YyJ|{f(q9ddSZzWRFXMMx7ZS_lSSOskG zYJ|p!(s%6?&ADNe#Lep2VN|LA79$YM%_iA3=eO)n-a-hv3`9Nr^4JgrX1w-cpO1OL z3_+s7so2pWBr3*=UeugLN&E`!)kjd{-e`&#Py=@1+Fv|sFq&+jO_iz$63o_<%PSS z2v?pOxWv3Ni50u&$EI*Dj{VoA4 zN?)*@=LwKLb`JpVu$mt?h>ni0JrK0;S>-x1emd>fpt7z1{c;jG;VT>dydLE7*Jc%# z@Gy?Z85?srDR8Y}>jBk;I)!l=L(197OFYkt^=xgu8`8~U&~&ieFqq*z@YXqr{q8mB zbYY=dW@6g9Z-|4#D{mvJ4v8mrop$!R61M};TLwb3_6N35UEH?-it1)nZY2{N zG2q=n(@?dpokTE%^2XXL=NWLdqiz{5pjfxQ>~fjgr6YLU#<5?YA3KyaRDC@@^mN1V zzup+?mvvRPPH)$Wd9?kpkI6B9{Z`mYpCcr>@^V1=4v-<-DKA^y1R(+`XZBxdIStgV z_ZKMR-iv&c3G&~Ys=o7Peomu6v1}b$Dq4rNdr~W}l`!{l1TE*3cwgFc4Rr9!;Ud6W z3*Znsd^L)dLQ+ZdicK>fc>UbxQa&*!V-ul6a!I)UUgbqH-86a-5i=Gq)UpEJG);Yn zSN-HAXgube3>`V~I&Z@H@o3jMv6Eh*IVw)p+XyRzT#%;sZ0t=e)VVF?qB(tk?fU%F zGkZC&o7Qfv`F}loQC?~pc2J)JUff{xP!ZYrzP8|Gw&kKCP&-@vT`$Jtgw ztJR{K2bZ|oz8c%{V?FO6Qi!_`GnL9%aiG4G&+b+1nCZ8qDjDJMs_A!U!+p+%lgb|u z%YXI8Ej=!>VkbYpyU=+#t&=aU6ME-!Rd)ZS5mWe`OpyUY=F)4ovCGZie)5LTSlbJX z9r;PB-os=JpM|-o60^%SG+dS5!cP{~Q9_p!I~}dlzhr&Fe$?gliJd?G-SMKpg4+0S zWhEUWn2d43`OZE{q{L!b=k7I~poXEOVVHVWQN{{Da{opY$Pp;?zo#FmEzFr@wXiLZ zX0v;jgepDrV@-J6ZZJpAt8qiTKI=mlC9HuO-p2dTC4k9_%f2Yb^Rv7Z{6Un~(ardg zn@p4lr&fc^U;CPQ!4QOJ7-^!+?$PY;o13-$wajIcts{bbqCfkm-?GYi2)lQ$%ahT{ zp1j6W1V}b_;PyUakeP9K zwtiNQaL<>}*>lnppVuo7Kaa&dg!vtkF%C-x`!9sb5mAmb{X<`N z#@jK!0HrpiUxTZEb{d2!1j z7B!c)=TK`jcaQeE-}*Tx0;q>SUbDuMmCUdlF+IFxYZFJ+Jx}cyYU#_mh6rYdVOv+W z1oxW-Ka}}~$bULG46XBi$gQCr>ol8nWU2(7fe*(RTdfpI`nQ2!!SiMe{Pi`~4KB&<75B9VGI(%^xkF zcH?Ke4#D-EQ(>9WKVkdD5>uhS2L~Oiro?Oul_^?ha%9aYw^0?f{=;rYSlP_x~3O_BCzr7&#KC238CD;!$G^?$QKOt4kXZFogWHFb# zW!lVw>Kq|bcwJu z5q<2nQ-B6qo^LTi0*3u5id{~`Ov@6diyyY=|G|Bz4DP<}_IpC09ld4|%ou31gV14d z-FvaO6QA|WF2{TqU!5EvrrkhP3ck)I9PjRnnjAq`iINj)-yjid<06^oSE#+t5~; z_`9E#4f;;>#u=-3a~vT9JK&H}P3rXWTOVp2I6l4W*IlP;3a;}JO@pByG@01WRJA63 zx!aOKwpxK)%bJ9Dlsl#4v9$%Gj)0mvWjuXH&wfr8j3%^4I+KIof_4tm)ua z{`lOR_fFN=j^+j^^49N@v^Dk1i>Ct|vz=DDLd~YfKSysh=2&D=G0RY2aT))G+Ub$0 zBi)0#z{7d?2{TYL4+)UV&}xo?)C^k5?=v_hF6w1}4s}>SQ$lSAu}_1)o{A+}9jveY z%wM)sdN_AwA^!29i#Ds2`F@5vPC4||)MpGvV10&jVa?$XwObZU3?YY*(E?mb$k5wd zx_UWYyEGZ!jnn12*vi(Y!WM+LJ`SGtVi%fOj*VL5IpnX)1*Oug_xGCH@w$?C;v-a@ zSRLY#p^!l*0mZQc^g2cYr;j)=CGwlFh$0wh-D)$IYRgZZ+sl!! z!bpUW)*H4!h!s^HXN+O9Nz&K9 zo*cDOz}`j}KJ>qOYb;aq!!5Dd45e@jkk|Jzk{yA+hO3X&=7&@Rt0+4RlPEH+8J%y8 zl?%g+qTQRxkDgNBIkD7APf~3fSSG~!OB`X>`{f!1~?ok)eC@abWn5# z%2ILyPfldgC{yC#>|9i}MgN~+4S-@4MhkgGjMyi)ynd4@n8|i%|A+at-F@w%0qOa3 zXcePuYRn6^SIkG4pR<<4sW25Iy%V~fg27JFtNCS5qC%%g_D7L<-P`$VYR)+kRfyj# zYu(JbVa%JR0qZFu{0wB3$@f8YV(~S(Du2#NcSDq|2J5VT=U8|>d0)E6QXYTUdQt82 z`SsQbUEr?|Q$A}BU1=1u>6)4@#t1a0xZb(P6XTh{JHa7;b-lg8lUXy5BsU7HyqG8P zZNYAFpnRtC)7)~I;%cUzjeFT|w%3N#h0veP8QWzw=0~_y163y1ws&D=HCK4X(0UVWK(%c@zWO{;gd;UBxwDH zN}9iI+1ulOT$Vd?>ns2m&rwRo^vPJD-aP(biaB<7@1}s&k?^Lyk(t160_uJnblHi& zwd}vVoon7lcqq`%I#`B8{2oO5qD&D=OUsZ307^23Vax(RcnZn`-Nj zTy6X5KS{J*1`*dKb$!iWtCC(_9}z7xsu9B}8?L!!Opf`w^U}JGd|h1?xD;6HnY7$F zMlw7oNtG%~xeDioZ785KotcoUH+E`##ww*<*>OH+qkF-i?sTv@)*})VFn=s%bD3Zj z4(G!uAggqPf+*4mO1y{#>Qp&!B~3E~f~^r1iCs<5tL}R^9)&z;(Z^<-lAFIbYeKM^ z?O+R-b8+Y)#Z;t7jp$z?kdIF-$qcXpG?2S^WE3k}s6mO1E?q3bP% z(@S9@T$hox%fAAa-}Q_ySgMtMAN~~AYg)8)g~qk*8YAV)Kq`uc97nl>3amBtSY9Cz zs<+Nu^fURh`Lz|QL(;fP{| z&N-aBos9Wwl(p$4VW1?+4tzd}j=2ru+TK+?Km)U_gm;XxB3`?-xVhVpvVMl}(YZbm zXan|r=*J}2&TRvz8NkSc@ct5|BgkUrT;>O#C%T3`>Z!8&dsInKpusPo`DiELP)=sy z&)vTUPmNY`l`Lj?fPZg}jd!o;(?P66iMl?{eYg|$xsbc4#B?E3N|wruK81ZvL$-Fu z)u~}uI_)MWyy-=KY^Sq>=`Z=&3f9!c7p$#LX~x0d$;fw=QESKC%HhI*) z>`K+i^r;GrDXf)d{!GR!V*U`U|LkaVqvJXbuJ4Lj-S#KoxIQ`zl;`!*v z4b12U@4W!e#&N#|QcGPa=VYM!&nZ;f&-nuj(JdRn`snqTx!R(%3J^bbrDkG0Xp%t} zW8wE@aK@Ap89X1^U&t3*;q2IQEiC0kxsqcyJ9O^0bYzNDwd71{Gndpzp*e#B0Rhe) z)V7~zMI5Z~9cKmduD4Giq@+faPXh)umpX4%1h<8QMGksnh%BceSjfU}ky`}WVoAH# zV=gjkUh^q%)Op~X`g`gAwO)^m5Hbw-2Lvo5hmd#v{a5Uac-+d{-{|KCHpCDyVu}Q@UdSi(n zNqo8(#p^CbAvPL|CQ(E+cT>%V5(oX%SBdT2Bx@N?BquUYCyD#96tHEc+B;(!QxfRln2;(IaH1T2& zpY=hcg1ECxum&hrOEdgZ%3q^Of*v2o$HSyf_n;dKPfCw)T;b?O{~1Nc=>%WbXKF@+ z^JS|n;E%7^S^WNj#b-^%89zf9XgK6(0G0A_qp?{D1unxHR zVQjei1k-4(YT=k>-6^8gi+-!AHTab|`0M_0`NmTjRSd*hCNAg}b)aF~xH({}YG`k- zRDFAXyUo@}o-g#py8c`V!gUR!@zzx8?QNQibv8aFxsMAFQK~4N#bkxR(+TZmAYyV(+2Y%Ok=il6INOwPFV`nHauPU(j^NjMPsFD5W$Ez`PW*I6gA| zu_xehn^K^$kHav&8JIt+f}H-=6N%8+y|zf*P#+U&Xu6lVlY zHcDT3-NUozbpwkCDg1(VAs|cWisWI`KA$UqF@Z8e2~HJondG&TxPYH2sQ#OtxY(Vi zpfA@V{an5jSYa0}h(R$NXjV(X*rX_>2YBTCxOD6zNTiA=KBlM2{qZqLFhQ+CESP!lNQUy;l2bCf6uXxS(Ro(i>>;66JT~7yy@B{LLtUP2L@k|xeAOXtsR*KQOM9-R% zN32CTBmF3wIh>v71C>8qlL79VtB2)#FN&ISg0^=z^-2fT0}htNpQ`>ID*bR0rgZ|J z6hQgZ5L`*>EoQpfUt5O2Rex!p@@S$wecAvicUDpEdbtw&8?{Motrd;H*%IP`%Mk*c%Jvo{ok``+2 zDdJ@nwD_fDRPEe2!A)Z1%Ph$GVLHYf3wa7nKMUiPvv9px*;@tw-|;>qpO=?HpxoCb z;-G=PCvgxSoXuE|lIs@LB5=V*poS2-{pWBfu<2arx)dE56(6Fw*CT+7AL<)1WrlSL zuU?!azY8qo{MtgLae-L4kok&sGX$$nO`y6gER3w4LAzvPI>YsexM4)&E2z$VK#~m0 zS&0z`?LYRWxSXD6@<4p>EU3+z3FbaU1&cwxDK@M-QrTgjuNCP!7qd3cLyNvWVTWVl zb$f47uE3y#)=ChOzw;rG7tVB~z|9h%dXF!`FarqfCw*W8upOxO$XUE3Qq$mw6(Ffw zF~R&LMudCNJqNjm_8)#tPoQlQH*O|!d%7d7ba9P*Cm%og-IN0jrq4f8BDyS)_kN-> zVq*W<1G}Xz!5I#gQpSbK)Gm`MaTRft&0oaj)boK`@ID^X4Wy>b5_l{T`C z;xtbVl;EbL$`_F@Ix_!})iUB=VbinQ2#~#0H)$Wvx$37dk#_=VC|qQugCNOTTp|du zas#`6h#C4wuq-7-DhJ=oZP~^jj@g|b|8q+pds$oRz8<6iAkqrpT4Q-Pd%)Mcs+d0} z6xr?!w!)5}PX+Ejfq_QcqYmq$(!t3Xeq_}z*fXe1oKHx#{Pb#dMsPd{HlKU+(0+E2 zD6mT$|25Xynl^dFjtKt!W!6!JBJh|#^sTMk;g*~9XR~Oig=b9dp2eoKF>8W{QswyJ z>@@G0A9ZwsCoMP5hzjyIOYsXMr>?>AIaeDc^Bjd! zm6A|S&w(4a#VsiGHu$E;5$p3V!Pm^WCwtu%#Q?0iPqGtQ1GerG^)Vmn>Gmw54KTc>LWKjyKP;E~R6t znPG;kKZxQmbUiDE1xD>9mAYL(9ikgSN5=?5uF z1otk4h8A^m=O8XUR0f9)sa}lTak6eP0t}?P+4Z}h`l-1fA-y1>y`(YFHt|UL5vMPd z5qJ1-_U=ei7_{hUtMvQhri6b^Mh@Hs%K*@=`dIRF@Mxhp4*v|wW{Kmp!^PR-jFz3V z?`MH(X{)~=vRe?@f%_9#xnhKpe*FdX)?F1l+ciUZ*M+ZGJRw_V1fGShy=oK=1*nix z7ZRW{v0XB(U0X%W<~h-_=KKde!jg zm4~`XpU+v($%RU*C}c;e(+l9zvL5gwvXz}H5Us;`62!}%E6=>>QF^}^WdZPl%$|$B zf@gHF1rc2MYOt*CS9`KM>>S0DQPNK1Vg*M15No82wGa-#P&cvF@7B&WD{I%%ssrL; zzaD0gcH5i%rnUZz{j7P5m^?{+WIrnxF*Mgdg3_|Je9BYd9LXl2?e0%*dD;giDQwrHTRfK@;^`9DW$~_X0Bi<1zUb*x2#tsQ%27V`((fZnMtB z^jk!~%W7g=WfxH}P!;Jo)=Q?>Rl;^M23mTQwv*K_DE*%XUa{-Xm z8Gr00I5G>^-<7#l>1s(0-s2#+m^0MJf-bjR@b_L?p9cb@S@$>ZCwePQ0k0nHX3Ys0 zK|_5*iM^KJ*uy?CU~#}Uce1`+$@So%DP&ma4$&%lbYpI5uB}OaaBW~(xO@H?b!#Vo zTEVz

    TQ}gzr*E{Jp0ScI+qCoi?>|ee?Yg#z%`|dbl^j71j9l=we+gRI6L~`xHMP z`mk|R_V=7Zea-Z_dv|tkhR?ha?Adc4$)yCZH!T$vEabjE69CBmf8VM5&GuWEnxHcA zNjy8$%Y5N2l^Z!sjGmT}hTkoF*isvC>gxb5UMQq!mGN!v{_o#RY1+`DMsBTbh6Vp$ zOjY*X9|*Y6fIoJ~$Q|dPVQzh5rpo^#>&?TV4%_!(d&pjdkR`;3sF4)O8WLh=j2UZ| zGGi^uPC_YV-?xfnHp^rf5(?RcW^55PWC>*}g!k6-{l35V_q@m9uX5CUK6BsKa$e_k zo?DxDeuVF>1g$OSA)n3g>TW$*ZPFDx>Dkk{^Dz~*NHDwQxySQmT5#3D!zXNehfI<- zsYcf1<%Deg?Xc>czmxm6Ad>!L>WXvSZn}-+**(y53N4s+_Zk!uixw|`^Km28n zB|5O$;%LOH@^B_*uy@I=c?}| zZ|t7!8~M^XJv_+RS&01d*vIqba$C(0{&`;~S}e=8q2QpueHTAP*7WKA&|gMJzFcbF z)BXO}I|6?DM&W+H55SBSkCWBr1|AJ>bZWdqBZi*5lPVQ*qel#NUc%BL^}yRt;rDCH z<;A)UufFx6t?!^j`#asf==5ZKkH+@cKAMQQsBa(3wa{%c+v8+$!SMO`(O$0aoPp8Udk~9@$5kwes zM8~=xCltb!yq~iT=7rC&Pi)rOlJjj3wh~Jz%-m)m4TN#^*SmM$9nfS-*v9XRw@n1d^e=no zcRl~4KKW~?R>+{7k7W6M+eD~>l#qQd^3E}*o`X+$P42Rfpu-P6b?7@Ac6Haf0Hem$ zccSajPrYTr_RnRuEXhq%$G4THHtWbupji~lx(^VXHKO&Sp#QtN~9 zP_AFif~}G-Zsj9AlPr#A6&icGc!dNzJgAq83KWWXXXz1Y!17$Sixl?gnA-`dx4R0f z9Gh0gZu+)x_w66we~Xb{CbFm&Ub$mvqL{JK6ceI}GPWK4^B^o!?fk((4OLovZS#w} zLHNheg|6LiQSF55n#=~X!jz*Q<0GSg$E(J3D3oOKU$y*w2>e6I%QP{`{FbotfcHIh zOX;7~E(;4g&uebUf2L-4rOT)zB}L0mw|?l4r#A|jXgy@I&yx6d)IsO>VQb&F=UZTd zgiV{sxcb}P(q~R+ZVhN{K8qcBW@&CvxbY*19Ycp+Iy4)DxOJ7pC$6B~@CCJeByaR~ z;{4x{`0MJ;{$lHA`%MZR%B4?@SF8)^h3=APz7jqbzYP63ULYbl8l(GK;l};Xy{VX( z%I04#R5_=jn!Ud9n7i#cF!jIdzgPL|j;g{a!X+)mrQYhH~t#SyR^YsQ#ryF~?N(y?LWk8hD=cT3c9-yaDoZoWsJ0CPJp-2E}4= zF;D&leTTJTiQAZXoj;10%72NJ#NThu4HvDN7`u3Tn--0#6+IQ-1?0sn21$uFz3Ydr zR)0H>Ym0RBXYaP>@qqS878~e#(e>G&66#c`r(fNXc$UXV8`zK6G`aDurp?UA1(zV1 z!e;c@OwiLj+dh!}i_dPzVZoaugX{blK@|N4{2jy*KTfxXZcra@#r zRfvsu^xfgv4E&sgseqST7F+(7^Whj?m^iA}y*2Irn?EPXx1bW?S}n5{c^X?!+CIMv zwQC_@Gz;?#@2uw{dwjqQAuM&fZ{#-t`6cSj`uYv#^LEwec!!L1<{lW8J7M?awwxaq zU8tZ1_Ozw!MISR(Igd)r+FE$``{|CK3sY|3+mUh8oqoaF@o#xb0`EDceKutD<;b}>pI?K1^$jhAlHVU= zc7ER9nW&a>?ooU{S1eS~+DTDO9fvx@_4q99#s4^n0?r` zI%NH)F57iuZWr27^O66}?hmN}-amI8$9bd9_80cvjr+v=pL!Gmg}7syDGcN7$1{r~ z?S#cA><(938+xb1RjqDH1`v<7rqh4v5K}|PJU0RzVyz(!LI>@Mr@SQ(PZF*m%ON&?Mw}(y~|X_(*_oG_Aycfa>$P%p=TXy7v0!@caNIqxE`5 z>+f%Q7*VlbxLi>%7>#UA5)7c|f^pY747snGkj=1!+Dr-0JZdUCg7>7?aV7hN$g z*776LjjCb4zkf)~ex}{+H9hq3t=rUg`SO%(v!Yzd+Rj_nFT0EWFN=mdgIKlou|tUP zM;~7OnTJ@-?5yx(`FI}Y1{$1+(6JpPtj|_PLc6`IM)RcZAB~R2+n0Ddsj7rcJaViI zFa7oO&m1GWE7tc`x7R_Z>YqiF6I#!-grV@Y?jUy%J+n*hN1Dbev`HWhH;T`Vogo~b2mmI7w>zf(}nHsxZbCZ0WT_2Nw#0Bm<%XI;B z)hwY`wWC}0p{W_^EjP=?7s}D@E&eJoy>ZW;`t_mMQb4{VF^BiwDfFMtK#ukEFFw+B zqX#ZWJNahh={b-8G+R3I*k&lDoO`@O6FJs+cNhEe0TgdJbgUo}s^{pd&(9bc&&vAI zou_elt#j?{!M=+}ox8Qa9KyZrObF)J3j9X7?MA=UYqDD2tg<=sg8DYUrmq#63qQ8MsWZ8v_1NAN#6Lc9mKcCu zec7FEcSu^8-En%NqZeUhZ{+(nZsOei=F!MoPJM|D!1S=UEq=Lgigo?Ca_6Lb$adwMD+D_B^Xe2sFAiaS7pfAG6q0fg6_fwCe-1(6=g z%~rXN&G=knDA<2rXXw(tq6v!s^6cp=ByBuPb`I;1sm)q!?R#Z@BBBfMXQj}1&aV|< zkYt>OPMnC3mC^v0c%caD_(nPjA8dE1?QFip!4Vu;Dyk=81Sf+CZmTU~)Y+1s#QN%& z|Gp3%sZKrOJg14DnP6I|(e5X%Z+ll>nAlvrH?udhj5u)GBm76tSqwf7i4r5*7t9U> zVRAgG2evw7UeD)D?ENY%Ox-d2U2hKUsS6qWwGbIw!pwM%&olk_H?>S?E#%iuquPZ= zCG-$Z6JjN7TpSq#sbra)$1BR@<~!;_Pk6y|ZSL;QZ``sV>&J+k!bS8QfELPCZmuYn zJ)o=}s~)Vxqket5K6)iQpyszI@JGyfY7`;*$0ZoaQhu2WD+}H+tbKq@^o41>Nm*^qNm5ox!voCGz3ThNKmLlr z)Cdu))b1xy44P zA1hz<$sZZvAu z+AciL+zf3mPmt~glea`Xw@Mi!L8{!;wUO(*w}p5`kYx$LQLERKGD>;M%-U4Z-NOkrhm70_vpF@+=9%v6C8ckb2^u%;tg;t%mvRx zgR_B+KOFiSm;tTV!{P4{Kg{yOC0-_S@2wfag3x4YS7d3ZZ`69(nE-WqYVw6=$g@lk zu=!ZAY%0k?*`0b}ncRNtY`j+k$H8103&QsN&inE{wF~w32@@}RK$<^3<;%GF0NIgO zZFv?8@`Im6=okFUFBae`pp3duq$=aAFk)NgOwku z&wl{ZorgK=VXACoT3h``)$~uS_LT3{+9J2Lg#*uLuGi_|1DmQnZYbWYW;>MTBsC8|Qg&(AuxqJ&7QsN=i^>4kG$*=o6$~s19)=6)QL8Q>0KcU|^GhUqRE&8dK6E+#x%v&z#9s z#ox~8ZeoSoVFjPdFN@jg#~r?mNAFKQ^gMV;Ffx=4{`y@v^p&yTzm*x)nkz$~`|qzmMLqb%Y9?yr^8Am{zu%}A|XltP+>lh!&G_aJBe z^aRw7j(@cKV3sb`F-O*Yh+b~Wsh-sw^VGR@C&GnUgheF=V0DG9HS`xW0%vD;1jw1+ zvn=V23%FhN-7C?^A;ov@*K}k)-+9@aRQct4@*;B>nKW@*s_k`TethZVIAuX&;pIWA zG(%0GH8=jzaq*#ha9xN2^bGn#3bY2@Fkx8m_Kr;7dgOqZXDxEb`)XXMR_G2YY(4!Y zl0Q=p*~@Qup1ZqlW?b`BxaVKjI}X+1zxdY*uM9o3c^c*Py}p%RJ)pZVXbNzIOVfuf zErUHu7Gb@cEDJTC^xvZ}g~(4C?&L zXJez`J2WXRiGx2!&7Ce?vL7GPsj0#ESbnG;2NP|SClett^)R7Yl#qV?ylSFW2H*L^ z{KF!A$Qk}i>QSoBvNul~6zCr2p6W{HLqCoC<~QtR1#2n_w*$U2OC6AK^P5pb_k;=# z=-dP3bzp{+c#{u3{V=>UjamLW+noQQ!&}ct>xEz|^?4z;E5=w~05pN|<(XY*XU8k%^DOeLf2{BXxPe(-<QN=MA%+;=F%boJuIv0i#2SYQZsj{J$Ba4Y-fe-9D0eD$I17lf z{q1|IB>3yJO}E+$_{Ev{a2oqW>615MKhcItgu_{l$g&a7#n_yd zzqc(`e7~IAn3-!&Svo(zV^Mp&=sn>C^WvYnt@5~z+|llYfJ&|}w0-`kHZkJ6zFY9E zOOwEA^Lg4NnKGlzoox1n^Tu5^-*AUoF}g!ZU|$a}G@h*>60^!x_$MxOHhO1~K6ckv z?;GnM==icyWavU~&BSVg^06O{=wk3c-TY&}9lIGH(VYP&A%}b)vU{mrSWtdq=qttB z{i+P29W~M!R-V8*7Sy;?aCXrfEn zZt~*nmyHJ}7bJXp-?ndle3y#JSNyR-2){^LmizOTRb4eFl+|px`RSZ7LOo=MSfubq zYT>5fYxdbXrU6-pti4lB5zDgObsXfoQ@KyM4L)m*hDsdlU6PRM)2{E5-p9K)8%Qx5 z1qb+p341#w*`c=rsY;4`!4iL@pS}5g=r*1o((pecM4K}UTyAs;iB38+x}^J6^@w^6 zO}%ljtYVCM-`%JQI+JM*nJB=j^qXJ3xw) z%xCvlzw9t)!|lSrapFH%zBqjg4zw;#`2qIjm8JMsBW5p&29K1eFL_onI6gKo`=x>P zH~SuX)3GN%^BhwBWp-F#ndcPK@FVxdK z#;2Z@e%xD|aP|d>PSiK#`Ce$q-qPUryawjTovmJ)N#5wxF%R+DZKTbZ?%yY4E880i z>I>U2tDeJI)n9kNbUcSIDMW8tqK0<}W!_KOYK*%RUX6Br?g;jHqrA~^>R$fct-PUt zaE+sHI;`C;E^Mt)72ouQfvRa%q4X#7uu^ED%~7ku7--{9QxnchxWz5pMg5D-F>h{$ zC)A&vys$z))O*fOaPdw3)*p=@p2V;ysrru~ojT3#B&~ic*sD^Q{q9y_ud%Hd5&pYt zW_A%cmu4JVytCJhK}~oc*KGY#VmU~lxXCr&klFh|4-Oil<=in}z7?5bS99AJ|1%US zb~|X{FM0cV<`>Gh{PDV_hN|tqUxs4pE(i5){g^Vz`?~V?ii7N(8Qer)T~Ez&zfa3ZsF6mrO5i-pMM`QZ}ilp7{4v}KGD-|4uWBfLKNj_}V{hvVz<$5(`{9#2GOp23AMAw~WLzz#wfVEaJ$c}YJn#=G z%<<17w%_UIzKMXDoqZ_;z{b^8s^&2^1H~uP%RBetdBsuWaQ5D4x{O&ZLv%~Uj z#&N`bkkEBj3*e(~$sLh<_vUJ_lywL``{?URiZoOvY zUs(vl+TUel6F%(#6tmhft?!FRj);ogVMv-t)|0HTS4}vK+CsMr!_CKT0-%Yv!~T-i z2Pfi4*uZ&>fe#l~IP(OHzDp2j%Z@xx%s9C&sLiq#9X%%`8mr4#h(NDO5TMJ!v22Et zfsKDQR`O%k;a0DGonQNYWCx!Z^JSHf_wl)zsX)EZvwA9_m)R_$YIIz8Sgt<_4LP_) zaH8amIe!-sI<#=)aA=dy(_WkM4N~}*v&R+Aof$^0N~m1B*$_5!#Qeg61-r|6k$#_l zonDG798c&Iyv+H?T&GzgIdGCt=!EvNL;t;W(>LlL8SW;z&90#5C056zl!#$@w0KQi z09E4&JwHQvHIi_LvlhNlKakQiONvu>hD?lc2Y6@Sd+&fM{r&OEqEEKI{rLD9D&F5! zalq?+EoQvdyhr%^ygCp4nWTFRCt>W-mIU|qkCkmKIaIhwj&Ypn5CpM$>l`>9Q$MH8 zddy_g@W!yFyHp`^T`6HrHBNxC6@@%!S#`!hX@6MW0 z;dtGv|8NM`OTFmd`ZGMqQA9)16;tP1x2wa=VhprhF!&rIBZQEkJEUBD{GcY+r>8R1 zCE0*houP4yLjZQF@^?MrmgiL+@wr+gICAkwb_xA;-UnKzzC24U$yUrq z3yh-Jz9?rF3yL=hGiC8_KH}=(V21PDQR5i%K~ z`(eiQtwUITxYrAVI1ZF~h(qT#dL$Ys%YyM?U1k0{B1rS`vi?m8#jCLbIJ$#BQPRLZ z@RB`I!vF0V#_gMaCUa5O{V%f89ogs>Wkj>$lAp$t(pqK7>G)B=DoTll_>R_f!dcAq@#M?7C`3{HK6Io$t<9?S!q`WGaI2LViN^G%z<$ub}-5w|f{~)npb2lxr%} zc7+9asa4qY0}bsd81xZ|ef?(bgc0q|NX~mHq+uU6R)&|EtTR3fy`OY>sRjtS4 zxDBhb71r({k(8HD0vJU9wM-wX7jR5j8OC`}D)#`+*6ye7PLFeS%=7;*UG`!jG8U_o zNmhTIR+XN{=DZDCc=9)>^quN=*}5xC3^P&>PQtHD{C1i6J=U#PVgj9UgU=2e)U;K*}*=R|KrYY-Fay7u8U{gSKh z7d$X;LXL^F)7o)SH}(5EqqtiDtm$v6H+P3ie^^=5&jAZ-lBPaCZ`@-xqOHGt@w^vJ zWlr2lIBB{!OI+dq$5wlUd@4isnEbgfDtO&4JBJ9&`Z5Jk;8>S&Yh`W-zNtgce-QI4 z6O}GMpDK;ZSbHWw)E3$BQJeK|U#{$1p!CgEb?rm;)~Mc;Ka2`&5_ z#>@s^f=B=Hkw=hBS?i{~#GiKC^I>_NhdbBU(jwfoGC#2*@?p`_y$TiD$M6B{YkcaDuh z3Oe3|McD+v+Jf|8(j=R(V{q9T<&S-3+&>v!;$IpD8hOa+_gyf~B?C2w^}#03f-5iv zlFBaupx*wIO7pqnRs5q|@XP^Fg0l4WVP%P0Zif9S#eeA2zj5!st9?g(q5m@Esck2` zk0-H!iO5a(r6!B5wtT-%@AmkBH6{gni5l!y+Cpf)V z{Q$7HcBT(!Z(3M!o8E z_y&MYTL&79**-v+2mP%AY08PpE@0XpL5%RDh4t<{mKf=*5+>(1e1D8SVk2zT15NZ zR5Zrp^hxShBFmHD#iYMi^HevcH!eJ24apv>)G2*0Q{SVD?@=YY8(e8{*DEXW%`Q2{ zRRJFVMH802B4GdNeO5`w_7@pH5sr%oI6T2ct^YdFHTcUJE~J8R*JG~>eQ>+;qc-_x z$m#>*)dvc0z#-Y)@WqXe^mdroAcy>rsE&!}oD#Jykhlh!u1L?P!cT;orM;E!QW+A+ z->%StF(a{=reB#diBG%0s>K``X!rZXFlqvv{l7@k7oQ*(BSPC0YTGUZwp{Q& z?8)Q4Ga?bcV{*h7{@Ydxr4x$4( zHA?yZwFpr)CQ)U-cp7E(L&IM4!`V>|r>eD+%}TA$0$?1l>jzivF#uV`Yn7zt4zVQN zo!pA%K=JO2#WQ8C+vfd6lX8gPSCjV`m!P zA(@{(tmqh!xQL!Zuwdnwc=Z&y?xxBWR$2i&;AlMLUYGlBPoHDx{( zGeP(dpW#0ZBVbO)YvSMU${qcj(gVl_HgU}aFTfL5*zna7t`Q|man%G^HcydZ^=M-6 zcPyvsh=`Mc2Wg`$k*%ChtcMRU;xw||rlM@r#yrs!%SLQwMDQ*2d#_?xp=+K{98o@v z__mz@hXyEa}UUqf%+^LNHV00KCMihAB~rP zGxo-Dnu9=a%50|vNDb1A*3CEcf|}_QFH1`N8fyVUjf*98h+u0_q*UgRu)LVROw3H z4A!_Bp?QET%)r$pVMOd)M9{og-kFu0bnql0iA0v3ifht1qvd{N7SVpgMUbp-cHMdBXIZI$&|bIn5O?6PWZe?!Ug?0~+}81x0Tb z;gS2rHeH2|M^O{E}?%IWw#CiV-qmaQ^uxUB_8g^?^ymk%T-b&7{)XEhy za6-ndj^I|$;SQdgVHWnd1iL)U89aM+;QJsKkYUG>xKGICy5RNP9zA(MZZRkQ@}lBg z&oe#|u4ENN4d5@&Ikb2#@FRqijP7K${MJ8#+GhCc{M+p?0$R`~INE7ve2xE?pZPz? z$Ge{SioKt4gIqHYcan-Dobgtq_x3pz=YgPn`O)JL;P@Z(%wq*|}{ok9oKluQ;M~zNE@u4fYG4|=hn1W#w zKwC@CNq?q1$93Z*wQWItVd@lq&@_#Bf%;Nh7F0LVnZRGdpE93>d1!V*aUOB&tQ*`{ z3LO9NKK}Uget@wn_uGZ2E7(9kjSSR0G@LN4d@+}ot@xX10h$X1#j${wFYA0PBe?j9 zfzwDA8K}K7)V%`=W%FExf+lfq?Aj};t$N^q(fpkq2=Q4jD){RNbkZGz4zXC0xXhJ- zNFOJvnh#z1uN?mW?3}3e62>9|U8@n#g2Vc7Y$=WfV1X<67TCZ7-%EzN1M16qzYpCC zQe)`6aFZF8NaSYd-3@@=odnXgosB$@B;NH@D(ZO;v)X=Tun>AY;*EtJh~Cu*cI;Cl z?Cqyx0Sf***>1FKo)-9~SenY=N$EQL?F-0eqk<(|l=5@I@)oawN`7;vj%t+1NYwz| zYRRExpRX)S7Wuhva}}ay3Df(~kF0v7Iaup+IF6|Encb0qj%D3{WgVP=`wI0m`>%7R z-(9zB`x*C2WOdkQwRQ>i>x4K~ew@j%GQDKJq9A3#_j60PxND#`^RO91`5l}U&r+;d zVN1mc6tHxjdnViB(a^rXy0q*+g3G|u%CyXX9|rEL#6*kZ7Yv01Row-9 zp1cpNyxXSTrFXAf?|PO?aP-2NA&t8-Me)Es6bqxd6SdO_z8Qkb3OSpMa1- z`_>_A)aP%MkmK0(%b&j{S8TYYP5(MU4b`qlPlo7yEKf5PI}rR17o|tSozjYGQh9#q zgRaU+AgT}i5Y}CF!CDkTv{p7HC-g{84Dz5MWB#N9VlM#sb+RvEX_xR*Aw~A{raVyE zPCogvGGEKVZ89NwycMD;`j7d1&I2Do^|1V}5;wDluu(4M7_QrQp^jB3M!$QM%00l2 zwU`y8v+|_i|1<&J5vej)kLe2FHo%Q%L1JIGL;I3a@SWv`O3siB{N_zM=tI9oFVyFS z3AoLmxZ}fSimp7%V%$SpoK{p(Wz3Pd3A#d*){{YalM5V}cU!5}nkMhDPwv}GKDt&{ z>I&xB$_?B2HN6L9$OcVrR<@WY?+OvCdIH)dMF zcXe-*3UgAXJK(I3&5bgIJn%(}d zB{8u6*8x_gUIMRU|?SXnA(Rg-1DVVMUmxc+=@Y1h$v9y1- zfywxgQE+AZVZb*c>ENY##HtO@gLIlCr`rfSza-9H?M&UWAb;>z&vfs zZ9h)b`DyjVJa$e8S6H;qb@1oW#P>WX5J)sW{8#ifhc0B)^xAJ{yt0V5YpM-0C5vZbu_XzuBnnojPc*2ALD;vzy4r6K-*)z|J0=p+SU!W zEa8;6=^RpBl1U-z_er{j-^n2YchReRn8{hfM{V#9Zo}Ct(C@_=M*{ZOt4egDS!h%= z8Kl`GE3|<1uU)iKQL$g1>}UOaRz^ZlI({eXFey-Zev&#)S(@KhBhe@R6t*=zF6i06 zicpRsE<42YUyD~l-Cld6&!9_6_;+gM2{#;t`}F~H0(0fSAn#-sY)pX}Jg2LPXZB35 zva9wFfME*U^`61Lj( z6MjW0YVEMgt?By(@~u~}EL?Etq`9QJg@IUX@i*2~JBloro#CbvN{J(Wlu{L6c>4JU z&5GN2)LPrODM}G6IR(G?%y~g>s&mk^2{?aTzMqHB8Qvx|Di?9%?io16VAhW1ml%*_ z)>l^d7u3AS`}k{X01UzYw~KM}z1nn7vNI@2JF8$eq|Yh%UR=}#LdO{#F9-vC?>H#p zClQh`=5wwXA@HGDht|~p?=yf0Bh|=7R?PBOm`kF77x)18iJwFCcr+jnXPRKQ4rEx% zBPN<)8R4|!%iVtte3npEuW(Fe+U{UDO|uqup2k@VTlsUfH{)9$isshzs)LUg zei8V=oiukLov@UIccoVe_aRR!vSHJwuXNnP1WZqgenXs=U@+3TCZ-iYBXEmS`OTkzgq=gM zA^o2o;U5*nC@Zkqa}@V64)!cjAQ~-~6WdCkrNH_Z@vdxGXpyqBTL&!TbkDUo9`s2; zZKGivf>hQ7XJz2(m5Wx4*;=^QWS$8Wdz4^xJR?*O=%t>KHkXQeA_v+Q;0T3mtG#gR zS^-o({`#!qLv;T_!e=ofsYI0{9)MI(^k6|~oZ+?2td3!Eg~$!L9oL_d-;9H?HxVwu zPH1nq%;C75shu&H>F-sH?^T-tvC;VXDGubn>qcl2D4 zww0*L`bS^G*cs1wUnZXfRh(uBub3qXFrlsjOS}MQOk>_zKY$PyC;nGrNYuplQ1f6i z>v(-}KnTZ{+=53KFl7sqVTQnuFPaU61bu2})vUWIkNXTraH#ypCHsz6O>1oTu}~Z% zr<7$+_ym%A?TswicvNQ;p;6PtKiu56iZ^9_rRn5)tvtEI%)}nGH zcu4MDb=$gkS_Ya&)264EJ&s8Bt2z%ExhwLnENJEgCLM91J5`kXR*Vt%j6a>N_Ou>( zRCP(UoOGWEbRF`fp!{^?#bZ_*~$~1yRPPL@iq<0j_q;Xzg%a{N2LL@J`jzk^XN(+H}&->3-kG~z(s!HCM z>k2&RyIXhlDLN4f8BiAcx}<=tvCvrH_l3VOrj~mL9Uo~NesI-$eP+m>%CnFOiKeh z&<3`O-%g>vDWUq@nyNRGE&vYr1}+MzmyL9e4c4Pl!tLU0+2Mdc-skpeq>~Tb=l;Ui zGe_gK>~&Wo1umC`v>dQxtEPTEP@OXIN32GEh{sJa(ej)J8Y+&N>QOWVs4mu;fZ5eLeC zAGkC*$UP=s)>Ko%u=kG}d_30wGTM$1X-zP~ zZ(XOuPSj1;NdR9RO=p%~bX~c&Or#vk@9ucJxM)MCe!XJNts{r!leWiyvMA>~un5Z-~k>7!p=EPKU|cSOUM{qV2j65w}N@GMFOk2D~K zxFT3e;3ye>K@G#dtH0f9d_AqcIZ0HrWxTyBMZ6}LC*e}VSWgIQ+fcW1hQQ`#CSdkfZgz(+HZT6K3GvTV9clY zgxKJ>BITa+4txefnDr|kKtxH8g%U1HIwos!c*sw+3um&`t}{`_I;nr3$RT>g_glD= z@`zwN)}3%`ie@y@w00=zBvH92%8H^4V3BJaiDw~qDmp!QTf7!E7b_1XRzD#OZd&V9 zdS2J_y<{1EDU0`wN?Aiif00Vnd+EoiPY5E0A6@JWHS0fO{T&l?x#p{wQwb<({|=fV21HK(+fkxba`KEngaflne@RV`2wk=0K^16O|2N@!9% zVobN@x~~SC_GdtVmDPUu5cj5ES#1*EZ}95Il*$2t5`Or4JU{u78oyi$58+k0hfjlQ+ z<^hfaRDnp~?Q79$>NIDA75c(zANyE;;KN;Ptjt1jomA9xCtUgz%Cj1D)0k%yDG=aP z_%>#V$w@IY=URG=+8hln@48cw8R$@Ym=G_M}`LE?ylI0Pg#hZj{^ zbMu{Fi!n@*)$Ylw&Wn;xJvWvws`Pxw&BKmZtKJm%8?Iv`YdFgrpp(>FY7=?25567! zR_Ag0$OqCp+51xi&IC@m1;k8Tojh&&WpI&d-%56zM zgzf*mY7CgTtTuUN5CMnD5%lapkW~ij?by5Tv0KISra4VTy*1tlS8$;GxBzPfxLoN!Rp6yp+?i$vE?7XcYz|uq=VL7Bbr;?0t!yR6j+Jk zrkW)D#lF00IGB(&C0r(_^+MnsT(tIyzc@=Owvu)Rle2NGDtKsOE_J~o#*9?*d+)^> zbI2guP7NCrvUK`ECosH^vL|svQNdsg|8qL$lW#Hd=IL~=K-$tBw|?(E-}k9|rJIq( zm-_|ROz!QfIz=oBIF5tz@|+h9qDZOZb~dsP58e|r3j4jMw!?0wuC?d1liAtww%WJ$ zXxqOLR$y*5_kphTF>jdKA!mm8#EoYjnAF%MT$9j-OUJ;6IkD30+tY8S#jtRp0(2mP zT}TUSaTv~iW*S$bTvTT#eUOwMTlA@4fGRuE^15vE-ARhVnlclCRVyYTjX8KFN~O$+ z@4jRkRx-Ji_x&_-PVOEKIFEvK3YpwoLw;svr*^t(+b${j#lH1?$+tgmX(B|(&%A8~ zhgQCd-+amG?LhgbRU<@$U{C@$(Jw4A@-92fF0Xmpc^1Fa1Z4A)9`+ib)w{yvg0iHVwjRK`;<^+`c;&X zF%YjxziKCFCr>m(zD6sd_B(!u*Fe9ihgG?URg}V^4(Pei!-|A{SqT$78if$6x$ycI?+ydl);jNS@ z`5{>-3UT<$=F^mIpf}UqMl$LEDinIr!{YcvVBe{*A$A?UF@NHMTe?w=>E4Q|y5{U& z%Il~0fw?d(H(1M^7e~+VW9$}IUfzBg1%9GExv>-5QrB3vx~vs8rtq~{*7(#D|K1kO z9e!}ntQ!vC=9=`Xbh)7lj)NHhfK~!;MRcj4#B+8F^L0brJC!-GDQxmHq1qK^vA28RzTYq zgLHxi7083;O@dVAs8pDV*quzmUwC6GMY}gLihFPqAyd(IM~)17l{$$;Njp1Ig4=+I zsO|Fmdp3^oc2v+F@qkQHfl!;iHrx^Zs1j)dhACua=NVX3lh=~>&wgZtEDWq5>KtaZ zvI9KJ{&SG_^dQvK<%-wp0V%{XJD8qTfG}1VwiL@gsk##2u@ zswj9rZgit;8eNC>t}*XD92^rDAd27&&me9wa71P2CS8@_PR?^b($euICUNV@e(&I* z7KT&XSWt;6z|&A~4pF61Bt)(@6S=P+!UA2XFlLAv+2VzoMopg^dQBnN0TJ~0@6B=zXPJVa#vQ&4h{A8AoFYkQ@Wj<3D8| z-P%X#&-*a2a=t{#qBHCo&;`Y6E zm)Z%uov+}+ED$qnybwNC*7yYjs1`Wo(w+hS%iH6R4`8={q)J- zsw@EBdij7C-D*w(h$sjoYU2L4GiJam_dB_UJfwwfU1z$7&^Es+kCha(WjCBQQ|P=G zZU?&l%=;#uTzD2p!kjpB2Jxet^ilp3sLW@e3VYB2JLQ+S?D!b@D*)0#xF&+3TU<4V zLa-706Q001kMQ)e*Z=y{H^}jnlVM#de>+7f8uHA5!(n!rXvCRG1j1FxDGRQ^?}F7w zPcw~p^My10{WAes1SmET>~@qkFHg+9B^=Y&QL{a6PIrh{EgbUxD6GGo;C;fZ!u%j` zdnSWPNkWTbfVW5~qjP^$KA!>s91ezZR}qXk^|9$p_U!~jEl1Z$uICy1o}lD|)EURk znIo%@b=H7_U-~7e0#^f2WZro_Y$kPN@nXf0hyRds;>~tp9E)3?O29{aGAvry3fs`* z)2JUH5Ak@2Zsj07O2)IqRzP!HfNZxjK*GRAr_ufakMt+|>~D7lmhFqF2~h*;0S3)N zMnQC3>{cO zO&u!y>a&p2{tOjVeE~YTydDi%o)I#ASq4tAu;}zlG=*O}0&r5XOw#4PijwPyK$x>( z4Z1@MX%#?IL?q*y%#F@&nxlMg@tb^9MSR1tfC?nA6Z*ExnVfR40vu(e2-!!3!1vJ? z9%6iWkweQIKoE5*9^!dxsje@jrkSe&k?sd@x00LwIu&Ga= zoT zWhCLbDwh>yg&}V19X$*RPvBe|1L~zcBm)`nYA5>uAQ?=9X z?}ce&nY8koTrkh0Va%(yM!<7g-Tv`@00rXJ;&W_?N9#Cz;82twqjO)BDoR!4W9^>kklkNB@83JHqX{>N3?E0kmkWw}*;s0<1Kq2&~3_aol)|hTbW1Q2C z1k9>)h;i+-KjC%((9u@_#E6L|dQs;|+=f=<6u_?nDsXeK;x)z0j!Z%7K!KiLwJf2) z1rL}lZGo=jAb&H`_)4u56lJtOVAAUVedm>dHtEOc^u5f6?I%y>&4%tb((^ZGdM^&H z_S7w4)Q+3M0&SbQ-HiR)DNJKE-cDo3SuL*W3tiGb_gy9Jx{_yE+ATi$l*^i;5;w4e z-ZhJ3yrS3TQr_+?h4+@(z)H>Jr=+&Gq{=xdyDmzWUz0N<%dMQ=^?Y+FkIA>2Rl5?MAP8Q-AUT zlN`bZ7A^MM<(Dn{pADCW;ycTF&B7t(nS3Zu9C!C|ggRFb{2KrkgPIBYY-DZ^;cn$D z*r|oQ?s*$S@_Jgrpf@cQ!=6p)w0a!?g$utrU8?N-oWbqk?vp5cBlXz-L)CZ3L*d8& z8&N4*Mnpog$zB;HgtG6>ab}!snIS8MD0|N+i92T;vS-#g%DA&<_RijZZ=c`q`*{4m zk4Jy>@aWOQ-Ru2+yNYL&!>T!dS{T+v5voY@;QPb%)y@T{2(hb{C11 zxp~b#XEsGj?>v;V@uWz(1S>bz1YmrAVeJp^_Xc!4{c9Hb*XdH0lT>5S?=!Otm6S+w%Ob`D8+Lh-2UJ*$G!lOmBk-(pFxhlBtj?RN7u#-q}IP9(>aO9p8^4 z>rc!8y2$9}AI1t17ix5r%}_qyKokQ{PwAo_l4`eV@h8Dg>?xeypD zR7C7Qi#ScH!zfm2brUo2hI7>LrF706o+N*D3es|VtUcZ1oHEK{2p_Bo8p{cDAtg-$ z5x!DL8~T@}f=Qs#@Ec86b71X>0jB>WVkr8}Q1k^ujOC=Q3M61tMnE=!O*X;ilmO?x zx&Af`aTqpj%6~b(G}IyFk4uhf!9vcieS(+EtcjwTH){g0;7L@(Bud-Y@>AzWQ9?vq z1bo0~TmUBA@yX@0!>#}Qk;l;?w;IsL_5#F0stYmBvxY4kFyQKJziSR}wDI0mlzZxT zzXxf3uZx)eof1>!^7+2~EMo;zG-|BpTMk!WqL+05R13*g!#j5CK9}qK(T`Wjw@7OGP+O24NR>X?OUix-@zgfT?JH8 zqSmeDR7pYuiJOAQ^6Tt00x;g9tJt!4ROqM+`nT^?bm!0TssJBkKghlBkcX)2|Mxzh zpY%gAq!sYRbs`i{U5LYx8;$@)v>R&?n6kwl^)0|H$Yig%EQQTPai|FCv7nZYcy5p6w^D8 z`!LOp_))l1IYQV-K(|9#4?o`5&sGehbib$Kkz{2@b|~)7ty#}&b`OT*pu;aEJ9ZP` z+aj>cw^UdNZgih_Q>Zx9Cg{~rSa<;*5AmP0<%W&<8l=fy`qWAI1Q3MciEE%ZQ9oAy z5g<~4Adf`YfWECRu2 zRl_;JkWVEBZ?SQbX|Z3W#I9X38?*&J?}l`jLatXX0jL=UM=l&5@jyT!qx|@nO1p&*R+@9baSI@AD(%jXJ*aCppQ$NUQ--g|MC~WCmzTJt z>p>I&N{ZXuuC_Q3_^B@>n2w|C?W&fA59DxjkJAUf4jk9$9|9{zIm$B~8Xr2}lh*pi z?xWvgnd9lrA!A~vwR^J{$73f7oetaNrK+y=H*2xV3H*7xmDz>9;&FJ;^8I~l>wyo; zfkUc$4{Pe#_D>=GYROID9O>FRSWvH(v3j zFSCIm3_HjOCY6Wr?I#-G@O2UlAZEKTYxrwN8BUjY*07&LQ`hVPZN;!Wc;wX(P6&3y z@vk!?M^IHdqkQE}id=90;|_?+qdRz9a5SpD{(Vs}2MiAdBR}jl4Q9gqk2cCKvvG(; zuojq6A7rw&L@8QiDvQ(>XU3xjMU|?AZeqp5WUdRy-bQi2{z6EXUWMT~UIaJTzGY2V zk>YP=w?jlDa=1!%)G_P|@yc#jfb^rC{l!~QjPV?d;+g9}+6&D0*+X4H>7)-sVY9f} zTaTHvv#pka)pE=Gf~>1XpCJ_4seVAD-1lU=M{GWG{`W9B9CttxV_e|3t= z6<_r#cLF+3jg>%Q+X9VMO@E=oJulj)qu{GbDt|l&Z`EZCpkMsVc&>HkT<5fZ93p8r z9a;AU&hQ~3OF=8LzM@xrvypJcVg1T^{6>WB(pH|{eUG$b``r*9k1{O=C~p|16-5S_ zgHXJgv2D4l5tjRpSK+obc8oP!2-XJ)e8`MJltD;Gf`m2XViRu_-PKSwgp^Rj#$r%2 z1_=w6q+x7{#@AeA}xl`)j_U{C;^@{dP`$}_VJO(S>D}e ziEH5`V6ErPonX!AM(x*6LysSF>i zF=;X9Ke9+E5bY4xJ<&)Zob2jtvv$i)oXiNn8F1Jb?^sr_S(6iJIloSsb#Hf%=dJV( zJ%6uFoGh}wB>JSN_6^j3vCcemJ6SvliQInbGar657ql}RYqQz@Ci0A>w$FI`8s7ii!P>}r2kK!Fuli%>X6qd`fYwNl zb$X%YPhi<|btgZru1n82Jr4ateI3MAbh%M#=pQ1bfZJXz0EY47mHuYX2^B?=VMjx( z=#(TBZ2*??w%t}8ux>@w{|mIcp38f^wMhIE66^@NPTM)xE_c?(B=~TC<(E$}bA8wf zJR?8C5*D7;Em+oNAe8G`lEl&Wx64!bE8oGt5~jJ=atZ|u%a^Vpyk@D6iuhv&3AsSh zUA6C<563-V=-y7V1gx$sCqZGYtr}~ks%NDdyAxrpruG{YQ1&?yR<7u326^4RJWt;f@Un8CN=%8f zix__Z{FOb~_w(H}F!8iL5}l7K!<3#$oqI1ImmnbuNg00I3-d8iBU10y$E3w>NdzYO zYsOYic%3eUWL~{~;JLYoJZ9HeYijV?IGn&=SWEn!DQSm)xV#Eai9bkk463)n4*Qh) zE6APfcMl0@F3r*^&*b5$M?B!Fz_%t)HM8MaQLt{((IeK=@wm%&e-8V_j{_E8MHLeVc za$m4v&O`*+{8{LL+#FJ51CUW$4a^Jf2eZRAz=`7>=6#8hx+PJ6F~fOr+*!V|gnU4% z+1DV>C*~?(MOCPe#hPzYaSpiQiG8|Sr!fGe*pv4p{F(SuKCq^HrP(a5;y=l&zIbb% zCj3eiRF(6?%V~Br!6NjV$; zHOY`HWxMvMu1)^y(ff@4&F$-TK7MC{CyOSP|7Lpra-~nm6Xdr}o8!37+P4mNey?L2 z2#-=u=c+?i?zqXPovw6~Ct)>T#7cG^-P!ukbkEm#HadEqgu1Xz#P{-^lN| z>;7AREGOdpoIz&S^7rlb!`N(&C5u`sufI7P!stZd1Er% z^%9&1t;WY%nP9DUb=8HwD^piDa&X&&JS`sw%0A5~rYVsFbM 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

    WdL%B)xc*@Y0+ep!%L8XlJ*XI{v)KEs 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±#-K8!j!4zxq@PhiLd8Ef9}X@=d|5UlfZtSw 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 From a54927a7f48b5b24625c47710f269ddc62b1503d Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Mar 2023 09:41:27 -0700 Subject: [PATCH 26/95] Update GitHub Pages starter workflow (#2023) Upstream changes: - https://github.com/actions/starter-workflows/pull/1984 - https://github.com/actions/starter-workflows/pull/1991 --- .../en/hosting-and-deployment/hosting-on-github/index.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/content/en/hosting-and-deployment/hosting-on-github/index.md b/content/en/hosting-and-deployment/hosting-on-github/index.md index 7123c9d2d..0ccfd840d 100644 --- a/content/en/hosting-and-deployment/hosting-on-github/index.md +++ b/content/en/hosting-and-deployment/hosting-on-github/index.md @@ -87,10 +87,11 @@ permissions: pages: write id-token: write -# Allow one concurrent deployment +# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. +# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. concurrency: group: "pages" - cancel-in-progress: true + cancel-in-progress: false # Default to bash defaults: @@ -102,7 +103,7 @@ jobs: build: runs-on: ubuntu-latest env: - HUGO_VERSION: 0.111.2 + HUGO_VERSION: 0.111.3 steps: - name: Install Hugo CLI run: | @@ -145,7 +146,7 @@ jobs: steps: - name: Deploy to GitHub Pages id: deployment - uses: actions/deploy-pages@v1 + uses: actions/deploy-pages@v2 {{< /code >}} Step 7 From d2e594cbcb36c5afe414bb4e730a482f91ff4851 Mon Sep 17 00:00:00 2001 From: ginaesps <58644384+ginaesps@users.noreply.github.com> Date: Thu, 23 Mar 2023 12:05:56 -0600 Subject: [PATCH 27/95] Modify inner variable shortcode-template explanation (#1985) --- content/en/templates/shortcode-templates.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/templates/shortcode-templates.md b/content/en/templates/shortcode-templates.md index 1c9314bb9..fea06e73b 100644 --- a/content/en/templates/shortcode-templates.md +++ b/content/en/templates/shortcode-templates.md @@ -102,7 +102,7 @@ most helpful when the condition depends on either of the values, or both: If a closing shortcode is used, the `.Inner` variable will be populated with the content between the opening and closing shortcodes. If a closing shortcode is required, you can check the length of `.Inner` as an indicator of its existence. -A shortcode with content declared via the `.Inner` variable can also be declared without the content and without the closing by using the self-closing syntax: +A shortcode with content declared via the `.Inner` variable can also be declared without the content and without the closing tag by using the self-closing syntax: ```go-html-template {{}} From d6c5f940ed000530de25880d9c2b865edd486cbd Mon Sep 17 00:00:00 2001 From: Andreas Deininger Date: Fri, 24 Mar 2023 04:49:38 +0100 Subject: [PATCH 28/95] Resource methods: add signatures, minor improvements (#2017) --- content/en/hugo-pipes/babel.md | 3 +++ content/en/hugo-pipes/bundling.md | 10 +++++++--- content/en/hugo-pipes/fingerprint.md | 10 +++++++--- content/en/hugo-pipes/js.md | 8 ++++++-- content/en/hugo-pipes/minification.md | 10 +++++++--- content/en/hugo-pipes/postcss.md | 3 ++- content/en/hugo-pipes/postprocess.md | 3 +++ content/en/hugo-pipes/resource-from-string.md | 9 ++++++--- content/en/hugo-pipes/resource-from-template.md | 9 ++++++--- .../hugo-pipes/{scss-sass.md => transform-to-css.md} | 8 ++++++-- content/en/news/0.80.0-relnotes/index.md | 2 +- content/en/news/0.81.0-relnotes/index.md | 2 +- 12 files changed, 55 insertions(+), 22 deletions(-) rename content/en/hugo-pipes/{scss-sass.md => transform-to-css.md} (92%) mode change 100755 => 100644 diff --git a/content/en/hugo-pipes/babel.md b/content/en/hugo-pipes/babel.md index 48db15c8d..5dab9f1c6 100755 --- a/content/en/hugo-pipes/babel.md +++ b/content/en/hugo-pipes/babel.md @@ -11,8 +11,11 @@ menu: weight: 48 weight: 48 sections_weight: 48 +signature: ["resources.Babel RESOURCE [OPTIONS]", "babel RESOURCE [OPTIONS]"] --- +## Usage + Any JavaScript resource file can be transpiled to another JavaScript version using `resources.Babel` which takes for argument the resource object and an optional dict of options listed below. Babel uses the [babel cli](https://babeljs.io/docs/en/babel-cli). diff --git a/content/en/hugo-pipes/bundling.md b/content/en/hugo-pipes/bundling.md index 227c7b1a3..8eeeeb8e7 100755 --- a/content/en/hugo-pipes/bundling.md +++ b/content/en/hugo-pipes/bundling.md @@ -1,6 +1,7 @@ --- -title: Asset bundling -description: Hugo Pipes can bundle any number of assets together. +title: Concat +linkTitle: Concatenating assets +description: Bundle any number of assets into one resource. date: 2018-07-14 publishdate: 2018-07-14 lastmod: 2018-07-14 @@ -12,9 +13,12 @@ menu: weight: 60 weight: 60 sections_weight: 60 +signature: ["resources.Concat TARGET_PATH SLICE_RESOURCES"] --- -Asset files of the same MIME type can be bundled into one resource using `resources.Concat` which takes two arguments, a target path and a slice of resource objects. +## Usage + +Asset files of the same MIME type can be bundled into one resource using `resources.Concat` which takes two arguments, the target path for the created resource bundle and a slice of resource objects to be concatenated. ```go-html-template {{ $plugins := resources.Get "js/plugins.js" }} diff --git a/content/en/hugo-pipes/fingerprint.md b/content/en/hugo-pipes/fingerprint.md index af7369035..71f0b914f 100755 --- a/content/en/hugo-pipes/fingerprint.md +++ b/content/en/hugo-pipes/fingerprint.md @@ -1,6 +1,7 @@ --- -title: Fingerprinting and SRI -description: Hugo Pipes allows Fingerprinting and Subresource Integrity. +title: Fingerprint +linkTitle: Fingerprinting and SRI +description: Process a given resource, adding a hash string of the resource's content. date: 2018-07-14 publishdate: 2018-07-14 categories: [asset management] @@ -11,9 +12,12 @@ menu: weight: 70 weight: 70 sections_weight: 70 +signature: ["resources.Fingerprint RESOURCE [ALGORITHM]", "fingerprint RESOURCE [ALGORITHM]"] --- -Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and a [hash algorithm](https://en.wikipedia.org/wiki/Secure_Hash_Algorithms). +## Usage + +Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and an optional [hash algorithm](https://en.wikipedia.org/wiki/Secure_Hash_Algorithms). The default hash algorithm is `sha256`. Other available algorithms are `sha384` and (as of Hugo `0.55`) `sha512` and `md5`. diff --git a/content/en/hugo-pipes/js.md b/content/en/hugo-pipes/js.md index 6905a6555..097c17b0f 100644 --- a/content/en/hugo-pipes/js.md +++ b/content/en/hugo-pipes/js.md @@ -1,6 +1,7 @@ --- -title: JavaScript Building -description: Hugo Pipes can process JavaScript files with [ESBuild](https://github.com/evanw/esbuild). +title: js.Build +linkTitle: JavaScript Building +description: Process a JavaScript file with [ESBuild](https://github.com/evanw/esbuild). date: 2020-07-20 publishdate: 2020-07-20 categories: [asset management] @@ -11,8 +12,11 @@ menu: weight: 45 weight: 45 sections_weight: 45 +signature: ["js.Build RESOURCE [OPTIONS]"] --- +## Usage + Any JavaScript resource file can be transpiled and "tree shaken" using `js.Build` which takes for argument either a string for the filepath or a dict of options listed below. ### Options diff --git a/content/en/hugo-pipes/minification.md b/content/en/hugo-pipes/minification.md index 6e539e0e7..2453152e8 100755 --- a/content/en/hugo-pipes/minification.md +++ b/content/en/hugo-pipes/minification.md @@ -1,6 +1,7 @@ --- -title: Asset minification -description: Hugo Pipes allows the minification of any CSS, JS, JSON, HTML, SVG or XML resource. +title: Minify +linkTitle: Asset minification +description: Minifies a given resource. date: 2018-07-14 publishdate: 2018-07-14 categories: [asset management] @@ -11,9 +12,12 @@ menu: weight: 50 weight: 50 sections_weight: 50 +signature: ["resources.Minify RESOURCE", "minify RESOURCE"] --- -Any resource of the aforementioned types can be minified using `resources.Minify` which takes for argument the resource object. +## Usage + +Any CSS, JS, JSON, HTML, SVG or XML resource can be minified using `resources.Minify` which takes for argument the resource object. ```go-html-template {{ $css := resources.Get "css/main.css" }} diff --git a/content/en/hugo-pipes/postcss.md b/content/en/hugo-pipes/postcss.md index d96c8a443..46c9a8c66 100755 --- a/content/en/hugo-pipes/postcss.md +++ b/content/en/hugo-pipes/postcss.md @@ -1,6 +1,6 @@ --- title: PostCSS -description: Use PostCSS to transform CSS using any of the available plugins. +description: Process CSS files with PostCSS, using any of the available plugins. categories: [asset management] keywords: [] menu: @@ -9,6 +9,7 @@ menu: weight: 40 toc: true weight: 40 +signature: ["resources.PostCSS RESOURCE [OPTIONS]", "postCSS RESOURCE [OPTIONS]"] --- ## Setup diff --git a/content/en/hugo-pipes/postprocess.md b/content/en/hugo-pipes/postprocess.md index f37763259..4098f3e16 100755 --- a/content/en/hugo-pipes/postprocess.md +++ b/content/en/hugo-pipes/postprocess.md @@ -10,8 +10,11 @@ menu: weight: 39 weight: 39 sections_weight: 39 +signature: ["resources.PostProcess RESOURCE"] --- +## Usage + Marking a resource with `resources.PostProcess` delays any transformations to after the build, typically because one or more of the steps in the transformation chain depends on the result of the build (e.g. files in `public`). A prime use case for this is [CSS purging with PostCSS](#css-purging-with-postcss). diff --git a/content/en/hugo-pipes/resource-from-string.md b/content/en/hugo-pipes/resource-from-string.md index ae7598ebe..43e890597 100755 --- a/content/en/hugo-pipes/resource-from-string.md +++ b/content/en/hugo-pipes/resource-from-string.md @@ -1,7 +1,7 @@ --- -title: Creating a resource from a string +title: FromString linkTitle: Resource from String -description: Hugo Pipes allows the creation of a resource from a string. +description: Creates a resource from a string. date: 2018-07-14 publishdate: 2018-07-14 categories: [asset management] @@ -12,9 +12,12 @@ menu: weight: 90 weight: 90 sections_weight: 90 +signature: ["resources.FromString TARGET_PATH CONTENT"] --- -It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the given string and the resource target path. +## Usage + +It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the target path for the created resource and the given content string. The following example creates a resource file containing localized variables for every project's languages. diff --git a/content/en/hugo-pipes/resource-from-template.md b/content/en/hugo-pipes/resource-from-template.md index bb0fdb2c2..5d690779f 100755 --- a/content/en/hugo-pipes/resource-from-template.md +++ b/content/en/hugo-pipes/resource-from-template.md @@ -1,7 +1,7 @@ --- -title: Creating a resource from template +title: ExecuteAsTemplate linkTitle: Resource from Template -description: Hugo Pipes allows the creation of a resource from an asset file using Go Template. +description: Creates a resource from a template date: 2018-07-14 publishdate: 2018-07-14 categories: [asset management] @@ -12,11 +12,14 @@ menu: weight: 80 weight: 80 sections_weight: 80 +signature: ["resources.ExecuteAsTemplate TARGET_PATH CONTEXT RESOURCE"] --- +## Usage + In order to use Hugo Pipes function on an asset file containing Go Template magic the function `resources.ExecuteAsTemplate` must be used. -The function takes three arguments: the resource target path, the template context, and the resource object. +The function takes three arguments: the target path for the created resource, the template context, and the resource object. ```go-html-template // assets/sass/template.scss diff --git a/content/en/hugo-pipes/scss-sass.md b/content/en/hugo-pipes/transform-to-css.md old mode 100755 new mode 100644 similarity index 92% rename from content/en/hugo-pipes/scss-sass.md rename to content/en/hugo-pipes/transform-to-css.md index 2c889500b..cc15bc2a6 --- a/content/en/hugo-pipes/scss-sass.md +++ b/content/en/hugo-pipes/transform-to-css.md @@ -1,6 +1,7 @@ --- -title: Sass / SCSS -description: Hugo Pipes allows the processing of Sass and SCSS files. +title: ToCSS +linkTitle: Transpile Sass to SCSS +description: Transpile Sass to CSS. date: 2018-07-14 publishdate: 2018-07-14 categories: [asset management] @@ -11,8 +12,11 @@ menu: weight: 30 weight: 02 sections_weight: 02 +signature: ["resources.ToCSS RESOURCE [OPTIONS]", "toCSS RESOURCE [OPTIONS]"] --- +## Usage + Any Sass or SCSS file can be transformed into a CSS file using `resources.ToCSS` which takes two arguments, the resource object and a map of options listed below. ```go-html-template diff --git a/content/en/news/0.80.0-relnotes/index.md b/content/en/news/0.80.0-relnotes/index.md index 1c390b685..4c78db3ad 100644 --- a/content/en/news/0.80.0-relnotes/index.md +++ b/content/en/news/0.80.0-relnotes/index.md @@ -6,7 +6,7 @@ description: "This release brings Dart Sass support, a new image overlay functio categories: ["Releases"] --- -The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/scss-sass/#options) support. +The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/toCSS/#options) support. This release represents **29 contributions by 12 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 [@moorereason](https://github.com/moorereason), and [@davidsneighbour](https://github.com/davidsneighbour) 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 [@davidsneighbour](https://github.com/davidsneighbour), [@coliff](https://github.com/coliff) and [@kaushalmodi](https://github.com/kaushalmodi) for all the great work on the documentation site. diff --git a/content/en/news/0.81.0-relnotes/index.md b/content/en/news/0.81.0-relnotes/index.md index ebcbb5ac7..8b4048c60 100644 --- a/content/en/news/0.81.0-relnotes/index.md +++ b/content/en/news/0.81.0-relnotes/index.md @@ -154,7 +154,7 @@ Hugo now has: ## Notes -* We have updated to Beta 6 of the Dart Sass Protocol which is not backwards compatible, so if you use Dart Sass you need to also update [that binary](https://gohugo.io/hugo-pipes/scss-sass/#options). +* We have updated to Beta 6 of the Dart Sass Protocol which is not backwards compatible, so if you use Dart Sass you need to also update [that binary](https://gohugo.io/hugo-pipes/toCSS/#options). * `hugo gen autocomplete` now default to `stdout`; you can change this by setting `--completionfile`. As an added bonus we now also support auto completion for zsh, fish and powershell. ## Changelog From 31269bad926ce41caff92a1a5011975dd0a1ba9c Mon Sep 17 00:00:00 2001 From: sitiom Date: Sat, 25 Mar 2023 00:59:10 +0800 Subject: [PATCH 29/95] Add Winget installation method (#1988) --- content/en/installation/windows.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/content/en/installation/windows.md b/content/en/installation/windows.md index 6ef17acd4..2b4615235 100644 --- a/content/en/installation/windows.md +++ b/content/en/installation/windows.md @@ -38,6 +38,16 @@ scoop install hugo-extended [Scoop]: https://scoop.sh/ +### Winget + +[Winget] is Microsoft's official free and open source package manager for Windows. This will install the extended edition of Hugo: + +```sh +winget install Hugo.Hugo.Extended +``` + +[Winget]: https://learn.microsoft.com/en-us/windows/package-manager/ + {{% readfile file="/installation/common/04-docker.md" %}} {{% readfile file="/installation/common/05-build-from-source.md" %}} From 6ebb37b1b20e3153d4a27cf6f1ebfff5e85f59f6 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 24 Mar 2023 15:23:40 -0700 Subject: [PATCH 30/95] Clarify sort function (#2024) Closes #1365 --- content/en/functions/sort.md | 146 +++++++++++++++++++++++++---------- 1 file changed, 105 insertions(+), 41 deletions(-) diff --git a/content/en/functions/sort.md b/content/en/functions/sort.md index b48aad1aa..bbaf98bab 100644 --- a/content/en/functions/sort.md +++ b/content/en/functions/sort.md @@ -1,63 +1,127 @@ --- title: sort -# linktitle: sort -description: Sorts maps, arrays, and slices and returns a sorted slice. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 +description: Sorts slices, maps, and page collections. categories: [functions] +signature: ["sort COLLECTION [KEY] [ORDER]"] menu: docs: parent: "functions" keywords: [ordering,sorting,lists] -signature: [] -workson: [lists,taxonomies,terms,groups] -hugoversion: -relatedfuncs: [] -deprecated: false +toc: true aliases: [] --- -A sorted array of map values will be returned with the keys eliminated. There are two optional arguments: `sortByField` and `sortAsc`. If left blank, sort will sort by keys (for maps) in ascending order as its default behavior. +The `KEY` is optional when sorting slices in ascending order, otherwise it is required. When sorting slices, use the literal `value` in place of the `KEY`. See examples below. -``` ---- -tags: ["tag3", "tag1", "tag2"] ---- +The `ORDER` may be either `asc` (ascending) or `desc` (descending). The default sort order is ascending. -// Site config -+++ -[params.authors] - [params.authors.Joe] - firstName = "Joe" - lastName = "Bergevin" - [params.authors.Derek] - firstName = "Derek" - lastName = "Perkins" - [params.authors.Tanner] - firstName = "Tanner" - lastName = "Linsley" -+++ +## Sort a slice + +The examples below assume this site configuration: + +{{< code-toggle file="config" copy=false >}} +[params] +grades = ['b','a','c'] +{{< /code-toggle >}} + +### Ascending order {#slice-ascending-order} + +Sort slice elements in ascending order using either of these constructs: + +{{< code file="layouts/_default/single.html" copy="false" >}} +{{ sort site.Params.grades }} → [a b c] +{{ sort site.Params.grades "value" "asc" }} → [a b c] +{{< /code >}} + +In the examples above, `value` is the `KEY` representing the value of the slice element. + +### Descending order {#slice-descending-order} + +Sort slice elements in descending order: + +{{< code file="layouts/_default/single.html" copy="false" >}} +{{ sort site.Params.grades "value" "desc" }} → [c b a] +{{< /code >}} + +In the example above, `value` is the `KEY` representing the value of the slice element. + +## Sort a map + +The examples below assume this site configuration: + +{{< code-toggle file="config" copy=false >}} +[params.authors.a] +firstName = "Marius" +lastName = "Pontmercy" +[params.authors.b] +firstName = "Victor" +lastName = "Hugo" +[params.authors.c] +firstName = "Jean" +lastName = "Valjean" +{{< /code-toggle >}} + +{{% note %}} +When sorting maps, the `KEY` argument must be lowercase. +{{% /note %}} + +### Ascending order {#map-ascending-order} + +Sort map objects in ascending order using either of these constructs: + +{{< code file="layouts/_default/single.html" copy="false" >}} +{{ range sort site.Params.authors "firstname" }} + {{ .firstName }} +{{ end }} + +{{ range sort site.Params.authors "firstname" "asc" }} + {{ .firstName }} +{{ end }} +{{< /code >}} + +These produce: + +```text +Jean Marius Victor ``` +### Descending order {#map-descending-order} + +Sort map objects in descending order: + +{{< code file="layouts/_default/single.html" copy="false" >}} +{{ range sort site.Params.authors "firstname" "desc" }} + {{ .firstName }} +{{ end }} +{{< /code >}} + +This produces: + +```text +Victor Marius Jean ``` -// Sort by value, ascending (default for lists) -Tags: {{ range sort .Params.tags }}{{ . }} {{ end }} -→ Outputs Tags: tag1 tag2 tag3 +## Sort a page collection -// Sort by value, descending -Tags: {{ range sort .Params.tags "value" "desc" }}{{ . }} {{ end }} +Although you can use the `sort` function to sort a page collection, Hugo provides [built-in methods for sorting page collections] by: -→ Outputs Tags: tag3 tag2 tag1 +- weight +- linktitle +- title +- front matter parameter +- date +- expiration date +- last modified date +- publish date +- length -// Sort by key, ascending (default for maps) -Authors: {{ range sort .Site.Params.authors }}{{ .firstName }} {{ end }} +In this contrived example, sort the site's regular pages by `.Type` in descending order: -→ Outputs Authors: Derek Joe Tanner +{{< code file="layouts/_default/home.html" copy="false" >}} +{{ range sort site.RegularPages "Type" "desc" }} +

    {{ .Title }}

    +{{ end }} +{{< /code >}} -// Sort by field, descending -Authors: {{ range sort .Site.Params.authors "lastName" "desc" }}{{ .lastName }} {{ end }} -→ Outputs Authors: Perkins Linsley Bergevin -``` +[built-in methods for sorting page collections]: /templates/lists/#order-content From 6148be2dec4ab9f1bb090b46a15465e0652c3b89 Mon Sep 17 00:00:00 2001 From: Razon Yang Date: Sat, 25 Mar 2023 21:39:33 +0800 Subject: [PATCH 31/95] Update the breadcrumb navigation example (#2025) --- content/en/content-management/sections.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/content/en/content-management/sections.md b/content/en/content-management/sections.md index b68a5bdb9..a74cc6731 100644 --- a/content/en/content-management/sections.md +++ b/content/en/content-management/sections.md @@ -63,8 +63,7 @@ If you need a specific template for a sub-section, you need to adjust either the With the available [section variables and methods](#section-page-variables-and-methods) you can build powerful navigation. One common example would be a partial to show Breadcrumb navigation: {{< code file="layouts/partials/breadcrumb.html" download="breadcrumb.html" >}} - {{< /code >}} ## Section Page Variables and Methods From fc0ecc027cf9289d35800ea00ea00b2e44116293 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 25 Mar 2023 07:01:44 -0700 Subject: [PATCH 32/95] Improve breadcrumb example (#2026) --- content/en/content-management/sections.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/content/en/content-management/sections.md b/content/en/content-management/sections.md index a74cc6731..4cfa19276 100644 --- a/content/en/content-management/sections.md +++ b/content/en/content-management/sections.md @@ -63,14 +63,18 @@ If you need a specific template for a sub-section, you need to adjust either the With the available [section variables and methods](#section-page-variables-and-methods) you can build powerful navigation. One common example would be a partial to show Breadcrumb navigation: {{< code file="layouts/partials/breadcrumb.html" download="breadcrumb.html" >}} - + {{< /code >}} ## Section Page Variables and Methods From 77f4d6c32ffc1b54dad7236166293955a9167535 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 25 Mar 2023 20:48:48 -0700 Subject: [PATCH 33/95] Link destination cleanup (#2028) - Fix broken links (including fragments) - Remove ref and relref shortcodes --- .../en/content-management/build-options.md | 6 +- .../image-processing/index.md | 14 ++--- content/en/content-management/multilingual.md | 10 +-- .../content-management/organization/index.md | 2 +- .../en/content-management/page-resources.md | 3 +- content/en/content-management/taxonomies.md | 4 +- content/en/functions/fileExists.md | 2 +- content/en/functions/highlight.md | 8 +-- content/en/functions/int.md | 3 +- content/en/functions/lang.md | 2 - content/en/functions/merge.md | 2 +- content/en/functions/os.Stat.md | 2 +- content/en/functions/readdir.md | 2 +- content/en/functions/readfile.md | 4 +- content/en/functions/site.md | 2 +- content/en/functions/split.md | 2 +- content/en/functions/where.md | 2 +- content/en/getting-started/configuration.md | 4 +- .../en/getting-started/directory-structure.md | 2 +- .../hosting-on-netlify.md | 3 +- content/en/hugo-pipes/transform-to-css.md | 2 +- content/en/news/0.11-relnotes/index.md | 12 ++-- content/en/news/0.12-relnotes/index.md | 10 +-- content/en/news/0.14-relnotes/index.md | 2 +- content/en/news/0.20-relnotes/index.md | 62 +++++++++---------- content/en/news/0.20.1-relnotes/index.md | 8 +-- content/en/news/0.20.2-relnotes/index.md | 4 +- content/en/news/0.63.0-relnotes/index.md | 7 --- .../index.md | 2 +- content/en/templates/data-templates.md | 5 +- content/en/templates/introduction.md | 35 +++++------ .../en/templates/{lists.md => lists/index.md} | 2 +- .../en/templates/lists}/site-hierarchy.svg | 0 content/en/templates/output-formats.md | 2 +- content/en/templates/partials.md | 12 ++-- content/en/templates/sitemap-template.md | 2 +- content/en/templates/taxonomy-templates.md | 8 +-- .../en/troubleshooting/build-performance.md | 2 +- content/en/variables/page.md | 6 +- content/en/variables/site.md | 4 +- 40 files changed, 126 insertions(+), 140 deletions(-) rename content/en/templates/{lists.md => lists/index.md} (99%) rename {static/images => content/en/templates/lists}/site-hierarchy.svg (100%) diff --git a/content/en/content-management/build-options.md b/content/en/content-management/build-options.md index f798754f1..07187e718 100644 --- a/content/en/content-management/build-options.md +++ b/content/en/content-management/build-options.md @@ -56,11 +56,11 @@ If true, the page will be treated as part of the project's collections and, when #### publishResources -If set to true the [Bundle's Resources]({{< relref "content-management/page-bundles" >}}) will be published. +If set to true the [Bundle's Resources](/content-management/page-bundles) will be published. Setting this to false will still publish Resources on demand (when a resource's `.Permalink` or `.RelPermalink` is invoked from the templates) but will skip the others. {{% note %}} -Any page, regardless of their build options, will always be available using the [`.GetPage`]({{< relref "functions/GetPage" >}}) methods. +Any page, regardless of their build options, will always be available using the [`.GetPage`](/functions/GetPage) methods. {{% /note %}} ------ @@ -92,7 +92,7 @@ _build: Website needs to showcase a few of the hundred "testimonials" available as content files without publishing any of them. -To avoid setting the build options on every testimonials, one can use [`cascade`]({{< relref "/content-management/front-matter#front-matter-cascade" >}}) on the testimonial section's content file. +To avoid setting the build options on every testimonials, one can use [`cascade`](/content-management/front-matter#front-matter-cascade) on the testimonial section's content file. {{< code-toggle >}} title: Testimonials diff --git a/content/en/content-management/image-processing/index.md b/content/en/content-management/image-processing/index.md index 3f71b4244..388662856 100644 --- a/content/en/content-management/image-processing/index.md +++ b/content/en/content-management/image-processing/index.md @@ -457,15 +457,15 @@ If you change image processing methods or options, or if you rename or remove im hugo --gc ``` -[`anchor`]: {{< relref "content-management/image-processing#anchor" >}} -[`lang.FormatNumber`]: {{< relref "functions/lang#langformatnumber" >}} -[Exif]: -[filters]: {{< relref "functions/images" >}} +[time.Format]: /functions/dateformat +[`anchor`]: /content-management/image-processing#anchor +[mounted]: /hugo-modules/configuration#module-config-mounts +[page bundle]: /content-management/page-bundles +[`lang.FormatNumber`]: /functions/lang +[filters]: /functions/images [github.com/disintegration/imaging]: -[mounted]: {{< relref "hugo-modules/configuration#module-config-mounts">}} -[page bundle]: {{< relref "content-management/page-bundles" >}} [Smartcrop]: -[time.Format]: {{< relref "functions/dateformat" >}} +[Exif]: [`Colors`]: #colors [`Crop`]: #crop [`Exif`]: #exif diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 130d2d523..3fb5139de 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -607,11 +607,11 @@ hugo new content/de/post/test.md [homepage]: /templates/homepage/ [Hugo Multilingual Part 1: Content translation]: https://regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/ [i18func]: /functions/i18n/ -[lang.FormatAccounting]: /functions/lang/#langformataccounting -[lang.FormatCurrency]: /functions/lang/#langformatcurrency -[lang.FormatNumber]: /functions/lang/#langformatnumber -[lang.FormatNumberCustom]: /functions/lang/#langformatnumbercustom -[lang.FormatPercent]: /functions/lang/#langformatpercent +[lang.FormatAccounting]: /functions/lang +[lang.FormatCurrency]: /functions/lang +[lang.FormatNumber]: /functions/lang +[lang.FormatNumberCustom]: /functions/lang +[lang.FormatPercent]: /functions/lang [lang.Merge]: /functions/lang.merge/ [menus]: /content-management/menus/ [OS environment]: /getting-started/configuration/#configure-with-environment-variables diff --git a/content/en/content-management/organization/index.md b/content/en/content-management/organization/index.md index 6b6d6423f..efa355ddc 100644 --- a/content/en/content-management/organization/index.md +++ b/content/en/content-management/organization/index.md @@ -17,7 +17,7 @@ aliases: [/content/sections/] Hugo `0.32` announced page-relative images and other resources packaged into `Page Bundles`. -These terms are connected, and you also need to read about [Page Resources]({{< relref "/content-management/page-resources" >}}) and [Image Processing]({{< relref "/content-management/image-processing" >}}) to get the full picture. +These terms are connected, and you also need to read about [Page Resources](/content-management/page-resources) and [Image Processing](/content-management/image-processing) to get the full picture. {{< imgproc 1-featured Resize "300x" >}} The illustration shows three bundles. Note that the home page bundle cannot contain other content pages, although other files (images etc.) are allowed. diff --git a/content/en/content-management/page-resources.md b/content/en/content-management/page-resources.md index 16c9fc0ab..9e2312a5d 100644 --- a/content/en/content-management/page-resources.md +++ b/content/en/content-management/page-resources.md @@ -11,8 +11,7 @@ menu: toc: true weight: 80 --- -Page resources are only accessible from [page bundles]({{< relref -"/content-management/page-bundles" >}}), those directories with `index.md` or +Page resources are only accessible from [page bundles](/content-management/page-bundles), those directories with `index.md` or `_index.md` files at their root. Page resources are only available to the page with which they are bundled. diff --git a/content/en/content-management/taxonomies.md b/content/en/content-management/taxonomies.md index f5960367f..85e3a4c51 100644 --- a/content/en/content-management/taxonomies.md +++ b/content/en/content-management/taxonomies.md @@ -106,7 +106,7 @@ When taxonomies are used---and [taxonomy templates] are provided---Hugo will aut ## Configure Taxonomies -Custom taxonomies other than the [defaults]({{< relref "taxonomies.md#default-taxonomies" >}}) must be defined in your [site config][config] before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML. +Custom taxonomies other than the [defaults](#default-taxonomies) must be defined in your [site config][config] before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML. ### Example: Adding a custom taxonomy named "series" @@ -130,7 +130,7 @@ If you want to have just the default `tags` taxonomy, and remove the `categories tag = "tags" {{}} -If you want to disable all taxonomies altogether, see the use of `disableKinds` in [Hugo Taxonomy Defaults]({{< relref "taxonomies.md#default-taxonomies" >}}). +If you want to disable all taxonomies altogether, see the use of `disableKinds` in [Hugo Taxonomy Defaults](#default-taxonomies). {{% note %}} You can add content and front matter to your taxonomy list and taxonomy terms pages. See [Content Organization](/content-management/organization/) for more information on how to add an `_index.md` for this purpose. diff --git a/content/en/functions/fileExists.md b/content/en/functions/fileExists.md index 2175453de..0c12d7d84 100644 --- a/content/en/functions/fileExists.md +++ b/content/en/functions/fileExists.md @@ -16,7 +16,7 @@ relatedfuncs: ['os.ReadDir','os.ReadFile','os.Stat'] deprecated: false aliases: [] --- -The `os.FileExists` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional. +The `os.FileExists` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. With this directory structure: diff --git a/content/en/functions/highlight.md b/content/en/functions/highlight.md index 10b1c2d90..9edf9de3e 100644 --- a/content/en/functions/highlight.md +++ b/content/en/functions/highlight.md @@ -101,8 +101,8 @@ Instead of specifying both `lineNos` and `lineNumbersInTable`, you can use the f ``` [Chroma]: https://github.com/alecthomas/chroma -[hugo client]: {{< relref "commands/hugo_gen_chromastyles" >}} -[options]: {{< relref "#options" >}} -[site configuration]: {{< relref "getting-started/configuration-markup#highlight">}} +[hugo client]: /commands/hugo_gen_chromastyles +[options]: #options +[site configuration]: /getting-started/configuration-markup#highlight [style gallery]: https://xyproto.github.io/splash/docs/ -[supported languages]: {{< relref "content-management/syntax-highlighting#list-of-chroma-highlighting-languages" >}} +[supported languages]: /content-management/syntax-highlighting#list-of-chroma-highlighting-languages diff --git a/content/en/functions/int.md b/content/en/functions/int.md index 33888e117..309368702 100644 --- a/content/en/functions/int.md +++ b/content/en/functions/int.md @@ -30,8 +30,7 @@ leading 0's, then those 0's will have to be removed before passing the string to the `int` function, else that string will be tried to be parsed as an octal number representation. -The [`strings.TrimLeft` function](/functions/strings.trimleft/) can be used for -this purpose. +The `strings.TrimLeft` can be used for this purpose. ``` {{ int ("0987" | strings.TrimLeft "0") }} diff --git a/content/en/functions/lang.md b/content/en/functions/lang.md index 1a4da807a..db353383c 100644 --- a/content/en/functions/lang.md +++ b/content/en/functions/lang.md @@ -11,6 +11,4 @@ menu: signature: ["lang.NumFmt PRECISION NUMBER [OPTIONS [DELIMITER]]"] aliases: ['/functions/numfmt/'] type: 'template-func' - --- - diff --git a/content/en/functions/merge.md b/content/en/functions/merge.md index 0944815a1..a73644dcb 100644 --- a/content/en/functions/merge.md +++ b/content/en/functions/merge.md @@ -67,5 +67,5 @@ Example 4 ``` {{% note %}} -Regardless of depth, merging only applies to maps. For slices, use [append]({{< ref "functions/append" >}}). +Regardless of depth, merging only applies to maps. For slices, use [append](/functions/append). {{% /note %}} diff --git a/content/en/functions/os.Stat.md b/content/en/functions/os.Stat.md index a56f79735..14adc0ba1 100644 --- a/content/en/functions/os.Stat.md +++ b/content/en/functions/os.Stat.md @@ -16,7 +16,7 @@ relatedfuncs: ['os.FileExists','os.ReadDir','os.ReadFile'] deprecated: false aliases: [] --- -The `os.Stat` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional. +The `os.Stat` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. ```go-html-template {{ $f := os.Stat "README.md" }} diff --git a/content/en/functions/readdir.md b/content/en/functions/readdir.md index 70fe7b66c..ef4e39e71 100644 --- a/content/en/functions/readdir.md +++ b/content/en/functions/readdir.md @@ -48,4 +48,4 @@ Note that `os.ReadDir` is not recursive. Details of the `FileInfo` structure are available in the [Go documentation](https://pkg.go.dev/io/fs#FileInfo). -For more information on using `readDir` and `readFile` in your templates, see [Local File Templates]({{< relref "/templates/files" >}}). +For more information on using `readDir` and `readFile` in your templates, see [Local File Templates](/templates/files). diff --git a/content/en/functions/readfile.md b/content/en/functions/readfile.md index b0a88458b..ab782f1df 100644 --- a/content/en/functions/readfile.md +++ b/content/en/functions/readfile.md @@ -16,7 +16,7 @@ relatedfuncs: ['os.FileExists','os.ReadDir','os.Stat'] deprecated: false aliases: [] --- -The `os.ReadFile` function attempts to resolve the path relative to the root of your project directory. If a matching file is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional. +The `os.ReadFile` function attempts to resolve the path relative to the root of your project directory. If a matching file is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. With a file named README.md in the root of your project directory: @@ -38,4 +38,4 @@ This is **bold** text. Note that `os.ReadFile` returns raw (uninterpreted) content. -For more information on using `readDir` and `readFile` in your templates, see [Local File Templates]({{< relref "/templates/files" >}}). +For more information on using `readDir` and `readFile` in your templates, see [Local File Templates](/templates/files). diff --git a/content/en/functions/site.md b/content/en/functions/site.md index d4b8e417c..30b8d6505 100644 --- a/content/en/functions/site.md +++ b/content/en/functions/site.md @@ -20,4 +20,4 @@ draft: false aliases: [] --- -`site` is a global function which returns the same data as the `.Site` page method. See: [Site Variables]({{< relref "/variables/site" >}}). +`site` is a global function which returns the same data as the `.Site` page method. See: [Site Variables](/variables/site). diff --git a/content/en/functions/split.md b/content/en/functions/split.md index 51d1a64f7..8d54521b6 100644 --- a/content/en/functions/split.md +++ b/content/en/functions/split.md @@ -26,5 +26,5 @@ Examples: {{% note %}} -`split` essentially does the opposite of [delimit]({{< ref "functions/delimit" >}}). While `split` creates a slice from a string, `delimit` creates a string from a slice. +`split` essentially does the opposite of [delimit](/functions/delimit). While `split` creates a slice from a string, `delimit` creates a string from a slice. {{% /note %}} diff --git a/content/en/functions/where.md b/content/en/functions/where.md index b7d31f645..a06ee020f 100644 --- a/content/en/functions/where.md +++ b/content/en/functions/where.md @@ -115,7 +115,7 @@ You can also put the returned value of the `where` clauses into a variable: Using `first` and `where` together can be very powerful. Below snippet gets a list of posts only from [**main -sections**]({{< relref "where.md#mainsections" >}}), sorts it using the [default +sections**](#mainsections), sorts it using the [default ordering](/templates/lists/) for lists (i.e., `weight => date`), and then ranges through only the first 5 posts in that list: diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index 99d11fbb1..a6985edbf 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -321,7 +321,7 @@ See [Configure Media Types](/templates/output-formats/#media-types). ### menus -See [Add Non-content Entries to a Menu](/content-management/menus/#add-non-content-entries-to-a-menu). +See [Menus](/content-management/menus/#define-in-site-configuration). ### minify @@ -419,7 +419,7 @@ Maximum number of items in the RSS feed. ### sectionPagesMenu -See ["Section Menu for Lazy Bloggers"](/templates/menu-templates/#section-menu-for-lazy-bloggers). +See [Menus](/content-management/menus/#define-in-site-configuration). ### security diff --git a/content/en/getting-started/directory-structure.md b/content/en/getting-started/directory-structure.md index b2cd0e447..3c74a3d58 100644 --- a/content/en/getting-started/directory-structure.md +++ b/content/en/getting-started/directory-structure.md @@ -85,7 +85,7 @@ From **Hugo 0.31** you can have multiple static directories. [`layouts`]: /templates/ [`static`]: /content-management/static-files/ [`resources`]: /getting-started/configuration/#configure-file-caches -[lists]: /templates/list/ +[lists]: /templates/lists/ [pagevars]: /variables/page/ [partials]: /templates/partials/ [searchconsole]: https://support.google.com/webmasters/answer/9008080#zippy=%2Chtml-file-upload diff --git a/content/en/hosting-and-deployment/hosting-on-netlify.md b/content/en/hosting-and-deployment/hosting-on-netlify.md index 254f993dc..ac9777a3a 100644 --- a/content/en/hosting-and-deployment/hosting-on-netlify.md +++ b/content/en/hosting-and-deployment/hosting-on-netlify.md @@ -101,7 +101,7 @@ See [this blog post](https://www.netlify.com/blog/2017/04/11/netlify-plus-hugo-0 ## Use Hugo Themes with Netlify -The [`git clone` method for installing themes][installthemes] is not supported by Netlify. If you were to use `git clone`, it would require you to recursively remove the `.git` subdirectory from the theme folder and would therefore prevent compatibility with future versions of the theme. +The `git clone` method for installing themes is not supported by Netlify. If you were to use `git clone`, it would require you to recursively remove the `.git` subdirectory from the theme folder and would therefore prevent compatibility with future versions of the theme. A *better* approach is to install a theme as a proper git submodule. You can [read the GitHub documentation for submodules][ghsm] or those found on [Git's website][gitsm] for more information, but the command is similar to that of `git clone`: @@ -147,7 +147,6 @@ You now have a live website served over HTTPS, distributed through CDN, and conf [gitsm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules [httpscustom]: https://www.netlify.com/docs/ssl/ [hugoversions]: https://github.com/netlify/build-image/blob/master/Dockerfile#L216 -[installthemes]: /themes/installing/ [netlify]: https://www.netlify.com/ [netlifysignup]: https://app.netlify.com/signup [Quick Start]: /getting-started/quick-start/ diff --git a/content/en/hugo-pipes/transform-to-css.md b/content/en/hugo-pipes/transform-to-css.md index cc15bc2a6..4fd804b2b 100644 --- a/content/en/hugo-pipes/transform-to-css.md +++ b/content/en/hugo-pipes/transform-to-css.md @@ -57,5 +57,5 @@ includePaths [string slice] ``` {{% note %}} -Setting `outputStyle` to `compressed` will handle Sass/SCSS files minification better than the more generic [`resources.Minify`]({{< ref "minification">}}). +Setting `outputStyle` to `compressed` will handle Sass/SCSS files minification better than the more generic [`resources.Minify`](/hugo-pipes/minification). {{% /note %}} diff --git a/content/en/news/0.11-relnotes/index.md b/content/en/news/0.11-relnotes/index.md index dc4115fe0..884e43449 100644 --- a/content/en/news/0.11-relnotes/index.md +++ b/content/en/news/0.11-relnotes/index.md @@ -9,15 +9,15 @@ categories: ["Releases"] - [Live Reload](/getting-started/usage/#livereload). Hugo will automatically reload the browser when the build is complete - Theme engine w/[Theme Repository](http://github.com/spf13/hugoThemes) - [Menu system](/content-management/menus/) with support for active page -- [Builders](/extras/builders) to quickly create a new site, content or theme -- [XML sitemap](/templates/sitemap) generation -- [Integrated Disqus](/extras/comments) support -- Streamlined [template organization](/templates/overview) +- [Builders](/commands/hugo_new) to quickly create a new site, content or theme +- [XML sitemap](/templates/sitemap-template) generation +- [Integrated Disqus](/content-management/comments) support +- Streamlined [template organization](/templates/introduction) - Brand new docs site - Support for publishDate which allows for posts to be dated in the future -- More [sort](/functions/sort/#readout) options +- More [sort](/functions/sort) options - Logging support - Much better error handling - More informative verbose output -- Renamed Indexes > [Taxonomies](/taxonomies/overview) +- Renamed Indexes > [Taxonomies](/content-management/taxonomies/) - Renamed Chrome > [Partials](/templates/partials) diff --git a/content/en/news/0.12-relnotes/index.md b/content/en/news/0.12-relnotes/index.md index 0c62ea5b1..0209c5811 100644 --- a/content/en/news/0.12-relnotes/index.md +++ b/content/en/news/0.12-relnotes/index.md @@ -14,16 +14,16 @@ This release represents over 90 code commits from 28 different contributors. - 10 [new themes](https://github.com/spf13/hugoThemes) created by the community - fully themable [partials](/templates/partials/) - [404 template](/templates/404/) support in themes -- [shortcode](/extras/shortcodes/) support in themes +- [shortcode](/content-management/shortcodes/) support in themes - [views](/templates/views/) support in themes -- inner [shortcode](/extras/shortcodes/) content now treated as markdown +- inner [shortcode](/content-management/shortcodes) content now treated as markdown - support for header ids in markdown (# header {#myid}) - [where](/functions/where/) template function to filter lists of content, taxonomies, etc. -- [groupby](/templates/list) & [groupbydate](/templates/list) methods to group pages -- taxonomy [pages list](/taxonomies/methods/) now sortable, filterable, limitable & groupable +- [groupby](/templates/lists#by-page-field) & [groupbydate](/templates/lists/#by-date-1) methods to group pages +- taxonomy [pages list](/templates/taxonomy-templates#taxonomy-methods) now sortable, filterable, limitable & groupable - general cleanup to taxonomies & documentation to make it more clear and consistent - [showcase](/showcase/) returned and has been expanded - pretty links now always have trailing slashes -- [baseurl](/overview/configuration/) can now include a subdirectory +- [baseurl](/getting-started/configuration#baseurl) can now include a subdirectory - better feedback about draft & future post rendering - a variety of improvements to [the website](/) diff --git a/content/en/news/0.14-relnotes/index.md b/content/en/news/0.14-relnotes/index.md index 9b7928b47..d70d217eb 100644 --- a/content/en/news/0.14-relnotes/index.md +++ b/content/en/news/0.14-relnotes/index.md @@ -16,7 +16,7 @@ This release represents over **240 contributions by 36 contributors** to the mai Big shout out to [@bep](https://github.com/bep) who led the development of Hugo this release, [@anthonyfok](https://github.com/anthonyfok), [@eparis](https://github.com/eparis), [@SchumacherFM](https://github.com/SchumacherFM), [@RickCogley](https://github.com/RickCogley) & [@mdhender](https://github.com/mdhender) for their significant contributions and [@tatsushid](https://github.com/tatsushid) for his continuous improvements to the templates. Also a big thanks to all the theme creators. 11 new themes have been added since last release and the [hugoThemes repo now has previews of all of them](https://github.com/spf13/hugoThemes/blob/master/README.md#theme-list). Hugo also depends on a lot of other great projects. A big thanks to all of our dependencies inclding: -[cobra](https://github.com/spf13/cobra), [viper](https://github.com/spf13/viper), [blackfriday](https://github.com/russross/blackfriday), [pflag](https://github.com/spf13/pflag), [HugoThemes](https://github.com/spf13/hugothemes), [BurntSushi/Toml](github.com/BurntSushi/toml), [goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library. +[cobra](https://github.com/spf13/cobra), [viper](https://github.com/spf13/viper), [blackfriday](https://github.com/russross/blackfriday), [pflag](https://github.com/spf13/pflag), [HugoThemes](https://github.com/spf13/hugothemes), [BurntSushi/Toml](https://github.com/BurntSushi/toml), [goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library. ## New features - Support for all file types in content directory. diff --git a/content/en/news/0.20-relnotes/index.md b/content/en/news/0.20-relnotes/index.md index 27e4d48f7..2f598a33f 100644 --- a/content/en/news/0.20-relnotes/index.md +++ b/content/en/news/0.20-relnotes/index.md @@ -9,7 +9,7 @@ author: bep aliases: [/0-20/] --- -Hugo `0.20` introduces the powerful and long sought after feature [Custom Output Formats](http://gohugo.io/extras/output-formats/); Hugo isn’t just that “static HTML with an added RSS feed” anymore. _Say hello_ to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few ( [#2828](//github.com/gohugoio/hugo/issues/2828) ). +Hugo `0.20` introduces the powerful and long sought after feature [Custom Output Formats](http://gohugo.io/extras/output-formats/); Hugo isn’t just that “static HTML with an added RSS feed” anymore. _Say hello_ to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few ( [#2828](https://github.com/gohugoio/hugo/issues/2828) ). This release represents **over 180 contributions by over 30 contributors** to the main Hugo code base. Since last release Hugo has **gained 1100 stars, 20 new contributors and 5 additional themes.** @@ -19,15 +19,15 @@ Hugo now has: * 495+ contributors * 156+ themes -[@bep](//github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. Also a big shoutout to [@digitalcraftsman](//github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition, and [@moorereason](//github.com/moorereason) and [@bogem](//github.com/bogem) for their ongoing contributions. +[@bep](https://github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. Also a big shoutout to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition, and [@moorereason](https://github.com/moorereason) and [@bogem](https://github.com/bogem) for their ongoing contributions. ## Other Highlights -[@bogem](//github.com/bogem) has also contributed TOML as an alternative and much simpler format for language/i18n files ([#3200](//github.com/gohugoio/hugo/issues/3200)). A feature you will appreciate when you start to work on larger translations. +[@bogem](https://github.com/bogem) has also contributed TOML as an alternative and much simpler format for language/i18n files ([#3200](https://github.com/gohugoio/hugo/issues/3200)). A feature you will appreciate when you start to work on larger translations. -Also, there have been some important updates in the Emacs Org-mode handling: [@chaseadamsio](//github.com/chaseadamsio) has fixed the newline-handling ( [#3126](//github.com/gohugoio/hugo/issues/3126) ) and [@clockoon](//github.com/clockoon) has added basic footnote support. +Also, there have been some important updates in the Emacs Org-mode handling: [@chaseadamsio](https://github.com/chaseadamsio) has fixed the newline-handling ( [#3126](https://github.com/gohugoio/hugo/issues/3126) ) and [@clockoon](https://github.com/clockoon) has added basic footnote support. -Worth mentioning is also the ongoing work that [@rdwatters](//github.com/rdwatters) and [@budparr](//github.com/budparr) is doing to re-do the [gohugo.io](https://gohugo.io/) site, including a total restructuring and partial rewrite of the documentation. It is getting close to finished, and it looks fantastic! +Worth mentioning is also the ongoing work that [@rdwatters](https://github.com/rdwatters) and [@budparr](https://github.com/budparr) is doing to re-do the [gohugo.io](https://gohugo.io/) site, including a total restructuring and partial rewrite of the documentation. It is getting close to finished, and it looks fantastic! ## Notes @@ -35,38 +35,38 @@ Worth mentioning is also the ongoing work that [@rdwatters](//github.com/rdwatte * The deprecated `.RSSlink` is now removed. Use `.RSSLink`. * `RSSUri` is deprecated and will be removed in a future Hugo version, replace it with an output format definition. * The deprecated `.Site.GetParam` is now removed, use `.Site.Param`. -* Hugo does no longer append missing trailing slash to `baseURL` set as a command line parameter, making it consistent with how it behaves from site config. [#3262](//github.com/gohugoio/hugo/issues/3262) +* Hugo does no longer append missing trailing slash to `baseURL` set as a command line parameter, making it consistent with how it behaves from site config. [#3262](https://github.com/gohugoio/hugo/issues/3262) ## Enhancements * Hugo `0.20` is built with Go 1.8.1. -* Add `.Site.Params.mainSections` that defaults to the section with the most pages. Plan is to get themes to use this instead of the hardcoded `blog` in `where` clauses. [#3206](//github.com/gohugoio/hugo/issues/3206) -* File extension is now configurable. [#320](//github.com/gohugoio/hugo/issues/320) -* Improve `markdownify` template function performance. [#3292](//github.com/gohugoio/hugo/issues/3292) -* Add taxonomy terms’ pages to `.Data.Pages` [#2826](//github.com/gohugoio/hugo/issues/2826) +* Add `.Site.Params.mainSections` that defaults to the section with the most pages. Plan is to get themes to use this instead of the hardcoded `blog` in `where` clauses. [#3206](https://github.com/gohugoio/hugo/issues/3206) +* File extension is now configurable. [#320](https://github.com/gohugoio/hugo/issues/320) +* Improve `markdownify` template function performance. [#3292](https://github.com/gohugoio/hugo/issues/3292) +* Add taxonomy terms’ pages to `.Data.Pages` [#2826](https://github.com/gohugoio/hugo/issues/2826) * Change `RSS` description from full `.Content` to `.Summary`. -* Ignore “.” dirs in `hugo --cleanDestinationDir` [#3202](//github.com/gohugoio/hugo/issues/3202) -* Allow `jekyll import` to accept both `2006-01-02` and `2006-1-2` date format [#2738](//github.com/gohugoio/hugo/issues/2738) -* Raise the default `rssLimit` [#3145](//github.com/gohugoio/hugo/issues/3145) -* Unify section list vs single template lookup order [#3116](//github.com/gohugoio/hugo/issues/3116) -* Allow `apply` to be used with the built-in Go template funcs `print`, `printf` and `println`. [#3139](//github.com/gohugoio/hugo/issues/3139) +* Ignore “.” dirs in `hugo --cleanDestinationDir` [#3202](https://github.com/gohugoio/hugo/issues/3202) +* Allow `jekyll import` to accept both `2006-01-02` and `2006-1-2` date format [#2738](https://github.com/gohugoio/hugo/issues/2738) +* Raise the default `rssLimit` [#3145](https://github.com/gohugoio/hugo/issues/3145) +* Unify section list vs single template lookup order [#3116](https://github.com/gohugoio/hugo/issues/3116) +* Allow `apply` to be used with the built-in Go template funcs `print`, `printf` and `println`. [#3139](https://github.com/gohugoio/hugo/issues/3139) ## Fixes -* Fix deadlock in `getJSON` [#3211](//github.com/gohugoio/hugo/issues/3211) -* Make sure empty terms pages are created. [#2977](//github.com/gohugoio/hugo/issues/2977) -* Fix base template lookup order for sections [#2995](//github.com/gohugoio/hugo/issues/2995) +* Fix deadlock in `getJSON` [#3211](https://github.com/gohugoio/hugo/issues/3211) +* Make sure empty terms pages are created. [#2977](https://github.com/gohugoio/hugo/issues/2977) +* Fix base template lookup order for sections [#2995](https://github.com/gohugoio/hugo/issues/2995) * `URL` fixes: - * Fix pagination URLs with `baseURL` with sub-root and `canonifyUrls=false` [#1252](//github.com/gohugoio/hugo/issues/1252) - * Fix pagination URL for resources with “.” in name [#2110](//github.com/gohugoio/hugo/issues/2110) [#2374](//github.com/gohugoio/hugo/issues/2374) [#1885](//github.com/gohugoio/hugo/issues/1885) - * Handle taxonomy names with period [#3169](//github.com/gohugoio/hugo/issues/3169) - * Handle `uglyURLs` ambiguity in `Permalink` [#3102](//github.com/gohugoio/hugo/issues/3102) - * Fix `Permalink` for language-roots wrong when `uglyURLs` is `true` [#3179](//github.com/gohugoio/hugo/issues/3179) - * Fix misc case issues for `URLs` [#1641](//github.com/gohugoio/hugo/issues/1641) - * Fix for taxonomies URLs when `uglyUrls=true` [#1989](//github.com/gohugoio/hugo/issues/1989) - * Fix empty `RSSLink` for list pages with content page. [#3131](//github.com/gohugoio/hugo/issues/3131) -* Correctly identify regular pages on the form “my_index_page.md” [#3234](//github.com/gohugoio/hugo/issues/3234) -* `Exit -1` on `ERROR` in global logger [#3239](//github.com/gohugoio/hugo/issues/3239) -* Document hugo `help command` [#2349](//github.com/gohugoio/hugo/issues/2349) -* Fix internal `Hugo` version handling for bug fix releases. [#3025](//github.com/gohugoio/hugo/issues/3025) -* Only return `RSSLink` for pages that actually have a RSS feed. [#1302](//github.com/gohugoio/hugo/issues/1302) \ No newline at end of file + * Fix pagination URLs with `baseURL` with sub-root and `canonifyUrls=false` [#1252](https://github.com/gohugoio/hugo/issues/1252) + * Fix pagination URL for resources with “.” in name [#2110](https://github.com/gohugoio/hugo/issues/2110) [#2374](https://github.com/gohugoio/hugo/issues/2374) [#1885](https://github.com/gohugoio/hugo/issues/1885) + * Handle taxonomy names with period [#3169](https://github.com/gohugoio/hugo/issues/3169) + * Handle `uglyURLs` ambiguity in `Permalink` [#3102](https://github.com/gohugoio/hugo/issues/3102) + * Fix `Permalink` for language-roots wrong when `uglyURLs` is `true` [#3179](https://github.com/gohugoio/hugo/issues/3179) + * Fix misc case issues for `URLs` [#1641](https://github.com/gohugoio/hugo/issues/1641) + * Fix for taxonomies URLs when `uglyUrls=true` [#1989](https://github.com/gohugoio/hugo/issues/1989) + * Fix empty `RSSLink` for list pages with content page. [#3131](https://github.com/gohugoio/hugo/issues/3131) +* Correctly identify regular pages on the form “my_index_page.md” [#3234](https://github.com/gohugoio/hugo/issues/3234) +* `Exit -1` on `ERROR` in global logger [#3239](https://github.com/gohugoio/hugo/issues/3239) +* Document hugo `help command` [#2349](https://github.com/gohugoio/hugo/issues/2349) +* Fix internal `Hugo` version handling for bug fix releases. [#3025](https://github.com/gohugoio/hugo/issues/3025) +* Only return `RSSLink` for pages that actually have a RSS feed. [#1302](https://github.com/gohugoio/hugo/issues/1302) diff --git a/content/en/news/0.20.1-relnotes/index.md b/content/en/news/0.20.1-relnotes/index.md index 109737bb3..563f2e031 100644 --- a/content/en/news/0.20.1-relnotes/index.md +++ b/content/en/news/0.20.1-relnotes/index.md @@ -9,7 +9,7 @@ author: bep aliases: [/0-20-1/] --- -* Fix logic for base template in work dir vs in the theme [#3323](//github.com/gohugoio/hugo/issues/3323) -* camelCased templates (partials, shortcodes etc.) not found [#3333](//github.com/gohugoio/hugo/issues/3333) -* Live-reload fails with `_index.md` with paginator [#3315](//github.com/gohugoio/hugo/issues/3315) -* `rssURI` WARNING always shown [#3319](//github.com/gohugoio/hugo/issues/3319) \ No newline at end of file +* Fix logic for base template in work dir vs in the theme [#3323](https://github.com/gohugoio/hugo/issues/3323) +* camelCased templates (partials, shortcodes etc.) not found [#3333](https://github.com/gohugoio/hugo/issues/3333) +* Live-reload fails with `_index.md` with paginator [#3315](https://github.com/gohugoio/hugo/issues/3315) +* `rssURI` WARNING always shown [#3319](https://github.com/gohugoio/hugo/issues/3319) diff --git a/content/en/news/0.20.2-relnotes/index.md b/content/en/news/0.20.2-relnotes/index.md index 2e67d20ea..214fe01a5 100644 --- a/content/en/news/0.20.2-relnotes/index.md +++ b/content/en/news/0.20.2-relnotes/index.md @@ -9,7 +9,7 @@ author: bep aliases: [/0-20-2/] --- -Hugo `0.20.2` adds support for plain text partials included into `HTML` templates. This was a side-effect of the big new [Custom Output Format](https://gohugo.io/extras/output-formats/) feature in `0.20`, and while the change was intentional and there was an ongoing discussion about fixing it in [#3273](//github.com/gohugoio/hugo/issues/3273), it did break some themes. There were valid workarounds for these themes, but we might as well get it right. +Hugo `0.20.2` adds support for plain text partials included into `HTML` templates. This was a side-effect of the big new [Custom Output Format](https://gohugo.io/extras/output-formats/) feature in `0.20`, and while the change was intentional and there was an ongoing discussion about fixing it in [#3273](https://github.com/gohugoio/hugo/issues/3273), it did break some themes. There were valid workarounds for these themes, but we might as well get it right. The most obvious use case for this is inline `CSS` styles, which you now can do without having to name your partials with a `html` suffix. @@ -44,4 +44,4 @@ Add “CSS” to your home page’s `outputs` list, create the template `/layout {{ with .OutputFormats.Get "css" }} - {{ end }}` \ No newline at end of file + {{ end }}` diff --git a/content/en/news/0.63.0-relnotes/index.md b/content/en/news/0.63.0-relnotes/index.md index 899dfdb39..2410d3dcd 100644 --- a/content/en/news/0.63.0-relnotes/index.md +++ b/content/en/news/0.63.0-relnotes/index.md @@ -6,8 +6,6 @@ description: "In Hugo 0.63 we have improved the base template lookup logic, and categories: ["Releases"] --- -**Note:** There is already a [patch release](/news/0.63.1-relnotes/) with some fixes. - Hugo `0.63` is, in general, **considerably faster and more memory effective** (see the site-building benchmarks below comparing it to `v0.62`). Not that we are particularly concerned about Hugo's build speed. We leave that to others. But we would hate if it got slower, so we have a comprehensive benchmark suite. And when we needed to simplify the template handling code to solve a concurrency issue, it also became more effective. And as a bonus, we also finally got the [base template lookup order](https://gohugo.io/templates/base/#base-template-lookup-order) that you really, really wanted! ```bash @@ -119,8 +117,3 @@ Hugo now has: * Fix 0.62.1 server rebuild slowdown regression [17af79a0](https://github.com/gohugoio/hugo/commit/17af79a03e249a731cf5634ffea23ca00774333d) [@bep](https://github.com/bep) [#6784](https://github.com/gohugoio/hugo/issues/6784) * Fix blog not building [d61bee5e](https://github.com/gohugoio/hugo/commit/d61bee5e0916b5d2b388e66ef85c336312a21a06) [@colonelpopcorn](https://github.com/colonelpopcorn) [#6752](https://github.com/gohugoio/hugo/issues/6752) - - - - - diff --git a/content/en/news/lets-celebrate-hugos-5th-birthday/index.md b/content/en/news/lets-celebrate-hugos-5th-birthday/index.md index 9912027b5..08e1fbabd 100644 --- a/content/en/news/lets-celebrate-hugos-5th-birthday/index.md +++ b/content/en/news/lets-celebrate-hugos-5th-birthday/index.md @@ -78,7 +78,7 @@ Related to this is also to add a configurable "Markdown URL rewriter", which sho These are the items that first come to mind if you ask me to think even further ahead: 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](/hugo-modules/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". {{< imgproc graph-themes Fit "600x400" >}} diff --git a/content/en/templates/data-templates.md b/content/en/templates/data-templates.md index 1586d3a54..30f708644 100644 --- a/content/en/templates/data-templates.md +++ b/content/en/templates/data-templates.md @@ -52,7 +52,7 @@ Data file|Template code ## Data Files in Themes -Data Files can also be used in [Hugo themes][themes]. +Data Files can also be used in themes. However, note that the theme data files are merged with the project directory taking precedence. That is, Given two files with the same name and relative path, the data in the file in the root project `data` directory will override the data from the file in the `themes//data` directory *for keys that are duplicated*). @@ -258,14 +258,13 @@ If you change any local file and the LiveReload is triggered, Hugo will read the [config]: /getting-started/configuration/ [csv]: https://tools.ietf.org/html/rfc4180 -[customize]: /themes/customizing/ +[customize]: /hugo-modules/theme-components/ [json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation" [LiveReload]: /getting-started/usage/#livereload [lookup]: /templates/lookup-order/ [markdownify]: /functions/markdownify/ [OAuth]: https://en.wikipedia.org/wiki/OAuth [partials]: /templates/partials/ -[themes]: /themes/ [toml]: https://github.com/toml-lang/toml [variadic]: https://en.wikipedia.org/wiki/Variadic_function [vars]: /variables/ diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 5145b04be..14ebbda28 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -31,8 +31,7 @@ Go Templates are HTML files with the addition of [variables][variables] and [fun ### Access a Predefined Variable A _predefined variable_ could be a variable already existing in the -current scope (like the `.Title` example in the [Variables]({{< relref -"#variables" >}}) section below) or a custom variable (like the +current scope (like the `.Title` example in the [Variables](#variables) section below) or a custom variable (like the `$address` example in that same section). @@ -529,7 +528,7 @@ The templating engine will strip the content within the HTML comment, but will f ## Hugo Parameters -Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format]({{< ref "front-matter.md#front-matter-formats" >}}). +Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format](/content-management/front-matter#front-matter-formats). ## Use Content (`Page`) Parameters @@ -663,19 +662,19 @@ If you restrict front matter to the TOML format, and omit quotation marks surrou {{< /code >}} -[config]: {{< relref "getting-started/configuration" >}} [dotdoc]: https://golang.org/pkg/text/template/#hdr-Variables -[first]: {{< relref "functions/first" >}} -[front matter]: {{< relref "content-management/front-matter" >}} -[functions]: {{< relref "functions" >}} -[internal templates]: {{< relref "templates/internal" >}} -[isset]: {{< relref "functions/isset" >}} -[math]: {{< relref "functions/math" >}} -[pagevars]: {{< relref "variables/page" >}} -[param]: {{< relref "functions/param" >}} -[partials]: {{< relref "templates/partials" >}} -[relpermalink]: {{< relref "variables/page#page-variables" >}} -[safehtml]: {{< relref "functions/safehtml" >}} -[sitevars]: {{< relref "variables/site" >}} -[variables]: {{< relref "variables" >}} -[with]: {{< relref "functions/with" >}} +[config]: /getting-started/configuration +[first]: /functions/first +[front matter]: /content-management/front-matter +[functions]: /functions +[internal templates]: /templates/internal +[isset]: /functions/isset +[math]: /functions/math +[pagevars]: /variables/page +[param]: /functions/param +[partials]: /templates/partials +[relpermalink]: /variables/page#page-variables +[safehtml]: /functions/safehtml +[sitevars]: /variables/site +[variables]: /variables +[with]: /functions/with diff --git a/content/en/templates/lists.md b/content/en/templates/lists/index.md similarity index 99% rename from content/en/templates/lists.md rename to content/en/templates/lists/index.md index 03847707b..c78555d39 100644 --- a/content/en/templates/lists.md +++ b/content/en/templates/lists/index.md @@ -35,7 +35,7 @@ For template lookup order, see [Template Lookup](/templates/lookup-order/). The idea of a list page comes from the [hierarchical mental model of the web][mentalmodel] and is best demonstrated visually: -[![Image demonstrating a hierarchical website sitemap.](/images/site-hierarchy.svg)](/images/site-hierarchy.svg) +[![Image demonstrating a hierarchical website sitemap.](site-hierarchy.svg)](site-hierarchy.svg) ## List Defaults diff --git a/static/images/site-hierarchy.svg b/content/en/templates/lists/site-hierarchy.svg similarity index 100% rename from static/images/site-hierarchy.svg rename to content/en/templates/lists/site-hierarchy.svg diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md index 0498c7e64..1aec917eb 100644 --- a/content/en/templates/output-formats.md +++ b/content/en/templates/output-formats.md @@ -251,7 +251,7 @@ The partial below is a plain text template (Output Format is `CSV`, and since th [base]: /templates/base/ [config]: /getting-started/configuration/ -[lookup order]: /templates/lookup/ +[lookup order]: /templates/lookup-order/ [media type]: https://en.wikipedia.org/wiki/Media_type [partials]: /templates/partials/ [page_kinds]: /templates/section-templates/#page-kinds diff --git a/content/en/templates/partials.md b/content/en/templates/partials.md index 1899f87d5..85aa33a50 100644 --- a/content/en/templates/partials.md +++ b/content/en/templates/partials.md @@ -197,10 +197,10 @@ The following `footer.html` partial template is used for [spf13.com](https://spf {{< /code >}} -[context]: /templates/introduction/ "The most easily overlooked concept to understand about Go templating is how the dot always refers to the current context." -[customize]: /themes/customizing/ "Hugo provides easy means to customize themes as long as users are familiar with Hugo's template lookup order." -[listtemps]: /templates/lists/ "To effectively leverage Hugo's system, see how Hugo handles list pages, where content for sections, taxonomies, and the homepage are listed and ordered." -[lookup order]: /templates/lookup-order/ "To keep your templating dry, read the documentation on Hugo's lookup order." -[partialcached]: /functions/partialcached/ "Use the partial cached function to improve build times in cases where Hugo can cache partials that don't need to be rendered with every page." -[singletemps]: /templates/single-page-templates/ "The most common form of template in Hugo is the single content template. Read the docs on how to create templates for individual pages." +[context]: /templates/introduction/ +[customize]: /hugo-modules/theme-components/ +[listtemps]: /templates/lists/ +[lookup order]: /templates/lookup-order/ +[partialcached]: /functions/partialcached/ +[singletemps]: /templates/single-page-templates/ [themes]: /themes/ diff --git a/content/en/templates/sitemap-template.md b/content/en/templates/sitemap-template.md index 9fc817020..b9469e0fa 100644 --- a/content/en/templates/sitemap-template.md +++ b/content/en/templates/sitemap-template.md @@ -79,7 +79,7 @@ You may disable sitemap generation in your site configuration: disableKinds = ['sitemap'] {{}} -[`publishDir`]: {{< relref "getting-started/configuration#publishdir" >}} +[`publishDir`]: /getting-started/configuration#publishdir [change frequency]: [priority]: [sitemap protocol]: diff --git a/content/en/templates/taxonomy-templates.md b/content/en/templates/taxonomy-templates.md index e9fc80525..86abeb678 100644 --- a/content/en/templates/taxonomy-templates.md +++ b/content/en/templates/taxonomy-templates.md @@ -177,16 +177,16 @@ There are two different templates that the use of taxonomies will require you to Both templates are covered in detail in the templates section. -A [list template](/templates/list/) is any template that will be used to render multiple pieces of content in a single html page. This template will be used to generate all the automatically created taxonomy pages. +A [list template](/templates/lists/) is any template that will be used to render multiple pieces of content in a single html page. This template will be used to generate all the automatically created taxonomy pages. -A [taxonomy terms template](/templates/terms/) is a template used to +A [taxonomy template](/templates/taxonomy-templates/) is a template used to generate the list of terms for a given template. There are four common ways you can display the data in your taxonomies in addition to the automatic taxonomy pages created by hugo -using the [list templates](/templates/list/): +using the [list templates](/templates/lists/): 1. For a given piece of content, you can list the terms attached 2. For a given piece of content, you can list other content with the same @@ -315,7 +315,7 @@ This example will list all taxonomies and their terms, as well as all the conten ## `.Site.GetPage` for Taxonomies -Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to get all the pages associated with a particular taxonomy term using a terse syntax. The following ranges over the full list of tags on your site and links to each of the individual taxonomy pages for each term without having to use the more fragile URL construction of the ["List All Site Tags" example above]({{< relref "#example-list-all-site-tags" >}}): +Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to get all the pages associated with a particular taxonomy term using a terse syntax. The following ranges over the full list of tags on your site and links to each of the individual taxonomy pages for each term without having to use the more fragile URL construction of the ["List All Site Tags" example above](#example-list-all-site-tags): {{< code file="links-to-all-tags.html" >}} {{ $taxo := "tags" }} diff --git a/content/en/troubleshooting/build-performance.md b/content/en/troubleshooting/build-performance.md index ea31ef84b..e17f41072 100644 --- a/content/en/troubleshooting/build-performance.md +++ b/content/en/troubleshooting/build-performance.md @@ -91,4 +91,4 @@ parameters to `partialCached` beyond the initial context. See the `partialCached` documentation for more details. {{% /tip %}} -[partialCached]:{{< ref "/functions/partialCached.md" >}} +[partialCached]: /functions/partialCached diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 681f2d1f7..02eb6932d 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -29,7 +29,7 @@ The following is a list of page-level variables. Many of these will be defined i : aliases of this page .Ancestors -: get the ancestors of each page, simplify [breadcrumb navigation]({{< relref "content-management/sections#example-breadcrumb-navigation" >}}) implementation complexity +: get the ancestors of each page, simplify [breadcrumb navigation](/content-management/sections#example-breadcrumb-navigation) implementation complexity .BundleType : the [bundle] type: `leaf`, `branch`, or an empty string if the page is not a bundle. @@ -107,7 +107,7 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. .Pages : a collection of associated pages. This value will be `nil` within - the context of regular content pages. See [`.Pages`]({{< relref "page.md#pages" >}}). + the context of regular content pages. See [`.Pages`](#pages). .Permalink : the Permanent link for this page; see [Permalinks](/content-management/urls/) @@ -355,6 +355,6 @@ The top-level key will be preferred. Therefore, the following method, when appli [gitinfo]: /variables/git/ [File Variables]: /variables/files/ -[bundle]: {{< relref "content-management/page-bundles" >}} +[bundle]: /content-management/page-bundles [scratch]: /functions/scratch [store]: /functions/store diff --git a/content/en/variables/site.md b/content/en/variables/site.md index a78244db0..fb113198c 100644 --- a/content/en/variables/site.md +++ b/content/en/variables/site.md @@ -84,10 +84,10 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo : all the menus in the site. .Site.Pages -: array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See [`.Site.Pages`]({{< relref "site.md#site-pages" >}}). +: array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See [`.Site.Pages`](#site-pages). .Site.RegularPages -: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`. See [`.Site.Pages`]({{< relref "site.md#site-pages" >}}). +: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`. See [`.Site.Pages`](#site-pages). .Site.Sections : top-level directories of the site. From 1bba4cefb0866a5e79483b0262de7e6b064dcd9d Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 26 Mar 2023 08:15:28 -0700 Subject: [PATCH 34/95] Fix links (#2029) --- content/en/content-management/multilingual.md | 2 +- content/en/hosting-and-deployment/hosting-on-github/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 3fb5139de..91099511e 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -511,7 +511,7 @@ products = 'Produkte' services = 'Leistungen' {{< / code-toggle >}} -[example menu template]: http://localhost:1313/templates/menu-templates/#example +[example menu template]: /templates/menu-templates/#example [automatically]: /content-management/menus/#define-automatically [in front matter]: /content-management/menus/#define-in-front-matter [in site configuration]: /content-management/menus/#define-in-site-configuration diff --git a/content/en/hosting-and-deployment/hosting-on-github/index.md b/content/en/hosting-and-deployment/hosting-on-github/index.md index 0ccfd840d..fb28922f1 100644 --- a/content/en/hosting-and-deployment/hosting-on-github/index.md +++ b/content/en/hosting-and-deployment/hosting-on-github/index.md @@ -23,7 +23,7 @@ GitHub provides free and fast static hosting over SSL for personal, organization [Create a GitHub account]: https://github.com/signup [Install Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git -[Create a Hugo site]: http://localhost:1313/getting-started/quick-start/ +[Create a Hugo site]: /getting-started/quick-start/ ## Types of sites From 6ddeab4f8017a5cc1294d5c10965955a6a972883 Mon Sep 17 00:00:00 2001 From: Will Faught Date: Mon, 27 Mar 2023 10:18:04 -0700 Subject: [PATCH 35/95] Add missing go-html-template code fence type (#2030) --- content/en/functions/path.Base.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/functions/path.Base.md b/content/en/functions/path.Base.md index a6bfc2bd5..fff411ad3 100644 --- a/content/en/functions/path.Base.md +++ b/content/en/functions/path.Base.md @@ -22,7 +22,7 @@ If `PATH` is empty, `.` is returned. **Note:** On Windows, `PATH` is converted to slash (`/`) separators. -``` +```go-html-template {{ path.Base "a/news.html" }} → "news.html" {{ path.Base "news.html" }} → "news.html" {{ path.Base "a/b/c" }} → "c" From fb33bf59bd75dfe5464b8f73fe2d3f8bcad523e4 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 13:09:24 -0700 Subject: [PATCH 36/95] Update code-toggle shortcode Simplify bool param logic --- layouts/shortcodes/code-toggle.html | 131 ++++++++++++---------------- 1 file changed, 55 insertions(+), 76 deletions(-) diff --git a/layouts/shortcodes/code-toggle.html b/layouts/shortcodes/code-toggle.html index 113d85a1f..b4cfaaa20 100644 --- a/layouts/shortcodes/code-toggle.html +++ b/layouts/shortcodes/code-toggle.html @@ -1,87 +1,66 @@ {{- /* Renders syntax-highlighted configuration data in JSON, TOML, and YAML formats. -@param {string} config - Section of site.Data.docs.config to render. - Example: markup.highlight - Default: "" -@param {bool} copy - Display a copy button. - Default: true -@param {string} file - File name to display above the rendered code. - Default: "" -@param {bool} fm - Does Inner represent front matter? - Default: false -@param {string} Inner - Content between opening and closing shortcode tags. - Default: "" -@param {bool} skipHeader - Omit top level key(s) when rendering a section of site.Data.docs.config. - Default: false +@param {string} [config] The section of site.Data.docs.config to render. +@param {bool} [copy=true] If true, display a copy to clipboard button. +@param {string} [file] The file name to display above the rendered code. +@param {bool} [fm=false] If true, render the code as front matter. +@param {bool} [skipHeader=false] If false, omit top level key(s) when rendering a section of site.Data.docs.config. + @returns {template.HTML} -*/ -}} +*/}} -{{- /* Initialize. */ -}} -{{- $config := "" -}} -{{- $copy := true -}} -{{- $file := "" -}} -{{- $fm := false -}} -{{- $skipHeader := false -}} +{{- /* Initialize. */}} +{{- $config := "" }} +{{- $copy := true }} +{{- $file := "" }} +{{- $fm := false }} +{{- $skipHeader := false }} -{{- /* Get parameters, defend against string booleans. */ -}} -{{- if .Params -}} - {{- $config = .Get "config" -}} - {{- $file = .Get "file" -}} - {{- if (isset .Params "copy") -}} - {{- if in (slice true "true") (.Get "copy") -}} - {{- $copy = true -}} - {{- else -}} - {{- $copy = false -}} - {{- end -}} - {{- end -}} - {{- if (isset .Params "fm") -}} - {{- if in (slice true "true") (.Get "fm") -}} - {{- $fm = true -}} - {{- else -}} - {{- $fm = false -}} - {{- end -}} - {{- end -}} - {{- if (isset .Params "skipHeader") -}} - {{- if in (slice true "true") (.Get "skipHeader") -}} - {{- $skipHeader = true -}} - {{- else -}} - {{- $skipHeader = false -}} - {{- end -}} - {{- end -}} -{{- end -}} +{{- /* Get parameters. */}} +{{- $config = .Get "config" }} +{{- $file = .Get "file" }} +{{- if in (slice "false" false 0) (.Get "copy") }} + {{- $copy = false }} +{{- else if in (slice "true" true 1) (.Get "copy")}} + {{- $copy = true }} +{{- end }} +{{- if in (slice "false" false 0) (.Get "fm") }} + {{- $fm = false }} +{{- else if in (slice "true" true 1) (.Get "fm")}} + {{- $fm = true }} +{{- end }} +{{- if in (slice "false" false 0) (.Get "skipHeader") }} + {{- $skipHeader = false }} +{{- else if in (slice "true" true 1) (.Get "skipHeader")}} + {{- $skipHeader = true }} +{{- end }} -{{- /* Define constants. */ -}} -{{- $delimiters := dict "toml" "+++" "yaml" "---" -}} -{{- $langs := slice "yaml" "toml" "json" -}} -{{- $placeHolder := "#-hugo-placeholder-#" -}} +{{- /* Define constants. */}} +{{- $delimiters := dict "toml" "+++" "yaml" "---" }} +{{- $langs := slice "yaml" "toml" "json" }} +{{- $placeHolder := "#-hugo-placeholder-#" }} -{{- /* Render. */ -}} -{{- $code := "" -}} -{{- with $config -}} - {{- $file = $file | default "config" -}} - {{- $sections := (split . ".") -}} - {{- $configSection := index $.Site.Data.docs.config $sections -}} - {{- $code = dict $sections $configSection -}} - {{- if $skipHeader -}} - {{- $code = $configSection -}} - {{- end -}} -{{- else -}} - {{- $code = $.Inner -}} +{{- /* Render. */}} +{{- $code := "" }} +{{- with $config }} + {{- $file = $file | default "config" }} + {{- $sections := (split . ".") }} + {{- $configSection := index $.Site.Data.docs.config $sections }} + {{- $code = dict $sections $configSection }} + {{- if $skipHeader }} + {{- $code = $configSection }} + {{- end }} +{{- else }} + {{- $code = $.Inner }} {{- end }}
    {{- with $file }}
    - {{- . -}}{{- if not $fm -}}.{{- end -}} + {{ . }}{{ if not $fm }}.{{ end }}
    - {{- end -}} + {{- end }} {{- range $langs }} - {{- /* Functionality located within filesaver.js The copy here is located in the css with .copy class so it can be replaced with JS on success */ -}} - {{- end -}} + {{- /* Functionality located within filesaver.js The copy here is located in the css with .copy class so it can be replaced with JS on success */}} + {{- end }} {{- end }}
    From 064896c06eb2d87081eac1db734ead7e65336df1 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 13:28:30 -0700 Subject: [PATCH 37/95] Use bool param when calling code-toggle --- content/en/content-management/comments.md | 2 +- content/en/content-management/front-matter.md | 6 ++--- .../en/content-management/page-resources.md | 4 +-- content/en/content-management/static-files.md | 2 +- content/en/content-management/taxonomies.md | 12 ++++----- content/en/content-management/urls.md | 26 +++++++++---------- content/en/functions/delimit.md | 8 +++--- content/en/functions/urlize.md | 2 +- content/en/getting-started/configuration.md | 4 +-- content/en/templates/introduction.md | 2 +- 10 files changed, 33 insertions(+), 35 deletions(-) diff --git a/content/en/content-management/comments.md b/content/en/content-management/comments.md index e49711e7c..41c20d48e 100644 --- a/content/en/content-management/comments.md +++ b/content/en/content-management/comments.md @@ -25,7 +25,7 @@ Hugo comes with all the code you need to load Disqus into your templates. Before Disqus comments require you set a single value in your [site's configuration file][configuration] like so: -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} disqusShortname = "yourDisqusShortname" {{}} diff --git a/content/en/content-management/front-matter.md b/content/en/content-management/front-matter.md index c361bcc41..657302930 100644 --- a/content/en/content-management/front-matter.md +++ b/content/en/content-management/front-matter.md @@ -146,7 +146,7 @@ You can add fields to your front matter arbitrarily to meet your needs. These us The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables] section provides more information on using Hugo's page- and site-level variables in your templates. -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} include_toc: true show_comments: false {{}} @@ -159,7 +159,7 @@ Any node or section can pass down to descendants a set of Front Matter values as The `cascade` block can be a slice with a optional `_target` keyword, allowing for multiple `cascade` values targeting different page sets. -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} title ="Blog" [[cascade]] background = "yosemite.jpg" @@ -193,7 +193,7 @@ Any of the above can be omitted. In `content/blog/_index.md` -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} title: Blog cascade: banner: images/typewriter.jpg diff --git a/content/en/content-management/page-resources.md b/content/en/content-management/page-resources.md index 9e2312a5d..fc2426958 100644 --- a/content/en/content-management/page-resources.md +++ b/content/en/content-management/page-resources.md @@ -139,7 +139,7 @@ params ### Resources metadata example -{{< code-toggle copy="false">}} +{{< code-toggle copy=false >}} title: Application date : 2018-01-25 resources : @@ -185,7 +185,7 @@ The counter starts at 1 the first time they are used in either `name` or `title` For example, if a bundle has the resources `photo_specs.pdf`, `other_specs.pdf`, `guide.pdf` and `checklist.pdf`, and the front matter has specified the `resources` as: -{{< code-toggle copy="false">}} +{{< code-toggle copy=false >}} [[resources]] src = "*specs.pdf" title = "Specification #:counter" diff --git a/content/en/content-management/static-files.md b/content/en/content-management/static-files.md index 20a1442e6..6bff7fd6f 100644 --- a/content/en/content-management/static-files.md +++ b/content/en/content-management/static-files.md @@ -28,7 +28,7 @@ This union filesystem will be served from your site root. So a file 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"] [languages] diff --git a/content/en/content-management/taxonomies.md b/content/en/content-management/taxonomies.md index 85e3a4c51..8c3ef53e5 100644 --- a/content/en/content-management/taxonomies.md +++ b/content/en/content-management/taxonomies.md @@ -83,7 +83,7 @@ Hugo natively supports taxonomies. Without adding a single line to your [site config][config] file, Hugo will automatically create taxonomies for `tags` and `categories`. That would be the same as manually [configuring your taxonomies](#configure-taxonomies) as below: -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} [taxonomies] tag = "tags" category = "categories" @@ -91,7 +91,7 @@ Without adding a single line to your [site config][config] file, Hugo will autom If you do not want Hugo to create any taxonomies, set `disableKinds` in your [site config][config] to the following: -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} disableKinds = ["taxonomy","term"] {{}} @@ -114,7 +114,7 @@ Custom taxonomies other than the [defaults](#default-taxonomies) must be defined While adding custom taxonomies, you need to put in the default taxonomies too, _if you want to keep them_. {{% /note %}} -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} [taxonomies] tag = "tags" category = "categories" @@ -125,7 +125,7 @@ While adding custom taxonomies, you need to put in the default taxonomies too, _ If you want to have just the default `tags` taxonomy, and remove the `categories` taxonomy for your site, you can do so by modifying the `taxonomies` value in your [site config][config]. -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} [taxonomies] tag = "tags" {{}} @@ -156,7 +156,7 @@ If you would like the ability to quickly generate content files with preconfigur ### Example: Front Matter with Taxonomies -{{< code-toggle copy="false">}} +{{< code-toggle copy=false >}} title = "Hugo: A fast and flexible static site generator" tags = [ "Development", "Go", "fast", "Blogging" ] categories = [ "Development" ] @@ -173,7 +173,7 @@ The following show a piece of content that has a weight of 22, which can be used ### Example: Taxonomic `weight` -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} title = "foo" tags = [ "a", "b", "c" ] tags_weight = 22 diff --git a/content/en/content-management/urls.md b/content/en/content-management/urls.md index 713e2d812..c9e78d419 100644 --- a/content/en/content-management/urls.md +++ b/content/en/content-management/urls.md @@ -29,7 +29,7 @@ You can change the structure and appearance of URLs with front matter values and Set the `slug` in front matter to override the last segment of the path. The `slug` value does not affect section pages. -{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}} title = 'My First Post' slug = 'my-first-post' {{< /code-toggle >}} @@ -46,7 +46,7 @@ Set the `url` in front matter to override the entire path. Use this with either With this front matter: -{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}} title = 'My First Article' url = '/articles/my-first-article' {{< /code-toggle >}} @@ -59,7 +59,7 @@ https://example.org/articles/my-first-article/ If you include a file extension: -{{< code-toggle file="content/posts/post-1.md" copy="false" fm=true >}} +{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}} title = 'My First Article' url = '/articles/my-first-article.html' {{< /code-toggle >}} @@ -111,7 +111,7 @@ content/ Create a date-based hierarchy, recursively, for regular pages within the `posts` section: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} posts = '/posts/:year/:month/:title/' {{< /code-toggle >}} @@ -133,7 +133,7 @@ public/ To create a date-based hierarchy for regular pages in the content root: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} '/' = '/:year/:month/:title/' {{< /code-toggle >}} @@ -143,7 +143,7 @@ A URL pattern defined for the content root is not recursive. Use the same approach with taxonomies. For example, to omit the taxonomy segment of the URL: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} 'tags' = '/:title/' {{< /code-toggle >}} @@ -196,7 +196,7 @@ For time-related values, you can also use the layout string components defined i [time package]: https://pkg.go.dev/time#pkg-constants -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} permalinks: posts: /:06/:1/:2/:title/ {{< /code-toggle >}} @@ -212,7 +212,7 @@ pretty|content/about.md|`https://example.org/about/` By default, Hugo produces pretty URLs. To generate ugly URLs, change your site configuration: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} uglyURLs = true {{< /code-toggle >}} @@ -239,7 +239,7 @@ This is an imperfect, brute force approach that can affect content as well as HT To enable: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} canonifyURLs = true {{< /code-toggle >}} @@ -262,7 +262,7 @@ This is an imperfect, brute force approach that can affect content as well as HT To enable: -{{< code-toggle file="config" copy="false" >}} +{{< code-toggle file="config" copy=false >}} relativeURLs = true {{< /code-toggle >}} @@ -277,7 +277,7 @@ Create redirects from old URLs to new URLs with aliases: Change the file name of an existing page, and create an alias from the previous URL to the new URL: -{{< code-toggle file="content/posts/new-file-name.md" copy="false" >}} +{{< code-toggle file="content/posts/new-file-name.md" copy=false >}} aliases = ['/posts/previous-file-name'] {{< /code-toggle >}} @@ -289,13 +289,13 @@ Each of these directory-relative aliases is equivalent to the site-relative alia You can create more than one alias to the current page: -{{< code-toggle file="content/posts/new-file-name.md" copy="false" >}} +{{< code-toggle file="content/posts/new-file-name.md" copy=false >}} aliases = ['previous-file-name','original-file-name'] {{< /code-toggle >}} In a multilingual site, use a directory-relative alias, or include the language prefix with a site-relative alias: -{{< code-toggle file="content/posts/new-file-name.de.md" copy="false" >}} +{{< code-toggle file="content/posts/new-file-name.de.md" copy=false >}} aliases = ['/de/posts/previous-file-name'] {{< /code-toggle >}} diff --git a/content/en/functions/delimit.md b/content/en/functions/delimit.md index 533af0523..10045b780 100644 --- a/content/en/functions/delimit.md +++ b/content/en/functions/delimit.md @@ -31,12 +31,10 @@ To maintain a consistent output order, maps will be sorted by keys and only a sl The examples of `delimit` that follow all use the same front matter: -{{< code file="delimit-example-front-matter.toml" nocopy="true" >}} -+++ -title: I love Delimit +{{< code-toggle file="content/about.md" copy=false fm=true >}} +title: About tags: [ "tag1", "tag2", "tag3" ] -+++ -{{< /code >}} +{{< /code-toggle >}} {{< code file="delimit-page-tags-input.html" >}}

    Tags: {{ delimit .Params.tags ", " }}

    diff --git a/content/en/functions/urlize.md b/content/en/functions/urlize.md index 048946cd3..df939eba1 100644 --- a/content/en/functions/urlize.md +++ b/content/en/functions/urlize.md @@ -19,7 +19,7 @@ relatedfuncs: [] The following examples pull from a content file with the following front matter: -{{< code file="content/blog/greatest-city.md" copy="false">}} +{{< code file="content/blog/greatest-city.md" copy="false" >}} +++ title = "The World's Greatest City" location = "Chicago IL" diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index a6985edbf..568481848 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -649,13 +649,13 @@ To exclude specific files from the `content` and `data` directories when renderi To ignore files ending with `.foo` or `.boo`: -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} ignoreFiles = ['\.foo$', '\.boo$'] {{< /code-toggle >}} To ignore a file using the absolute file path: -{{< code-toggle copy="false" >}} +{{< code-toggle copy=false >}} ignoreFiles = ['^/home/user/project/content/test\.md$'] {{< /code-toggle >}} diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 14ebbda28..87c479f6d 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -624,7 +624,7 @@ content/ └── event-3.md ``` -{{< code-toggle file="content/events/event-1.md" copy="false" >}} +{{< code-toggle file="content/events/event-1.md" copy=false >}} title = 'Event 1' date = 2021-12-06T10:37:16-08:00 draft = false From ac333c79545d946f402f6a5d1ca3d1f0f2ea26d6 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 13:31:27 -0700 Subject: [PATCH 38/95] Replace erroneous use of nocopy shortcode param --- content/en/functions/default.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/functions/default.md b/content/en/functions/default.md index c4cc166a7..f3493fb26 100644 --- a/content/en/functions/default.md +++ b/content/en/functions/default.md @@ -51,7 +51,7 @@ Both of the above `default` function calls return `Roboto`. A `default` value, however, does not need to be hard coded like the previous example. The `default` value can be a variable or pulled directly from the front matter using dot notation: -{{< code file="variable-as-default-value.html" nocopy="true" >}} +{{< code file="variable-as-default-value.html" copy="false" >}} {{$old := .Params.oldparam }}

    {{ .Params.newparam | default $old }}

    {{< /code >}} @@ -78,14 +78,14 @@ The following have equivalent return values but are far less terse. This demonst Using `if`: -{{< code file="if-instead-of-default.html" nocopy="true" >}} +{{< code file="if-instead-of-default.html" copy="false" >}} {{if .Params.seo_title}}{{.Params.seo_title}}{{else}}{{.Title}}{{end}} => Sane Defaults {{< /code >}} Using `with`: -{{< code file="with-instead-of-default.html" nocopy="true" >}} +{{< code file="with-instead-of-default.html" copy="false" >}} {{with .Params.seo_title}}{{.}}{{else}}{{.Title}}{{end}} => Sane Defaults {{< /code >}} From f11cabf375b76b85ed2710871a3ef241ba6a0e6d Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 13:46:23 -0700 Subject: [PATCH 39/95] Add space after and before action delimiters --- content/en/content-management/multilingual.md | 2 +- content/en/content-management/toc.md | 8 ++++---- content/en/contribute/documentation.md | 18 +++++++++--------- content/en/functions/RenderString.md | 4 ++-- content/en/functions/after.md | 8 ++++---- content/en/functions/base64.md | 2 +- content/en/functions/chomp.md | 2 +- content/en/functions/complement.md | 2 +- content/en/functions/default.md | 6 +++--- content/en/functions/delimit.md | 2 +- content/en/functions/hugo.md | 2 +- content/en/functions/humanize.md | 8 ++++---- content/en/functions/images/index.md | 2 +- content/en/functions/isset.md | 2 +- content/en/functions/len.md | 2 +- content/en/functions/slicestr.md | 4 ++-- content/en/functions/string.md | 2 +- content/en/functions/time.md | 6 +++--- content/en/functions/title.md | 2 +- content/en/functions/trim.md | 2 +- content/en/functions/urlize.md | 8 ++++---- content/en/functions/urls.Parse.md | 2 +- content/en/functions/where.md | 6 +++--- content/en/functions/with.md | 4 ++-- content/en/hugo-pipes/introduction.md | 4 ++-- content/en/news/0.59.0-relnotes/index.md | 9 ++------- content/en/templates/base.md | 2 +- content/en/templates/data-templates.md | 8 ++++---- content/en/templates/homepage.md | 6 +++--- content/en/templates/introduction.md | 14 +++++++------- content/en/templates/lists/index.md | 16 ++++++++-------- content/en/templates/menu-templates.md | 2 +- content/en/templates/pagination.md | 2 +- content/en/templates/render-hooks.md | 4 ++-- content/en/templates/section-templates.md | 2 +- content/en/templates/shortcode-templates.md | 4 ++-- content/en/templates/single-page-templates.md | 4 ++-- content/en/templates/taxonomy-templates.md | 8 ++++---- content/en/variables/page.md | 8 ++++---- content/en/variables/pages.md | 4 ++-- content/en/variables/site.md | 2 +- content/en/variables/taxonomy.md | 2 +- 42 files changed, 101 insertions(+), 106 deletions(-) diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 91099511e..63312a054 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -344,7 +344,7 @@ The function will read `.Count` from `.ReadingTime` and evaluate whether the num {{< code-toggle file="i18n/en-US" >}} [readingTime] one = "One minute to read" -other = "{{.Count}} minutes to read" +other = "{{.Count }} minutes to read" {{< /code-toggle >}} Assuming `.ReadingTime.Count` in the context has value is 525600. The result will be: diff --git a/content/en/content-management/toc.md b/content/en/content-management/toc.md index d136972cc..9e1421dc7 100644 --- a/content/en/content-management/toc.md +++ b/content/en/content-management/toc.md @@ -15,7 +15,7 @@ aliases: [/extras/toc/] {{% note "TOC Heading Levels are Fixed" %}} -Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `` was going to start at `

    ` when pulling from `{{.Content}}`. +Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `` was going to start at `

    ` when pulling from `{{.Content }}`. Hugo [v0.60.0](https://github.com/gohugoio/hugo/releases/tag/v0.60.0) made a switch to [Goldmark](https://github.com/yuin/goldmark/) as the default library for Markdown which has improved and configurable implementation of TOC. Take a look at [how to configure TOC](/getting-started/configuration-markup/#table-of-contents) for Goldmark renderer. @@ -73,15 +73,15 @@ The following is a [partial template][partials] that adds slightly more logic fo {{ if and (gt .WordCount 400 ) (.Params.toc) }} {{ end }} {{< /code >}} {{% note %}} -With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{.TableOfContents}}` variable to pull from. +With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{.TableOfContents }}` variable to pull from. {{% /note %}} ## Usage with AsciiDoc diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index 641f86c81..c55a74b41 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -81,7 +81,7 @@ Here is a review of the front matter fields automatically generated for you usin `relatedfuncs` : other [templating functions] you feel are related to your new function to help fellow Hugo users. -`{{.Content}}` +`{{.Content }}` : an extended description of the new function; examples are not only welcomed but encouraged. In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#add-code-blocks). If you are unable to add examples but would like to solicit help from the Hugo community, add `needsexample: true` to your front matter. @@ -145,15 +145,15 @@ This example HTML code block tells Hugo users the following:
    -

    {{.Title}}

    - {{with .Params.subtitle}} +

    {{.Title }}

    + {{ with .Params.subtitle }} {{.}}
    - {{.Content}} + {{.Content }}
    @@ -170,15 +170,15 @@ The output of this example will render to the Hugo docs as follows:
    -

    {{.Title}}

    - {{with .Params.subtitle}} +

    {{.Title }}

    + {{ with .Params.subtitle }} {{.}}
    - {{.Content}} + {{.Content }}
    diff --git a/content/en/functions/RenderString.md b/content/en/functions/RenderString.md index e4440971f..25fdcf60e 100644 --- a/content/en/functions/RenderString.md +++ b/content/en/functions/RenderString.md @@ -26,8 +26,8 @@ Some examples: {{ $optBlock := dict "display" "block" }} {{ $optOrg := dict "markup" "org" }} {{ "**Bold Markdown**" | $p.RenderString }} -{{ "**Bold Block Markdown**" | $p.RenderString $optBlock }} -{{ "/italic org mode/" | $p.RenderString $optOrg }} +{{ "**Bold Block Markdown**" | $p.RenderString $optBlock }} +{{ "/italic org mode/" | $p.RenderString $optOrg }} ``` {{< new-in "0.93.0" >}} **Note**: [markdownify](/functions/markdownify/) uses this function in order to support [Render Hooks](/getting-started/configuration-markup/#markdown-render-hooks). diff --git a/content/en/functions/after.md b/content/en/functions/after.md index 1d513e775..df2142ab6 100644 --- a/content/en/functions/after.md +++ b/content/en/functions/after.md @@ -40,9 +40,9 @@ You can use `after` in combination with the [`first` function] and Hugo's [power

    Featured Article

    {{ range first 1 .Pages.ByPublishDate.Reverse }}
    -

    {{.Title}}

    +

    {{.Title }}

    -

    {{.Description}}

    +

    {{.Description }}

    {{ end }}
    @@ -50,9 +50,9 @@ You can use `after` in combination with the [`first` function] and Hugo's [power {{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }}
    -

    {{.Title}}

    +

    {{.Title }}

    -

    {{.Description}}

    +

    {{.Description }}

    {{ end }}
    diff --git a/content/en/functions/base64.md b/content/en/functions/base64.md index 54ca0440c..fb9ec9997 100644 --- a/content/en/functions/base64.md +++ b/content/en/functions/base64.md @@ -43,7 +43,7 @@ Using base64 to decode and encode becomes really powerful if we have to handle responses from APIs. ``` -{{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }} +{{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }} {{ $resp.content | base64Decode | markdownify }} ``` diff --git a/content/en/functions/chomp.md b/content/en/functions/chomp.md index 3e61c8db5..9bdb1be8a 100644 --- a/content/en/functions/chomp.md +++ b/content/en/functions/chomp.md @@ -22,5 +22,5 @@ deprecated: false Useful in a pipeline to remove newlines added by other processing (e.g., [`markdownify`](/functions/markdownify/)). ``` -{{chomp "

    Blockhead

    \n"}} → "

    Blockhead

    " +{{ chomp "

    Blockhead

    \n"}} → "

    Blockhead

    " ``` diff --git a/content/en/functions/complement.md b/content/en/functions/complement.md index 91640d803..87bb3af62 100644 --- a/content/en/functions/complement.md +++ b/content/en/functions/complement.md @@ -17,7 +17,7 @@ To find the elements within `$c3` that do not exist in `$c1` or `$c2`: ```go-html-template {{ $c1 := slice 3 }} -{{ $c2 := slice 4 5 }} +{{ $c2 := slice 4 5 }} {{ $c3 := slice 1 2 3 4 5 }} {{ complement $c1 $c2 $c3 }} → [1 2] diff --git a/content/en/functions/default.md b/content/en/functions/default.md index f3493fb26..defdad480 100644 --- a/content/en/functions/default.md +++ b/content/en/functions/default.md @@ -52,7 +52,7 @@ Both of the above `default` function calls return `Roboto`. A `default` value, however, does not need to be hard coded like the previous example. The `default` value can be a variable or pulled directly from the front matter using dot notation: {{< code file="variable-as-default-value.html" copy="false" >}} -{{$old := .Params.oldparam }} +{{ $old := .Params.oldparam }}

    {{ .Params.newparam | default $old }}

    {{< /code >}} @@ -79,13 +79,13 @@ The following have equivalent return values but are far less terse. This demonst Using `if`: {{< code file="if-instead-of-default.html" copy="false" >}} -{{if .Params.seo_title}}{{.Params.seo_title}}{{else}}{{.Title}}{{end}} +{{ if .Params.seo_title }}{{.Params.seo_title }}{{ else }}{{.Title }}{{ end }} => Sane Defaults {{< /code >}} Using `with`: {{< code file="with-instead-of-default.html" copy="false" >}} -{{with .Params.seo_title}}{{.}}{{else}}{{.Title}}{{end}} +{{ with .Params.seo_title }}{{.}}{{ else }}{{.Title }}{{ end }} => Sane Defaults {{< /code >}} diff --git a/content/en/functions/delimit.md b/content/en/functions/delimit.md index 10045b780..4705a7f2d 100644 --- a/content/en/functions/delimit.md +++ b/content/en/functions/delimit.md @@ -22,7 +22,7 @@ aliases: [] `delimit` called in your template takes the form of ``` -{{ delimit array/slice/map delimiter optionallastdelimiter}} +{{ delimit array/slice/map delimiter optionallastdelimiter }} ``` `delimit` loops through any array, slice, or map and returns a string of all the values separated by a delimiter, the second argument in the function call. There is an optional third parameter that lets you choose a different delimiter to go between the last two values in the loop. diff --git a/content/en/functions/hugo.md b/content/en/functions/hugo.md index 41c7a0322..91f517be2 100644 --- a/content/en/functions/hugo.md +++ b/content/en/functions/hugo.md @@ -100,7 +100,7 @@ An example table listing the dependencies: {{ with $element.Owner }}{{.Path }}{{ end }} {{ $element.Path }} - {{ with $element.Replace}} + {{ with $element.Replace }} => {{ .Path }} {{ end }} diff --git a/content/en/functions/humanize.md b/content/en/functions/humanize.md index 18a087591..444761c88 100644 --- a/content/en/functions/humanize.md +++ b/content/en/functions/humanize.md @@ -22,8 +22,8 @@ If the input is either an int64 value or the string representation of an integer ``` -{{humanize "my-first-post"}} → "My first post" -{{humanize "myCamelPost"}} → "My camel post" -{{humanize "52"}} → "52nd" -{{humanize 103}} → "103rd" +{{ humanize "my-first-post"}} → "My first post" +{{ humanize "myCamelPost"}} → "My camel post" +{{ humanize "52"}} → "52nd" +{{ humanize 103 }} → "103rd" ``` diff --git a/content/en/functions/images/index.md b/content/en/functions/images/index.md index e7fc50f7e..7bc424048 100644 --- a/content/en/functions/images/index.md +++ b/content/en/functions/images/index.md @@ -222,6 +222,6 @@ images.ImageConfig PATH ```go-html-template {{ with (imageConfig "favicon.ico") }} -favicon.ico: {{.Width}} x {{.Height}} +favicon.ico: {{.Width }} x {{.Height }} {{ end }} ``` diff --git a/content/en/functions/isset.md b/content/en/functions/isset.md index aa36f6dac..2bfc43203 100644 --- a/content/en/functions/isset.md +++ b/content/en/functions/isset.md @@ -25,6 +25,6 @@ Takes either a slice, array, or channel and an index or a map and a key as input ``` {{% warning %}} -All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{if isset .Site.Params "myparam"}}` and *not* with `{{if isset .Site.Params "myParam"}}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with). +All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{ if isset .Site.Params "myparam"}}` and *not* with `{{ if isset .Site.Params "myParam"}}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with). This restriction also applies when accessing page-level front matter keys from within [shortcodes](/content-management/shortcodes/). {{% /warning %}} diff --git a/content/en/functions/len.md b/content/en/functions/len.md index 9f15d79c7..1d7f9caf4 100644 --- a/content/en/functions/len.md +++ b/content/en/functions/len.md @@ -39,7 +39,7 @@ You may want to append a class to a heading according to the length of the strin {{< code file="check-title-length.html" >}}
    - {{.Title}}

    `_kw{+P3=c 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 b54*ba%&s8t=8s#GHvoAqrzTq|V;=G!j=6Y} diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png deleted file mode 100644 index d93505af77876e0849c78a738577a7b881b8a7d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6725 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 LLn!|Gt*HM1!2fJ+ diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png deleted file mode 100644 index dc854b4da27f07a311154523b760f9e82b9b6466..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43674 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 diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png deleted file mode 100644 index 2359fb3b3bcc354331f38f82295c1bb46a563ee8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25260 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

    + {{.Title }} {{< /code >}} diff --git a/content/en/functions/slicestr.md b/content/en/functions/slicestr.md index 8164f2720..d6e4b3439 100644 --- a/content/en/functions/slicestr.md +++ b/content/en/functions/slicestr.md @@ -23,5 +23,5 @@ aliases: [] For example, 1 and 4 creates a slice including elements 1 through 3. The `end` index can be omitted; it defaults to the string's length. -* `{{slicestr "BatMan" 3}}` → "Man" -* `{{slicestr "BatMan" 0 3}}` → "Bat" +* `{{ slicestr "BatMan" 3 }}` → "Man" +* `{{ slicestr "BatMan" 0 3 }}` → "Bat" diff --git a/content/en/functions/string.md b/content/en/functions/string.md index 33a781e45..4905765aa 100644 --- a/content/en/functions/string.md +++ b/content/en/functions/string.md @@ -18,4 +18,4 @@ deprecated: false aliases: [] --- -* `{{string "BatMan"}}` → "BatMan" +* `{{ string "BatMan"}}` → "BatMan" diff --git a/content/en/functions/time.md b/content/en/functions/time.md index 175e2dbfe..b995f78f2 100644 --- a/content/en/functions/time.md +++ b/content/en/functions/time.md @@ -48,11 +48,11 @@ The following example takes a UNIX timestamp---set as `utimestamp: "1489276800"` The following example may be useful when setting up [multilingual sites][multilingual]: {{< code file="unix-to-month-integer.html" >}} -{{$time := time (int .Params.addDate)}} +{{ $time := time (int .Params.addDate)}} => $time = 1489276800 -{{$time.Month}} +{{ $time.Month }} => "March" -{{$monthindex := printf "%d" $time.Month }} +{{ $monthindex := printf "%d" $time.Month }} => $monthindex = 3 {{< /code >}} diff --git a/content/en/functions/title.md b/content/en/functions/title.md index 6c87d69ac..28444f400 100644 --- a/content/en/functions/title.md +++ b/content/en/functions/title.md @@ -22,7 +22,7 @@ aliases: [] ``` -{{title "BatMan"}}` → "Batman" +{{ title "BatMan"}}` → "Batman" ``` Can be combined in pipes. In the following snippet, the link text is cleaned up using `humanize` to remove dashes and `title` to convert the value of `$name` to Initial Caps. diff --git a/content/en/functions/trim.md b/content/en/functions/trim.md index fec435ec7..2cda7a59a 100644 --- a/content/en/functions/trim.md +++ b/content/en/functions/trim.md @@ -26,7 +26,7 @@ deprecated: false `trim` *requires* the second argument, which tells the function specifically what to remove from the first argument. There is no default value for the second argument, so **the following usage will not work**: ``` -{{ trim .Inner}} +{{ trim .Inner }} ``` Instead, the following example tells `trim` to remove extra new lines from the content contained in the [shortcode `.Inner` variable][shortcodevars]: diff --git a/content/en/functions/urlize.md b/content/en/functions/urlize.md index df939eba1..1ba20506b 100644 --- a/content/en/functions/urlize.md +++ b/content/en/functions/urlize.md @@ -31,18 +31,18 @@ The following might be used as a partial within a [single page template][singlet {{< code file="layouts/partials/content-header.html" download="content-header.html" >}}
    -

    {{.Title}}

    +

    {{.Title }}

    {{ with .Params.location }} - + {{ end }} {{ with .Params.tags }}
      - {{range .}} + {{ range .}}
    • {{ . }}
    • - {{end}} + {{ end }}
    {{ end }}
    diff --git a/content/en/functions/urls.Parse.md b/content/en/functions/urls.Parse.md index 9ed4f55d3..6714c8e00 100644 --- a/content/en/functions/urls.Parse.md +++ b/content/en/functions/urls.Parse.md @@ -17,7 +17,7 @@ The `urls.Parse` function parses a URL into a [URL structure](https://godoc.org/ ```go-html-template {{ $url := "https://example.org:123/foo?a=6&b=7#bar" }} -{{ $u := urls.Parse $url}} +{{ $u := urls.Parse $url }} {{ $u.IsAbs }} → true {{ $u.Scheme }} → https diff --git a/content/en/functions/where.md b/content/en/functions/where.md index a06ee020f..07bf913f5 100644 --- a/content/en/functions/where.md +++ b/content/en/functions/where.md @@ -85,9 +85,9 @@ The following logical operators are available with `where`: ## Use `where` with `Booleans` When using booleans you should not put quotation marks. ```go-html-template -{{range where .Pages "Draft" true}} -

    {{.Title}}

    -{{end}} +{{ range where .Pages "Draft" true }} +

    {{.Title }}

    +{{ end }} ``` diff --git a/content/en/functions/with.md b/content/en/functions/with.md index ae643caf7..bfd58bcf2 100644 --- a/content/en/functions/with.md +++ b/content/en/functions/with.md @@ -26,9 +26,9 @@ If you want to render a block if an index or key is present in a slice, array, c The following example checks for a [user-defined site variable](/variables/site/) called `twitteruser`. If the key-value is not set, the following will render nothing: {{< code file="layouts/partials/twitter.html" >}} -{{with .Site.Params.twitteruser}}{{ end }} {{< /code >}} diff --git a/content/en/hugo-pipes/introduction.md b/content/en/hugo-pipes/introduction.md index 5abf623a0..879565358 100755 --- a/content/en/hugo-pipes/introduction.md +++ b/content/en/hugo-pipes/introduction.md @@ -108,13 +108,13 @@ Note that if you do not handle `.Err` yourself, Hugo will fail the build the fir When fetching a remote `Resource`, `resources.GetRemote` takes an optional options map as the second argument, e.g.: ```go-html-template -{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }} +{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }} ``` If you need multiple values for the same header key, use a slice: ```go-html-template -{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "X-List" (slice "a" "b" "c"))) }} +{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "X-List" (slice "a" "b" "c"))) }} ``` You can also change the request method and set the request body: diff --git a/content/en/news/0.59.0-relnotes/index.md b/content/en/news/0.59.0-relnotes/index.md index 1a7552d09..d122e4c44 100644 --- a/content/en/news/0.59.0-relnotes/index.md +++ b/content/en/news/0.59.0-relnotes/index.md @@ -19,13 +19,13 @@ See [Image Processing Options](https://gohugo.io/content-management/image-proces Another useful addon is the `$pages.Next` and `$pages.Prev` methods on the core page collections in Hugo. These works the same way as the built-in static variants one `Page`, e.g. `.Next` and `.NextInSection`: ``` -{{with .Site.RegularPages.Next . }}{{.RelPermalink}}{{end}} +{{ with .Site.RegularPages.Next . }}{{.RelPermalink }}{{ end }} ``` The above is a functionally equivalent (but slightly slower) variant of: ``` -{{with .Next }}{{.RelPermalink}}{{end}} +{{ with .Next }}{{.RelPermalink }}{{ end }} ``` See [Pages Methods](https://gohugo.io/variables/pages/) for more information. @@ -113,8 +113,3 @@ Hugo now has: * Fix cache key transformed resources [6dec671f](https://github.com/gohugoio/hugo/commit/6dec671fb930029e18ba9aa5135b3a27adcddb21) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348) * Fix cache keys for bundled resoures in transform.Unmarshal [c0d75736](https://github.com/gohugoio/hugo/commit/c0d7573677e9726c14749ccd432dccb75e0d194d) [@bep](https://github.com/bep) [#6327](https://github.com/gohugoio/hugo/issues/6327) * Fix concat with fingerprint regression [3be2c253](https://github.com/gohugoio/hugo/commit/3be2c25351b421a26ee1ff2a38cbab00280c0583) [@bep](https://github.com/bep) [#6309](https://github.com/gohugoio/hugo/issues/6309) - - - - - diff --git a/content/en/templates/base.md b/content/en/templates/base.md index c82cc09a1..6488b6b48 100644 --- a/content/en/templates/base.md +++ b/content/en/templates/base.md @@ -87,7 +87,7 @@ The following shows how you can override both the `"main"` and `"title"` block a {{< code file="layouts/_default/single.html" download="single.html" >}} {{ define "title" }} - + {{ .Title }} – {{ .Site.Title }} {{ end }} {{ define "main" }} diff --git a/content/en/templates/data-templates.md b/content/en/templates/data-templates.md index 30f708644..8051e554d 100644 --- a/content/en/templates/data-templates.md +++ b/content/en/templates/data-templates.md @@ -131,7 +131,7 @@ Achievements: You can use the following code to render the `Short Description` in your layout: ```go-html-template -
    Short Description of {{.Site.Data.User0123.Name}}:

    {{ index .Site.Data.User0123 "Short Description" | markdownify }}

    +
    Short Description of {{.Site.Data.User0123.Name }}:

    {{ index .Site.Data.User0123 "Short Description" | markdownify }}

    ``` Note the use of the [`markdownify` template function][markdownify]. This will send the description through the Markdown rendering engine. @@ -173,13 +173,13 @@ This will resolve internally to the following: Both `getJSON` and `getCSV` takes an optional map as the last argument, e.g.: ```go-html-template -{{ $data := getJSON "https://example.org/api" (dict "Authorization" "Bearer abcd") }} +{{ $data := getJSON "https://example.org/api" (dict "Authorization" "Bearer abcd") }} ``` If you need multiple values for the same header key, use a slice: ```go-html-template -{{ $data := getJSON "https://example.org/api" (dict "X-List" (slice "a" "b" "c")) }} +{{ $data := getJSON "https://example.org/api" (dict "X-List" (slice "a" "b" "c")) }} ``` ### Example for CSV files @@ -209,7 +209,7 @@ For `getCSV`, the one-character-long separator must be placed in the first posit {{< /code >}} -The expression `{{index $r number}}` must be used to output the nth-column from the current row. +The expression `{{ index $r number }}` must be used to output the nth-column from the current row. ### Cache URLs diff --git a/content/en/templates/homepage.md b/content/en/templates/homepage.md index ace3f259b..b72889301 100644 --- a/content/en/templates/homepage.md +++ b/content/en/templates/homepage.md @@ -38,20 +38,20 @@ See the homepage template below or [Content Organization][contentorg] for more i ## Example Homepage Template -The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title}}` and `{{.Content}}` [page variables][pagevars]. +The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title }}` and `{{.Content }}` [page variables][pagevars]. {{< code file="layouts/index.html" download="index.html" >}} {{ define "main" }}
    -

    {{.Title}}

    +

    {{.Title }}

    {{ with .Params.subtitle }} {{.}} {{ end }}
    - {{.Content}} + {{.Content }}
    {{ range first 10 .Site.RegularPages }} diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 87c479f6d..2f907e033 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -241,7 +241,7 @@ If the _map_, _array_, or _slice_ passed into the range is zero-length then the ```go-html-template {{ range $array }} {{ . }} -{{else}} +{{ else }} {{ end }} ``` @@ -414,7 +414,7 @@ The following shows how to define a variable independent of the context. {{< /code >}} {{% note %}} -Notice how once we have entered the loop (i.e. `range`), the value of `{{ . }}` has changed. We have defined a variable outside the loop (`{{$title}}`) that we've assigned a value so that we have access to the value from within the loop as well. +Notice how once we have entered the loop (i.e. `range`), the value of `{{ . }}` has changed. We have defined a variable outside the loop (`{{ $title }}`) that we've assigned a value so that we have access to the value from within the loop as well. {{% /note %}} ### 2. Use `$.` to Access the Global Context @@ -553,11 +553,11 @@ Here is an example of corresponding code that could be used inside a `toc.html` {{ if not .Params.notoc }} {{ end }} @@ -583,7 +583,7 @@ Within a footer layout, you might then declare a `
    ` that is only rendere ```go-html-template {{ if .Site.Params.copyrighthtml }}
    -
    {{.Site.Params.CopyrightHTML | safeHTML}}
    +
    {{.Site.Params.CopyrightHTML | safeHTML }}
    {{ end }} ``` @@ -606,7 +606,7 @@ Finally, you can pull "magic constants" out of your layouts as well. The followi

    Recent Posts

    diff --git a/content/en/templates/lists/index.md b/content/en/templates/lists/index.md index c78555d39..95d45a9d9 100644 --- a/content/en/templates/lists/index.md +++ b/content/en/templates/lists/index.md @@ -94,16 +94,16 @@ You can now access this `_index.md`'s' content in your list template:
    -

    {{.Title}}

    +

    {{.Title }}

    - - {{.Content}} + + {{.Content }}
    @@ -133,7 +133,7 @@ This above will output the following HTML: ### List Pages Without `_index.md` -You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content}}` and only the default values for `.Title` etc. +You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content }}` and only the default values for `.Title` etc. Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from: @@ -381,14 +381,14 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc. {{ end }} {{< /code >}} -In the above example, you may want `{{.Title}}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: +In the above example, you may want `{{.Title }}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: {{< code file="layouts/partials/by-page-field.html" >}} {{ range .Pages.GroupBy "Section" }} {{ with $.Site.GetPage "section" .Key }} -

    {{.Title}}

    +

    {{.Title }}

    {{ else }}

    {{ .Key | title }}

    @@ -544,7 +544,7 @@ While these are logical defaults, they are not always the desired order. There a ### Order Within Groups -Because Grouping returns a `{{.Key}}` and a slice of pages, all the ordering methods listed above are available. +Because Grouping returns a `{{.Key }}` and a slice of pages, all the ordering methods listed above are available. Here is the ordering for the example that follows: diff --git a/content/en/templates/menu-templates.md b/content/en/templates/menu-templates.md index 7649c0e56..9cb92459a 100644 --- a/content/en/templates/menu-templates.md +++ b/content/en/templates/menu-templates.md @@ -44,7 +44,7 @@ This partial template recursively "walks" a menu structure, rendering a localize {{- define "partials/inline/menu/walk.html" }} {{- $page := .page }} {{- range .menuEntries }} - {{- $attrs := dict "href" .URL}} + {{- $attrs := dict "href" .URL }} {{- if $page.IsMenuCurrent .Menu . }} {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }} {{- else if $page.HasMenuCurrent .Menu .}} diff --git a/content/en/templates/pagination.md b/content/en/templates/pagination.md index bdb10d5bb..32c130b72 100644 --- a/content/en/templates/pagination.md +++ b/content/en/templates/pagination.md @@ -59,7 +59,7 @@ The global page size setting (`Paginate`) can be overridden by providing a posit It is also possible to use the `GroupBy` functions in combination with pagination: ```go-html-template -{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }} +{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }} ``` ## Build the navigation diff --git a/content/en/templates/render-hooks.md b/content/en/templates/render-hooks.md index b3483712c..a0534d20e 100644 --- a/content/en/templates/render-hooks.md +++ b/content/en/templates/render-hooks.md @@ -108,7 +108,7 @@ Ordinal {{< new-in "0.108.0" >}} Here is a code example for how the render-link.html template could look: {{< code file="layouts/_default/_markup/render-link.html" >}} -{{ .Text | safeHTML }} +{{ .Text | safeHTML }} {{< /code >}} ### Image Markdown example @@ -121,7 +121,7 @@ Here is a code example for how the render-image.html template could look: {{< code file="layouts/_default/_markup/render-image.html" >}}

    - {{ .Text }} + {{ .Text }}

    {{< /code >}} diff --git a/content/en/templates/section-templates.md b/content/en/templates/section-templates.md index 3cb37b111..3ca732e4b 100644 --- a/content/en/templates/section-templates.md +++ b/content/en/templates/section-templates.md @@ -54,7 +54,7 @@ Examples: {{ .Content }}
      {{ range .Paginator.Pages }} -
    • {{.Title}} +
    • {{.Title }}
      {{ partial "summary.html" . }}
      diff --git a/content/en/templates/shortcode-templates.md b/content/en/templates/shortcode-templates.md index fea06e73b..6cfb6d460 100644 --- a/content/en/templates/shortcode-templates.md +++ b/content/en/templates/shortcode-templates.md @@ -321,9 +321,9 @@ You also have an `img` shortcode with a single named `src` parameter that you wa {{< code file="layouts/shortcodes/img.html" >}} {{- $src := .Get "src" -}} {{- with .Parent -}} - + {{- else -}} - + {{- end -}} {{< /code >}} diff --git a/content/en/templates/single-page-templates.md b/content/en/templates/single-page-templates.md index 925f97b03..9fac42c02 100644 --- a/content/en/templates/single-page-templates.md +++ b/content/en/templates/single-page-templates.md @@ -64,10 +64,10 @@ This single page template makes use of Hugo [base templates], the [`.Format` fun
    {{ with .PrevInSection }} - + {{ end }} {{ with .NextInSection }} - + {{ end }}
    diff --git a/content/en/templates/taxonomy-templates.md b/content/en/templates/taxonomy-templates.md index 86abeb678..4411164da 100644 --- a/content/en/templates/taxonomy-templates.md +++ b/content/en/templates/taxonomy-templates.md @@ -258,7 +258,7 @@ This would be very useful in a sidebar as “featured content”. You could even
  • {{ $key }}
  • {{ end }} @@ -299,8 +299,8 @@ This example will list all taxonomies and their terms, as well as all the conten
  • {{ $key }}
  • @@ -322,7 +322,7 @@ Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to
      {{ with ($.Site.GetPage (printf "/%s" $taxo)) }} {{ range .Pages }} -
    • {{ .Title}}
    • +
    • {{ .Title }}
    • {{ end }} {{ end }}
    diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 02eb6932d..c6d29d39c 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -97,10 +97,10 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. : access when creating links to the content. If set, Hugo will use the `linktitle` from the front matter before `title`. .Next -: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{with .Next}}{{.Permalink}}{{end}}`. Calling `.Next` from the first page returns `nil`. +: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ with .Next }}{{.Permalink }}{{ end }}`. Calling `.Next` from the first page returns `nil`. .NextInSection -: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{with .NextInSection}}{{.Permalink}}{{end}}`. Calling `.NextInSection` from the first page returns `nil`. +: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ with .NextInSection }}{{.Permalink }}{{ end }}`. Calling `.NextInSection` from the first page returns `nil`. .OutputFormats : 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/).) @@ -119,10 +119,10 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. : the slice of strings that results from splitting .Plain into words, as defined in Go's [strings.Fields](https://pkg.go.dev/strings#Fields). .Prev -: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{if .Prev}}{{.Prev.Permalink}}{{end}}`. Calling `.Prev` from the last page returns `nil`. +: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ if .Prev }}{{.Prev.Permalink }}{{ end }}`. Calling `.Prev` from the last page returns `nil`. .PrevInSection -: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}`. Calling `.PrevInSection` from the last page returns `nil`. +: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ if .PrevInSection }}{{.PrevInSection.Permalink }}{{ end }}`. Calling `.PrevInSection` from the last page returns `nil`. .PublishDate : the date on which the content was or will be published; `.Publishdate` pulls from the `publishdate` field in a content's front matter. See also `.ExpiryDate`, `.Date`, and `.Lastmod`. diff --git a/content/en/variables/pages.md b/content/en/variables/pages.md index 61036dd74..de8017945 100644 --- a/content/en/variables/pages.md +++ b/content/en/variables/pages.md @@ -23,8 +23,8 @@ Also see [List templates](/templates/lists) for an overview of sort methods. `.Next` and `.Prev` on `Pages` work similar to the methods with the same names on `.Page`, but are more flexible (and slightly slower) as they can be used on any page collection. -`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{with .Site.RegularPages.Next . }}{{.RelPermalink}}{{end}}`. Calling `.Next` with the first page in the collection returns `nil`. +`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Next . }}{{.RelPermalink }}{{ end }}`. Calling `.Next` with the first page in the collection returns `nil`. ## .Prev PAGE -`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{with .Site.RegularPages.Prev . }}{{.RelPermalink}}{{end}}`. Calling `.Prev` with the last page in the collection returns `nil`. +`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Prev . }}{{.RelPermalink }}{{ end }}`. Calling `.Prev` with the last page in the collection returns `nil`. diff --git a/content/en/variables/site.md b/content/en/variables/site.md index fb113198c..ffa728510 100644 --- a/content/en/variables/site.md +++ b/content/en/variables/site.md @@ -117,7 +117,7 @@ baseURL = "https://yoursite.example.com/" You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description: {{< code file="layouts/partials/head.html" >}} - + {{< /code >}} ## The `.Site.Pages` Variable {#site-pages} diff --git a/content/en/variables/taxonomy.md b/content/en/variables/taxonomy.md index 901769b31..336930672 100644 --- a/content/en/variables/taxonomy.md +++ b/content/en/variables/taxonomy.md @@ -124,7 +124,7 @@ For example, to render the entire taxonomy data structure as a nested unordered From 7785fa7d9fbea553dbf520eef86bdeaaf215e1fe Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 14:54:22 -0700 Subject: [PATCH 40/95] Use code-toggle shortcode where appropriate --- content/en/content-management/taxonomies.md | 17 ++++----- content/en/functions/apply.md | 7 ++-- content/en/functions/param.md | 4 +- content/en/functions/urlize.md | 6 +-- content/en/functions/where.md | 7 ++-- content/en/templates/introduction.md | 12 ++---- content/en/templates/lists/index.md | 16 ++++---- content/en/templates/output-formats.md | 10 ++--- content/en/templates/taxonomy-templates.md | 10 ++--- content/en/variables/page.md | 42 +++++---------------- 10 files changed, 47 insertions(+), 84 deletions(-) diff --git a/content/en/content-management/taxonomies.md b/content/en/content-management/taxonomies.md index 8c3ef53e5..6d4655228 100644 --- a/content/en/content-management/taxonomies.md +++ b/content/en/content-management/taxonomies.md @@ -83,7 +83,7 @@ Hugo natively supports taxonomies. Without adding a single line to your [site config][config] file, Hugo will automatically create taxonomies for `tags` and `categories`. That would be the same as manually [configuring your taxonomies](#configure-taxonomies) as below: -{{< code-toggle copy=false >}} +{{< code-toggle file="config" copy=false >}} [taxonomies] tag = "tags" category = "categories" @@ -91,7 +91,7 @@ Without adding a single line to your [site config][config] file, Hugo will autom If you do not want Hugo to create any taxonomies, set `disableKinds` in your [site config][config] to the following: -{{< code-toggle copy=false >}} +{{< code-toggle file="config" copy=false >}} disableKinds = ["taxonomy","term"] {{}} @@ -114,7 +114,7 @@ Custom taxonomies other than the [defaults](#default-taxonomies) must be defined While adding custom taxonomies, you need to put in the default taxonomies too, _if you want to keep them_. {{% /note %}} -{{< code-toggle copy=false >}} +{{< code-toggle file="config" copy=false >}} [taxonomies] tag = "tags" category = "categories" @@ -125,7 +125,7 @@ While adding custom taxonomies, you need to put in the default taxonomies too, _ If you want to have just the default `tags` taxonomy, and remove the `categories` taxonomy for your site, you can do so by modifying the `taxonomies` value in your [site config][config]. -{{< code-toggle copy=false >}} +{{< code-toggle file="config" copy=false >}} [taxonomies] tag = "tags" {{}} @@ -156,7 +156,7 @@ If you would like the ability to quickly generate content files with preconfigur ### Example: Front Matter with Taxonomies -{{< code-toggle copy=false >}} +{{< code-toggle file="content/example.md" fm=true copy=false >}} title = "Hugo: A fast and flexible static site generator" tags = [ "Development", "Go", "fast", "Blogging" ] categories = [ "Development" ] @@ -191,13 +191,10 @@ Currently taxonomies only support the [default `weight => date` ordering of list If you need to add custom metadata to your taxonomy terms, you will need to create a page for that term at `/content///_index.md` and add your metadata in its front matter. Continuing with our 'Actors' example, let's say you want to add a Wikipedia page link to each actor. Your terms pages would be something like this: -{{< code file="/content/actors/bruce-willis/_index.md" >}} ---- +{{< code-toggle file="content/actors/bruce-willis/_index.md" fm=true copy=false >}} title: "Bruce Willis" wikipedia: "https://en.wikipedia.org/wiki/Bruce_Willis" ---- -{{< /code >}} - +{{< /code-toggle >}} [`urlize` template function]: /functions/urlize/ [content section]: /content-management/sections/ diff --git a/content/en/functions/apply.md b/content/en/functions/apply.md index 983e2fdb9..4c36cf17e 100644 --- a/content/en/functions/apply.md +++ b/content/en/functions/apply.md @@ -30,11 +30,10 @@ POTENTIAL NEW CONTENT: see apply/sequence discussion: https://discourse.gohugo.i Here is an example of a content file with `names:` as a front matter field: -``` -+++ +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example names: [ "Derek Perkins", "Joe Bergevin", "Tanner Linsley" ] -+++ -``` +{{< /code-toggle >}} You can then use `apply` as follows: diff --git a/content/en/functions/param.md b/content/en/functions/param.md index 4f1764814..96cdfe73b 100644 --- a/content/en/functions/param.md +++ b/content/en/functions/param.md @@ -25,8 +25,8 @@ display_toc = true **Content** -{{< code-toggle file="content/about.md" fm=true copy=false >}} -title = 'About' +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title = 'Example' date = 2023-01-01 draft = false display_toc = false diff --git a/content/en/functions/urlize.md b/content/en/functions/urlize.md index 1ba20506b..ad5a79ee5 100644 --- a/content/en/functions/urlize.md +++ b/content/en/functions/urlize.md @@ -19,13 +19,11 @@ relatedfuncs: [] The following examples pull from a content file with the following front matter: -{{< code file="content/blog/greatest-city.md" copy="false" >}} -+++ +{{< code-toggle file="content/blog/greatest-city.md" fm=true copy=false >}} title = "The World's Greatest City" location = "Chicago IL" tags = ["pizza","beer","hot dogs"] -+++ -{{< /code >}} +{{< /code-toggle >}} The following might be used as a partial within a [single page template][singletemplate]: diff --git a/content/en/functions/where.md b/content/en/functions/where.md index 07bf913f5..67888fae7 100644 --- a/content/en/functions/where.md +++ b/content/en/functions/where.md @@ -33,11 +33,10 @@ SQL][wherekeyword]. It can be used by dot-chaining the second argument to refer to a nested element of a value. -``` -+++ +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example series: golang -+++ -``` +{{< /code-toggle >}} ```go-html-template {{ range where .Site.Pages "Params.series" "golang" }} diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 2f907e033..682a9cce0 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -536,16 +536,12 @@ You can provide variables to be used by templates in individual content's [front An example of this is used in the Hugo docs. Most of the pages benefit from having the table of contents provided, but sometimes the table of contents doesn't make a lot of sense. We've defined a `notoc` variable in our front matter that will prevent a table of contents from rendering when specifically set to `true`. -Here is the example front matter (YAML): +Here is the example front matter: -```yml ---- -title: Roadmap -lastmod: 2017-03-05 -date: 2013-11-18 +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example notoc: true ---- -``` +{{< /code-toggle >}} Here is an example of corresponding code that could be used inside a `toc.html` [partial template][partials]: diff --git a/content/en/templates/lists/index.md b/content/en/templates/lists/index.md index 95d45a9d9..c78555d39 100644 --- a/content/en/templates/lists/index.md +++ b/content/en/templates/lists/index.md @@ -94,16 +94,16 @@ You can now access this `_index.md`'s' content in your list template:
    -

    {{.Title }}

    +

    {{.Title}}

    - - {{.Content }} + + {{.Content}}
    @@ -133,7 +133,7 @@ This above will output the following HTML: ### List Pages Without `_index.md` -You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content }}` and only the default values for `.Title` etc. +You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content}}` and only the default values for `.Title` etc. Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from: @@ -381,14 +381,14 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc. {{ end }} {{< /code >}} -In the above example, you may want `{{.Title }}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: +In the above example, you may want `{{.Title}}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: {{< code file="layouts/partials/by-page-field.html" >}} {{ range .Pages.GroupBy "Section" }} {{ with $.Site.GetPage "section" .Key }} -

    {{.Title }}

    +

    {{.Title}}

    {{ else }}

    {{ .Key | title }}

    @@ -544,7 +544,7 @@ While these are logical defaults, they are not always the desired order. There a ### Order Within Groups -Because Grouping returns a `{{.Key }}` and a slice of pages, all the ordering methods listed above are available. +Because Grouping returns a `{{.Key}}` and a slice of pages, all the ordering methods listed above are available. Here is the ordering for the example that follows: diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md index 1aec917eb..1df840578 100644 --- a/content/en/templates/output-formats.md +++ b/content/en/templates/output-formats.md @@ -168,17 +168,15 @@ Note that in the above examples, the _output formats_ for `section`, * These names are case insensitive. * These can be overridden per `Page` in the front matter of content files. -The following is an example of `YAML` front matter in a content file that defines output formats for the rendered `Page`: +The following is an example of front matter in a content file that defines output formats for the rendered `Page`: -```yaml ---- -date: "2016-03-19" +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example outputs: - html - amp - json ---- -``` +{{< /code-toggle >}} ## List Output formats diff --git a/content/en/templates/taxonomy-templates.md b/content/en/templates/taxonomy-templates.md index 4411164da..0cf7ea729 100644 --- a/content/en/templates/taxonomy-templates.md +++ b/content/en/templates/taxonomy-templates.md @@ -150,16 +150,14 @@ Weights of zero are thus treated specially: if two pages have unequal weights, a Content can be assigned weight for each taxonomy that it's assigned to. -```txt -+++ + +{{< code-toggle file="content/example.md" fm=true copy=false >}} tags = [ "a", "b", "c" ] tags_weight = 22 categories = ["d"] -title = "foo" +title = "Example" categories_weight = 44 -+++ -Front Matter with weighted tags and categories -``` +{{< /code-toggle >}} The convention is `taxonomyname_weight`. diff --git a/content/en/variables/page.md b/content/en/variables/page.md index c6d29d39c..6704075f4 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -260,13 +260,11 @@ There are one caveat with this, and this isn't new, but it's worth mentioning he Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable. -```yml ---- -title: My First Post -date: 2017-02-20T15:26:23-06:00 +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example categories: [one] tags: [two,three,four] -``` +{{< /code-toggle >}} With the above front matter, the `tags` and `categories` taxonomies are accessible via the following: @@ -279,14 +277,11 @@ Page-level `.Params` are *only* accessible in lowercase. The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`: -```yml ---- -... +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example affiliatelink: "http://www.my-book-link.here" recommendedby: "My Mother" -... ---- -``` +{{< /code-toggle >}} These fields would then be accessible to the `/themes/yourtheme/layouts/review/single.html` template through `.Params.affiliatelink` and `.Params.recommendedby`, respectively. @@ -322,37 +317,20 @@ The `.Param` method provides a way to resolve a single value according to it's d When front matter contains nested fields like the following: -```yml ---- +{{< code-toggle file="content/example.md" fm=true copy=false >}} +title: Example author: given_name: John family_name: Feminella display_name: John Feminella ---- -``` +{{< /code-toggle >}} + `.Param` can access these fields by concatenating the field names together with a dot: ```go-html-template {{ $.Param "author.display_name" }} ``` -If your front matter contains a top-level key that is ambiguous with a nested key, as in the following case: - -```yml ---- -favorites.flavor: vanilla -favorites: - flavor: chocolate ---- -``` - -The top-level key will be preferred. Therefore, the following method, when applied to the previous example, will print `vanilla` and not `chocolate`: - -```txt -{{ $.Param "favorites.flavor" }} -=> vanilla -``` - [gitinfo]: /variables/git/ [File Variables]: /variables/files/ [bundle]: /content-management/page-bundles From f90fb1bf52f8e9074c00108ffce972d5a7f92a60 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 27 Mar 2023 21:39:40 -0700 Subject: [PATCH 41/95] Improve type formatting (#2032) --- content/en/content-management/menus.md | 20 +++++++------- content/en/hugo-pipes/postcss.md | 16 +++++------ content/en/variables/menus.md | 38 +++++++++++++------------- 3 files changed, 37 insertions(+), 37 deletions(-) diff --git a/content/en/content-management/menus.md b/content/en/content-management/menus.md index 0ee3fafe0..34f24c5cc 100644 --- a/content/en/content-management/menus.md +++ b/content/en/content-management/menus.md @@ -68,28 +68,28 @@ Access the entry with `site.Menus.main` and `site.Menus.footer` in your template Use these properties when defining menu entries in front matter: identifier -: (string) Required when two or more menu entries have the same `name`, or when localizing the `name` using translation tables. Must start with a letter, followed by letters, digits, or underscores. +: (`string`) Required when two or more menu entries have the same `name`, or when localizing the `name` using translation tables. Must start with a letter, followed by letters, digits, or underscores. name -: (string) The text to display when rendering the menu entry. +: (`string`) The text to display when rendering the menu entry. params -: (map) User-defined properties for the menu entry. +: (`map`) User-defined properties for the menu entry. parent -: (string) The `identifier` of the parent menu entry. If `identifier` is not defined, use `name`. Required for child entries in a nested menu. +: (`string`) The `identifier` of the parent menu entry. If `identifier` is not defined, use `name`. Required for child entries in a nested menu. post -: (string) The HTML to append when rendering the menu entry. +: (`string`) The HTML to append when rendering the menu entry. pre -: (string) The HTML to prepend when rendering the menu entry. +: (`string`) The HTML to prepend when rendering the menu entry. title -: (string) The HTML `title` attribute of the rendered menu entry. +: (`string`) The HTML `title` attribute of the rendered menu entry. weight -: (int) A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry. Lighter entries float to the top, while heavier entries sink to the bottom. +: (`int`) A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry. Lighter entries float to the top, while heavier entries sink to the bottom. ### Example {#example-front-matter} @@ -155,10 +155,10 @@ Each menu entry defined in site configuration requires two or more properties: - Specify `name` and `url` for external links pageRef -: (string) The file path of the target page, relative to the `content` directory. Required for *internal* links. +: (`string`) The file path of the target page, relative to the `content` directory. Required for *internal* links. url -: (string) Required for *external* links. +: (`string`) Required for *external* links. {{% note %}} The [properties] available to entries defined in front matter are also available to entries defined in site configuration. diff --git a/content/en/hugo-pipes/postcss.md b/content/en/hugo-pipes/postcss.md index 46c9a8c66..030481bd9 100755 --- a/content/en/hugo-pipes/postcss.md +++ b/content/en/hugo-pipes/postcss.md @@ -68,19 +68,19 @@ If starting with a Sass file within the `assets` directory: The `resources.PostCSS` method takes an optional map of options. config -: (string) The directory that contains the PostCSS configuration file. Default is the root of the project directory. +: (`string`) The directory that contains the PostCSS configuration file. Default is the root of the project directory. noMap -: (bool) Default is `false`. If `true`, disables inline sourcemaps. +: (`bool`) Default is `false`. If `true`, disables inline sourcemaps. inlineImports -: (bool) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. +: (`bool`) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored. Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file. Hugo will look for imports relative to the module mount and will respect theme overrides. skipInlineImportsNotFound {{< new-in "0.99.0" >}} -: (bool) Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. +: (`bool`) Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. {{< code file="layouts/partials/css.html" >}} {{ $opts := dict "config" "config-directory" "noMap" true }} @@ -94,16 +94,16 @@ skipInlineImportsNotFound {{< new-in "0.99.0" >}} To avoid using a PostCSS configuration file, you can specify a minimal configuration using the options map. use -: (string) A space-delimited list of PostCSS plugins to use. +: (`string`) A space-delimited list of PostCSS plugins to use. parser -: (string) A custom PostCSS parser. +: (`string`) A custom PostCSS parser. stringifier -: (string) A custom PostCSS stringifier. +: (`string`) A custom PostCSS stringifier. syntax -: (string) Custom postcss syntax. +: (`string`) Custom postcss syntax. {{< code file="layouts/partials/css.html" >}} {{ $opts := dict "use" "autoprefixer postcss-color-alpha" }} diff --git a/content/en/variables/menus.md b/content/en/variables/menus.md index 352fe0d1a..735121949 100644 --- a/content/en/variables/menus.md +++ b/content/en/variables/menus.md @@ -19,54 +19,54 @@ aliases: [/variables/menu/] After [defining the menu entries], access their properties with these variables. .Children -: (menu) A collection of child menu entries, if any, under the current menu entry. +: (`menu`) A collection of child menu entries, if any, under the current menu entry. .Identifier -: (string) The `identifier` property of the menu entry. If you define the menu entry [automatically], the page's `.Section`. +: (`string`) The `identifier` property of the menu entry. If you define the menu entry [automatically], the page's `.Section`. .KeyName -: (string) The `identifier` property of the menu entry, else the `name` property. +: (`string`) The `identifier` property of the menu entry, else the `name` property. .Menu -: (string) The identifier of the menu that contains the menu entry. +: (`string`) The identifier of the menu that contains the menu entry. .Name -: (string) The `name` property of the menu entry. +: (`string`) The `name` property of the menu entry. - If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`. - If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`. .Page -: (page) A reference to the page associated with the menu entry. +: (`page`) A reference to the page associated with the menu entry. .Params -: (map) The `params` property of the menu entry. +: (`map`) The `params` property of the menu entry. .Parent -: (string) The `parent` property of the menu entry. +: (`string`) The `parent` property of the menu entry. .Post -: (template.HTML) The `post` property of the menu entry. +: (`template.HTML`) The `post` property of the menu entry. .Pre -: (template.HTML) The `pre` property of the menu entry. +: (`template.HTML`) The `pre` property of the menu entry. .Title -: (string) The `title` property of the menu entry. +: (`string`) The `title` property of the menu entry. - If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`. - If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`. .URL -: (string) The `.RelPermalink` of the page associated with the menu entry. For menu entries pointing to external resources, the `url` property of the menu entry. +: (`string`) The `.RelPermalink` of the page associated with the menu entry. For menu entries pointing to external resources, the `url` property of the menu entry. .Weight -: (int) The `weight` property of the menu entry. +: (`int`) The `weight` property of the menu entry. - If you define the menu entry [automatically], the page's `.Weight`. - If you define the menu [in front matter] or [in site configuration], falls back to the page's `.Weight`. @@ -74,19 +74,19 @@ After [defining the menu entries], access their properties with these variables. ## Methods .HasChildren -: (bool) Returns `true` if `.Children` is non-nil. +: (`bool`) Returns `true` if `.Children` is non-nil. .IsEqual -: (bool) Returns `true` if the compared menu entries represent the same menu entry. +: (`bool`) Returns `true` if the compared menu entries represent the same menu entry. .IsSameResource -: (bool) Returns `true` if the compared menu entries point to the same resource. +: (`bool`) Returns `true` if the compared menu entries point to the same resource. .Page.HasMenuCurrent -: (bool) Use this method to determine ancestors of the active menu entry. See [details](/functions/hasmenucurrent/). +: (`bool`) Use this method to determine ancestors of the active menu entry. See [details](/functions/hasmenucurrent/). .Page.IsMenuCurrent -: (bool) Use this method to determine the active menu entry. See [details](/functions/ismenucurrent/). +: (`bool`) Use this method to determine the active menu entry. See [details](/functions/ismenucurrent/). [automatically]: /content-management/menus/#define-automatically [defining the menu entries]: /content-management/menus/#overview From 1e50f0583d3e20995addf17991d81dd90f5aed7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Thu, 30 Mar 2023 10:14:17 +0200 Subject: [PATCH 42/95] Update theme --- .../images/sponsors/your-company-dark.svg | 2 +- .../assets/images/sponsors/your-company.svg | 2 +- .../gohugoio/gohugoioTheme/data/sponsors.toml | 16 ++++++---------- .../partials/home-page-sections/sponsors.html | 19 +++++++++++++++++-- _vendor/modules.txt | 2 +- go.mod | 2 +- go.sum | 2 ++ 7 files changed, 29 insertions(+), 16 deletions(-) diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg index 1793cb644..58fd601f5 100644 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg +++ b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg @@ -1,4 +1,4 @@ - + diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg index 6f3082b54..3b85ece5c 100644 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg +++ b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg @@ -1,4 +1,4 @@ - + diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml b/_vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml index c31178c92..4ce0f27b8 100644 --- a/_vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml +++ b/_vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml @@ -12,13 +12,9 @@ bgcolor = "#131A3E" [[banners]] - name = "Gravity Kit" - link = "https://www.gravitykit.com/" - logo = "images/sponsors/graitykit-dark.svg" - query_params = "ref=532&campaign=hugo&" - utm_campaign = "hugosponsor" - bgcolor = "#e0ecf3" - - #hugohome - #hugofooter - #hugogithub + name = "Your Company?" + link = "https://bep.is/en/hugo-sponsor-2023-01/" + logo = "/images/sponsors/your-company.svg" + utm_campaign = "hugosponsor" + show_on_hover = true + bgcolor = "#004887" diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html index b2915e109..32bc44f6a 100644 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html +++ b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html @@ -5,6 +5,14 @@ {{ $isFooter := (eq $gtag "footer") }} {{ $utmSource := cond $isFooter "hugofooter" "hugohome" }} {{ with .cx.Site.Data.sponsors }} +
    @@ -22,11 +30,18 @@ + class="w-100 grow pa3{{ if .show_on_hover }} + show-on-hover + {{ end }}" + style=""> {{ $logo.Content | safeHTML }} {{ else }} - + {{ $logo.Content | safeHTML }} {{ end }} diff --git a/_vendor/modules.txt b/_vendor/modules.txt index 9e5b08998..0b90bc942 100644 --- a/_vendor/modules.txt +++ b/_vendor/modules.txt @@ -1 +1 @@ -# github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f +# github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c diff --git a/go.mod b/go.mod index 33f818ad6..b9c01d09c 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/gohugoio/hugoDocs go 1.16 -require github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f // indirect +require github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c // indirect diff --git a/go.sum b/go.sum index ea0d2dcbe..cf29aca60 100644 --- a/go.sum +++ b/go.sum @@ -59,3 +59,5 @@ github.com/gohugoio/gohugoioTheme v0.0.0-20230120185049-2c3c4d0ba232 h1:bEojKgKI github.com/gohugoio/gohugoioTheme v0.0.0-20230120185049-2c3c4d0ba232/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM= github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f h1:8wI3zOTWQG15aKkbAZQaoGnUQff46hO95opQndBHRE4= github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM= +github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c h1:TyHgmowfiMyxKrqTdRxm/yWIFeN7XRh7Hm6/dOG6yDA= +github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM= From 289da5658e6156181119731cb24dd7d51fdc3455 Mon Sep 17 00:00:00 2001 From: Will Faught Date: Thu, 30 Mar 2023 21:16:18 -0700 Subject: [PATCH 43/95] Change findRe to findRE --- content/en/functions/findRe.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/functions/findRe.md b/content/en/functions/findRe.md index 13d43f896..3be6f5cd3 100644 --- a/content/en/functions/findRe.md +++ b/content/en/functions/findRe.md @@ -38,7 +38,7 @@ You can write and test your regular expression using [regex101.com](https://rege ## findRESubmatch -In Hugo 0.110.0 we added a variant of `findRe` that returns a slice of strings holding the text of the leftmost match of the regular expression in s and the matches, if any, of its subexpressions. +In Hugo 0.110.0 we added a variant of `findRE` that returns a slice of strings holding the text of the leftmost match of the regular expression in s and the matches, if any, of its subexpressions. This: From 0988c4a429ea4fd7ee3764f37d9c161f2edbf1cb Mon Sep 17 00:00:00 2001 From: bwc69151 <127702755+bwc69151@users.noreply.github.com> Date: Fri, 31 Mar 2023 18:18:38 +0300 Subject: [PATCH 44/95] Update output-formats.md (#2036) --- content/en/templates/output-formats.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md index 1df840578..5f257d91a 100644 --- a/content/en/templates/output-formats.md +++ b/content/en/templates/output-formats.md @@ -4,7 +4,7 @@ linktitle: Custom Output Formats description: Hugo can output content in multiple formats, including calendar events, e-book formats, Google AMP, and JSON search indexes, or any custom text format. date: 2017-03-22 publishdate: 2017-03-22 -lastmod: 2019-12-11 +lastmod: 2023-03-31 categories: [templates] keywords: ["amp", "outputs", "rss"] menu: @@ -49,16 +49,16 @@ The above example adds one new media type, `text/enriched`, and changes the suff **Note:** these media types are configured for **your output formats**. If you want to redefine one of Hugo's default output formats (e.g. `HTML`), you also need to redefine the media type. So, if you want to change the suffix of the `HTML` output format from `html` (default) to `htm`: -```toml +{{< code-toggle file="config" >}} [mediaTypes] -[mediaTypes."text/html"] -suffixes = ["htm"] + [mediaTypes."text/html"] + suffixes = ["htm"] # Redefine HTML to update its media type. [outputFormats] -[outputFormats.HTML] -mediaType = "text/html" -``` + [outputFormats.HTML] + mediaType = "text/html" +{{}} **Note** that for the above to work, you also need to add an `outputs` definition in your site config. From 856fa293c83f9358c1dfed577529d9336a63e41a Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 31 Mar 2023 18:29:18 -0700 Subject: [PATCH 45/95] Document .File.Filename (#2037) Closes #1623 --- content/en/variables/files.md | 115 ++++++++++++++++++++++++---------- 1 file changed, 82 insertions(+), 33 deletions(-) diff --git a/content/en/variables/files.md b/content/en/variables/files.md index 4e6c0632f..049c47396 100644 --- a/content/en/variables/files.md +++ b/content/en/variables/files.md @@ -1,10 +1,6 @@ --- title: File Variables -linktitle: -description: "You can access filesystem-related data for a content file in the `.File` variable." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 +description: "Use File variables to access file-related values for each page that is backed by a file." categories: [variables and params] keywords: [files] draft: false @@ -12,43 +8,96 @@ menu: docs: parent: "variables" weight: 40 +toc: true weight: 40 -sections_weight: 40 aliases: [/variables/file-variables/] -toc: false --- +## Variables -{{% note "Rendering Local Files" %}} -For information on creating shortcodes and templates that tap into Hugo's file-related feature set, see [Local File Templates](/templates/files/). +{{% note %}} +The path separators (slash or backslash) in `.File.Path`, `.File.Dir`, and `.File.Filename` depend on the operating system. {{% /note %}} -The `.File` object contains the following fields: - .File.Path -: the original relative path of the page, relative to the content dir (e.g., `posts/foo.en.md`) - -.File.LogicalName -: the name of the content file that represents a page (e.g., `foo.en.md`) - -.File.TranslationBaseName -: the filename without extension or optional language identifier (e.g., `foo`) - -.File.ContentBaseName -: is either a TranslationBaseName or name of containing folder if file is a leaf bundle. - -.File.BaseFileName -: the filename without extension (e.g., `foo.en`) - -.File.Ext -: the file extension of the content file (e.g., `md`). - -.File.Lang -: the language associated with the given file if Hugo's [Multilingual features][multilingual] are enabled (e.g., `en`) +: (`string`) The file path, relative to the `content` directory. .File.Dir -: given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned (e.g., `posts/dir1/dir2/`). Note that the path separator (`\` or `/`) could be dependent on the operating system. +: (`string`) The file path, excluding the file name, relative to the `content` directory. + +.File.LogicalName +: (`string`) The file name. + +.File.BaseFileName +: (`string`) The file name, excluding the extension. + +.File.TranslationBaseName +: (`string`) The file name, excluding the extension and language identifier. + +.File.Ext +: (`string`) The file extension. + +.File.Lang +: (`string`) The language associated with the given file. + + +.File.ContentBaseName +: (`string`) If the page is a branch or leaf bundle, the name of the containing directory, else the `.TranslationBaseName`. + +.File.Filename +: (`string`) The absolute file path. .File.UniqueID -: the MD5-checksum of the content file's path. +: (`string`) The MD5 hash of `.File.Path`. -[Multilingual]: /content-management/multilingual/ +## Examples + +```text +content/ +├── news/ +│   ├── b/ +│   │   ├── index.de.md <-- leaf bundle +│   │   └── index.en.md <-- leaf bundle +│   ├── a.de.md <-- regular content +│   ├── a.en.md <-- regular content +│   ├── _index.de.md <-- branch bundle +│   └── _index.en.md <-- branch bundle +├── _index.de.md +└── _index.en.md +``` + +With the content structure above, the `.File` objects for the English pages contain the following properties: + + |regular content|leaf bundle|branch bundle +:--|:--|:--|:-- +Path|news/a.en.md|news/b/index.en.md|news/_index.en.md +Dir|news/|news/b/|news/ +LogicalName|a.en.md|index.en.md|_index.en.md +BaseFileName|a.en|index.en|_index.en +TranslationBaseName|a|index|_index +Ext|md|md|md +Lang|en|en|en +ContentBaseName|a|b|news +Filename|/home/user/...|/home/user/...|/home/user/... +UniqueID|15be14b...|186868f...|7d9159d... + +## Defensive coding + +Some of the pages on a site may not be backed by a file. For example: + +- Top level section pages +- Taxonomy pages +- Term pages + +Without a backing file, Hugo will throw a warning if you attempt to access a `.File` property. For example: + +```text +WARN .File.ContentBaseName on zero object. Wrap it in if or with... +``` + +To code defensively: + +```go-html-template +{{ with .File }} + {{ .ContentBaseName }} +{{ end }} +``` From 928b945054f9eaf9ddb7686dccaeb1374dda38c1 Mon Sep 17 00:00:00 2001 From: Will Faught Date: Fri, 31 Mar 2023 21:05:20 -0700 Subject: [PATCH 46/95] Add code fence types (#2038) * Add code fence types * Revert back to html --- content/en/functions/after.md | 2 +- content/en/functions/apply.md | 6 +++--- content/en/functions/base64.md | 2 +- content/en/functions/chomp.md | 2 +- content/en/functions/cond.md | 2 +- content/en/functions/countrunes.md | 2 +- content/en/functions/countwords.md | 2 +- content/en/functions/default.md | 4 ++-- content/en/functions/delimit.md | 2 +- content/en/functions/echoparam.md | 2 +- content/en/functions/eq.md | 2 +- content/en/functions/errorf.md | 6 +++--- content/en/functions/format.md | 2 +- content/en/functions/ge.md | 2 +- content/en/functions/gt.md | 2 +- content/en/functions/i18n.md | 4 ++-- content/en/functions/in.md | 4 ++-- content/en/functions/index-function.md | 6 +++--- content/en/functions/int.md | 2 +- content/en/functions/intersect.md | 2 +- content/en/functions/isset.md | 2 +- content/en/functions/jsonify.md | 2 +- content/en/functions/last.md | 2 +- content/en/functions/le.md | 2 +- content/en/functions/lt.md | 2 +- content/en/functions/markdownify.md | 2 +- content/en/functions/md5.md | 2 +- content/en/functions/ne.md | 2 +- content/en/functions/now.md | 4 ++-- content/en/functions/partialCached.md | 2 +- content/en/functions/printf.md | 4 ++-- content/en/functions/render.md | 2 +- content/en/functions/safeHTML.md | 2 +- content/en/functions/seq.md | 4 ++-- content/en/functions/sha.md | 4 ++-- content/en/functions/strings.RuneCount.md | 2 +- content/en/functions/title.md | 2 +- content/en/functions/transform.Unmarshal.md | 4 ++-- content/en/functions/trim.md | 4 ++-- content/en/functions/union.md | 4 ++-- 40 files changed, 56 insertions(+), 56 deletions(-) diff --git a/content/en/functions/after.md b/content/en/functions/after.md index df2142ab6..9a2a68c5f 100644 --- a/content/en/functions/after.md +++ b/content/en/functions/after.md @@ -19,7 +19,7 @@ aliases: [] The following shows `after` being used in conjunction with the [`slice` function][slice]: -``` +```go-html-template {{ $data := slice "one" "two" "three" "four" }} {{ range after 2 $data }} {{ . }} diff --git a/content/en/functions/apply.md b/content/en/functions/apply.md index 4c36cf17e..0f02c1b4c 100644 --- a/content/en/functions/apply.md +++ b/content/en/functions/apply.md @@ -37,7 +37,7 @@ names: [ "Derek Perkins", "Joe Bergevin", "Tanner Linsley" ] You can then use `apply` as follows: -``` +```go-html-template {{ apply .Params.names "urlize" "." }} ``` @@ -49,7 +49,7 @@ Which will result in the following: This is *roughly* equivalent to using the following with [range]: -``` +```go-html-template {{ range .Params.names }}{{ . | urlize }}{{ end }} ``` @@ -83,7 +83,7 @@ This works, but the complexity of `post-tag-list.html` is fairly high. The Hugo This first version of `layouts/partials/post-tag-list.html` separates all of the operations for ease of reading. The combined and DRYer version is shown next: -``` +```go-html-template {{ with .Params.tags }}
    Tags: diff --git a/content/en/functions/base64.md b/content/en/functions/base64.md index fb9ec9997..2568c1f47 100644 --- a/content/en/functions/base64.md +++ b/content/en/functions/base64.md @@ -42,7 +42,7 @@ You can also pass other data types as arguments to the template function which t Using base64 to decode and encode becomes really powerful if we have to handle responses from APIs. -``` +```go-html-template {{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }} {{ $resp.content | base64Decode | markdownify }} ``` diff --git a/content/en/functions/chomp.md b/content/en/functions/chomp.md index 9bdb1be8a..eb44f726c 100644 --- a/content/en/functions/chomp.md +++ b/content/en/functions/chomp.md @@ -21,6 +21,6 @@ deprecated: false Useful in a pipeline to remove newlines added by other processing (e.g., [`markdownify`](/functions/markdownify/)). -``` +```go-html-template {{ chomp "

    Blockhead

    \n"}} → "

    Blockhead

    " ``` diff --git a/content/en/functions/cond.md b/content/en/functions/cond.md index 30b853251..b7b5e3d55 100644 --- a/content/en/functions/cond.md +++ b/content/en/functions/cond.md @@ -17,7 +17,7 @@ draft: false Example: -``` +```go-html-template {{ cond (eq (len $geese) 1) "goose" "geese" }} ``` diff --git a/content/en/functions/countrunes.md b/content/en/functions/countrunes.md index 01ded4d6f..e3add0d7f 100644 --- a/content/en/functions/countrunes.md +++ b/content/en/functions/countrunes.md @@ -20,7 +20,7 @@ deprecated: false In contrast with `countwords` function, which counts every word in a string, the `countrunes` function determines the number of runes in the content and excludes any whitespace. This has specific utility if you are dealing with CJK-like languages. -``` +```go-html-template {{ "Hello, 世界" | countrunes }} ``` diff --git a/content/en/functions/countwords.md b/content/en/functions/countwords.md index 17f0fa5c2..c0ca72aa3 100644 --- a/content/en/functions/countwords.md +++ b/content/en/functions/countwords.md @@ -18,7 +18,7 @@ deprecated: false The template function works similar to the [.WordCount page variable][pagevars]. -``` +```go-html-template {{ "Hugo is a static site generator." | countwords }} ``` diff --git a/content/en/functions/default.md b/content/en/functions/default.md index defdad480..b187331de 100644 --- a/content/en/functions/default.md +++ b/content/en/functions/default.md @@ -42,7 +42,7 @@ newparam: `default` can be written in more than one way: -``` +```go-html-template {{ index .Params "font" | default "Roboto" }} {{ default "Roboto" (index .Params "font") }} ``` @@ -58,7 +58,7 @@ A `default` value, however, does not need to be hard coded like the previous exa Which would return: -``` +```html

    The default function helps make your templating DRYer.

    ``` diff --git a/content/en/functions/delimit.md b/content/en/functions/delimit.md index 4705a7f2d..63207b268 100644 --- a/content/en/functions/delimit.md +++ b/content/en/functions/delimit.md @@ -21,7 +21,7 @@ aliases: [] `delimit` called in your template takes the form of -``` +```go-html-template {{ delimit array/slice/map delimiter optionallastdelimiter }} ``` diff --git a/content/en/functions/echoparam.md b/content/en/functions/echoparam.md index 515b5c449..abdd0072a 100644 --- a/content/en/functions/echoparam.md +++ b/content/en/functions/echoparam.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ echoParam .Params "project_url" }} ``` diff --git a/content/en/functions/eq.md b/content/en/functions/eq.md index d342a628a..47901f16e 100644 --- a/content/en/functions/eq.md +++ b/content/en/functions/eq.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if eq .Section "blog" }}current{{ end }} ``` diff --git a/content/en/functions/errorf.md b/content/en/functions/errorf.md index 04fd0edb0..4e5160b25 100644 --- a/content/en/functions/errorf.md +++ b/content/en/functions/errorf.md @@ -22,11 +22,11 @@ Any ERROR will also cause the build to fail (the `hugo` command will `exit -1`). Both functions return an empty string, so the messages are only printed to the console. -``` +```go-html-template {{ errorf "Failed to handle page %q" .Path }} ``` -``` +```go-html-template {{ warnf "You should update the shortcodes in %q" .Path }} ``` @@ -38,7 +38,7 @@ Sometimes it may make sense to let the user suppress an ERROR and make the build You can do this by using the `erroridf` function. This functions takes an error ID as the first argument. -``` +```go-html-template {{ erroridf "my-custom-error" "You should consider fixing this." }} ``` diff --git a/content/en/functions/format.md b/content/en/functions/format.md index 5c86714fe..201a779cd 100644 --- a/content/en/functions/format.md +++ b/content/en/functions/format.md @@ -97,7 +97,7 @@ Spelled-out cardinal numbers (e.g. "one", "two", and "three") are not currently Use the [`humanize`](/functions/humanize) function to render the day of the month as an ordinal number: -``` +```go-html-template {{ humanize .Date.Day }} of {{ .Date.Format "January 2006" }} ``` diff --git a/content/en/functions/ge.md b/content/en/functions/ge.md index c7256c0e3..915930528 100644 --- a/content/en/functions/ge.md +++ b/content/en/functions/ge.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if ge 10 5 }}true{{ end }} ``` diff --git a/content/en/functions/gt.md b/content/en/functions/gt.md index 91203f890..9643ee36d 100644 --- a/content/en/functions/gt.md +++ b/content/en/functions/gt.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if gt 10 5 }}true{{ end }} ``` diff --git a/content/en/functions/i18n.md b/content/en/functions/i18n.md index 8f8c9642c..1dbbfcb76 100644 --- a/content/en/functions/i18n.md +++ b/content/en/functions/i18n.md @@ -23,7 +23,7 @@ aliases: [] This translates a piece of content based on your `i18n/en-US.toml` files. You can use the [go-i18n](https://github.com/nicksnyder/go-i18n) tools to manage your translations. The translations can exist in both the theme and at the root of your repository. -``` +```go-html-template {{ i18n "translation_id" }} ``` @@ -35,7 +35,7 @@ This translates a piece of content based on your `i18n/en-US.toml` files. You ca Often you will want to use the page variables in the translation strings. To do so, pass the `.` context when calling `i18n`: -``` +```go-html-template {{ i18n "wordCount" . }} ``` diff --git a/content/en/functions/in.md b/content/en/functions/in.md index 7a8cb33eb..c1ef45629 100644 --- a/content/en/functions/in.md +++ b/content/en/functions/in.md @@ -22,11 +22,11 @@ The elements supported are strings, integers and floats, although only float64 w In addition, `in` can also check if a substring exists in a string. -``` +```go-html-template {{ if in .Params.tags "Git" }}Follow me on GitHub!{{ end }} ``` -``` +```go-html-template {{ if in "this string contains a substring" "substring" }}Substring found!{{ end }} ``` diff --git a/content/en/functions/index-function.md b/content/en/functions/index-function.md index 6ee46b4a8..970ee0c49 100644 --- a/content/en/functions/index-function.md +++ b/content/en/functions/index-function.md @@ -69,7 +69,7 @@ pop_metro = 1717900 The example we will use will be an article on Oslo, whose front matter should be set to exactly the same name as the corresponding file name in `data/locations/`: -``` +```toml title = "My Norwegian Vacation" location = "oslo" ``` @@ -81,8 +81,8 @@ This is where the `index` function is needed. `index` takes 2 parameters in this 1. The node path 2. A string corresponding to the desired data; e.g.— -``` -{{ index .Site.Data.locations “oslo” }} +```go-html-template +{{ index .Site.Data.locations "oslo" }} ``` The variable for `.Params.location` is a string and can therefore replace `oslo` in the example above: diff --git a/content/en/functions/int.md b/content/en/functions/int.md index 309368702..74a22714b 100644 --- a/content/en/functions/int.md +++ b/content/en/functions/int.md @@ -32,7 +32,7 @@ number representation. The `strings.TrimLeft` can be used for this purpose. -``` +```go-html-template {{ int ("0987" | strings.TrimLeft "0") }} {{ int ("00987" | strings.TrimLeft "0") }} ``` diff --git a/content/en/functions/intersect.md b/content/en/functions/intersect.md index 8d4c50fe2..4a645234f 100644 --- a/content/en/functions/intersect.md +++ b/content/en/functions/intersect.md @@ -21,7 +21,7 @@ A useful example is to use it as `AND` filters when combined with where: ## AND filter in where query -``` +```go-html-template {{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }} {{ $pages := $pages | union (where .Site.RegularPages "Params.pinned" true) }} {{ $pages := $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }} diff --git a/content/en/functions/isset.md b/content/en/functions/isset.md index 2bfc43203..2be8a1587 100644 --- a/content/en/functions/isset.md +++ b/content/en/functions/isset.md @@ -20,7 +20,7 @@ aliases: [] Takes either a slice, array, or channel and an index or a map and a key as input. -``` +```go-html-template {{ if isset .Params "project_url" }} {{ index .Params "project_url" }}{{ end }} ``` diff --git a/content/en/functions/jsonify.md b/content/en/functions/jsonify.md index 72ec4634b..ecb5264ee 100644 --- a/content/en/functions/jsonify.md +++ b/content/en/functions/jsonify.md @@ -26,7 +26,7 @@ the output will begin on a new line beginning with *prefix* followed by one or more copies of *indent* according to the indentation nesting. -``` +```go-html-template {{ dict "title" .Title "content" .Plain | jsonify }} {{ dict "title" .Title "content" .Plain | jsonify (dict "indent" " ") }} {{ dict "title" .Title "content" .Plain | jsonify (dict "prefix" " " "indent" " ") }} diff --git a/content/en/functions/last.md b/content/en/functions/last.md index 4a752cb82..63fdfa129 100644 --- a/content/en/functions/last.md +++ b/content/en/functions/last.md @@ -20,7 +20,7 @@ draft: false aliases: [] --- -``` +```go-html-template {{ range last 10 .Pages }} {{ .Render "summary" }} {{ end }} diff --git a/content/en/functions/le.md b/content/en/functions/le.md index 1ff0ac582..8df2f2479 100644 --- a/content/en/functions/le.md +++ b/content/en/functions/le.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if le 5 10 }}true{{ end }} ``` diff --git a/content/en/functions/lt.md b/content/en/functions/lt.md index d2a234986..1e82270c3 100644 --- a/content/en/functions/lt.md +++ b/content/en/functions/lt.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if lt 5 10 }}true{{ end }} ``` diff --git a/content/en/functions/markdownify.md b/content/en/functions/markdownify.md index d222a8eb6..44e4c9af6 100644 --- a/content/en/functions/markdownify.md +++ b/content/en/functions/markdownify.md @@ -15,7 +15,7 @@ deprecated: false aliases: [] --- -``` +```go-html-template {{ .Title | markdownify }} ``` diff --git a/content/en/functions/md5.md b/content/en/functions/md5.md index 2168034c4..0c9cabbdc 100644 --- a/content/en/functions/md5.md +++ b/content/en/functions/md5.md @@ -18,7 +18,7 @@ deprecated: false aliases: [] --- -``` +```go-html-template {{ md5 "Hello world, gophers!" }} ``` diff --git a/content/en/functions/ne.md b/content/en/functions/ne.md index e072993d2..e0fc93bbd 100644 --- a/content/en/functions/ne.md +++ b/content/en/functions/ne.md @@ -19,6 +19,6 @@ aliases: [] --- -``` +```go-html-template {{ if ne .Section "blog" }}current{{ end }} ``` diff --git a/content/en/functions/now.md b/content/en/functions/now.md index 24e1ab3f7..e54f952e8 100644 --- a/content/en/functions/now.md +++ b/content/en/functions/now.md @@ -22,7 +22,7 @@ See [`time.Time`](https://godoc.org/time#Time). For example, building your site on June 24, 2017, with the following templating: -``` +```go-html-template
    © {{ now.Format "2006"}}
    @@ -30,7 +30,7 @@ For example, building your site on June 24, 2017, with the following templating: would produce the following: -``` +```html
    © 2017
    diff --git a/content/en/functions/partialCached.md b/content/en/functions/partialCached.md index 2e79bb32f..ef29ae8a9 100644 --- a/content/en/functions/partialCached.md +++ b/content/en/functions/partialCached.md @@ -38,7 +38,7 @@ You can also pass additional parameters to `partialCached` to create *variants* If you need to pass additional parameters to create unique variants, you can pass as many variant parameters as you need: -``` +```go-html-template {{ partialCached "footer.html" . .Params.country .Params.province }} ``` diff --git a/content/en/functions/printf.md b/content/en/functions/printf.md index 8b12b9883..41e6524ff 100644 --- a/content/en/functions/printf.md +++ b/content/en/functions/printf.md @@ -19,10 +19,10 @@ deprecated: false See [the go doc](https://golang.org/pkg/fmt/) for additional information. -``` +```go-html-template {{ i18n ( printf "combined_%s" $var ) }} ``` -``` +```go-html-template {{ printf "formatted %.2f" 3.1416 }} ``` diff --git a/content/en/functions/render.md b/content/en/functions/render.md index 7e4015bf6..158721a27 100644 --- a/content/en/functions/render.md +++ b/content/en/functions/render.md @@ -23,7 +23,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`: -``` +```go-html-template {{ range .Pages }} {{ .Render "summary"}} {{ end }} diff --git a/content/en/functions/safeHTML.md b/content/en/functions/safeHTML.md index 5a0aa1e05..904547446 100644 --- a/content/en/functions/safeHTML.md +++ b/content/en/functions/safeHTML.md @@ -33,7 +33,7 @@ copyright = "© 2015 Jane Doe. © 2015 Jane Doe. <a href="https://creativecommons.org/licenses by/4.0/">Some rights reserved</a>.

    ``` diff --git a/content/en/functions/seq.md b/content/en/functions/seq.md index a880ec241..0314595d5 100644 --- a/content/en/functions/seq.md +++ b/content/en/functions/seq.md @@ -33,14 +33,14 @@ It's named and used in the model of [GNU's seq]. You can use `seq` in combination with `range` and `after`. The following will return 19 elements: -``` +```go-html-template {{ range after 1 (seq 20)}} {{ end }} ``` However, when ranging with an index, the following may be less confusing in that `$indexStartingAt1` and `$num` will return `1,2,3 ... 20`: -``` +```go-html-template {{ range $index, $num := (seq 20) }} $indexStartingAt1 := (add $index 1) {{ end }} diff --git a/content/en/functions/sha.md b/content/en/functions/sha.md index 24ad165a8..ba344fddf 100644 --- a/content/en/functions/sha.md +++ b/content/en/functions/sha.md @@ -20,14 +20,14 @@ aliases: [sha1, sha256] `sha1` hashes the given input and returns its SHA1 checksum. -``` +```go-html-template {{ sha1 "Hello world, gophers!" }} ``` `sha256` hashes the given input and returns its SHA256 checksum. -``` +```go-html-template {{ sha256 "Hello world, gophers!" }} ``` diff --git a/content/en/functions/strings.RuneCount.md b/content/en/functions/strings.RuneCount.md index de335f862..69c581746 100644 --- a/content/en/functions/strings.RuneCount.md +++ b/content/en/functions/strings.RuneCount.md @@ -19,7 +19,7 @@ aliases: [] In contrast with `strings.CountRunes` function, which strips HTML and whitespace before counting runes, `strings.RuneCount` simply counts all the runes in a string. It relies on the Go [`utf8.RuneCountInString`] function. -``` +```go-html-template {{ "Hello, 世界" | strings.RuneCount }} ``` diff --git a/content/en/functions/title.md b/content/en/functions/title.md index 28444f400..b6f752ac8 100644 --- a/content/en/functions/title.md +++ b/content/en/functions/title.md @@ -27,7 +27,7 @@ aliases: [] Can be combined in pipes. In the following snippet, the link text is cleaned up using `humanize` to remove dashes and `title` to convert the value of `$name` to Initial Caps. -``` +```go-html-template {{ range $name, $items := .Site.Taxonomies.categories }}
  • {{ $name | humanize | title }} ({{ len $items }})
  • {{ end }} diff --git a/content/en/functions/transform.Unmarshal.md b/content/en/functions/transform.Unmarshal.md index 9b380dc57..cefee1503 100644 --- a/content/en/functions/transform.Unmarshal.md +++ b/content/en/functions/transform.Unmarshal.md @@ -52,7 +52,7 @@ As a convenience, Hugo allows you to access XML data in the same way that you ac To get the contents of `` in the document below, you use `{{ .message.title }}`: -``` +```xml <root> <message> <title>Hugo rocks! @@ -63,7 +63,7 @@ To get the contents of `` in the document below, you use `{{ .message.tit The following example lists the items of an RSS feed: -``` +```go-html-template {{ with resources.Get "https://example.com/rss.xml" | transform.Unmarshal }} {{ range .channel.item }} <strong>{{ .title | plainify | htmlUnescape }}</strong><br /> diff --git a/content/en/functions/trim.md b/content/en/functions/trim.md index 2cda7a59a..e688924bb 100644 --- a/content/en/functions/trim.md +++ b/content/en/functions/trim.md @@ -25,13 +25,13 @@ deprecated: false `trim` *requires* the second argument, which tells the function specifically what to remove from the first argument. There is no default value for the second argument, so **the following usage will not work**: -``` +```go-html-template {{ trim .Inner }} ``` Instead, the following example tells `trim` to remove extra new lines from the content contained in the [shortcode `.Inner` variable][shortcodevars]: -``` +```go-html-template {{ trim .Inner "\n" }} ``` diff --git a/content/en/functions/union.md b/content/en/functions/union.md index 465abcdd8..312bc5e65 100644 --- a/content/en/functions/union.md +++ b/content/en/functions/union.md @@ -20,7 +20,7 @@ aliases: [] Given two arrays (or slices) A and B, this function will return a new array that contains the elements or objects that belong to either A or to B or to both. The elements supported are strings, integers, and floats (only float64). -``` +```go-html-template {{ union (slice 1 2 3) (slice 3 4 5) }} <!-- returns [1 2 3 4 5] --> @@ -38,7 +38,7 @@ Given two arrays (or slices) A and B, this function will return a new array that This is also very useful to use as `OR` filters when combined with where: -``` +```go-html-template {{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }} {{ $pages = $pages | union (where .Site.RegularPages "Params.pinned" true) }} {{ $pages = $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }} From bc3ec033c822353ae64c4af1c94bc8403a23ecf7 Mon Sep 17 00:00:00 2001 From: Joe Mooring <joe.mooring@veriphor.com> Date: Sat, 1 Apr 2023 08:29:16 -0700 Subject: [PATCH 47/95] Front matter cleanup (#2039) --- archetypes/functions.md | 3 - content/en/about/_index.md | 7 +-- content/en/about/benefits.md | 9 +-- content/en/about/features.md | 8 +-- content/en/about/hugo-and-gdpr.md | 6 +- content/en/about/license.md | 6 +- content/en/about/security-model/index.md | 4 +- content/en/about/what-is-hugo.md | 8 +-- content/en/content-management/_index.md | 1 - content/en/content-management/archetypes.md | 3 +- .../en/content-management/build-options.md | 32 +++++----- content/en/content-management/comments.md | 1 - content/en/content-management/diagrams.md | 1 - content/en/content-management/front-matter.md | 2 - .../image-processing/index.md | 1 - content/en/content-management/menus.md | 1 - content/en/content-management/page-bundles.md | 9 +-- .../en/content-management/page-resources.md | 1 - content/en/content-management/related.md | 6 +- content/en/content-management/sections.md | 3 - content/en/content-management/shortcodes.md | 1 - .../content-management/syntax-highlighting.md | 1 - content/en/content-management/taxonomies.md | 1 - content/en/content-management/toc.md | 1 - content/en/content-management/types.md | 1 - content/en/content-management/urls.md | 1 - content/en/contribute/_index.md | 10 +--- content/en/contribute/development.md | 6 +- content/en/contribute/documentation.md | 13 +--- content/en/contribute/themes.md | 7 +-- content/en/documentation.md | 9 +-- content/en/functions/GetPage.md | 9 +-- content/en/functions/RenderString.md | 3 +- content/en/functions/_index.md | 9 +-- content/en/functions/adddate.md | 9 +-- content/en/functions/after.md | 9 +-- content/en/functions/anchorize.md | 5 +- content/en/functions/append.md | 6 +- content/en/functions/apply.md | 60 ++++++++----------- content/en/functions/base64.md | 12 +--- content/en/functions/chomp.md | 8 +-- content/en/functions/complement.md | 1 - content/en/functions/cond.md | 8 +-- content/en/functions/countrunes.md | 8 +-- content/en/functions/countwords.md | 8 +-- content/en/functions/crypto.FNV32a.md | 3 +- content/en/functions/dateformat.md | 8 +-- content/en/functions/default.md | 10 +--- content/en/functions/delimit.md | 11 +--- content/en/functions/dict.md | 8 +-- content/en/functions/duration.md | 3 +- content/en/functions/echoparam.md | 10 +--- content/en/functions/emojify.md | 8 +-- content/en/functions/eq.md | 10 +--- content/en/functions/errorf.md | 8 +-- content/en/functions/fileExists.md | 12 +--- content/en/functions/findRe.md | 1 - content/en/functions/first.md | 10 +--- content/en/functions/float.md | 12 +--- content/en/functions/format.md | 11 +--- content/en/functions/ge.md | 10 +--- content/en/functions/get.md | 10 +--- content/en/functions/getenv.md | 10 +--- content/en/functions/group.md | 4 +- content/en/functions/gt.md | 10 +--- content/en/functions/hasPrefix.md | 10 +--- content/en/functions/hasSuffix.md | 10 +--- content/en/functions/hasmenucurrent.md | 11 +--- content/en/functions/highlight.md | 7 +-- content/en/functions/hmac.md | 10 +--- content/en/functions/htmlEscape.md | 12 +--- content/en/functions/htmlUnescape.md | 12 +--- content/en/functions/hugo.md | 10 +--- content/en/functions/humanize.md | 12 +--- content/en/functions/i18n.md | 10 +--- content/en/functions/images/index.md | 3 +- content/en/functions/in.md | 10 +--- content/en/functions/index-function.md | 20 ++----- content/en/functions/int.md | 12 +--- content/en/functions/intersect.md | 10 +--- content/en/functions/ismenucurrent.md | 11 +--- content/en/functions/isset.md | 10 +--- content/en/functions/jsonify.md | 10 +--- content/en/functions/lang.Merge.md | 9 +-- content/en/functions/lang.md | 3 +- content/en/functions/last.md | 13 +--- content/en/functions/le.md | 10 +--- content/en/functions/len.md | 11 +--- content/en/functions/lower.md | 10 +--- content/en/functions/lt.md | 10 +--- content/en/functions/markdownify.md | 7 +-- content/en/functions/math.md | 10 +--- content/en/functions/md5.md | 10 +--- content/en/functions/merge.md | 6 +- content/en/functions/ne.md | 10 +--- content/en/functions/now.md | 10 +--- content/en/functions/os.Stat.md | 9 +-- content/en/functions/param.md | 3 +- content/en/functions/partialCached.md | 12 +--- content/en/functions/path.Base.md | 8 +-- content/en/functions/path.BaseName.md | 4 +- content/en/functions/path.Clean.md | 9 +-- content/en/functions/path.Dir.md | 10 +--- content/en/functions/path.Ext.md | 10 +--- content/en/functions/path.Join.md | 10 +--- content/en/functions/path.Split.md | 10 +--- content/en/functions/plainify.md | 12 +--- content/en/functions/pluralize.md | 12 +--- content/en/functions/print.md | 11 +--- content/en/functions/printf.md | 9 +-- content/en/functions/println.md | 11 +--- content/en/functions/querify.md | 10 +--- content/en/functions/range.md | 11 +--- content/en/functions/readdir.md | 8 +-- content/en/functions/readfile.md | 9 +-- content/en/functions/ref.md | 10 +--- content/en/functions/reflect.IsMap.md | 10 +--- content/en/functions/reflect.IsSlice.md | 10 +--- content/en/functions/relref.md | 10 +--- content/en/functions/render.md | 11 +--- content/en/functions/replace.md | 9 +-- content/en/functions/replacere.md | 1 - content/en/functions/safeCSS.md | 9 +-- content/en/functions/safeHTML.md | 9 +-- content/en/functions/safeHTMLAttr.md | 1 - content/en/functions/safeJS.md | 11 +--- content/en/functions/safeURL.md | 9 +-- content/en/functions/scratch.md | 9 +-- content/en/functions/seq.md | 17 ++---- content/en/functions/sha.md | 9 +-- content/en/functions/shuffle.md | 11 +--- content/en/functions/singularize.md | 10 +--- content/en/functions/site.md | 11 +--- content/en/functions/slice.md | 12 +--- content/en/functions/slicestr.md | 10 +--- content/en/functions/sort.md | 3 +- content/en/functions/split.md | 9 +-- content/en/functions/store.md | 2 +- content/en/functions/string.md | 10 +--- content/en/functions/strings.Contains.md | 3 +- content/en/functions/strings.ContainsAny.md | 3 +- content/en/functions/strings.Count.md | 9 +-- content/en/functions/strings.FirstUpper.md | 4 +- content/en/functions/strings.HasSuffix.md | 9 +-- content/en/functions/strings.Repeat.md | 11 +--- content/en/functions/strings.RuneCount.md | 9 +-- content/en/functions/strings.TrimLeft.md | 9 +-- content/en/functions/strings.TrimPrefix.md | 9 +-- content/en/functions/strings.TrimRight.md | 9 +-- content/en/functions/strings.TrimSuffix.md | 9 +-- content/en/functions/substr.md | 12 +--- content/en/functions/symdiff.md | 7 +-- content/en/functions/templates.Exists.md | 12 +--- content/en/functions/time.ParseDuration.md | 4 +- content/en/functions/time.md | 14 +---- content/en/functions/title.md | 15 +---- content/en/functions/transform.Unmarshal.md | 7 +-- content/en/functions/trim.md | 11 +--- content/en/functions/truncate.md | 11 +--- content/en/functions/union.md | 10 +--- content/en/functions/uniq.md | 5 +- content/en/functions/unix.md | 3 +- content/en/functions/upper.md | 11 +--- content/en/functions/urlize.md | 9 +-- content/en/functions/urlquery.md | 10 +--- content/en/functions/urls.Parse.md | 3 +- content/en/functions/where.md | 10 +--- content/en/functions/with.md | 9 +-- content/en/getting-started/_index.md | 7 +-- .../getting-started/configuration-markup.md | 2 - content/en/getting-started/configuration.md | 17 +++--- .../en/getting-started/directory-structure.md | 6 +- .../external-learning-resources/index.md | 9 +-- content/en/getting-started/quick-start.md | 1 - content/en/getting-started/usage.md | 4 +- content/en/hosting-and-deployment/_index.md | 10 +--- .../deployment-with-rclone.md | 10 +--- .../deployment-with-rsync.md | 11 +--- .../hosting-on-21yunbox.md | 9 +-- .../hosting-on-aws-amplify.md | 8 +-- .../hosting-on-azure-static-web-apps.md | 9 +-- .../hosting-on-azure.md | 7 +-- .../hosting-on-cloudflare-pages.md | 6 +- .../hosting-on-firebase.md | 8 +-- .../hosting-on-github/index.md | 3 +- .../hosting-on-gitlab.md | 10 +--- .../hosting-on-keycdn.md | 6 +- .../hosting-on-netlify.md | 8 +-- .../hosting-on-render.md | 9 +-- .../en/hosting-and-deployment/hugo-deploy.md | 10 +--- content/en/hugo-modules/_index.md | 6 +- content/en/hugo-modules/configuration.md | 5 +- content/en/hugo-modules/theme-components.md | 6 +- content/en/hugo-modules/use-modules.md | 7 +-- content/en/hugo-pipes/_index.md | 7 +-- content/en/hugo-pipes/babel.md | 5 +- content/en/hugo-pipes/bundling.md | 6 +- content/en/hugo-pipes/fingerprint.md | 5 +- content/en/hugo-pipes/introduction.md | 6 +- content/en/hugo-pipes/js.md | 5 +- content/en/hugo-pipes/minification.md | 5 +- content/en/hugo-pipes/postcss.md | 2 +- content/en/hugo-pipes/postprocess.md | 5 +- content/en/hugo-pipes/resource-from-string.md | 5 +- .../en/hugo-pipes/resource-from-template.md | 5 +- content/en/hugo-pipes/transform-to-css.md | 5 +- content/en/installation/_index.md | 1 - content/en/installation/bsd.md | 1 - content/en/installation/linux.md | 1 - content/en/installation/macos.md | 1 - content/en/installation/windows.md | 1 - content/en/maintenance/_index.md | 4 -- content/en/news/0.17-relnotes/index.md | 2 - content/en/news/0.18-relnotes/index.md | 2 - content/en/news/0.19-relnotes/index.md | 2 - content/en/news/0.20-relnotes/index.md | 2 - content/en/news/0.20.1-relnotes/index.md | 2 - content/en/news/0.20.2-relnotes/index.md | 2 - content/en/news/0.20.3-relnotes/index.md | 4 +- content/en/news/0.20.4-relnotes/index.md | 4 +- content/en/news/0.20.5-relnotes/index.md | 4 +- content/en/news/0.20.6-relnotes/index.md | 4 +- content/en/news/0.20.7-relnotes/index.md | 4 +- content/en/news/0.21-relnotes/index.md | 4 +- content/en/news/0.22-relnotes/index.md | 4 +- content/en/news/0.22.1-relnotes/index.md | 4 +- content/en/news/0.23-relnotes/index.md | 4 +- content/en/news/0.24-relnotes/index.md | 4 +- content/en/news/0.24.1-relnotes/index.md | 4 +- content/en/news/0.25-relnotes/index.md | 4 +- content/en/news/0.25.1-relnotes/index.md | 5 +- .../index.md | 1 - content/en/templates/404.md | 9 +-- content/en/templates/_index.md | 10 +--- content/en/templates/base.md | 7 +-- content/en/templates/data-templates.md | 6 +- content/en/templates/files.md | 8 +-- content/en/templates/homepage.md | 7 +-- content/en/templates/internal.md | 10 +--- content/en/templates/introduction.md | 7 +-- content/en/templates/lists/index.md | 7 +-- content/en/templates/lookup-order.md | 9 +-- content/en/templates/menu-templates.md | 3 +- content/en/templates/output-formats.md | 8 +-- content/en/templates/pagination.md | 5 +- content/en/templates/partials.md | 8 +-- content/en/templates/render-hooks.md | 4 +- content/en/templates/robots.md | 8 +-- content/en/templates/rss.md | 8 +-- content/en/templates/section-templates.md | 7 +-- content/en/templates/shortcode-templates.md | 8 +-- content/en/templates/single-page-templates.md | 8 +-- content/en/templates/sitemap-template.md | 5 +- content/en/templates/taxonomy-templates.md | 8 +-- content/en/templates/template-debugging.md | 7 +-- content/en/templates/views.md | 9 +-- content/en/tools/_index.md | 6 +- content/en/tools/editors.md | 8 +-- content/en/tools/frontends.md | 9 +-- content/en/tools/migrations.md | 7 +-- content/en/tools/other.md | 7 +-- content/en/tools/search.md | 8 +-- content/en/tools/starter-kits.md | 9 +-- content/en/troubleshooting/_index.md | 11 +--- .../en/troubleshooting/build-performance.md | 9 +-- content/en/troubleshooting/faq.md | 3 +- content/en/variables/_index.md | 10 +--- content/en/variables/files.md | 3 +- content/en/variables/git.md | 9 +-- content/en/variables/menus.md | 5 +- content/en/variables/page.md | 9 +-- content/en/variables/pages.md | 7 +-- content/en/variables/shortcodes.md | 10 +--- content/en/variables/site.md | 8 +-- content/en/variables/sitemap.md | 8 +-- content/en/variables/taxonomy.md | 4 +- 276 files changed, 342 insertions(+), 1748 deletions(-) diff --git a/archetypes/functions.md b/archetypes/functions.md index c2bb3113e..34df3e3c0 100644 --- a/archetypes/functions.md +++ b/archetypes/functions.md @@ -5,8 +5,5 @@ categories: [functions] tags: [] ns: "" signature: [] -hugoversion: "" -aliases: [] relatedfuncs: [] -toc: false --- diff --git a/content/en/about/_index.md b/content/en/about/_index.md index 8ed441b61..91260a4a6 100644 --- a/content/en/about/_index.md +++ b/content/en/about/_index.md @@ -2,19 +2,14 @@ title: About Hugo linktitle: Overview description: Hugo's features, roadmap, license, and motivation. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [] keywords: [] menu: docs: - parent: "about" + parent: about weight: 1 weight: 1 -draft: false aliases: [/about-hugo/,/docs/] -toc: false --- Hugo is not your average static site generator. diff --git a/content/en/about/benefits.md b/content/en/about/benefits.md index 925da1732..91c243413 100644 --- a/content/en/about/benefits.md +++ b/content/en/about/benefits.md @@ -2,19 +2,12 @@ title: The Benefits of Static Site Generators linktitle: The Benefits of Static description: Improved performance, security and ease of use are just a few of the reasons static site generators are so appealing. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [ssg,static,performance,security] menu: docs: - parent: "about" + parent: about weight: 30 weight: 30 -sections_weight: 30 -draft: false -aliases: [] -toc: false --- The purpose of website generators is to render content into HTML files. Most are "dynamic site generators." That means the HTTP server---i.e., the program that sends files to the browser to be viewed---runs the generator to create a new HTML file every time an end user requests a page. diff --git a/content/en/about/features.md b/content/en/about/features.md index fc3d5a030..6fac68cdd 100644 --- a/content/en/about/features.md +++ b/content/en/about/features.md @@ -1,17 +1,11 @@ --- title: Hugo Features -linktitle: Hugo Features description: Hugo boasts blistering speed, robust content management, and a powerful templating language making it a great fit for all kinds of static websites. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 menu: docs: - parent: "about" + parent: about weight: 20 weight: 20 -sections_weight: 20 -draft: false toc: true --- diff --git a/content/en/about/hugo-and-gdpr.md b/content/en/about/hugo-and-gdpr.md index 2d4fba872..b1480f632 100644 --- a/content/en/about/hugo-and-gdpr.md +++ b/content/en/about/hugo-and-gdpr.md @@ -2,16 +2,13 @@ title: Hugo and the General Data Protection Regulation (GDPR) linktitle: Hugo and GDPR description: About how to configure your Hugo site to meet the new regulations. -date: 2018-05-25 layout: single keywords: ["GDPR", "Privacy", "Data Protection"] menu: docs: - parent: "about" + parent: about weight: 5 weight: 5 -sections_weight: 5 -draft: false aliases: [/privacy/,/gdpr/] toc: true --- @@ -57,7 +54,6 @@ disable = false privacyEnhanced = false {{< /code-toggle >}} - ## Disable All Services An example Privacy Config that disables all the relevant services in Hugo. With this configuration, the other settings will not matter. diff --git a/content/en/about/license.md b/content/en/about/license.md index ae74b6047..e7e3ddce1 100644 --- a/content/en/about/license.md +++ b/content/en/about/license.md @@ -2,17 +2,13 @@ title: Apache License linktitle: License description: Hugo v0.15 and later are released under the Apache 2.0 license. -date: 2016-02-01 -publishdate: 2016-02-01 -lastmod: 2016-03-02 categories: ["about hugo"] keywords: ["License","apache"] menu: docs: - parent: "about" + parent: about weight: 60 weight: 60 -sections_weight: 60 aliases: [/meta/license] toc: true --- diff --git a/content/en/about/security-model/index.md b/content/en/about/security-model/index.md index d4dacd9bf..a909a4236 100644 --- a/content/en/about/security-model/index.md +++ b/content/en/about/security-model/index.md @@ -1,15 +1,13 @@ --- title: Hugo's Security Model description: A summary of Hugo's security model. -date: 2019-10-01 layout: single keywords: ["Security", "Privacy"] menu: docs: - parent: "about" + parent: about weight: 4 weight: 5 -sections_weight: 5 aliases: [/security/] toc: true --- diff --git a/content/en/about/what-is-hugo.md b/content/en/about/what-is-hugo.md index d61f821cd..3097de50e 100644 --- a/content/en/about/what-is-hugo.md +++ b/content/en/about/what-is-hugo.md @@ -1,18 +1,12 @@ --- title: What is Hugo -linktitle: What is Hugo description: Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 layout: single menu: docs: - parent: "about" + parent: about weight: 10 weight: 10 -sections_weight: 10 -draft: false aliases: [/overview/introduction/,/about/why-i-built-hugo/] toc: true --- diff --git a/content/en/content-management/_index.md b/content/en/content-management/_index.md index 7cb6357c6..e87749d3a 100644 --- a/content/en/content-management/_index.md +++ b/content/en/content-management/_index.md @@ -8,7 +8,6 @@ menu: weight: 10 keywords: [source, organization] categories: [content management] -toc: false weight: 10 aliases: [/content/,/content/organization] --- diff --git a/content/en/content-management/archetypes.md b/content/en/content-management/archetypes.md index 1d2ba3179..0b61a9b75 100644 --- a/content/en/content-management/archetypes.md +++ b/content/en/content-management/archetypes.md @@ -1,7 +1,6 @@ --- title: Archetypes -linkTitle: Archetypes -description: Archetypes are templates used when creating new content. +description: Archestypes are templates used when creating new content. keywords: [archetypes,generators,metadata,front matter] categories: [content management] menu: diff --git a/content/en/content-management/build-options.md b/content/en/content-management/build-options.md index 07187e718..d5b594800 100644 --- a/content/en/content-management/build-options.md +++ b/content/en/content-management/build-options.md @@ -63,30 +63,26 @@ Setting this to false will still publish Resources on demand (when a resource's Any page, regardless of their build options, will always be available using the [`.GetPage`](/functions/GetPage) methods. {{% /note %}} ------- - ### Illustrative use cases #### Not publishing a page Project needs a "Who We Are" content file for Front Matter and body to be used by the homepage but nowhere else. -```yaml -# content/who-we-are.md` +{{< code-toggle file="content/who-we-are.md" fm=true copy=false >}} title: Who we are _build: list: false render: false -``` +{{< /code-toggle >}} -```go-html-template -{{/* layouts/index.html */}} +{{< code file="layouts/index.html" copy="false" >}} <section id="who-we-are"> -{{ with site.GetPage "who-we-are" }} - {{ .Content }} -{{ end }} + {{ with site.GetPage "who-we-are" }} + {{ .Content }} + {{ end }} </section> -``` +{{< /code >}} #### Listing pages without publishing them @@ -104,12 +100,12 @@ cascade: list: true # default {{< /code-toggle >}} -```go-html-template -{{/* layouts/_defaults/testimonials.html */}} +{{< code file="layouts/_defaults/testimonials.html" copy="false" >}} <section id="testimonials"> -{{ range first 5 .Pages }} - <blockquote cite="{{ .Params.cite }}"> - {{ .Content }} - </blockquote> -{{ end }} + {{ range first 5 .Pages }} + <blockquote cite="{{ .Params.cite }}"> + {{ .Content }} + </blockquote> + {{ end }} </section> +{{< /code >}} diff --git a/content/en/content-management/comments.md b/content/en/content-management/comments.md index 41c20d48e..0543f47a7 100644 --- a/content/en/content-management/comments.md +++ b/content/en/content-management/comments.md @@ -1,6 +1,5 @@ --- title: Comments -linkTitle: Comments description: Hugo ships with an internal Disqus template, but this isn't the only commenting system that will work with your new Hugo website. keywords: [sections,content,organization] categories: [project organization, fundamentals] diff --git a/content/en/content-management/diagrams.md b/content/en/content-management/diagrams.md index 9f3f3800b..e664dd501 100644 --- a/content/en/content-management/diagrams.md +++ b/content/en/content-management/diagrams.md @@ -1,6 +1,5 @@ --- title: Diagrams -LinkTitle: Diagrams description: Use fenced code blocks and markdown render hooks to display diagrams. categories: [content management] keywords: [diagrams,drawing] diff --git a/content/en/content-management/front-matter.md b/content/en/content-management/front-matter.md index 657302930..a7e74feb4 100644 --- a/content/en/content-management/front-matter.md +++ b/content/en/content-management/front-matter.md @@ -1,8 +1,6 @@ --- title: Front Matter -linkTitle: Front Matter description: Hugo allows you to add front matter in yaml, toml, or json to your content files. -lastmod: 2017-02-24 categories: [content management] keywords: ["front matter", "yaml", "toml", "json", "metadata", "archetypes"] menu: diff --git a/content/en/content-management/image-processing/index.md b/content/en/content-management/image-processing/index.md index 388662856..0043f97b0 100644 --- a/content/en/content-management/image-processing/index.md +++ b/content/en/content-management/image-processing/index.md @@ -1,6 +1,5 @@ --- title: Image Processing -linkTitle: Image Processing description: Resize, crop, rotate, filter, and convert images. categories: [content management] keywords: [resources, images] diff --git a/content/en/content-management/menus.md b/content/en/content-management/menus.md index 34f24c5cc..b4b97f2df 100644 --- a/content/en/content-management/menus.md +++ b/content/en/content-management/menus.md @@ -1,6 +1,5 @@ --- title: Menus -linkTitle: Menus description: Create menus by defining entries, localizing each entry, and rendering the resulting data structure. categories: [content management] keywords: [menus] diff --git a/content/en/content-management/page-bundles.md b/content/en/content-management/page-bundles.md index 28ab004c5..2a5147c21 100644 --- a/content/en/content-management/page-bundles.md +++ b/content/en/content-management/page-bundles.md @@ -1,14 +1,11 @@ --- title: Page Bundles -linkTitle: Page Bundles description: Content organization using Page Bundles -linkTitle: Page Bundles keywords: [page, bundle, leaf, branch] categories: [content management] menu : docs: - identifier: "page-bundles" - parent: "content-management" + parent: content-management weight: 30 toc: true weight: 30 @@ -132,9 +129,9 @@ Explanation of the above example: A leaf bundle can be made headless by adding below in the Front Matter (in the `index.md`): -```toml +{{< code-toggle file="content/headless/index.md" fm=true copy=false >}} headless = true -``` +{{< /code-toggle >}} There are many use cases of such headless page bundles: diff --git a/content/en/content-management/page-resources.md b/content/en/content-management/page-resources.md index fc2426958..6f085f257 100644 --- a/content/en/content-management/page-resources.md +++ b/content/en/content-management/page-resources.md @@ -1,6 +1,5 @@ --- title: Page Resources -linkTitle: Page Resources description: Page resources -- images, other pages, documents, etc. -- have page-relative URLs and their own metadata. categories: [content management] keywords: [bundle,content,resources] diff --git a/content/en/content-management/related.md b/content/en/content-management/related.md index c25b0ed61..823e3035c 100644 --- a/content/en/content-management/related.md +++ b/content/en/content-management/related.md @@ -1,6 +1,5 @@ --- title: Related Content -linkTitle: Related Content description: List related content in "See Also" sections. categories: [content management] keywords: [content] @@ -67,8 +66,7 @@ We improved and simplified this feature in Hugo 0.111.0. Before this we had 3 di Hugo can index the headings in your content and use this to find related content. You can enable this by adding a index of type `fragments` to your `related` configuration: - -```toml +{{< code-toggle file="config" copy=false >}} [related] threshold = 20 includeNewer = true @@ -78,7 +76,7 @@ name = "fragmentrefs" type = "fragments" applyFilter = false weight = 80 -``` +{{< /code-toggle >}} * The `name` maps to a optional front matter slice attribute that can be used to link from the page level down to the fragment/heading level. * If `applyFilter`is enabled, the `.HeadingsFiltered` on each page in the result will reflect the filtered headings. This is useful if you want to show the headings in the related content listing: diff --git a/content/en/content-management/sections.md b/content/en/content-management/sections.md index 4cfa19276..8d0549117 100644 --- a/content/en/content-management/sections.md +++ b/content/en/content-management/sections.md @@ -2,9 +2,6 @@ title: Content Sections linkTitle: Sections description: Hugo generates a **section tree** that matches your content. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [content management] keywords: [lists,sections,content types,organization] menu: diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md index 0a0f486e4..0697ab8ea 100644 --- a/content/en/content-management/shortcodes.md +++ b/content/en/content-management/shortcodes.md @@ -1,6 +1,5 @@ --- title: Shortcodes -linkTitle: Shortcodes description: Shortcodes are simple snippets inside your content files calling built-in or custom templates. categories: [content management] keywords: [markdown,content,shortcodes] diff --git a/content/en/content-management/syntax-highlighting.md b/content/en/content-management/syntax-highlighting.md index 5f8a44ee2..64345ad40 100644 --- a/content/en/content-management/syntax-highlighting.md +++ b/content/en/content-management/syntax-highlighting.md @@ -1,6 +1,5 @@ --- title: Syntax Highlighting -linkTitle: Syntax Highlighting description: Hugo comes with really fast syntax highlighting from Chroma. keywords: [highlighting,chroma,code blocks,syntax] categories: [content management] diff --git a/content/en/content-management/taxonomies.md b/content/en/content-management/taxonomies.md index 6d4655228..3d53e6148 100644 --- a/content/en/content-management/taxonomies.md +++ b/content/en/content-management/taxonomies.md @@ -1,6 +1,5 @@ --- title: Taxonomies -linkTitle: Taxonomies description: Hugo includes support for user-defined taxonomies. keywords: [taxonomies,metadata,front matter,terms] categories: [content management] diff --git a/content/en/content-management/toc.md b/content/en/content-management/toc.md index 9e1421dc7..0bf3a7c70 100644 --- a/content/en/content-management/toc.md +++ b/content/en/content-management/toc.md @@ -1,6 +1,5 @@ --- title: Table of Contents -linkTitle: Table of Contents description: Hugo can automatically parse Markdown content and create a Table of Contents you can use in your templates. categories: [content management] keywords: [table of contents, toc] diff --git a/content/en/content-management/types.md b/content/en/content-management/types.md index 8ad0d7f6c..fc79ca58c 100644 --- a/content/en/content-management/types.md +++ b/content/en/content-management/types.md @@ -1,6 +1,5 @@ --- title: Content Types -linkTitle: Content Types description: Hugo is built around content organized in sections. categories: [content management] keywords: [lists, sections, content types, types, organization] diff --git a/content/en/content-management/urls.md b/content/en/content-management/urls.md index c9e78d419..4a90c78d5 100644 --- a/content/en/content-management/urls.md +++ b/content/en/content-management/urls.md @@ -1,6 +1,5 @@ --- title: URL Management -linkTitle: URL Management description: Control the structure and appearance of URLs through front matter entries and settings in your site configuration. categories: [content management] keywords: [aliases,redirects,permalinks,urls] diff --git a/content/en/contribute/_index.md b/content/en/contribute/_index.md index 5e46ae287..cb6ca2966 100644 --- a/content/en/contribute/_index.md +++ b/content/en/contribute/_index.md @@ -2,20 +2,14 @@ title: Contribute to the Hugo Project linktitle: Contribute to Hugo description: Contribute to Hugo development and documentation. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [contribute] keywords: [] menu: docs: - parent: "contribute" + parent: contribute weight: 01 -weight: 01 #rem -draft: false -slug: +weight: 01 aliases: [/tutorials/how-to-contribute-to-hugo/,/community/contributing/] -toc: false --- Hugo relies heavily on the enthusiasm and participation of the open-source community. We need your support in both its development and documentation. diff --git a/content/en/contribute/development.md b/content/en/contribute/development.md index b11ef09de..2c24d8ddd 100644 --- a/content/en/contribute/development.md +++ b/content/en/contribute/development.md @@ -2,17 +2,13 @@ title: Contribute to Hugo Development linktitle: Development description: Hugo relies heavily on contributions from the open source community. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [contribute] keywords: [dev,open source] -authors: [digitalcraftsman] menu: docs: - parent: "contribute" + parent: contribute weight: 10 weight: 10 -sections_weight: 10 toc: true --- diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index c55a74b41..a72483dc0 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -2,16 +2,13 @@ title: Contribute to the Hugo Docs linktitle: Documentation description: Documentation is an integral part of any open source project. The Hugo docs are as much a work in progress as the source it attempts to cover. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [contribute] keywords: [docs,documentation,community, contribute] menu: docs: - parent: "contribute" + parent: contribute weight: 20 weight: 20 -sections_weight: 20 aliases: [/contribute/docs/] toc: true --- @@ -72,19 +69,13 @@ Here is a review of the front matter fields automatically generated for you usin `signature` : this is a signature/syntax definition for calling the function (e.g., `apply SEQUENCE FUNCTION [PARAM...]`). -`workson` -: acceptable values include `lists`,`taxonomies`, `terms`, `groups`, and `files`. - -`hugoversion` -: the version of Hugo that will ship with this new function. - `relatedfuncs` : other [templating functions] you feel are related to your new function to help fellow Hugo users. `{{.Content }}` : an extended description of the new function; examples are not only welcomed but encouraged. -In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#add-code-blocks). If you are unable to add examples but would like to solicit help from the Hugo community, add `needsexample: true` to your front matter. +In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#add-code-blocks). ## Add Code Blocks diff --git a/content/en/contribute/themes.md b/content/en/contribute/themes.md index c515d1fcf..adfc38cc2 100644 --- a/content/en/contribute/themes.md +++ b/content/en/contribute/themes.md @@ -2,19 +2,14 @@ title: Add Your Hugo Theme to the Showcase linktitle: Themes description: If you've built a Hugo theme and want to contribute back to the Hugo Community, share it with us. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [contribute] keywords: [contribute,themes,design] -authors: [digitalcraftsman] menu: docs: - parent: "contribute" + parent: contribute weight: 30 weight: 30 -sections_weight: 30 aliases: [/contribute/theme/] -wip: true toc: true --- diff --git a/content/en/documentation.md b/content/en/documentation.md index 77cf283fa..221d7c392 100644 --- a/content/en/documentation.md +++ b/content/en/documentation.md @@ -2,17 +2,10 @@ title: Hugo Documentation linktitle: Hugo description: Hugo is the world's fastest static website engine. It's written in Go (aka Golang) and developed by bep, spf13 and friends. -date: 2017-02-01 -publishdate: 2017-02-01 menu: main: - parent: "section name" weight: 01 -weight: 01 #rem -draft: false -slug: -aliases: [] -toc: false +weight: 01 layout: documentation-home --- diff --git a/content/en/functions/GetPage.md b/content/en/functions/GetPage.md index 6a6262f75..f4f4405c6 100644 --- a/content/en/functions/GetPage.md +++ b/content/en/functions/GetPage.md @@ -1,20 +1,13 @@ --- title: .GetPage description: "Gets a `Page` of a given `path`." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [sections,lists,indexes] signature: [".GetPage PATH"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- `.GetPage` returns a page of a given `path`. Both `Site` and `Page` implements this method. The `Page` variant will, if given a relative path -- i.e. a path without a leading `/` -- try look for the page relative to the current page. diff --git a/content/en/functions/RenderString.md b/content/en/functions/RenderString.md index 25fdcf60e..47c914ca4 100644 --- a/content/en/functions/RenderString.md +++ b/content/en/functions/RenderString.md @@ -1,11 +1,10 @@ --- title: .RenderString description: "Renders markup to HTML." -date: 2019-12-18 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [markdown,goldmark,render] signature: [".RenderString MARKUP"] --- diff --git a/content/en/functions/_index.md b/content/en/functions/_index.md index fa7974685..fd45fb6dd 100644 --- a/content/en/functions/_index.md +++ b/content/en/functions/_index.md @@ -1,16 +1,11 @@ --- title: Functions Quick Reference -linktitle: Functions Quick Reference description: Comprehensive list of Hugo templating functions, including basic and advanced usage examples. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [] menu: docs: - parent: "functions" -weight: 01 #rem -draft: false + parent: functions +weight: 01 aliases: [/layout/functions/,/templates/functions] --- diff --git a/content/en/functions/adddate.md b/content/en/functions/adddate.md index 116ffa8de..96a9df833 100644 --- a/content/en/functions/adddate.md +++ b/content/en/functions/adddate.md @@ -1,20 +1,13 @@ --- title: .AddDate description: Returns the time corresponding to adding the given number of years, months, and days to the given time.Time value. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dates,time] signature: [".AddDate YEARS MONTHS DAYS"] -workson: [times] -hugoversion: relatedfuncs: [now] -deprecated: false -aliases: [] --- ```go-html-template diff --git a/content/en/functions/after.md b/content/en/functions/after.md index 9a2a68c5f..f182d913b 100644 --- a/content/en/functions/after.md +++ b/content/en/functions/after.md @@ -1,20 +1,13 @@ --- title: after description: "`after` slices an array to only the items after the <em>N</em>th item." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [iteration] signature: ["after INDEX COLLECTION"] -workson: [] -hugoversion: relatedfuncs: [last,first,seq] -deprecated: false -aliases: [] --- The following shows `after` being used in conjunction with the [`slice` function][slice]: diff --git a/content/en/functions/anchorize.md b/content/en/functions/anchorize.md index 5530e193b..cf04a9640 100644 --- a/content/en/functions/anchorize.md +++ b/content/en/functions/anchorize.md @@ -1,15 +1,12 @@ --- title: anchorize description: Takes a string and sanitizes it the same way as the [`defaultMarkdownHandler`](https://gohugo.io/getting-started/configuration-markup#configure-markup) does for markdown headers. -date: 2018-10-13 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [markdown,strings] signature: ["anchorize INPUT"] -hugoversion: "0.39" -workson: [] relatedfuncs: [humanize] --- diff --git a/content/en/functions/append.md b/content/en/functions/append.md index 3e2fc13cc..626bc1242 100644 --- a/content/en/functions/append.md +++ b/content/en/functions/append.md @@ -1,17 +1,13 @@ --- title: append description: "`append` appends one or more values to a slice and returns the resulting slice." -date: 2018-09-14 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [collections] signature: ["COLLECTION | append VALUE [VALUE]...", "COLLECTION | append COLLECTION"] -workson: [] -hugoversion: "0.49" relatedfuncs: [last,first,where,slice] -aliases: [] --- An example appending single values: diff --git a/content/en/functions/apply.md b/content/en/functions/apply.md index 0f02c1b4c..aa345d607 100644 --- a/content/en/functions/apply.md +++ b/content/en/functions/apply.md @@ -1,21 +1,13 @@ --- title: apply description: Given a map, array, or slice, `apply` returns a new slice with a function applied over it. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [advanced] signature: ["apply COLLECTION FUNCTION [PARAM...]"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- {{< todo >}} @@ -59,19 +51,19 @@ If you have `post-tag-list.html` and `post-tag-link.html` as [partials], you *co {{< code file="layouts/partials/post-tag-list.html" copy="false" >}} {{ with .Params.tags }} -<div class="tags-list"> - Tags: - {{ $len := len . }} - {{ if eq $len 1 }} - {{ partial "post-tag-link.html" (index . 0) }} - {{ else }} - {{ $last := sub $len 1 }} - {{ range first $last . }} - {{ partial "post-tag-link.html" . }}, + <div class="tags-list"> + Tags: + {{ $len := len . }} + {{ if eq $len 1 }} + {{ partial "post-tag-link.html" (index . 0) }} + {{ else }} + {{ $last := sub $len 1 }} + {{ range first $last . }} + {{ partial "post-tag-link.html" . }}, + {{ end }} + {{ partial "post-tag-link.html" (index . $last) }} {{ end }} - {{ partial "post-tag-link.html" (index . $last) }} - {{ end }} -</div> + </div> {{ end }} {{< /code >}} @@ -85,25 +77,25 @@ This first version of `layouts/partials/post-tag-list.html` separates all of the ```go-html-template {{ with .Params.tags }} - <div class="tags-list"> - Tags: - {{ $sort := sort . }} - {{ $links := apply $sort "partial" "post-tag-link.html" "." }} - {{ $clean := apply $links "chomp" "." }} - {{ delimit $clean ", " }} - </div> + <div class="tags-list"> + Tags: + {{ $sort := sort . }} + {{ $links := apply $sort "partial" "post-tag-link.html" "." }} + {{ $clean := apply $links "chomp" "." }} + {{ delimit $clean ", " }} + </div> {{ end }} ``` Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example: {{< code file="layouts/partials/post-tag-list.html" download="post-tag-list.html" >}} - {{ with .Params.tags }} - <div class="tags-list"> - Tags: - {{ delimit (apply (apply (sort .) "partial" "post-tag-link.html" ".") "chomp" ".") ", " }} - </div> - {{ end }} +{{ with .Params.tags }} + <div class="tags-list"> + Tags: + {{ delimit (apply (apply (sort .) "partial" "post-tag-link.html" ".") "chomp" ".") ", " }} + </div> +{{ end }} {{< /code >}} {{% note %}} diff --git a/content/en/functions/base64.md b/content/en/functions/base64.md index 2568c1f47..cade370b3 100644 --- a/content/en/functions/base64.md +++ b/content/en/functions/base64.md @@ -1,21 +1,13 @@ --- title: base64 description: "`base64Encode` and `base64Decode` let you easily decode content with a base64 encoding and vice versa through pipes." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] relatedfuncs: [] signature: ["base64Decode INPUT", "base64Encode INPUT"] -workson: [] -hugoversion: -deprecated: false -draft: false -aliases: [] --- An example: @@ -32,7 +24,7 @@ An example: You can also pass other data types as arguments to the template function which tries to convert them. The following will convert *42* from an integer to a string because both `base64Encode` and `base64Decode` always return a string. -``` +```go-html-template {{ 42 | base64Encode | base64Decode }} => "42" rather than 42 ``` diff --git a/content/en/functions/chomp.md b/content/en/functions/chomp.md index eb44f726c..d8f8bfe4f 100644 --- a/content/en/functions/chomp.md +++ b/content/en/functions/chomp.md @@ -2,21 +2,15 @@ title: chomp toc: true description: Removes any trailing newline characters. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [trim] signature: - "chomp INPUT" - "strings.Chomp INPUT" -workson: [] -hugoversion: relatedfuncs: [truncate] -deprecated: false --- Useful in a pipeline to remove newlines added by other processing (e.g., [`markdownify`](/functions/markdownify/)). diff --git a/content/en/functions/complement.md b/content/en/functions/complement.md index 87bb3af62..e4cf01e77 100644 --- a/content/en/functions/complement.md +++ b/content/en/functions/complement.md @@ -10,7 +10,6 @@ signature: - "complement COLLECTION [COLLECTION]..." - "collections.Complement COLLECTION [COLLECTION]..." relatedfuncs: [intersect,symdiff,union] -aliases: [] --- To find the elements within `$c3` that do not exist in `$c1` or `$c2`: diff --git a/content/en/functions/cond.md b/content/en/functions/cond.md index b7b5e3d55..5327eadf4 100644 --- a/content/en/functions/cond.md +++ b/content/en/functions/cond.md @@ -1,16 +1,12 @@ --- -title: "cond" -date: 2017-09-08 +title: cond description: "Return one of two arguments, depending on the value of a third argument." categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: ["cond CONTROL VAR1 VAR2"] -hugoversion: 0.27 relatedfuncs: [default] -toc: false -draft: false --- `cond` returns *VAR1* if *CONTROL* is true, or *VAR2* if it is not. diff --git a/content/en/functions/countrunes.md b/content/en/functions/countrunes.md index e3add0d7f..0d89af857 100644 --- a/content/en/functions/countrunes.md +++ b/content/en/functions/countrunes.md @@ -1,21 +1,15 @@ --- title: countrunes description: Determines the number of runes in a string excluding any whitespace. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [counting, word count] signature: - "countrunes INPUT" - "strings.CountRunes INPUT" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- In contrast with `countwords` function, which counts every word in a string, the `countrunes` function determines the number of runes in the content and excludes any whitespace. This has specific utility if you are dealing with CJK-like languages. diff --git a/content/en/functions/countwords.md b/content/en/functions/countwords.md index c0ca72aa3..33dcbcaef 100644 --- a/content/en/functions/countwords.md +++ b/content/en/functions/countwords.md @@ -1,19 +1,13 @@ --- title: countwords description: Counts the number of words in a string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [counting, word count] signature: ["countwords INPUT"] -workson: [] -hugoversion: relatedfuncs: [countrunes] -deprecated: false --- The template function works similar to the [.WordCount page variable][pagevars]. diff --git a/content/en/functions/crypto.FNV32a.md b/content/en/functions/crypto.FNV32a.md index dddf7a9aa..9bcfff26f 100644 --- a/content/en/functions/crypto.FNV32a.md +++ b/content/en/functions/crypto.FNV32a.md @@ -4,10 +4,9 @@ description: Returns the FNV (Fowler–Noll–Vo) 32 bit hash of a given string. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [crypto hash FNV32 Fowler-Noll-Vo] signature: ["crypto.FNV32a STRING"] -aliases: [] --- This function calculates the 32 bit [FNV1a hash](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) of a given string according to the [specification](https://datatracker.ietf.org/doc/html/draft-eastlake-fnv-12): diff --git a/content/en/functions/dateformat.md b/content/en/functions/dateformat.md index 210913b87..ddfb61296 100644 --- a/content/en/functions/dateformat.md +++ b/content/en/functions/dateformat.md @@ -1,21 +1,15 @@ --- title: time.Format description: Converts a date/time to a localized string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dates,time,strings] signature: - "time.Format LAYOUT INPUT" - "dateFormat LAYOUT INPUT" -workson: [] -hugoversion: relatedfuncs: [Format,now,Unix,time] -deprecated: false --- `time.Format` (alias `dateFormat`) converts either a `time.Time` object (e.g. `.Date`) or a timestamp string `INPUT` into the format specified by the `LAYOUT` string. diff --git a/content/en/functions/default.md b/content/en/functions/default.md index b187331de..a8bac86dd 100644 --- a/content/en/functions/default.md +++ b/content/en/functions/default.md @@ -2,22 +2,14 @@ title: default description: Allows setting a default value that can be returned if a first value is not set. qref: "Returns a default value if a value is not set when checked." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [defaults] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: ["default DEFAULT INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- `default` checks whether a given value is set and returns a default value if it is not. *Set* in this context means different things depending on the data type: diff --git a/content/en/functions/delimit.md b/content/en/functions/delimit.md index 63207b268..3b30c58c6 100644 --- a/content/en/functions/delimit.md +++ b/content/en/functions/delimit.md @@ -1,22 +1,13 @@ --- title: delimit description: Loops through any array, slice, or map and returns a string of all the values separated by a delimiter. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [iteration] -toc: false signature: ["delimit COLLECTION DELIMIT LAST"] -workson: [lists,taxonomies,terms] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- `delimit` called in your template takes the form of diff --git a/content/en/functions/dict.md b/content/en/functions/dict.md index dd1e2cd5b..344e56d20 100644 --- a/content/en/functions/dict.md +++ b/content/en/functions/dict.md @@ -1,19 +1,13 @@ --- title: dict description: Creates a dictionary from a list of key and value pairs. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dictionary] signature: ["dict KEY VALUE [KEY VALUE]..."] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- `dict` is especially useful for passing more than one value to a partial template. diff --git a/content/en/functions/duration.md b/content/en/functions/duration.md index bf771c0a9..4dc365ae5 100644 --- a/content/en/functions/duration.md +++ b/content/en/functions/duration.md @@ -4,10 +4,9 @@ description: Returns a `time.Duration` structure, using the given time unit and categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [time duration] signature: ["duration TIME_UNIT DURATION_NUMBER"] -aliases: [] --- `time.Duration` converts a given number into a [`time.Duration`](https://pkg.go.dev/time#Duration) structure so you can access its fields. E.g. you can perform [time operations](https://pkg.go.dev/time#Duration) on the returned `time.Duration` value: diff --git a/content/en/functions/echoparam.md b/content/en/functions/echoparam.md index abdd0072a..840acf51c 100644 --- a/content/en/functions/echoparam.md +++ b/content/en/functions/echoparam.md @@ -1,21 +1,13 @@ --- title: echoParam description: Prints a parameter if it is set. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["echoParam DICTIONARY KEY"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- diff --git a/content/en/functions/emojify.md b/content/en/functions/emojify.md index a323470b7..45753af13 100644 --- a/content/en/functions/emojify.md +++ b/content/en/functions/emojify.md @@ -1,19 +1,13 @@ --- title: emojify description: Runs a string through the Emoji emoticons processor. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,emojis] signature: ["emojify INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- `emojify` runs a passed string through the Emoji emoticons processor. diff --git a/content/en/functions/eq.md b/content/en/functions/eq.md index 47901f16e..98eca1aa5 100644 --- a/content/en/functions/eq.md +++ b/content/en/functions/eq.md @@ -1,21 +1,13 @@ --- title: eq -linktitle: eq description: Returns the boolean truth of arg1 == arg2. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["eq ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/errorf.md b/content/en/functions/errorf.md index 4e5160b25..b3e0fd280 100644 --- a/content/en/functions/errorf.md +++ b/content/en/functions/errorf.md @@ -1,19 +1,13 @@ --- title: errorf and warnf description: Log ERROR or WARNING from the templates. -date: 2017-09-30 -publishdate: 2017-09-30 -lastmod: 2017-09-30 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings, log, error] signature: ["errorf FORMAT INPUT"] -workson: [] -hugoversion: relatedfuncs: [printf] -deprecated: false --- `errorf` or `warnf` will evaluate a format string, then output the result to the ERROR or WARNING log (and only once per error message to avoid flooding the log). diff --git a/content/en/functions/fileExists.md b/content/en/functions/fileExists.md index 0c12d7d84..5a365b7c1 100644 --- a/content/en/functions/fileExists.md +++ b/content/en/functions/fileExists.md @@ -1,20 +1,12 @@ --- -title: "fileExists" -linktitle: "fileExists" -date: 2017-08-31T22:38:22+02:00 +title: fileExists description: Checks for file or directory existence. -publishdate: 2017-08-31T22:38:22+02:00 -lastmod: 2021-11-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: ["os.FileExists PATH","fileExists PATH"] -workson: [] -hugoversion: relatedfuncs: ['os.ReadDir','os.ReadFile','os.Stat'] -deprecated: false -aliases: [] --- The `os.FileExists` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. diff --git a/content/en/functions/findRe.md b/content/en/functions/findRe.md index 3be6f5cd3..e84a0cf76 100644 --- a/content/en/functions/findRe.md +++ b/content/en/functions/findRe.md @@ -10,7 +10,6 @@ signature: - "findRE PATTERN INPUT [LIMIT]" - "strings.FindRE PATTERN INPUT [LIMIT]" relatedfuncs: [replaceRE] -aliases: [] --- By default, the `findRE` function finds all matches. You can limit the number of matches with an optional LIMIT parameter. diff --git a/content/en/functions/first.md b/content/en/functions/first.md index 98d162617..118c9c504 100644 --- a/content/en/functions/first.md +++ b/content/en/functions/first.md @@ -1,21 +1,13 @@ --- title: first -linktitle: first description: "Slices an array to only the first _N_ elements." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [iteration] signature: ["first LIMIT COLLECTION"] -workson: [lists,taxonomies,terms,groups] -hugoversion: relatedfuncs: [after,last] -deprecated: false -aliases: [] --- `first` works in a similar manner to the [`limit` keyword in diff --git a/content/en/functions/float.md b/content/en/functions/float.md index 1c589e317..60ebf949d 100644 --- a/content/en/functions/float.md +++ b/content/en/functions/float.md @@ -1,25 +1,17 @@ --- title: float -linktitle: float description: Creates a `float` from the argument passed into the function. -date: 2017-09-28 -publishdate: 2017-09-28 -lastmod: 2017-09-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,floats] signature: ["float INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- Useful for turning strings into floating point numbers. -``` +```go-html-template {{ float "1.23" }} → 1.23 ``` diff --git a/content/en/functions/format.md b/content/en/functions/format.md index 201a779cd..af34cbf7e 100644 --- a/content/en/functions/format.md +++ b/content/en/functions/format.md @@ -1,20 +1,13 @@ --- title: .Format description: Formats built-in Hugo dates---`.Date`, `.PublishDate`, and `.Lastmod`---according to Go's layout string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dates,time] signature: [".Format FORMAT"] -workson: [times] -hugoversion: relatedfuncs: [dateFormat,now,Unix,time] -deprecated: false -aliases: [] toc: true --- @@ -26,7 +19,7 @@ toc: true Assuming a key-value of `date: 2017-03-03` in a content file's front matter, your can run the date through `.Format` followed by a layout string for your desired output at build time: -``` +```go-html-template {{ .PublishDate.Format "January 2, 2006" }} => March 3, 2017 ``` diff --git a/content/en/functions/ge.md b/content/en/functions/ge.md index 915930528..8306935f0 100644 --- a/content/en/functions/ge.md +++ b/content/en/functions/ge.md @@ -1,21 +1,13 @@ --- title: ge -linktitle: ge description: Returns the boolean truth of arg1 >= arg2. -date: 2017-07-26 -publishdate: 2017-07-26 -lastmod: 2017-07-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["ge ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/get.md b/content/en/functions/get.md index 27f348807..561a794c7 100644 --- a/content/en/functions/get.md +++ b/content/en/functions/get.md @@ -1,21 +1,13 @@ --- title: .Get description: Accesses positional and ordered parameters in shortcode declaration. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [shortcodes] signature: [".Get INDEX", ".Get KEY"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] -needsexample: true --- `.Get` is specifically used when creating your own [shortcode template][sc], to access the [positional and named](/templates/shortcode-templates/#positional-vs-named-parameters) parameters passed to it. When used with a numeric INDEX, it queries positional parameters (starting with 0). With a string KEY, it queries named parameters. diff --git a/content/en/functions/getenv.md b/content/en/functions/getenv.md index 93e93a382..e014b7ad5 100644 --- a/content/en/functions/getenv.md +++ b/content/en/functions/getenv.md @@ -1,20 +1,13 @@ --- title: getenv description: Returns the value of an environment variable, or an empty string if the environment variable is not set. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2021-11-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["os.Getenv VARIABLE", "getenv VARIABLE"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- Examples: @@ -43,4 +36,3 @@ And then retrieve the values within a template: ``` With Hugo v0.91.0 and later, you must explicitly allow access to environment variables. For details, review [Hugo's Security Policy](/about/security-model/#security-policy). By default, environment variables beginning with `HUGO_` are allowed when using the `os.Getenv` function. - diff --git a/content/en/functions/group.md b/content/en/functions/group.md index 203498cb1..617dcbb34 100644 --- a/content/en/functions/group.md +++ b/content/en/functions/group.md @@ -1,14 +1,12 @@ --- title: group description: "`group` groups a list of pages." -date: 2018-09-14 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [collections] signature: ["PAGES | group KEY"] -hugoversion: "0.49" --- {{< code file="layouts/partials/groups.html" >}} diff --git a/content/en/functions/gt.md b/content/en/functions/gt.md index 9643ee36d..dba0d4dfc 100644 --- a/content/en/functions/gt.md +++ b/content/en/functions/gt.md @@ -1,21 +1,13 @@ --- title: gt -linktitle: gt description: Returns the boolean truth of arg1 > arg2. -date: 2017-07-26 -publishdate: 2017-07-26 -lastmod: 2017-07-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["gt ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/hasPrefix.md b/content/en/functions/hasPrefix.md index cf29315e2..37a15deed 100644 --- a/content/en/functions/hasPrefix.md +++ b/content/en/functions/hasPrefix.md @@ -1,21 +1,13 @@ --- title: hasprefix -linktitle: hasPrefix description: Tests whether a string begins with prefix. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["hasPrefix STRING PREFIX"] -workson: [] -hugoversion: relatedfuncs: [hasSuffix] -deprecated: false -aliases: [] --- * `{{ hasPrefix "Hugo" "Hu" }}` → true diff --git a/content/en/functions/hasSuffix.md b/content/en/functions/hasSuffix.md index 151b90ee3..994a3a572 100644 --- a/content/en/functions/hasSuffix.md +++ b/content/en/functions/hasSuffix.md @@ -1,21 +1,13 @@ --- title: hasSuffix -linktitle: hasSuffix description: Tests whether a string ends with suffix. -date: 2023-03-01 -publishdate: 2023-03-01 -lastmod: 2023-03-01 categories: [functions] menu: docs: -parent: "functions" +parent: functions keywords: [strings] signature: ["hasSuffix STRING SUFFIX"] -workson: [] -hugoversion: relatedfuncs: [hasPrefix] -deprecated: false -aliases: [] --- * `{{ hasSuffix "Hugo" "go" }}` → true diff --git a/content/en/functions/hasmenucurrent.md b/content/en/functions/hasmenucurrent.md index fea980120..8605cf34e 100644 --- a/content/en/functions/hasmenucurrent.md +++ b/content/en/functions/hasmenucurrent.md @@ -1,22 +1,13 @@ --- title: .HasMenuCurrent description: -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [menus] signature: ["PAGE.HasMenuCurrent MENU MENUENTRY"] -workson: [menus] -hugoversion: relatedfuncs: ["IsMenuCurrent"] -deprecated: false -toc: false -draft: false -aliases: [] --- `.HasMenuCurrent` is a method in `Page` object returning a _boolean_ value. It diff --git a/content/en/functions/highlight.md b/content/en/functions/highlight.md index 9edf9de3e..2ca125467 100644 --- a/content/en/functions/highlight.md +++ b/content/en/functions/highlight.md @@ -1,18 +1,13 @@ --- title: highlight -linktitle: highlight description: Renders code with a syntax highlighter. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2021-12-06 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [highlighting,code blocks,syntax] signature: ["transform.Highlight INPUT LANG [OPTIONS]","highlight INPUT LANG [OPTIONS]"] relatedfuncs: [] -deprecated: false toc: true --- The `highlight` function uses the [Chroma] syntax highlighter, supporting over 200 languages with more than 40 available styles. diff --git a/content/en/functions/hmac.md b/content/en/functions/hmac.md index b906e5abb..3b9675a0b 100644 --- a/content/en/functions/hmac.md +++ b/content/en/functions/hmac.md @@ -1,21 +1,13 @@ --- title: hmac -linktitle: hmac description: Returns a cryptographic hash that uses a key to sign a message. -date: 2020-05-29 -publishdate: 2020-05-29 -lastmod: 2020-05-29 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [hmac,checksum] signature: ["crypto.HMAC HASH_TYPE KEY MESSAGE [ENCODING]","hmac HASH_TYPE KEY MESSAGE [ENCODING]" ] -workson: [] -hugoversion: relatedfuncs: [hmac] -deprecated: false -aliases: [] --- Set the `HASH_TYPE` argument to `md5`, `sha1`, `sha256`, or `sha512`. diff --git a/content/en/functions/htmlEscape.md b/content/en/functions/htmlEscape.md index 652492c72..0ee8fa4d2 100644 --- a/content/en/functions/htmlEscape.md +++ b/content/en/functions/htmlEscape.md @@ -1,25 +1,17 @@ --- title: htmlEscape -linktitle: description: Returns the given string with the reserved HTML codes escaped. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings, html] signature: ["htmlEscape INPUT"] -workson: [] -hugoversion: relatedfuncs: [htmlUnescape] -deprecated: false -aliases: [] --- In the result `&` becomes `&` and so on. It escapes only: `<`, `>`, `&`, `'` and `"`. -``` +```go-html-template {{ htmlEscape "Hugo & Caddy > WordPress & Apache" }} → "Hugo & Caddy > WordPress & Apache" ``` diff --git a/content/en/functions/htmlUnescape.md b/content/en/functions/htmlUnescape.md index 9533fde90..e4646b680 100644 --- a/content/en/functions/htmlUnescape.md +++ b/content/en/functions/htmlUnescape.md @@ -1,27 +1,19 @@ --- title: htmlUnescape -linktitle: htmlUnescape description: Returns the given string with HTML escape codes un-escaped. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["htmlUnescape INPUT"] -workson: [] -hugoversion: relatedfuncs: [htmlEscape] -deprecated: false -aliases: [] --- `htmlUnescape` returns the given string with HTML escape codes un-escaped. Remember to pass the output of this to `safeHTML` if fully un-escaped characters are desired. Otherwise, the output will be escaped again as normal. -``` +```go-html-template {{ htmlUnescape "Hugo & Caddy > WordPress & Apache" }} → "Hugo & Caddy > WordPress & Apache" ``` diff --git a/content/en/functions/hugo.md b/content/en/functions/hugo.md index 91f517be2..c7326242f 100644 --- a/content/en/functions/hugo.md +++ b/content/en/functions/hugo.md @@ -1,22 +1,14 @@ --- title: hugo -linktitle: hugo description: The `hugo` function provides easy access to Hugo-related data. -date: 2019-01-31 -publishdate: 2019-01-31 keywords: [] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: ["hugo"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- `hugo` returns an instance that contains the following functions: diff --git a/content/en/functions/humanize.md b/content/en/functions/humanize.md index 444761c88..b6e2b8e2a 100644 --- a/content/en/functions/humanize.md +++ b/content/en/functions/humanize.md @@ -1,27 +1,19 @@ --- title: humanize -linktitle: description: Returns the humanized version of an argument with the first letter capitalized. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,casing] signature: ["humanize INPUT"] -workson: [] -hugoversion: relatedfuncs: [anchorize] -deprecated: false -aliases: [] --- If the input is either an int64 value or the string representation of an integer, humanize returns the number with the proper ordinal appended. -``` +```go-html-template {{ humanize "my-first-post"}} → "My first post" {{ humanize "myCamelPost"}} → "My camel post" {{ humanize "52"}} → "52nd" diff --git a/content/en/functions/i18n.md b/content/en/functions/i18n.md index 1dbbfcb76..d342339c3 100644 --- a/content/en/functions/i18n.md +++ b/content/en/functions/i18n.md @@ -1,24 +1,16 @@ --- title: i18n -linktitle: i18n description: Translates a piece of content based on your i18n configuration files. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [internationalization,i18n,multilingual] signature: - "i18n KEY" - "T KEY" - "lang.Translate KEY" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- This translates a piece of content based on your `i18n/en-US.toml` files. You can use the [go-i18n](https://github.com/nicksnyder/go-i18n) tools to manage your translations. The translations can exist in both the theme and at the root of your repository. diff --git a/content/en/functions/images/index.md b/content/en/functions/images/index.md index 7bc424048..4e16ef965 100644 --- a/content/en/functions/images/index.md +++ b/content/en/functions/images/index.md @@ -1,12 +1,11 @@ --- title: Image Filters description: The images namespace provides a list of filters and other image related functions. -date: 2017-02-01 categories: [functions] aliases: [/functions/imageconfig/] menu: docs: - parent: "functions" + parent: functions keywords: [images] toc: true --- diff --git a/content/en/functions/in.md b/content/en/functions/in.md index c1ef45629..1baf7ce90 100644 --- a/content/en/functions/in.md +++ b/content/en/functions/in.md @@ -1,21 +1,13 @@ --- title: in -linktitle: description: Checks if an element is in an array or slice--or a substring in a string---and returns a boolean. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["in SET ITEM"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- The elements supported are strings, integers and floats, although only float64 will match as expected. diff --git a/content/en/functions/index-function.md b/content/en/functions/index-function.md index 970ee0c49..6fb9f0fec 100644 --- a/content/en/functions/index-function.md +++ b/content/en/functions/index-function.md @@ -1,22 +1,14 @@ --- title: index -linktitle: index description: Looks up the index(es) or key(s) of the data structure passed into it. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["index COLLECTION INDEXES", "index COLLECTION KEYS"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false aliases: [/functions/index/] -needsexample: true --- The `index` functions returns the result of indexing its first argument by the following arguments. Each indexed item must be a map or a slice, e.g.: @@ -61,7 +53,7 @@ Assume you want to add a `location = ""` field to your front matter for every ar Here is an example: -{{< code-toggle file="data/locations/oslo" >}} +{{< code-toggle file="data/locations/oslo" copy=false >}} website = "https://www.oslo.kommune.no" pop_city = 658390 pop_metro = 1717900 @@ -69,10 +61,10 @@ pop_metro = 1717900 The example we will use will be an article on Oslo, whose front matter should be set to exactly the same name as the corresponding file name in `data/locations/`: -```toml +{{< code-toggle file="content/articles/oslo.md" fm=true copy=false >}} title = "My Norwegian Vacation" location = "oslo" -``` +{{< /code-toggle >}} The content of `oslo.toml` can be accessed from your template using the following node path: `.Site.Data.locations.oslo`. However, the specific file you need is going to change according to the front matter. @@ -87,14 +79,14 @@ This is where the `index` function is needed. `index` takes 2 parameters in this The variable for `.Params.location` is a string and can therefore replace `oslo` in the example above: -``` +```go-html-template {{ index .Site.Data.locations .Params.location }} => map[website:https://www.oslo.kommune.no pop_city:658390 pop_metro:1717900] ``` Now the call will return the specific file according to the location specified in the content's front matter, but you will likely want to write specific properties to the template. You can do this by continuing down the node path via dot notation (`.`): -``` +```go-html-template {{ (index .Site.Data.locations .Params.location).pop_city }} => 658390 ``` diff --git a/content/en/functions/int.md b/content/en/functions/int.md index 74a22714b..1859bc346 100644 --- a/content/en/functions/int.md +++ b/content/en/functions/int.md @@ -1,26 +1,18 @@ --- title: int -linktitle: int description: Creates an `int` from the argument passed into the function. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,integers] signature: ["int INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- Useful for turning strings into numbers. -``` +```go-html-template {{ int "123" }} → 123 ``` diff --git a/content/en/functions/intersect.md b/content/en/functions/intersect.md index 4a645234f..99ab0943e 100644 --- a/content/en/functions/intersect.md +++ b/content/en/functions/intersect.md @@ -1,21 +1,13 @@ --- title: intersect -linktitle: intersect description: Returns the common elements of two arrays or slices, in the same order as the first array. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [collections,intersect,union,complement,symdiff] signature: ["intersect SET1 SET2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- A useful example is to use it as `AND` filters when combined with where: diff --git a/content/en/functions/ismenucurrent.md b/content/en/functions/ismenucurrent.md index 51c21721b..a27a174b6 100644 --- a/content/en/functions/ismenucurrent.md +++ b/content/en/functions/ismenucurrent.md @@ -1,22 +1,13 @@ --- title: .IsMenuCurrent description: -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [menus] signature: ["PAGE.IsMenuCurrent MENU MENUENTRY"] -workson: [menus] -hugoversion: relatedfuncs: ["HasMenuCurrent"] -deprecated: false -draft: false -aliases: [] -needsexample: true --- `.IsMenuCurrent` is a method in `Page` object returning a _boolean_ value. It diff --git a/content/en/functions/isset.md b/content/en/functions/isset.md index 2be8a1587..bbedcd4bb 100644 --- a/content/en/functions/isset.md +++ b/content/en/functions/isset.md @@ -1,21 +1,13 @@ --- title: isset -linktitle: isset description: Returns true if the parameter is set. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["isset COLLECTION INDEX", "isset COLLECTION KEY"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- Takes either a slice, array, or channel and an index or a map and a key as input. diff --git a/content/en/functions/jsonify.md b/content/en/functions/jsonify.md index ecb5264ee..da40b8fcf 100644 --- a/content/en/functions/jsonify.md +++ b/content/en/functions/jsonify.md @@ -1,21 +1,13 @@ --- title: jsonify -linktitle: jsonify description: Encodes a given object to JSON. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2020-04-13 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,json] signature: ["jsonify INPUT", "jsonify OPTIONS INPUT"] -workson: [] -hugoversion: relatedfuncs: [plainify] -deprecated: false -aliases: [] --- Jsonify encodes a given object to JSON. diff --git a/content/en/functions/lang.Merge.md b/content/en/functions/lang.Merge.md index 78d658442..ab3e61940 100644 --- a/content/en/functions/lang.Merge.md +++ b/content/en/functions/lang.Merge.md @@ -1,20 +1,13 @@ --- title: lang.Merge description: "Merge missing translations from other languages." -date: 2018-03-16 categories: [functions] keywords: [multilingual] menu: docs: - parent: "functions" -toc: false + parent: functions signature: ["lang.Merge FROM TO"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] comments: --- diff --git a/content/en/functions/lang.md b/content/en/functions/lang.md index db353383c..af55c92bf 100644 --- a/content/en/functions/lang.md +++ b/content/en/functions/lang.md @@ -2,12 +2,11 @@ title: lang package: lang description: "TODO.." -date: 2021-07-28 categories: [functions] keywords: [numbers] menu: docs: - parent: "functions" + parent: functions signature: ["lang.NumFmt PRECISION NUMBER [OPTIONS [DELIMITER]]"] aliases: ['/functions/numfmt/'] type: 'template-func' diff --git a/content/en/functions/last.md b/content/en/functions/last.md index 63fdfa129..72e6a4c0d 100644 --- a/content/en/functions/last.md +++ b/content/en/functions/last.md @@ -1,27 +1,18 @@ --- title: last -linktitle: last description: "slices an array to only the last <em>N</em>th elements." -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: ["last INDEX COLLECTION"] -workson: [lists, taxonomies, terms, groups] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- ```go-html-template {{ range last 10 .Pages }} - {{ .Render "summary" }} + {{ .Render "summary" }} {{ end }} ``` diff --git a/content/en/functions/le.md b/content/en/functions/le.md index 8df2f2479..632e43a0e 100644 --- a/content/en/functions/le.md +++ b/content/en/functions/le.md @@ -1,21 +1,13 @@ --- title: le -linktitle: le description: Returns the boolean truth of arg1 <= arg2. -date: 2017-07-26 -publishdate: 2017-07-26 -lastmod: 2017-07-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["le ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/len.md b/content/en/functions/len.md index 1d7f9caf4..f621f8c90 100644 --- a/content/en/functions/len.md +++ b/content/en/functions/len.md @@ -1,22 +1,13 @@ --- title: len -linktitle: len description: Returns the length of a variable according to its type. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-04-18 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["len INPUT"] -workson: [lists,taxonomies,terms] -hugoversion: relatedfuncs: [] -deprecated: false -toc: false -aliases: [] --- `len` is a built-in function in Go that returns the length of a variable according to its type. From the Go documentation: diff --git a/content/en/functions/lower.md b/content/en/functions/lower.md index 3fbfc919b..9accf999e 100644 --- a/content/en/functions/lower.md +++ b/content/en/functions/lower.md @@ -1,23 +1,15 @@ --- title: lower -linktitle: lower description: Converts all characters in the provided string to lowercase. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,casing] signature: - "lower INPUT" - "strings.ToLower INPUT" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/lt.md b/content/en/functions/lt.md index 1e82270c3..08cad7904 100644 --- a/content/en/functions/lt.md +++ b/content/en/functions/lt.md @@ -1,21 +1,13 @@ --- title: lt -linktitle: lt description: Returns the boolean truth of arg1 < arg2. -date: 2017-07-26 -publishdate: 2017-07-26 -lastmod: 2017-07-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["lt ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/markdownify.md b/content/en/functions/markdownify.md index 44e4c9af6..9f1f3329e 100644 --- a/content/en/functions/markdownify.md +++ b/content/en/functions/markdownify.md @@ -1,18 +1,13 @@ --- title: markdownify -linktitle: markdownify description: Renders markdown to HTML. keywords: [markdown,content] categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: ["markdownify INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- ```go-html-template diff --git a/content/en/functions/math.md b/content/en/functions/math.md index 4abf34d1d..e84bb5f1f 100644 --- a/content/en/functions/math.md +++ b/content/en/functions/math.md @@ -1,22 +1,14 @@ --- title: Math description: Hugo provides mathematical operators in templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2023-03-11 keywords: [math, operators] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: [] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- | Function | Description | Example | diff --git a/content/en/functions/md5.md b/content/en/functions/md5.md index 0c9cabbdc..cc5fd31ea 100644 --- a/content/en/functions/md5.md +++ b/content/en/functions/md5.md @@ -1,21 +1,13 @@ --- title: md5 -linktitle: md5 description: hashes the given input and returns its MD5 checksum. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["md5 INPUT"] -workson: [] -hugoversion: relatedfuncs: [sha] -deprecated: false -aliases: [] --- ```go-html-template diff --git a/content/en/functions/merge.md b/content/en/functions/merge.md index a73644dcb..68e561450 100644 --- a/content/en/functions/merge.md +++ b/content/en/functions/merge.md @@ -1,17 +1,13 @@ --- title: merge description: "Returns the result of merging two or more maps." -date: 2019-08-08 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dictionary] signature: ["collections.Merge MAP MAP...", "merge MAP MAP..."] -workson: [] -hugoversion: "0.56.0" relatedfuncs: [dict, append, reflect.IsMap, reflect.IsSlice] -aliases: [] --- Returns the result of merging two or more maps from left to right. If a key already exists, `merge` updates its value. If a key is absent, `merge` inserts the value under the new key. diff --git a/content/en/functions/ne.md b/content/en/functions/ne.md index e0fc93bbd..54f66823c 100644 --- a/content/en/functions/ne.md +++ b/content/en/functions/ne.md @@ -1,21 +1,13 @@ --- title: ne -linktitle: ne description: Returns the boolean truth of arg1 != arg2. -date: 2017-07-26 -publishdate: 2017-07-26 -lastmod: 2017-07-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [operators,logic] signature: ["ne ARG1 ARG2"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- diff --git a/content/en/functions/now.md b/content/en/functions/now.md index e54f952e8..47afdc64d 100644 --- a/content/en/functions/now.md +++ b/content/en/functions/now.md @@ -1,21 +1,13 @@ --- title: now -linktitle: now description: Returns the current local time -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-04-30 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dates,time] signature: ["now"] -workson: [] -hugoversion: relatedfuncs: [Unix,dateFormat] -deprecated: false -aliases: [] --- See [`time.Time`](https://godoc.org/time#Time). diff --git a/content/en/functions/os.Stat.md b/content/en/functions/os.Stat.md index 14adc0ba1..9ace3b8bf 100644 --- a/content/en/functions/os.Stat.md +++ b/content/en/functions/os.Stat.md @@ -1,20 +1,13 @@ --- title: os.Stat description: Returns a FileInfo structure describing a file or directory. -date: 2018-08-07 -publishdate: 2018-08-07 -lastmod: 2021-11-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [files] signature: ["os.Stat PATH"] -workson: [] -hugoversion: relatedfuncs: ['os.FileExists','os.ReadDir','os.ReadFile'] -deprecated: false -aliases: [] --- The `os.Stat` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. diff --git a/content/en/functions/param.md b/content/en/functions/param.md index 96cdfe73b..fb695d0e1 100644 --- a/content/en/functions/param.md +++ b/content/en/functions/param.md @@ -6,8 +6,7 @@ categories: [functions] keywords: ['front matter', 'params'] menu: docs: - parent: 'functions' -aliases: [] + parent: functions --- The `.Param` method on `.Page` looks for the given `KEY` in page parameters, and returns the corresponding value. If it cannot find the `KEY` in page parameters, it looks for the `KEY` in site parameters. If it cannot find the `KEY` in either location, the `.Param` method returns `nil`. diff --git a/content/en/functions/partialCached.md b/content/en/functions/partialCached.md index ef29ae8a9..06b14573a 100644 --- a/content/en/functions/partialCached.md +++ b/content/en/functions/partialCached.md @@ -1,21 +1,13 @@ --- title: partialCached -linktitle: partialCached description: Allows for caching of partials that do not need to be re-rendered on every invocation. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [performance] signature: ["partialCached LAYOUT INPUT [VARIANT...]"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- The `partialCached` template function can offer significant performance gains for complex templates that don't need to be re-rendered on every invocation. @@ -26,7 +18,7 @@ The `partialCached` template function can offer significant performance gains fo Here is the simplest usage: -``` +```go-html-template {{ partialCached "footer.html" . }} ``` diff --git a/content/en/functions/path.Base.md b/content/en/functions/path.Base.md index fff411ad3..5ea0564fa 100644 --- a/content/en/functions/path.Base.md +++ b/content/en/functions/path.Base.md @@ -1,19 +1,13 @@ --- title: path.Base description: Base returns the last element of a path. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, base] signature: ["path.Base PATH"] -workson: [] -hugoversion: "0.40" relatedfuncs: [path.BaseName, path.Clean, path.Dir, path.Ext, path.Join, path.Split] -deprecated: false --- `path.Base` returns the last element of `PATH`. diff --git a/content/en/functions/path.BaseName.md b/content/en/functions/path.BaseName.md index 6a5b9f0a0..95a521a1a 100644 --- a/content/en/functions/path.BaseName.md +++ b/content/en/functions/path.BaseName.md @@ -1,15 +1,13 @@ --- title: path.BaseName description: BaseName returns the last element of a path, removing the extension if present. -date: 2022-06-04 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, base] signature: ["path.BaseName PATH"] relatedfuncs: [path.Base, path.Clean, path.Dir, path.Ext, path.Join, path.Split] -deprecated: false --- If `PATH` is empty, `.` is returned. diff --git a/content/en/functions/path.Clean.md b/content/en/functions/path.Clean.md index 852de65fd..ce53cc9ff 100644 --- a/content/en/functions/path.Clean.md +++ b/content/en/functions/path.Clean.md @@ -1,13 +1,10 @@ --- title: path.Clean description: Replaces path separators with slashes (`/`) and removes extraneous separators. -date: 2021-10-08 -# publishdate: 2018-11-28 -# lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, clean] signature: ["path.Clean PATH"] relatedfuncs: [path.Base, path.BaseName, path.Dir, path.Ext, path.Join, path.Split] @@ -15,13 +12,13 @@ relatedfuncs: [path.Base, path.BaseName, path.Dir, path.Ext, path.Join, path.Spl `path.Clean` replaces path separators with slashes (`/`) and removes extraneous separators, including trailing separators. -``` +```go-html-template {{ path.Clean "foo//bar" }} → "foo/bar" {{ path.Clean "/foo/bar/" }} → "/foo/bar" ``` On a Windows system, if `.File.Path` is `foo\bar.md`, then: -``` +```go-html-template {{ path.Clean .File.Path }} → "foo/bar.md" ``` diff --git a/content/en/functions/path.Dir.md b/content/en/functions/path.Dir.md index 161a0daa8..0083a1efa 100644 --- a/content/en/functions/path.Dir.md +++ b/content/en/functions/path.Dir.md @@ -1,19 +1,13 @@ --- title: path.Dir description: Dir returns all but the last element of a path. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, dir] signature: ["path.Dir PATH"] -workson: [] -hugoversion: "0.40" relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Ext, path.Join, path.Split] -deprecated: false --- `path.Dir` returns all but the last element of `PATH`, typically `PATH`'s directory. @@ -23,7 +17,7 @@ If `PATH` is empty, `.` is returned. **Note:** On Windows, `PATH` is converted to slash (`/`) separators. -``` +```go-html-template {{ path.Dir "a/news.html" }} → "a" {{ path.Dir "news.html" }} → "." {{ path.Dir "a/b/c" }} → "a/b" diff --git a/content/en/functions/path.Ext.md b/content/en/functions/path.Ext.md index 8c6fe907c..2e1946608 100644 --- a/content/en/functions/path.Ext.md +++ b/content/en/functions/path.Ext.md @@ -1,19 +1,13 @@ --- title: path.Ext description: Ext returns the file name extension of a path. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, ext, extension] signature: ["path.Ext PATH"] -workson: [] -hugoversion: "0.40" relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Join, path.Split] -deprecated: false --- `path.Ext` returns the file name extension `PATH`. @@ -23,6 +17,6 @@ it is empty if there is no dot. **Note:** On Windows, `PATH` is converted to slash (`/`) separators. -``` +```go-html-template {{ path.Ext "a/b/c/news.html" }} → ".html" ``` diff --git a/content/en/functions/path.Join.md b/content/en/functions/path.Join.md index 579e8667e..5ac5ac469 100644 --- a/content/en/functions/path.Join.md +++ b/content/en/functions/path.Join.md @@ -1,19 +1,13 @@ --- title: path.Join description: Join path elements into a single path. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, join] signature: ["path.Join ELEMENT..."] -workson: [] -hugoversion: "0.39" relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Ext, path.Split] -deprecated: false --- `path.Join` joins path elements into a single path, adding a separating slash if necessary. @@ -21,7 +15,7 @@ All empty strings are ignored. **Note:** All path elements on Windows are converted to slash ('/') separators. -``` +```go-html-template {{ path.Join "partial" "news.html" }} → "partial/news.html" {{ path.Join "partial/" "news.html" }} → "partial/news.html" {{ path.Join "foo/baz" "bar" }} → "foo/baz/bar" diff --git a/content/en/functions/path.Split.md b/content/en/functions/path.Split.md index 7737b77d3..aa915788e 100644 --- a/content/en/functions/path.Split.md +++ b/content/en/functions/path.Split.md @@ -1,19 +1,13 @@ --- title: path.Split description: Split path immediately following the final slash. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [path, split] signature: ["path.Split PATH"] -workson: [] -hugoversion: "0.39" relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Ext, path.Join] -deprecated: false --- `path.Split` splits `PATH` immediately following the final slash, separating it into a directory and a base component. @@ -23,7 +17,7 @@ If there is no slash in `PATH`, it returns an empty directory and the base is se **Note:** On Windows, `PATH` is converted to slash (`/`) separators. -``` +```go-html-template {{ $dirFile := path.Split "a/news.html" }} → $dirFile.Dir → "a/", $dirFile.File → "news.html" {{ $dirFile := path.Split "news.html" }} → $dirFile.Dir → "", $dirFile.File → "news.html" {{ $dirFile := path.Split "a/b/c" }} → $dirFile.Dir → "a/b/", $dirFile.File → "c" diff --git a/content/en/functions/plainify.md b/content/en/functions/plainify.md index 1258c139a..78f52683b 100644 --- a/content/en/functions/plainify.md +++ b/content/en/functions/plainify.md @@ -1,24 +1,16 @@ --- title: plainify -linktitle: plainify description: Strips any HTML and returns the plain text version of the provided string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-04-30 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["plainify INPUT"] -workson: [] -hugoversion: relatedfuncs: [jsonify] -deprecated: false -aliases: [] --- -``` +```go-html-template {{ "<b>BatMan</b>" | plainify }} → "BatMan" ``` diff --git a/content/en/functions/pluralize.md b/content/en/functions/pluralize.md index 9c5040934..bd0860802 100644 --- a/content/en/functions/pluralize.md +++ b/content/en/functions/pluralize.md @@ -1,23 +1,15 @@ --- title: pluralize -linktitle: pluralize description: Pluralizes the given word according to a set of common English pluralization rules -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["pluralize INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- -``` +```go-html-template {{ "cat" | pluralize }} → "cats" ``` diff --git a/content/en/functions/print.md b/content/en/functions/print.md index 42b8dcb75..4af0b6b96 100644 --- a/content/en/functions/print.md +++ b/content/en/functions/print.md @@ -1,25 +1,18 @@ --- title: print -linktitle: print description: Prints the default representation of the given arguments using the standard `fmt.Print` function. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["print INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- See [the go doc](https://golang.org/pkg/fmt/) for additional information. -``` +```go-html-template {{ print "foo" }} → "foo" {{ print "foo" "bar" }} → "foobar" {{ print (slice 1 2 3) }} → [1 2 3] diff --git a/content/en/functions/printf.md b/content/en/functions/printf.md index 41e6524ff..66f85e159 100644 --- a/content/en/functions/printf.md +++ b/content/en/functions/printf.md @@ -1,20 +1,13 @@ --- title: printf -linktitle: printf description: Formats a string using the standard `fmt.Sprintf` function. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["printf FORMAT INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- See [the go doc](https://golang.org/pkg/fmt/) for additional information. diff --git a/content/en/functions/println.md b/content/en/functions/println.md index 1ea70cbad..6ad57f402 100644 --- a/content/en/functions/println.md +++ b/content/en/functions/println.md @@ -1,24 +1,17 @@ --- title: println -linktitle: println description: Prints the default representation of the given argument using the standard `fmt.Print` function and enforces a linebreak. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["println INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- See [the go doc](https://golang.org/pkg/fmt/) for additional information. `\n` denotes the linebreak but isn't printed in the templates as seen below: -``` +```go-html-template {{ println "foo" }} → "foo\n" ``` diff --git a/content/en/functions/querify.md b/content/en/functions/querify.md index 9e8c4b83f..b21b3a0b2 100644 --- a/content/en/functions/querify.md +++ b/content/en/functions/querify.md @@ -1,21 +1,13 @@ --- title: querify -linktitle: querify description: Takes a set or slice of key-value pairs and returns a query string to be appended to URLs. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [urls] signature: ["querify KEY VALUE [KEY VALUE]...", "querify COLLECTION"] -hugoversion: -deprecated: false -workson: [] relatedfuncs: [] -aliases: [] --- `querify` takes a set or slice of key-value pairs and returns a [query string](https://en.wikipedia.org/wiki/Query_string) that can be appended to a URL. diff --git a/content/en/functions/range.md b/content/en/functions/range.md index 599e2ad25..da0a4d7ef 100644 --- a/content/en/functions/range.md +++ b/content/en/functions/range.md @@ -1,22 +1,13 @@ --- title: range -linktitle: description: Iterates over a map, array, or slice. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [iteration] signature: ["range COLLECTION"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- Just like in the Go programming language, Go and Hugo templates make heavy use of `range` to iterate over a map, array or slice. Other templating languages use a foreach for the equivalent functionality. diff --git a/content/en/functions/readdir.md b/content/en/functions/readdir.md index ef4e39e71..3ad43126a 100644 --- a/content/en/functions/readdir.md +++ b/content/en/functions/readdir.md @@ -1,19 +1,13 @@ --- title: readDir description: Returns an array of FileInfo structures sorted by filename, one element for each directory entry. -publishdate: 2017-02-01 -lastmod: 2021-11-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [files] signature: ["os.ReadDir PATH", "readDir PATH"] -workson: [] -hugoversion: relatedfuncs: ['os.FileExists','os.ReadFile','os.Stat'] -deprecated: false -aliases: [] --- The `os.ReadDir` function resolves the path relative to the root of your project directory. A leading path separator (`/`) is optional. diff --git a/content/en/functions/readfile.md b/content/en/functions/readfile.md index ab782f1df..c700d7aa0 100644 --- a/content/en/functions/readfile.md +++ b/content/en/functions/readfile.md @@ -1,20 +1,13 @@ --- title: readFile description: Returns the contents of a file. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2021-11-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [files] signature: ["os.ReadFile PATH", "readFile PATH"] -workson: [] -hugoversion: relatedfuncs: ['os.FileExists','os.ReadDir','os.Stat'] -deprecated: false -aliases: [] --- The `os.ReadFile` function attempts to resolve the path relative to the root of your project directory. If a matching file is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional. diff --git a/content/en/functions/ref.md b/content/en/functions/ref.md index 3387ce6d0..32bf79ca1 100644 --- a/content/en/functions/ref.md +++ b/content/en/functions/ref.md @@ -1,21 +1,13 @@ --- title: ref -linktitle: ref description: Returns the absolute permalink to a page. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2020-09-05 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [cross references, anchors] signature: ["ref . PAGE"] -workson: [] -hugoversion: relatedfuncs: [relref] -deprecated: false -aliases: [] --- This function takes two parameters: diff --git a/content/en/functions/reflect.IsMap.md b/content/en/functions/reflect.IsMap.md index 9ad50b599..aa8da7d53 100644 --- a/content/en/functions/reflect.IsMap.md +++ b/content/en/functions/reflect.IsMap.md @@ -1,24 +1,18 @@ --- title: reflect.IsMap description: Reports if a value is a map. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [reflect, reflection, kind] signature: ["reflect.IsMap INPUT"] -workson: [] -hugoversion: "v0.53" relatedfuncs: [reflect.IsSlice] -deprecated: false --- `reflect.IsMap` reports if `VALUE` is a map. Returns a boolean. -``` +```go-html-template {{ reflect.IsMap (dict "key" "value") }} → true {{ reflect.IsMap "yo" }} → false ``` diff --git a/content/en/functions/reflect.IsSlice.md b/content/en/functions/reflect.IsSlice.md index 38640918a..0a29d8f3e 100644 --- a/content/en/functions/reflect.IsSlice.md +++ b/content/en/functions/reflect.IsSlice.md @@ -1,24 +1,18 @@ --- title: reflect.IsSlice description: Reports if a value is a slice. -date: 2018-11-28 -publishdate: 2018-11-28 -lastmod: 2018-11-28 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [reflect, reflection, kind] signature: ["reflect.IsSlice INPUT"] -workson: [] -hugoversion: "0.53" relatedfuncs: [reflect.IsMap] -deprecated: false --- `reflect.IsSlice` reports if `VALUE` is a slice. Returns a boolean. -``` +```go-html-template {{ reflect.IsSlice (slice 1 2 3) }} → true {{ reflect.IsSlice "yo" }} → false ``` diff --git a/content/en/functions/relref.md b/content/en/functions/relref.md index 1f32f60a2..f60d5559b 100644 --- a/content/en/functions/relref.md +++ b/content/en/functions/relref.md @@ -1,21 +1,13 @@ --- title: relref -linktitle: relref description: Returns the relative permalink to a page. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2020-09-05 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [cross references, anchors] signature: ["relref . PAGE"] -workson: [] -hugoversion: relatedfuncs: [ref] -deprecated: false -aliases: [] --- This function takes two parameters: diff --git a/content/en/functions/render.md b/content/en/functions/render.md index 158721a27..7086fd96b 100644 --- a/content/en/functions/render.md +++ b/content/en/functions/render.md @@ -1,20 +1,13 @@ --- title: .Render description: Takes a view to apply when rendering content. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [views] signature: [".Render LAYOUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- The view is an alternative layout and should be a file name that points to a template in one of the locations specified in the documentation for [Content Views](/templates/views). @@ -25,7 +18,7 @@ This example could render a piece of content using the content view located at ` ```go-html-template {{ range .Pages }} - {{ .Render "summary"}} + {{ .Render "summary"}} {{ end }} ``` diff --git a/content/en/functions/replace.md b/content/en/functions/replace.md index 36e392015..fea92ab68 100644 --- a/content/en/functions/replace.md +++ b/content/en/functions/replace.md @@ -1,22 +1,15 @@ --- title: replace description: Replaces all occurrences of the search string with the replacement string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2020-09-07 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [replace] signature: - "replace INPUT OLD NEW [LIMIT]" - "strings.Replace INPUT OLD NEW [LIMIT]" -workson: [] -hugoversion: relatedfuncs: [replaceRE] -deprecated: false -aliases: [] --- Replace returns a copy of `INPUT` with all occurrences of `OLD` replaced with `NEW`. diff --git a/content/en/functions/replacere.md b/content/en/functions/replacere.md index cc4eb5dc2..ef0ffb4fa 100644 --- a/content/en/functions/replacere.md +++ b/content/en/functions/replacere.md @@ -10,7 +10,6 @@ signature: - "replaceRE PATTERN REPLACEMENT INPUT [LIMIT]" - "strings.ReplaceRE PATTERN REPLACEMENT INPUT [LIMIT]" relatedfuncs: [replace,findRE] -aliases: [] --- By default, the `replaceRE` function replaces all matches. You can limit the number of matches with an optional LIMIT parameter. diff --git a/content/en/functions/safeCSS.md b/content/en/functions/safeCSS.md index 835ad3065..1d3708be3 100644 --- a/content/en/functions/safeCSS.md +++ b/content/en/functions/safeCSS.md @@ -1,20 +1,13 @@ --- title: safeCSS description: Declares the provided string as a known "safe" CSS string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-26 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [style,css,strings] signature: ["safeCSS INPUT"] -workson: [] -hugoversion: relatedfuncs: [safeHTML,safeHTMLAttr,] -deprecated: false -aliases: [] --- In this context, *safe* means CSS content that matches any of the following: diff --git a/content/en/functions/safeHTML.md b/content/en/functions/safeHTML.md index 904547446..182633e46 100644 --- a/content/en/functions/safeHTML.md +++ b/content/en/functions/safeHTML.md @@ -1,20 +1,13 @@ --- title: safeHTML -# linktitle: description: Declares a provided string as a "safe" HTML document to avoid escaping by Go templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["safeHTML INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- It should not be used for HTML from a third-party, or HTML with unclosed tags or comments. diff --git a/content/en/functions/safeHTMLAttr.md b/content/en/functions/safeHTMLAttr.md index 7e730412a..8d1d7efbc 100644 --- a/content/en/functions/safeHTMLAttr.md +++ b/content/en/functions/safeHTMLAttr.md @@ -8,7 +8,6 @@ menu: keywords: [strings] signature: ["safeHTMLAttr INPUT"] relatedfuncs: [] -aliases: [] --- Given a site configuration that contains this menu entry: diff --git a/content/en/functions/safeJS.md b/content/en/functions/safeJS.md index c67bfa61c..48c2c363b 100644 --- a/content/en/functions/safeJS.md +++ b/content/en/functions/safeJS.md @@ -1,22 +1,13 @@ --- title: safeJS -# linktitle: description: Declares the provided string as a known safe JavaScript string. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["safeJS INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- In this context, *safe* means the string encapsulates a known safe EcmaScript5 Expression (e.g., `(x + y * z())`). diff --git a/content/en/functions/safeURL.md b/content/en/functions/safeURL.md index 285542ea9..178f2a15f 100644 --- a/content/en/functions/safeURL.md +++ b/content/en/functions/safeURL.md @@ -1,20 +1,13 @@ --- title: safeURL description: Declares the provided string as a safe URL or URL substring. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [strings,urls] categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: ["safeURL INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- `safeURL` declares the provided string as a "safe" URL or URL substring (see [RFC 3986]). A URL like `javascript:checkThatFormNotEditedBeforeLeavingPage()` from a trusted source should go in the page, but by default dynamic `javascript:` URLs are filtered out since they are a frequently exploited injection vector. diff --git a/content/en/functions/scratch.md b/content/en/functions/scratch.md index 20f1ba14a..2e00f41bd 100644 --- a/content/en/functions/scratch.md +++ b/content/en/functions/scratch.md @@ -1,21 +1,14 @@ --- title: .Scratch description: Acts as a "scratchpad" to store and manipulate data. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [iteration] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: [] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false aliases: [/extras/scratch/,/doc/scratch/] --- diff --git a/content/en/functions/seq.md b/content/en/functions/seq.md index 0314595d5..bd9befd86 100644 --- a/content/en/functions/seq.md +++ b/content/en/functions/seq.md @@ -1,22 +1,13 @@ --- title: seq -# linktitle: description: Creates a sequence of integers. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["seq LAST", "seq FIRST LAST", "seq FIRST INCREMENT LAST"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- It's named and used in the model of [GNU's seq]. @@ -34,15 +25,15 @@ It's named and used in the model of [GNU's seq]. You can use `seq` in combination with `range` and `after`. The following will return 19 elements: ```go-html-template -{{ range after 1 (seq 20)}} +{{ range after 1 (seq 20) }} {{ end }} ``` However, when ranging with an index, the following may be less confusing in that `$indexStartingAt1` and `$num` will return `1,2,3 ... 20`: ```go-html-template -{{ range $index, $num := (seq 20) }} -$indexStartingAt1 := (add $index 1) +{{ range $index, $num := seq 20 }} + {{ $indexStartingAt1 := add $index 1 }} {{ end }} ``` diff --git a/content/en/functions/sha.md b/content/en/functions/sha.md index ba344fddf..1f6cf8da0 100644 --- a/content/en/functions/sha.md +++ b/content/en/functions/sha.md @@ -1,20 +1,13 @@ --- title: sha -# linktitle: sha description: Hashes the given input and returns either an SHA1 or SHA256 checksum. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [sha,checksum] signature: ["sha1 INPUT", "sha256 INPUT"] -workson: [] -hugoversion: relatedfuncs: [md5] -deprecated: false aliases: [sha1, sha256] --- diff --git a/content/en/functions/shuffle.md b/content/en/functions/shuffle.md index 95a586e44..4380664dd 100644 --- a/content/en/functions/shuffle.md +++ b/content/en/functions/shuffle.md @@ -1,22 +1,13 @@ --- title: shuffle -# linktitle: description: Returns a random permutation of a given array or slice. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-04-30 keywords: [ordering] categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: ["shuffle COLLECTION"] -workson: [] -hugoversion: relatedfuncs: [seq] -deprecated: false -draft: false -aliases: [] --- {{< code file="shuffle-input.html" >}} diff --git a/content/en/functions/singularize.md b/content/en/functions/singularize.md index 8ca46d433..4e56684b9 100644 --- a/content/en/functions/singularize.md +++ b/content/en/functions/singularize.md @@ -1,21 +1,13 @@ --- title: singularize -# linktitle: singularize description: Converts a word according to a set of common English singularization rules. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings,singular] signature: ["singularize INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- `{{ "cats" | singularize }}` → "cat" diff --git a/content/en/functions/site.md b/content/en/functions/site.md index 30b8d6505..b408f7141 100644 --- a/content/en/functions/site.md +++ b/content/en/functions/site.md @@ -1,23 +1,14 @@ --- title: site -linktitle: site description: The `site` function provides global access to the same data as the `.Site` page method. -date: 2021-02-11 -publishdate: 2021-02-11 -lastmod: 2021-02-11 keywords: [] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: ["site"] -workson: [] -hugoversion: relatedfuncs: ["hugo"] -deprecated: false -draft: false -aliases: [] --- `site` is a global function which returns the same data as the `.Site` page method. See: [Site Variables](/variables/site). diff --git a/content/en/functions/slice.md b/content/en/functions/slice.md index 9b5580d44..d2ef62861 100644 --- a/content/en/functions/slice.md +++ b/content/en/functions/slice.md @@ -1,23 +1,13 @@ --- title: slice -# linktitle: slice description: Creates a slice (array) of all passed arguments. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [slice, array, interface] signature: ["slice ITEM..."] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] -toc: false --- One use case is the concatenation of elements in combination with the [`delimit` function]: diff --git a/content/en/functions/slicestr.md b/content/en/functions/slicestr.md index d6e4b3439..bbdf95696 100644 --- a/content/en/functions/slicestr.md +++ b/content/en/functions/slicestr.md @@ -1,23 +1,15 @@ --- title: slicestr -# linktitle: description: Creates a slice of a half-open range, including start and end indices. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: - "slicestr STRING START [END]" - "strings.SliceString STRING START [END]" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- For example, 1 and 4 creates a slice including elements 1 through 3. diff --git a/content/en/functions/sort.md b/content/en/functions/sort.md index bbaf98bab..c7b869b39 100644 --- a/content/en/functions/sort.md +++ b/content/en/functions/sort.md @@ -5,10 +5,9 @@ categories: [functions] signature: ["sort COLLECTION [KEY] [ORDER]"] menu: docs: - parent: "functions" + parent: functions keywords: [ordering,sorting,lists] toc: true -aliases: [] --- The `KEY` is optional when sorting slices in ascending order, otherwise it is required. When sorting slices, use the literal `value` in place of the `KEY`. See examples below. diff --git a/content/en/functions/split.md b/content/en/functions/split.md index 8d54521b6..d2f3cc8b3 100644 --- a/content/en/functions/split.md +++ b/content/en/functions/split.md @@ -1,20 +1,13 @@ --- title: split description: Returns a slice of strings by splitting STRING by DELIM. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2022-11-06 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["split STRING DELIM"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- Examples: diff --git a/content/en/functions/store.md b/content/en/functions/store.md index 4723a9d26..d57194d80 100644 --- a/content/en/functions/store.md +++ b/content/en/functions/store.md @@ -4,7 +4,7 @@ description: Returns a Scratch that is not reset on server rebuilds. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [scratch] signature: [] --- diff --git a/content/en/functions/string.md b/content/en/functions/string.md index 4905765aa..6c2211daf 100644 --- a/content/en/functions/string.md +++ b/content/en/functions/string.md @@ -1,21 +1,13 @@ --- title: string -# linktitle: string description: Creates a string from the argument passed to the function -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["string INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- * `{{ string "BatMan"}}` → "BatMan" diff --git a/content/en/functions/strings.Contains.md b/content/en/functions/strings.Contains.md index 8ebd9ad33..44cb73b81 100644 --- a/content/en/functions/strings.Contains.md +++ b/content/en/functions/strings.Contains.md @@ -4,10 +4,9 @@ description: Reports whether a string contains a substring. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [string strings substring contains] signature: ["strings.Contains STRING SUBSTRING"] -aliases: [] relatedfuncs: [strings.ContainsAny] --- diff --git a/content/en/functions/strings.ContainsAny.md b/content/en/functions/strings.ContainsAny.md index bfbc2242b..36fa8701b 100644 --- a/content/en/functions/strings.ContainsAny.md +++ b/content/en/functions/strings.ContainsAny.md @@ -4,10 +4,9 @@ description: Reports whether a string contains any character from a given string categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [string strings substring contains any] signature: ["strings.ContainsAny STRING CHARACTERS"] -aliases: [] relatedfuncs: [strings.Contains] --- diff --git a/content/en/functions/strings.Count.md b/content/en/functions/strings.Count.md index c0b11233c..7c3945693 100644 --- a/content/en/functions/strings.Count.md +++ b/content/en/functions/strings.Count.md @@ -1,20 +1,13 @@ --- title: strings.Count description: Returns the number of non-overlapping instances of a substring within a string. -date: 2020-09-07 -publishdate: 2020-09-07 -lastmod: 2020-09-07 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [count, counting, character count] signature: ["strings.Count SUBSTR STRING"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- If `SUBSTR` is an empty string, this function returns 1 plus the number of Unicode code points in `STRING`. diff --git a/content/en/functions/strings.FirstUpper.md b/content/en/functions/strings.FirstUpper.md index b97d00f29..fab82a2dc 100644 --- a/content/en/functions/strings.FirstUpper.md +++ b/content/en/functions/strings.FirstUpper.md @@ -4,11 +4,9 @@ description: Capitalizes the first character of a given string. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings capitalize uppercase first] signature: ["strings.FirstUpper STRING"] -hugoversion: -aliases: [] --- {{ strings.FirstUpper "foo" }} → "Foo" diff --git a/content/en/functions/strings.HasSuffix.md b/content/en/functions/strings.HasSuffix.md index 78688a5cb..086cac548 100644 --- a/content/en/functions/strings.HasSuffix.md +++ b/content/en/functions/strings.HasSuffix.md @@ -1,20 +1,13 @@ --- title: strings.HasSuffix description: Determine whether a given string ends with the provided trailing suffix string. -date: 2019-08-13 -publishdate: 2019-08-13 -lastmod: 2019-08-13 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.HasSuffix STRING SUFFIX"] -workson: [] -hugoversion: relatedfuncs: [hasPrefix] -deprecated: false -aliases: [] --- {{ $pdfPath := "/path/to/some.pdf" }} diff --git a/content/en/functions/strings.Repeat.md b/content/en/functions/strings.Repeat.md index 7cba6d075..99b2fe5a5 100644 --- a/content/en/functions/strings.Repeat.md +++ b/content/en/functions/strings.Repeat.md @@ -1,23 +1,16 @@ --- title: strings.Repeat -# linktitle: description: Returns INPUT repeated COUNT times. -date: 2018-05-31 -publishdate: 2018-05-31 -lastmod: 2018-05-31 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.Repeat COUNT INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- -``` +```go-html-template {{ strings.Repeat 3 "yo" }} → "yoyoyo" {{ "yo" | strings.Repeat 3 }} → "yoyoyo" ``` diff --git a/content/en/functions/strings.RuneCount.md b/content/en/functions/strings.RuneCount.md index 69c581746..3a72e339a 100644 --- a/content/en/functions/strings.RuneCount.md +++ b/content/en/functions/strings.RuneCount.md @@ -1,20 +1,13 @@ --- title: strings.RuneCount description: Determines the number of runes in a string. -date: 2018-06-01 -publishdate: 2018-06-01 -lastmod: 2018-06-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [counting, character count, length, rune length, rune count] signature: ["strings.RuneCount INPUT"] -workson: [] -hugoversion: relatedfuncs: ["len", "countrunes"] -deprecated: false -aliases: [] --- In contrast with `strings.CountRunes` function, which strips HTML and whitespace before counting runes, `strings.RuneCount` simply counts all the runes in a string. It relies on the Go [`utf8.RuneCountInString`] function. diff --git a/content/en/functions/strings.TrimLeft.md b/content/en/functions/strings.TrimLeft.md index 2d71a1367..b0271c8a8 100644 --- a/content/en/functions/strings.TrimLeft.md +++ b/content/en/functions/strings.TrimLeft.md @@ -1,20 +1,13 @@ --- title: strings.TrimLeft description: Returns a slice of a given string with all leading characters contained in the cutset removed. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.TrimLeft CUTSET STRING"] -workson: [] -hugoversion: relatedfuncs: [strings.TrimRight] -deprecated: false -aliases: [] --- Given the string `"abba"`, leading `"a"`'s can be removed a follows: diff --git a/content/en/functions/strings.TrimPrefix.md b/content/en/functions/strings.TrimPrefix.md index a66bbe3db..c3f702961 100644 --- a/content/en/functions/strings.TrimPrefix.md +++ b/content/en/functions/strings.TrimPrefix.md @@ -1,20 +1,13 @@ --- title: strings.TrimPrefix description: Returns a given string s without the provided leading prefix string. If s doesn't start with prefix, s is returned unchanged. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.TrimPrefix PREFIX STRING"] -workson: [] -hugoversion: relatedfuncs: [strings.TrimSuffix] -deprecated: false -aliases: [] --- Given the string `"aabbaa"`, the specified prefix is only removed if `"aabbaa"` starts with it: diff --git a/content/en/functions/strings.TrimRight.md b/content/en/functions/strings.TrimRight.md index 05084a4c0..e61b884cd 100644 --- a/content/en/functions/strings.TrimRight.md +++ b/content/en/functions/strings.TrimRight.md @@ -1,20 +1,13 @@ --- title: strings.TrimRight description: Returns a slice of a given string with all trailing characters contained in the cutset removed. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.TrimRight CUTSET STRING"] -workson: [] -hugoversion: relatedfuncs: [strings.TrimRight] -deprecated: false -aliases: [] --- Given the string `"abba"`, trailing `"a"`'s can be removed a follows: diff --git a/content/en/functions/strings.TrimSuffix.md b/content/en/functions/strings.TrimSuffix.md index 916038054..05bb92400 100644 --- a/content/en/functions/strings.TrimSuffix.md +++ b/content/en/functions/strings.TrimSuffix.md @@ -1,20 +1,13 @@ --- title: strings.TrimSuffix description: Returns a given string s without the provided trailing suffix string. If s doesn't end with suffix, s is returned unchanged. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: ["strings.TrimSuffix SUFFIX STRING"] -workson: [] -hugoversion: relatedfuncs: [strings.TrimPrefix] -deprecated: false -aliases: [] --- Given the string `"aabbaa"`, the specified suffix is only removed if `"aabbaa"` ends with it: diff --git a/content/en/functions/substr.md b/content/en/functions/substr.md index 4a00b6eb1..6a5f15592 100644 --- a/content/en/functions/substr.md +++ b/content/en/functions/substr.md @@ -1,23 +1,15 @@ --- title: substr -# linktitle: description: Extracts parts of a string from a specified character's position and returns the specified number of characters. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] -aliases: [] signature: - "substr STRING START [LENGTH]" - "strings.Substr STRING START [LENGTH]" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- It normally takes two parameters: `start` and `length`. It can also take one parameter: `start`, i.e. `length` is omitted, in which case the substring starting from start until the end of the string will be returned. @@ -26,7 +18,7 @@ To extract characters from the end of the string, use a negative start number. If `length` is given and is negative, that number of characters will be omitted from the end of string. -``` +```go-html-template {{ substr "abcdef" 0 }} → "abcdef" {{ substr "abcdef" 1 }} → "bcdef" diff --git a/content/en/functions/symdiff.md b/content/en/functions/symdiff.md index bac1f1ffe..ffc309418 100644 --- a/content/en/functions/symdiff.md +++ b/content/en/functions/symdiff.md @@ -1,15 +1,12 @@ --- -title: "symdiff" +title: symdiff description: "`collections.SymDiff` (alias `symdiff`) returns the symmetric difference of two collections." -date: 2018-11-07 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [collections,intersect,union,complement] signature: ["COLLECTION | symdiff COLLECTION" ] -hugoversion: "0.51" -aliases: [] --- Example: diff --git a/content/en/functions/templates.Exists.md b/content/en/functions/templates.Exists.md index 36fa0ea60..b9f340c21 100644 --- a/content/en/functions/templates.Exists.md +++ b/content/en/functions/templates.Exists.md @@ -1,24 +1,15 @@ --- title: templates.Exists -linktitle: "" description: "Checks whether a template file exists under the given path relative to the `layouts` directory." -date: 2018-11-01 -publishdate: 2018-11-01 -lastmod: 2018-11-01 categories: [functions] tags: [] menu: docs: - parent: "functions" + parent: functions ns: "" keywords: ["templates", "template", "layouts"] signature: ["templates.Exists PATH"] -workson: [] -hugoversion: "0.46" -aliases: [] relatedfuncs: [] -toc: false -deprecated: false --- A template file is any file living below the `layouts` directories of either the project or any of its theme components including partials and shortcodes. @@ -32,5 +23,4 @@ The function is particularly handy with dynamic path. The following example ensu {{ else }} {{ partial "headers/default.html" . }} {{ end }} - ``` diff --git a/content/en/functions/time.ParseDuration.md b/content/en/functions/time.ParseDuration.md index aabba601a..0332c1706 100644 --- a/content/en/functions/time.ParseDuration.md +++ b/content/en/functions/time.ParseDuration.md @@ -4,11 +4,9 @@ description: Parses a given duration string into a `time.Duration` structure. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [time parse duration] signature: ["time.ParseDuration DURATION"] -hugoversion: -aliases: [] --- `time.ParseDuration` parses a duration string into a [`time.Duration`](https://pkg.go.dev/time#Duration) structure so you can access its fields. diff --git a/content/en/functions/time.md b/content/en/functions/time.md index b995f78f2..7cb55f6f1 100644 --- a/content/en/functions/time.md +++ b/content/en/functions/time.md @@ -1,27 +1,19 @@ --- title: time -linktitle: description: Converts a timestamp string into a `time.Time` structure. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [dates,time,location] signature: ["time INPUT [TIMEZONE]"] -workson: [] -hugoversion: "v0.77.0" relatedfuncs: [] -deprecated: false -aliases: [] --- `time` converts a timestamp string with an optional default location into a [`time.Time`](https://godoc.org/time#Time) structure so you can access its fields: -``` +```go-html-template {{ time "2016-05-28" }} → "2016-05-28T00:00:00Z" {{ (time "2016-05-28").YearDay }} → 149 {{ mul 1000 (time "2016-05-28T10:30:00.00+10:00").Unix }} → 1464395400000, or Unix time in milliseconds @@ -35,7 +27,7 @@ The list of valid locations may be system dependent, but should include `UTC`, ` If no `TIMEZONE` is set, the `timeZone` from site configuration will be used. -``` +```go-html-template {{ time "2020-10-20" }} → 2020-10-20 00:00:00 +0000 UTC {{ time "2020-10-20" "America/Los_Angeles" }} → 2020-10-20 00:00:00 -0700 PDT {{ time "2020-01-20" "America/Los_Angeles" }} → 2020-01-20 00:00:00 -0800 PST diff --git a/content/en/functions/title.md b/content/en/functions/title.md index b6f752ac8..2e7d891ea 100644 --- a/content/en/functions/title.md +++ b/content/en/functions/title.md @@ -1,27 +1,18 @@ --- title: title -# linktitle: description: Converts all characters in the provided string to title case. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: - "title INPUT" - "strings.Title INPUT" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -aliases: [] --- - -``` +```go-html-template {{ title "BatMan"}}` → "Batman" ``` @@ -29,7 +20,7 @@ Can be combined in pipes. In the following snippet, the link text is cleaned up ```go-html-template {{ range $name, $items := .Site.Taxonomies.categories }} - <li><a href="{{ printf "%s/%s" "categories" ($name | urlize | lower) | absURL }}">{{ $name | humanize | title }} ({{ len $items }})</a></li> + <li><a href="{{ printf "%s/%s" "categories" ($name | urlize | lower) | absURL }}">{{ $name | humanize | title }} ({{ len $items }})</a></li> {{ end }} ``` diff --git a/content/en/functions/transform.Unmarshal.md b/content/en/functions/transform.Unmarshal.md index cefee1503..d238565e2 100644 --- a/content/en/functions/transform.Unmarshal.md +++ b/content/en/functions/transform.Unmarshal.md @@ -1,15 +1,12 @@ --- -title: "transform.Unmarshal" +title: transform.Unmarshal description: "`transform.Unmarshal` (alias `unmarshal`) parses the input and converts it into a map or an array. Supported formats are JSON, TOML, YAML, XML and CSV." -date: 2018-12-23 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [] signature: ["RESOURCE or STRING | transform.Unmarshal [OPTIONS]"] -hugoversion: "0.53" -aliases: [] --- The function accepts either a `Resource` created in [Hugo Pipes](/hugo-pipes/) or via [Page Bundles](/content-management/page-bundles/), or simply a string. The two examples below will produce the same map: diff --git a/content/en/functions/trim.md b/content/en/functions/trim.md index e688924bb..3d664abea 100644 --- a/content/en/functions/trim.md +++ b/content/en/functions/trim.md @@ -1,25 +1,18 @@ --- title: trim -# linktitle: description: Returns a slice of a passed string with all leading and trailing characters from cutset removed. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: - "trim INPUT CUTSET" - "strings.Trim INPUT CUTSET" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- -``` +```go-html-template {{ trim "++Batman--" "+-" }} → "Batman" ``` diff --git a/content/en/functions/truncate.md b/content/en/functions/truncate.md index 54cfb3612..cf38a2dfd 100644 --- a/content/en/functions/truncate.md +++ b/content/en/functions/truncate.md @@ -1,27 +1,20 @@ --- title: truncate -# linktitle: truncate description: Truncates a text to a max length without cutting words or leaving unclosed HTML tags. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [strings] signature: - "truncate SIZE [ELLIPSIS] INPUT" - "strings.Truncate SIZE [ELLIPSIS] INPUT" -workson: [] -hugoversion: 19 relatedfuncs: [] -deprecated: false --- Since Go templates are HTML-aware, `truncate` will intelligently handle normal strings vs HTML strings: -``` +```go-html-template {{ "<em>Keep my HTML</em>" | safeHTML | truncate 10 }}` → <em>Keep my …</em>` ``` diff --git a/content/en/functions/union.md b/content/en/functions/union.md index 312bc5e65..b73e06d38 100644 --- a/content/en/functions/union.md +++ b/content/en/functions/union.md @@ -1,21 +1,13 @@ --- title: union -# linktitle: union description: Given two arrays or slices, returns a new array that contains the elements or objects that belong to either or both arrays/slices. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-03-12 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [collections,intersect,union,complement] signature: ["union SET1 SET2"] -workson: [] -hugoversion: 0.20 relatedfuncs: [intersect,where] -deprecated: false -aliases: [] --- Given two arrays (or slices) A and B, this function will return a new array that contains the elements or objects that belong to either A or to B or to both. The elements supported are strings, integers, and floats (only float64). diff --git a/content/en/functions/uniq.md b/content/en/functions/uniq.md index 73ca32488..4584ec5ad 100644 --- a/content/en/functions/uniq.md +++ b/content/en/functions/uniq.md @@ -1,6 +1,5 @@ --- title: uniq -linktitle: uniq description: Takes in a slice or array and returns a slice with duplicate elements removed. categories: [functions] menu: @@ -8,11 +7,9 @@ menu: parent: functions keywords: [multilingual,i18n,urls] signature: [uniq SET] -aliases: [] --- -``` +```go-html-template {{ slice 1 3 2 1 | uniq }} --> [1 3 2] - ``` diff --git a/content/en/functions/unix.md b/content/en/functions/unix.md index 98fcc74a4..60fae9248 100644 --- a/content/en/functions/unix.md +++ b/content/en/functions/unix.md @@ -1,12 +1,11 @@ --- title: .Unix description: Converts a time.Time value to the number of seconds elapsed since the Unix epoch, excluding leap seconds. The Unix epoch is 00:00:00 UTC on 1 January 1970. -date: 2017-02-01 keywords: [dates,time] categories: [functions] menu: docs: - parent: "functions" + parent: functions signature: [".Unix",".UnixMilli",".UnixMicro",".UnixNano"] relatedfuncs: [Format,dateFormat,now,time] --- diff --git a/content/en/functions/upper.md b/content/en/functions/upper.md index 02f4cd578..e11065f79 100644 --- a/content/en/functions/upper.md +++ b/content/en/functions/upper.md @@ -1,25 +1,16 @@ --- title: upper -# linktitle: upper description: Converts all characters in a string to uppercase -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [] categories: [functions] menu: docs: - parent: "functions" + parent: functions toc: signature: - "upper INPUT" - "strings.ToUpper INPUT" -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false -draft: false -aliases: [] --- Note that `upper` can be applied in your templates in more than one way: diff --git a/content/en/functions/urlize.md b/content/en/functions/urlize.md index ad5a79ee5..1b953452b 100644 --- a/content/en/functions/urlize.md +++ b/content/en/functions/urlize.md @@ -1,19 +1,12 @@ --- title: urlize -# linktitle: urlize description: Takes a string, sanitizes it for usage in URLs, and converts spaces to hyphens. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [urls,strings] signature: ["urlize INPUT"] -hugoversion: -deprecated: false -workson: [] relatedfuncs: [] --- diff --git a/content/en/functions/urlquery.md b/content/en/functions/urlquery.md index ca00e6e6d..11ada38c4 100644 --- a/content/en/functions/urlquery.md +++ b/content/en/functions/urlquery.md @@ -1,21 +1,13 @@ --- title: urlquery -linktitle: urlquery description: Returns the escaped value of the textual representation of its arguments in a form suitable for embedding in a URL query. -date: 2022-01-18 -publishdate: 2022-01-18 -lastmod: 2022-01-18 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [urls] signature: ["urlquery INPUT [INPUT]..."] -hugoversion: -deprecated: false -workson: [] relatedfuncs: [] -aliases: [] --- diff --git a/content/en/functions/urls.Parse.md b/content/en/functions/urls.Parse.md index 6714c8e00..b2d781e7f 100644 --- a/content/en/functions/urls.Parse.md +++ b/content/en/functions/urls.Parse.md @@ -4,10 +4,9 @@ description: Parses a URL into a URL structure. categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [urls] signature: ["urls.Parse URL"] -aliases: [] --- The `urls.Parse` function parses a URL into a [URL structure](https://godoc.org/net/url#URL). The URL may be relative (a path, without a host) or absolute (starting with a [scheme]). Hugo throws an error when parsing an invalid URL. diff --git a/content/en/functions/where.md b/content/en/functions/where.md index 67888fae7..b05e21cc0 100644 --- a/content/en/functions/where.md +++ b/content/en/functions/where.md @@ -1,22 +1,14 @@ --- title: where -# linktitle: where description: Filters an array to only the elements containing a matching value for a given field. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [filtering] signature: ["where COLLECTION KEY [OPERATOR] MATCH"] -workson: [lists,taxonomies,terms,groups] -hugoversion: relatedfuncs: [intersect,first,after,last] -deprecated: false toc: true -needsexample: true --- `where` filters an array to only the elements containing a matching diff --git a/content/en/functions/with.md b/content/en/functions/with.md index bfd58bcf2..24707457a 100644 --- a/content/en/functions/with.md +++ b/content/en/functions/with.md @@ -1,20 +1,13 @@ --- title: with -# linktitle: with description: Rebinds the context (`.`) within its scope and skips the block if the variable is absent or empty. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-03-12 categories: [functions] menu: docs: - parent: "functions" + parent: functions keywords: [conditionals] signature: ["with INPUT"] -workson: [] -hugoversion: relatedfuncs: [] -deprecated: false --- An alternative way of writing an `if` statement and then referencing the same value is to use `with` instead. `with` rebinds the context (`.`) within its scope and skips the block if the variable is absent, unset or empty. diff --git a/content/en/getting-started/_index.md b/content/en/getting-started/_index.md index f953abb22..b08a949fb 100644 --- a/content/en/getting-started/_index.md +++ b/content/en/getting-started/_index.md @@ -2,17 +2,14 @@ title: Get Started linktitle: Get Started Overview description: Quick start and guides for installing Hugo on your preferred operating system. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [getting started] keywords: [usage,docs] menu: docs: - parent: "getting-started" + parent: getting-started weight: 1 -weight: 0001 #rem +weight: 0001 aliases: [/overview/introduction/] -toc: false --- If this is your first time using Hugo and you've [already installed Hugo on your machine][installed], we recommend the [quick start]. You can also use [external learning resources] to learn Hugo. diff --git a/content/en/getting-started/configuration-markup.md b/content/en/getting-started/configuration-markup.md index d1d237b2a..4ab6b84a0 100644 --- a/content/en/getting-started/configuration-markup.md +++ b/content/en/getting-started/configuration-markup.md @@ -1,11 +1,9 @@ --- title: Configure Markup description: How to handle Markdown and other markup related configuration. -date: 2019-11-15 categories: [getting started,fundamentals] keywords: [configuration,highlighting] weight: 65 -sections_weight: 65 slug: configuration-markup toc: true --- diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index 568481848..e8268baab 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -2,16 +2,13 @@ title: Configure Hugo linktitle: Configuration description: How to configure your Hugo site. -date: 2013-07-01 -publishdate: 2017-01-02 categories: [getting started,fundamentals] keywords: [configuration,toml,yaml,json] menu: docs: - parent: "getting-started" + parent: getting-started weight: 60 weight: 60 -sections_weight: 60 aliases: [/overview/source-directory/,/overview/configuration/] toc: true --- @@ -39,7 +36,7 @@ Multiple site config files can be specified as a comma-separated string to the ` ## hugo.toml vs config.toml -In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier code editors and build tools to identify this as a Hugo configuration file and project. +In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier code editors and build tools to identify this as a Hugo configuration file and project. {{< new-in "0.110.0" >}} @@ -571,12 +568,12 @@ Setting `force=true` will make a redirect even if there is existing content in t Hugo will, by default, render all 404 errors when running `hugo server` with the `404.html` template. Note that if you have already added one or more redirects to your [Server Config](#configure-server), you need to add the 404 redirect explicitly, e.g: -```toml +{{< code-toggle file="config/development/server" copy=false >}} [[redirects]] - from = "/**" - to = "/404.html" - status = 404 -``` +from = "/**" +to = "/404.html" +status = 404 +{{< /code-toggle >}} ## Configure Title Case diff --git a/content/en/getting-started/directory-structure.md b/content/en/getting-started/directory-structure.md index 3c74a3d58..da0f9c761 100644 --- a/content/en/getting-started/directory-structure.md +++ b/content/en/getting-started/directory-structure.md @@ -1,17 +1,13 @@ --- title: Directory Structure -linktitle: Directory Structure description: Hugo's CLI scaffolds a project directory structure and then takes that single directory and uses it as the input to create a complete website. -date: 2017-01-02 -publishdate: 2017-02-01 categories: [getting started,fundamentals] keywords: [source, organization, directories] menu: docs: - parent: "getting-started" + parent: getting-started weight: 50 weight: 50 -sections_weight: 50 aliases: [/overview/source-directory/] toc: true --- diff --git a/content/en/getting-started/external-learning-resources/index.md b/content/en/getting-started/external-learning-resources/index.md index 61e7ed649..7f993736a 100644 --- a/content/en/getting-started/external-learning-resources/index.md +++ b/content/en/getting-started/external-learning-resources/index.md @@ -1,19 +1,12 @@ --- title: External Learning Resources -linktitle: External Learning Resources description: A list of tutorials and books on Hugo. -date: 2019-10-20 -publishdate: 2019-10-20 -lastmod: 2019-10-20 keywords: [books, tutorials, learning, usage] menu: docs: - parent: "getting-started" + parent: getting-started weight: 70 weight: 70 -sections_weight: 70 -draft: false -toc: false --- ## Books diff --git a/content/en/getting-started/quick-start.md b/content/en/getting-started/quick-start.md index d49997570..da35c314c 100644 --- a/content/en/getting-started/quick-start.md +++ b/content/en/getting-started/quick-start.md @@ -1,6 +1,5 @@ --- title: Quick Start -linktitle: Quick Start description: Learn to create a Hugo site in minutes. categories: [getting started] keywords: [quick start,usage] diff --git a/content/en/getting-started/usage.md b/content/en/getting-started/usage.md index 15cf46cbf..908edca7e 100644 --- a/content/en/getting-started/usage.md +++ b/content/en/getting-started/usage.md @@ -1,15 +1,13 @@ --- title: Basic usage -linktitle: Basic usage description: Hugo's command line interface (CLI) is fully featured but simple to use, even for those with limited experience working from the command line. categories: [getting started] keywords: [usage,livereload,command,flags] menu: docs: - parent: "getting-started" + parent: getting-started weight: 40 weight: 40 -sections_weight: 40 aliases: [/overview/usage/,/extras/livereload/,/doc/usage/,/usage/] toc: true --- diff --git a/content/en/hosting-and-deployment/_index.md b/content/en/hosting-and-deployment/_index.md index ea9f60f17..0d5ada297 100644 --- a/content/en/hosting-and-deployment/_index.md +++ b/content/en/hosting-and-deployment/_index.md @@ -2,19 +2,13 @@ title: Hosting & Deployment linktitle: Hosting & Deployment Overview description: Site builds, automated deployments, and popular hosting solutions. -date: 2016-11-01 -publishdate: 2016-11-01 -lastmod: 2016-11-01 categories: [hosting and deployment] keywords: [] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 01 -weight: 01 #rem -draft: false -aliases: [] -toc: false +weight: 01 --- Because Hugo renders *static* websites, you can host your new Hugo website virtually anywhere. The following represent only a few of the more popular hosting and automated deployment solutions used by the Hugo community. diff --git a/content/en/hosting-and-deployment/deployment-with-rclone.md b/content/en/hosting-and-deployment/deployment-with-rclone.md index 868278740..27cd312ef 100644 --- a/content/en/hosting-and-deployment/deployment-with-rclone.md +++ b/content/en/hosting-and-deployment/deployment-with-rclone.md @@ -1,23 +1,15 @@ --- title: Deployment with Rclone -linktitle: Deployment with Rclone description: If you have access to your web host with SFTP/FTP/SSH/HTTP(DAV), you can use rclone to incrementally deploy your entire Hugo website. -date: 2021-08-09 -publishdate: 2021-08-09 -lastmod: 2021-08-09 categories: [hosting and deployment] keywords: [rclone,sftp,deployment] -authors: [Daniel F. Dickinson] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 80 weight: 80 -sections_weight: 80 -draft: false aliases: [/tutorials/deployment-with-rclone/] toc: true -notesforauthors: --- ## Assumptions diff --git a/content/en/hosting-and-deployment/deployment-with-rsync.md b/content/en/hosting-and-deployment/deployment-with-rsync.md index dec0556cf..0bb23d044 100644 --- a/content/en/hosting-and-deployment/deployment-with-rsync.md +++ b/content/en/hosting-and-deployment/deployment-with-rsync.md @@ -1,22 +1,15 @@ --- title: Deployment with Rsync -linktitle: Deployment with Rsync description: If you have access to your web host with SSH, you can use a simple rsync one-liner to incrementally deploy your entire Hugo website. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [hosting and deployment] keywords: [rsync,deployment] -authors: [Adrien Poupin] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 70 weight: 70 -sections_weight: 70 -draft: false aliases: [/tutorials/deployment-with-rsync/] toc: true -notesforauthors: --- ## Assumptions @@ -37,7 +30,7 @@ As you will see, we'll put this command in a shell script file, which makes buil To make logging in to your server more secure and less interactive, you can upload your SSH key. If you have already installed your SSH key to your server, you can move on to the next section. -First, install the ssh client. On Debian/Ubuntu/derivates, use the following command: +First, install the ssh client. On Debian distributions, use the following command: {{< code file="install-openssh.sh" >}} sudo apt-get install openssh-client diff --git a/content/en/hosting-and-deployment/hosting-on-21yunbox.md b/content/en/hosting-and-deployment/hosting-on-21yunbox.md index fa5bb41df..62eb331a1 100644 --- a/content/en/hosting-and-deployment/hosting-on-21yunbox.md +++ b/content/en/hosting-and-deployment/hosting-on-21yunbox.md @@ -1,20 +1,13 @@ --- title: Host on 21YunBox -linktitle: Host on 21YunBox description: Host your Hugo site with 21YunBox's blazing fast Chinese CDN, fully-managed SSL and auto deploys from Gitee. -date: 2021-01-06 -publishdate: 2021-01-06 categories: [hosting and deployment] keywords: [21yunbox,hosting,deployment] -authors: [Toby Glei] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 10 weight: 10 -sections_weight: 10 -draft: false -aliases: [] toc: true --- diff --git a/content/en/hosting-and-deployment/hosting-on-aws-amplify.md b/content/en/hosting-and-deployment/hosting-on-aws-amplify.md index 803a73e46..90fb5c083 100644 --- a/content/en/hosting-and-deployment/hosting-on-aws-amplify.md +++ b/content/en/hosting-and-deployment/hosting-on-aws-amplify.md @@ -1,19 +1,13 @@ --- title: Host on AWS Amplify -linktitle: Host on AWS Amplify description: Develop and deploy a cloud-powered web app with AWS Amplify. -date: 2018-01-31 -publishdate: 2018-01-31 categories: [hosting and deployment] keywords: [amplify,hosting,deployment] -authors: [Nikhil Swaminathan] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 10 weight: 10 -sections_weight: 10 -aliases: [] toc: true --- diff --git a/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md b/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md index cf06580e7..f0d1d5de4 100644 --- a/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md +++ b/content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md @@ -1,21 +1,14 @@ --- title: Hosting on Azure Static Web Apps -linktitle: Hosting on Azure Static Web Apps description: Learn how to deploy a Hugo application to Azure Static Web Apps. -date: 2022-05-09 -publishdate: 2022-05-09 categories: [hosting and deployment] keywords: [hosting,Azure Static Web Apps] -authors: [Azure Static Web Apps] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 200 weight: 200 -sections_weight: 200 -draft: false toc: true -aliases: [] --- You can create and deploy a Hugo web application to Azure Static Web Apps. The final result is a new Azure Static Web App with associated GitHub Actions that give you control over how the app is built and published. You'll learn how to create a Hugo app, set up an Azure Static Web App and deploy the Hugo app to Azure. diff --git a/content/en/hosting-and-deployment/hosting-on-azure.md b/content/en/hosting-and-deployment/hosting-on-azure.md index fd48ac9ad..d5f3ba63b 100644 --- a/content/en/hosting-and-deployment/hosting-on-azure.md +++ b/content/en/hosting-and-deployment/hosting-on-azure.md @@ -1,18 +1,13 @@ --- title: Host on Azure Static Web Apps -linktitle: Host on Azure Static Web Apps description: Deploy Hugo to Azure Static Web Apps and automate the whole process with Github Action Workflow -date: 2021-03-12 -publishdate: 2021-03-12 categories: [hosting and deployment] keywords: [azure,git,deployment,hosting] -authors: [Aaron Powell] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 10 weight: 10 -sections_weight: 10 toc: true --- diff --git a/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md b/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md index f001d8662..5ae035567 100644 --- a/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md +++ b/content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md @@ -1,16 +1,12 @@ --- title: Host on Cloudflare Pages -linktitle: Host on Cloudflare Pages description: Cloudflare Pages can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own environment variables. -date: 2022-04-07 -publishdate: 2022-04-07 categories: [hosting and deployment] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 50 weight: 50 -sections_weight: 50 toc: true --- diff --git a/content/en/hosting-and-deployment/hosting-on-firebase.md b/content/en/hosting-and-deployment/hosting-on-firebase.md index 4e31f1cd0..aab97f69f 100644 --- a/content/en/hosting-and-deployment/hosting-on-firebase.md +++ b/content/en/hosting-and-deployment/hosting-on-firebase.md @@ -1,20 +1,14 @@ --- title: Host on Firebase -linktitle: Host on Firebase description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API. -date: 2017-03-12 -publishdate: 2017-03-12 categories: [hosting and deployment] keywords: [hosting,firebase] -authors: [Michel Racic] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 20 weight: 20 -sections_weight: 20 toc: true -aliases: [] --- ## Assumptions diff --git a/content/en/hosting-and-deployment/hosting-on-github/index.md b/content/en/hosting-and-deployment/hosting-on-github/index.md index fb28922f1..e5cbe1922 100644 --- a/content/en/hosting-and-deployment/hosting-on-github/index.md +++ b/content/en/hosting-and-deployment/hosting-on-github/index.md @@ -1,12 +1,11 @@ --- title: Host on GitHub -linktitle: Host on GitHub description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Actions categories: [hosting and deployment] keywords: [github,git,deployment,hosting] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 30 weight: 30 toc: true diff --git a/content/en/hosting-and-deployment/hosting-on-gitlab.md b/content/en/hosting-and-deployment/hosting-on-gitlab.md index 6eb816171..1e43e5975 100644 --- a/content/en/hosting-and-deployment/hosting-on-gitlab.md +++ b/content/en/hosting-and-deployment/hosting-on-gitlab.md @@ -1,22 +1,14 @@ --- title: Host on GitLab -linktitle: Host on GitLab description: GitLab makes it easy to build, deploy, and host your Hugo website via their free GitLab Pages service, which provides native support for Hugo. -date: 2016-06-23 -publishdate: 2016-06-23 -lastmod: 2017-11-16 categories: [hosting and deployment] keywords: [hosting,deployment,git,gitlab] -authors: [Riku-Pekka Silvola] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 40 weight: 40 -sections_weight: 40 -draft: false toc: true -wip: false aliases: [/tutorials/hosting-on-gitlab/] --- diff --git a/content/en/hosting-and-deployment/hosting-on-keycdn.md b/content/en/hosting-and-deployment/hosting-on-keycdn.md index 85a5ab5f4..1d6c3e28d 100644 --- a/content/en/hosting-and-deployment/hosting-on-keycdn.md +++ b/content/en/hosting-and-deployment/hosting-on-keycdn.md @@ -1,16 +1,12 @@ --- title: "Host on KeyCDN" -date: 2017-09-12 description: "Accelerate your Hugo site globally with a KeyCDN integration. This tutorial shows you how to set up your static site as a GitLab page behind a KeyCDN pull zone." categories: [hosting and deployment] keywords: [keycdn,hosting,deployment,cdn] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 40 -slug: "" -aliases: [] -toc: false --- [KeyCDN](https://www.keycdn.com/) provides a multitude of features to help accelerate and secure your Hugo site globally including Brotli compression, Let's Encrypt support, Origin Shield, and more. diff --git a/content/en/hosting-and-deployment/hosting-on-netlify.md b/content/en/hosting-and-deployment/hosting-on-netlify.md index ac9777a3a..bba9d445f 100644 --- a/content/en/hosting-and-deployment/hosting-on-netlify.md +++ b/content/en/hosting-and-deployment/hosting-on-netlify.md @@ -1,19 +1,13 @@ --- title: Host on Netlify -linktitle: Host on Netlify description: Netlify can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own CLI. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [hosting and deployment] keywords: [netlify,hosting,deployment] -authors: [Ryan Watters, Seth MacLeod] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 10 weight: 10 -sections_weight: 10 -aliases: [] toc: true --- diff --git a/content/en/hosting-and-deployment/hosting-on-render.md b/content/en/hosting-and-deployment/hosting-on-render.md index f099f2168..c7ce18817 100644 --- a/content/en/hosting-and-deployment/hosting-on-render.md +++ b/content/en/hosting-and-deployment/hosting-on-render.md @@ -1,20 +1,13 @@ --- title: Host on Render -linktitle: Host on Render description: Host your Hugo site for free with Render's global CDN, fully-managed SSL and auto deploys from GitHub. -date: 2019-06-06 -publishdate: 2019-06-06 categories: [hosting and deployment] keywords: [hosting,deployment] -authors: [Anurag Goel] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 10 weight: 10 -sections_weight: 10 -draft: false -aliases: [] toc: true --- diff --git a/content/en/hosting-and-deployment/hugo-deploy.md b/content/en/hosting-and-deployment/hugo-deploy.md index 02a23fe12..e0c98de2a 100644 --- a/content/en/hosting-and-deployment/hugo-deploy.md +++ b/content/en/hosting-and-deployment/hugo-deploy.md @@ -1,21 +1,13 @@ --- title: Hugo Deploy -linktitle: Hugo Deploy description: You can upload your site to GCS, S3, or Azure using the Hugo CLI. -date: 2019-05-30 -publishdate: 2019-05-30 -lastmod: 2021-05-03 categories: [hosting and deployment] keywords: [s3,gcs,azure,hosting,deployment] -authors: [Robert van Gent] menu: docs: - parent: "hosting-and-deployment" + parent: hosting-and-deployment weight: 2 weight: 2 -sections_weight: 2 -draft: false -aliases: [] toc: true --- diff --git a/content/en/hugo-modules/_index.md b/content/en/hugo-modules/_index.md index b2951da9a..76f21d43f 100644 --- a/content/en/hugo-modules/_index.md +++ b/content/en/hugo-modules/_index.md @@ -2,17 +2,13 @@ title: Hugo Modules linktitle: Hugo Modules Overview description: How to use Hugo Modules. -date: 2017-02-01 -publishdate: 2017-02-01 menu: docs: - parent: "modules" + parent: modules weight: 01 weight: 01 -sections_weight: 01 categories: [hugo modules] keywords: [themes,modules] -draft: false aliases: [/themes/overview/,/themes/] toc: true --- diff --git a/content/en/hugo-modules/configuration.md b/content/en/hugo-modules/configuration.md index 5b19d2419..df957bf2f 100644 --- a/content/en/hugo-modules/configuration.md +++ b/content/en/hugo-modules/configuration.md @@ -1,16 +1,13 @@ --- title: Configure Modules -linktitle: Configure Modules description: This page describes the configuration options for a module. -date: 2019-07-24 categories: [hugo modules] keywords: [themes, source, organization, directories] menu: docs: - parent: "modules" + parent: modules weight: 10 weight: 10 -sections_weight: 10 toc: true --- diff --git a/content/en/hugo-modules/theme-components.md b/content/en/hugo-modules/theme-components.md index 5b01e98e9..10aa1277f 100644 --- a/content/en/hugo-modules/theme-components.md +++ b/content/en/hugo-modules/theme-components.md @@ -1,17 +1,13 @@ --- title: Theme Components -linktitle: Theme Components description: Hugo provides advanced theming support with Theme Components. -date: 2017-02-01 categories: [hugo modules] keywords: [themes, theme, source, organization, directories] menu: docs: - parent: "modules" + parent: modules weight: 50 weight: 50 -sections_weight: 50 -draft: false aliases: [/themes/customize/,/themes/customizing/] toc: true --- diff --git a/content/en/hugo-modules/use-modules.md b/content/en/hugo-modules/use-modules.md index 977a52bd6..99c1229b5 100644 --- a/content/en/hugo-modules/use-modules.md +++ b/content/en/hugo-modules/use-modules.md @@ -1,17 +1,13 @@ --- title: Use Hugo Modules -linktitle: Use Hugo Modules description: How to use Hugo Modules to build and manage your site. -date: 2019-07-24 categories: [hugo modules] keywords: [install, themes, source, organization, directories,usage,modules] menu: docs: - parent: "modules" + parent: modules weight: 20 weight: 20 -sections_weight: 20 -draft: false aliases: [/themes/usage/,/themes/installing/,/installing-and-using-themes/] toc: true --- @@ -164,4 +160,3 @@ HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths "**" ``` The `--ignoreVendorPaths` flag is added above to ignore any of the vendored dependencies inside `_vendor`. If you don't use vendoring, you don't need that flag. But now the server is set up watching the files and directories in the workspace and you can see your local edits reloaded. - diff --git a/content/en/hugo-pipes/_index.md b/content/en/hugo-pipes/_index.md index 078e1f186..438ee2fe0 100755 --- a/content/en/hugo-pipes/_index.md +++ b/content/en/hugo-pipes/_index.md @@ -1,13 +1,10 @@ --- title: Hugo Pipes Overview -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 10 weight: 10 -sections_weight: 10 ---- \ No newline at end of file +--- diff --git a/content/en/hugo-pipes/babel.md b/content/en/hugo-pipes/babel.md index 5dab9f1c6..1762f85e5 100755 --- a/content/en/hugo-pipes/babel.md +++ b/content/en/hugo-pipes/babel.md @@ -1,16 +1,13 @@ --- title: Babel description: Hugo Pipes can process JS files with Babel. -date: 2019-03-21 -publishdate: 2019-03-21 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 48 weight: 48 -sections_weight: 48 signature: ["resources.Babel RESOURCE [OPTIONS]", "babel RESOURCE [OPTIONS]"] --- diff --git a/content/en/hugo-pipes/bundling.md b/content/en/hugo-pipes/bundling.md index 8eeeeb8e7..ae625537a 100755 --- a/content/en/hugo-pipes/bundling.md +++ b/content/en/hugo-pipes/bundling.md @@ -2,17 +2,13 @@ title: Concat linkTitle: Concatenating assets description: Bundle any number of assets into one resource. -date: 2018-07-14 -publishdate: 2018-07-14 -lastmod: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 60 weight: 60 -sections_weight: 60 signature: ["resources.Concat TARGET_PATH SLICE_RESOURCES"] --- diff --git a/content/en/hugo-pipes/fingerprint.md b/content/en/hugo-pipes/fingerprint.md index 71f0b914f..d002dd3e2 100755 --- a/content/en/hugo-pipes/fingerprint.md +++ b/content/en/hugo-pipes/fingerprint.md @@ -2,16 +2,13 @@ title: Fingerprint linkTitle: Fingerprinting and SRI description: Process a given resource, adding a hash string of the resource's content. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 70 weight: 70 -sections_weight: 70 signature: ["resources.Fingerprint RESOURCE [ALGORITHM]", "fingerprint RESOURCE [ALGORITHM]"] --- diff --git a/content/en/hugo-pipes/introduction.md b/content/en/hugo-pipes/introduction.md index 879565358..b213f2e38 100755 --- a/content/en/hugo-pipes/introduction.md +++ b/content/en/hugo-pipes/introduction.md @@ -2,17 +2,13 @@ title: Hugo Pipes Introduction linkTitle: Hugo Pipes description: Hugo Pipes is Hugo's asset processing set of functions. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 20 weight: 01 -sections_weight: 01 -draft: false toc: true aliases: [/assets/] --- diff --git a/content/en/hugo-pipes/js.md b/content/en/hugo-pipes/js.md index 097c17b0f..c880ac6fa 100644 --- a/content/en/hugo-pipes/js.md +++ b/content/en/hugo-pipes/js.md @@ -2,16 +2,13 @@ title: js.Build linkTitle: JavaScript Building description: Process a JavaScript file with [ESBuild](https://github.com/evanw/esbuild). -date: 2020-07-20 -publishdate: 2020-07-20 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 45 weight: 45 -sections_weight: 45 signature: ["js.Build RESOURCE [OPTIONS]"] --- diff --git a/content/en/hugo-pipes/minification.md b/content/en/hugo-pipes/minification.md index 2453152e8..100bd3353 100755 --- a/content/en/hugo-pipes/minification.md +++ b/content/en/hugo-pipes/minification.md @@ -2,16 +2,13 @@ title: Minify linkTitle: Asset minification description: Minifies a given resource. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 50 weight: 50 -sections_weight: 50 signature: ["resources.Minify RESOURCE", "minify RESOURCE"] --- diff --git a/content/en/hugo-pipes/postcss.md b/content/en/hugo-pipes/postcss.md index 030481bd9..0804c1072 100755 --- a/content/en/hugo-pipes/postcss.md +++ b/content/en/hugo-pipes/postcss.md @@ -5,7 +5,7 @@ categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 40 toc: true weight: 40 diff --git a/content/en/hugo-pipes/postprocess.md b/content/en/hugo-pipes/postprocess.md index 4098f3e16..8d26ec06a 100755 --- a/content/en/hugo-pipes/postprocess.md +++ b/content/en/hugo-pipes/postprocess.md @@ -1,15 +1,13 @@ --- title: PostProcess description: Allows delaying of resource transformations to after the build. -date: 2020-04-09 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 39 weight: 39 -sections_weight: 39 signature: ["resources.PostProcess RESOURCE"] --- @@ -97,4 +95,3 @@ These will get environment variables named on the form `HUGO_FILE_:filename:` wh ```js let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js'; ``` - diff --git a/content/en/hugo-pipes/resource-from-string.md b/content/en/hugo-pipes/resource-from-string.md index 43e890597..221898dba 100755 --- a/content/en/hugo-pipes/resource-from-string.md +++ b/content/en/hugo-pipes/resource-from-string.md @@ -2,16 +2,13 @@ title: FromString linkTitle: Resource from String description: Creates a resource from a string. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 90 weight: 90 -sections_weight: 90 signature: ["resources.FromString TARGET_PATH CONTENT"] --- diff --git a/content/en/hugo-pipes/resource-from-template.md b/content/en/hugo-pipes/resource-from-template.md index 5d690779f..778eb0341 100755 --- a/content/en/hugo-pipes/resource-from-template.md +++ b/content/en/hugo-pipes/resource-from-template.md @@ -2,16 +2,13 @@ title: ExecuteAsTemplate linkTitle: Resource from Template description: Creates a resource from a template -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 80 weight: 80 -sections_weight: 80 signature: ["resources.ExecuteAsTemplate TARGET_PATH CONTEXT RESOURCE"] --- diff --git a/content/en/hugo-pipes/transform-to-css.md b/content/en/hugo-pipes/transform-to-css.md index 4fd804b2b..9af649acb 100644 --- a/content/en/hugo-pipes/transform-to-css.md +++ b/content/en/hugo-pipes/transform-to-css.md @@ -2,16 +2,13 @@ title: ToCSS linkTitle: Transpile Sass to SCSS description: Transpile Sass to CSS. -date: 2018-07-14 -publishdate: 2018-07-14 categories: [asset management] keywords: [] menu: docs: - parent: "pipes" + parent: pipes weight: 30 weight: 02 -sections_weight: 02 signature: ["resources.ToCSS RESOURCE [OPTIONS]", "toCSS RESOURCE [OPTIONS]"] --- diff --git a/content/en/installation/_index.md b/content/en/installation/_index.md index e5a34b1f2..3a7713dd5 100644 --- a/content/en/installation/_index.md +++ b/content/en/installation/_index.md @@ -9,7 +9,6 @@ menu: docs: parent: installation weight: 10 -toc: false --- {{% param "description" %}} diff --git a/content/en/installation/bsd.md b/content/en/installation/bsd.md index 2728e91cb..5fbc4bfad 100644 --- a/content/en/installation/bsd.md +++ b/content/en/installation/bsd.md @@ -1,6 +1,5 @@ --- title: BSD -linkTitle: BSD description: Install Hugo on BSD derivatives. categories: [installation] menu: diff --git a/content/en/installation/linux.md b/content/en/installation/linux.md index 03ffe9430..fa08ed9ce 100644 --- a/content/en/installation/linux.md +++ b/content/en/installation/linux.md @@ -1,6 +1,5 @@ --- title: Linux -linkTitle: Linux description: Install Hugo on Linux. categories: [installation] menu: diff --git a/content/en/installation/macos.md b/content/en/installation/macos.md index c614f39ba..9d10642de 100644 --- a/content/en/installation/macos.md +++ b/content/en/installation/macos.md @@ -1,6 +1,5 @@ --- title: macOS -linkTitle: macOS description: Install Hugo on macOS. categories: [installation] menu: diff --git a/content/en/installation/windows.md b/content/en/installation/windows.md index 2b4615235..9959f590a 100644 --- a/content/en/installation/windows.md +++ b/content/en/installation/windows.md @@ -1,6 +1,5 @@ --- title: Windows -linkTitle: Windows description: Install Hugo on Windows. categories: [installation] menu: diff --git a/content/en/maintenance/_index.md b/content/en/maintenance/_index.md index 691a5d47c..fd8828bb2 100644 --- a/content/en/maintenance/_index.md +++ b/content/en/maintenance/_index.md @@ -1,14 +1,10 @@ --- title: Maintenance description: Some lists useful for the maintenance of the Hugo docs site. -date: 2018-02-09 categories: [maintenance] keywords: [maintenance] menu: docs: weight: 200 -slug: -aliases: [] toc: true --- - diff --git a/content/en/news/0.17-relnotes/index.md b/content/en/news/0.17-relnotes/index.md index 034e8e891..d2f9068a9 100644 --- a/content/en/news/0.17-relnotes/index.md +++ b/content/en/news/0.17-relnotes/index.md @@ -1,11 +1,9 @@ --- -author: bep categories: ["Releases"] date: 2016-10-07T13:54:06-04:00 description: "Hugo now supports multilingual sites with the most simple and elegant experience." link: "" title: "0.17: Hugo is going global" -draft: false aliases: [/0-17/] --- Hugo is going global with our 0.17 release. We put a lot of thought into how we could extend Hugo diff --git a/content/en/news/0.18-relnotes/index.md b/content/en/news/0.18-relnotes/index.md index 5aaab9ffe..3720c7929 100644 --- a/content/en/news/0.18-relnotes/index.md +++ b/content/en/news/0.18-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "The primary new feature in Hugo 0.18 is that every piece of content is now a Page." link: "" title: "Hugo 0.18" -draft: false -author: bep aliases: [/0-18/] --- diff --git a/content/en/news/0.19-relnotes/index.md b/content/en/news/0.19-relnotes/index.md index 073b47495..7068020b8 100644 --- a/content/en/news/0.19-relnotes/index.md +++ b/content/en/news/0.19-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.19 brings native Emacs Org-mode content support, and Hugo has its own Twitter account" link: "" title: "Hugo 0.19" -draft: false -author: budparr aliases: [/0-19/] --- diff --git a/content/en/news/0.20-relnotes/index.md b/content/en/news/0.20-relnotes/index.md index 2f598a33f..239230d6b 100644 --- a/content/en/news/0.20-relnotes/index.md +++ b/content/en/news/0.20-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.20 introduces the powerful and long sought after feature Custom Output Formats" link: "" title: "Hugo 0.20" -draft: false -author: bep aliases: [/0-20/] --- diff --git a/content/en/news/0.20.1-relnotes/index.md b/content/en/news/0.20.1-relnotes/index.md index 563f2e031..9e1a96373 100644 --- a/content/en/news/0.20.1-relnotes/index.md +++ b/content/en/news/0.20.1-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.20.1 is a bug fix release, fixing some important regressions introduced in 0.20" link: "" title: "Hugo 0.20.1" -draft: false -author: bep aliases: [/0-20-1/] --- diff --git a/content/en/news/0.20.2-relnotes/index.md b/content/en/news/0.20.2-relnotes/index.md index 214fe01a5..584a0f788 100644 --- a/content/en/news/0.20.2-relnotes/index.md +++ b/content/en/news/0.20.2-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.20.2 adds support for plain text partials included into HTML templates" link: "" title: "Hugo 0.20.2" -draft: false -author: bep aliases: [/0-20-2/] --- diff --git a/content/en/news/0.20.3-relnotes/index.md b/content/en/news/0.20.3-relnotes/index.md index c79d9b202..77a3511f2 100644 --- a/content/en/news/0.20.3-relnotes/index.md +++ b/content/en/news/0.20.3-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "This is a bug-fix release with one important fix. But it also adds some harness around GoReleaser" link: "" title: "Hugo 0.20.3" -draft: false -author: bep aliases: [/0-20-3/] --- @@ -23,4 +21,4 @@ Hugo now has: ## Fix -* Fix handling of zero-length files [9bf5c381](https://github.com/gohugoio/hugo/commit/9bf5c381b6b3e69d4d8dbfd7a40074ac44792bbf) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355) \ No newline at end of file +* Fix handling of zero-length files [9bf5c381](https://github.com/gohugoio/hugo/commit/9bf5c381b6b3e69d4d8dbfd7a40074ac44792bbf) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355) diff --git a/content/en/news/0.20.4-relnotes/index.md b/content/en/news/0.20.4-relnotes/index.md index 2fde30e14..59903b816 100644 --- a/content/en/news/0.20.4-relnotes/index.md +++ b/content/en/news/0.20.4-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "This is the second bug-fix release of the day, fixing a couple of issues related to the new release scripts" link: "" title: "Hugo 0.20.4" -draft: false -author: bep aliases: [/0-20-4/] --- @@ -21,4 +19,4 @@ Hugo now has: * Fix statically linked binaries [275bcf56](https://github.com/gohugoio/hugo/commit/275bcf566c7cb72367d4423cf4810319311ff680) [@munnerz](https://github.com/munnerz) [#3382](https://github.com/gohugoio/hugo/issues/3382) * Filename change in Hugo 0.20.3 binaries [#3385](https://github.com/gohugoio/hugo/issues/3385) -* Fix version calculation [cb3c6b6f](https://github.com/gohugoio/hugo/commit/cb3c6b6f7670f85189a4a3637e7132901d1ed6e9) [@bep](https://github.com/bep) \ No newline at end of file +* Fix version calculation [cb3c6b6f](https://github.com/gohugoio/hugo/commit/cb3c6b6f7670f85189a4a3637e7132901d1ed6e9) [@bep](https://github.com/bep) diff --git a/content/en/news/0.20.5-relnotes/index.md b/content/en/news/0.20.5-relnotes/index.md index eaed27832..86a260161 100644 --- a/content/en/news/0.20.5-relnotes/index.md +++ b/content/en/news/0.20.5-relnotes/index.md @@ -4,9 +4,7 @@ categories: ["Releases"] description: "" link: "" title: "Hugo 0.20.5" -draft: false -author: bep aliases: [/0-20-5/] --- -This is a bug-fix release which fixes the version number of `0.20.4` (which wrongly shows up as `0.21-DEV`) ([#3388](https://github.com/gohugoio/hugo/issues/3388)). \ No newline at end of file +This is a bug-fix release which fixes the version number of `0.20.4` (which wrongly shows up as `0.21-DEV`) ([#3388](https://github.com/gohugoio/hugo/issues/3388)). diff --git a/content/en/news/0.20.6-relnotes/index.md b/content/en/news/0.20.6-relnotes/index.md index 52189092a..848eb1347 100644 --- a/content/en/news/0.20.6-relnotes/index.md +++ b/content/en/news/0.20.6-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "" link: "" title: "Hugo 0.20.6" -draft: false -author: bep aliases: [/0-20-6/] --- @@ -21,4 +19,4 @@ Hugo now has: * Avoid index.md in /index/index.html [#3396](https://github.com/gohugoio/hugo/issues/3396) * Make missing GitInfo a WARNING [b30ca4be](https://github.com/gohugoio/hugo/commit/b30ca4bec811dbc17e9fd05925544db2b75e0e49) [@bep](https://github.com/bep) [#3376](https://github.com/gohugoio/hugo/issues/3376) -* Fix some of the fpm fields for deb [3bd1d057](https://github.com/gohugoio/hugo/commit/3bd1d0571d5f2f6bf0dc8f90a8adf2dbfcb2fdfd) [@anthonyfok](https://github.com/anthonyfok) \ No newline at end of file +* Fix some of the fpm fields for deb [3bd1d057](https://github.com/gohugoio/hugo/commit/3bd1d0571d5f2f6bf0dc8f90a8adf2dbfcb2fdfd) [@anthonyfok](https://github.com/anthonyfok) diff --git a/content/en/news/0.20.7-relnotes/index.md b/content/en/news/0.20.7-relnotes/index.md index 50ac365d5..ff6460234 100644 --- a/content/en/news/0.20.7-relnotes/index.md +++ b/content/en/news/0.20.7-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "This just fixes an issue with the release scripts, no change in the binaries" link: "" title: "Hugo 0.20.7" -draft: false -author: bep aliases: [/0-20-7/] --- @@ -20,4 +18,4 @@ Hugo now has: ## Fix -* Push the tag before goreleaser is run [3682bf52](https://github.com/gohugoio/hugo/commit/3682bf527989e86d9da32d76809306cb576383e8) [@bep](https://github.com/bep) [#3405](https://github.com/gohugoio/hugo/issues/3405) \ No newline at end of file +* Push the tag before goreleaser is run [3682bf52](https://github.com/gohugoio/hugo/commit/3682bf527989e86d9da32d76809306cb576383e8) [@bep](https://github.com/bep) [#3405](https://github.com/gohugoio/hugo/issues/3405) diff --git a/content/en/news/0.21-relnotes/index.md b/content/en/news/0.21-relnotes/index.md index aae1fd0b4..444b819cb 100644 --- a/content/en/news/0.21-relnotes/index.md +++ b/content/en/news/0.21-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.21 brings full support for shortcodes per Output Format, the last vital piece of that puzzle" link: "" title: "Hugo 0.21" -draft: false -author: bep aliases: [/0-21/] --- @@ -102,4 +100,4 @@ On a more technical side, [@moorereason](https://github.com/moorereason) and [@b ### Other * Fix data race in live-reload close, avoiding some rare panics [355736ec](https://github.com/gohugoio/hugo/commit/355736ec357c81dfb2eb6851ee019d407090c5ec) [@bep](https://github.com/bep) [#2625](https://github.com/gohugoio/hugo/issues/2625) -* Skip `.git` directories in file scan [94b5be67](https://github.com/gohugoio/hugo/commit/94b5be67fc73b87d114d94a7bb1a33ab997f30f1) [@bogem](https://github.com/bogem) [#3468](https://github.com/gohugoio/hugo/issues/3468) \ No newline at end of file +* Skip `.git` directories in file scan [94b5be67](https://github.com/gohugoio/hugo/commit/94b5be67fc73b87d114d94a7bb1a33ab997f30f1) [@bogem](https://github.com/bogem) [#3468](https://github.com/gohugoio/hugo/issues/3468) diff --git a/content/en/news/0.22-relnotes/index.md b/content/en/news/0.22-relnotes/index.md index fefb501f6..db8d5de85 100644 --- a/content/en/news/0.22-relnotes/index.md +++ b/content/en/news/0.22-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.22 brings nested sections, by popular demand and a long sought after feature" link: "" title: "Hugo 0.22" -draft: false -author: bep aliases: [/0-22/] --- @@ -86,4 +84,4 @@ Also, considerable work has been put into writing automated benchmark tests for ### Docs -* Fix parameter name in `YouTube` shortcode section [37e37877](https://github.com/gohugoio/hugo/commit/37e378773fbc127863f2b7a389d5ce3a14674c73) [@zivbk1](https://github.com/zivbk1) \ No newline at end of file +* Fix parameter name in `YouTube` shortcode section [37e37877](https://github.com/gohugoio/hugo/commit/37e378773fbc127863f2b7a389d5ce3a14674c73) [@zivbk1](https://github.com/zivbk1) diff --git a/content/en/news/0.22.1-relnotes/index.md b/content/en/news/0.22.1-relnotes/index.md index ceb207d70..3b076fd0b 100644 --- a/content/en/news/0.22.1-relnotes/index.md +++ b/content/en/news/0.22.1-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.22.1 fixes a couple of issues reported after the 0.22 release" link: "" title: "Hugo 0.22.1" -draft: false -author: bep aliases: [/0-22-1/] --- @@ -34,4 +32,4 @@ blog = ":sections/:title" * Support sub-sections in permalink settings [1f26420d](https://github.com/gohugoio/hugo/commit/1f26420d392a5ab4c7b7fe1911c0268b45d01ab8) [@bep](https://github.com/bep) [#3580](https://github.com/gohugoio/hugo/issues/3580) * Adjust rlimit to 64000 [ff54b6bd](https://github.com/gohugoio/hugo/commit/ff54b6bddcefab45339d8dc2b13776b92bdc04b9) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) * Make error on setting rlimit a warning only [629e1439](https://github.com/gohugoio/hugo/commit/629e1439e819a7118ae483381d4634f16d3474dd) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) -* Revert: Remove the rlimit tweaking on macOS [26aa06a3](https://github.com/gohugoio/hugo/commit/26aa06a3db57ab7134a900d641fa2976f7971520) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) \ No newline at end of file +* Revert: Remove the rlimit tweaking on macOS [26aa06a3](https://github.com/gohugoio/hugo/commit/26aa06a3db57ab7134a900d641fa2976f7971520) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) diff --git a/content/en/news/0.23-relnotes/index.md b/content/en/news/0.23-relnotes/index.md index fdf6e9e73..e0e500d38 100644 --- a/content/en/news/0.23-relnotes/index.md +++ b/content/en/news/0.23-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.23 is mainly a release that handles all the small changes needed to get Hugo moved to a GitHub organisation" link: "" title: "Hugo 0.23" -draft: false -author: bep aliases: [/0-23/] --- @@ -43,4 +41,4 @@ Hugo now has: * Update README to point to gohugoio/hugo [93643860](https://github.com/gohugoio/hugo/commit/93643860c9db10c6c32176b17cc83f1c317279bd) [@bep](https://github.com/bep) * Update examples to point to gohugoio/hugo [db46bcf8](https://github.com/gohugoio/hugo/commit/db46bcf82d060656d4bc731550e63ec9cf8576f2) [@bep](https://github.com/bep) * Update textual references in Go source to point to gohugoio/hugo [c17ad675](https://github.com/gohugoio/hugo/commit/c17ad675e8fcdb2db40fc50816b8f016bc14294c) [@bep](https://github.com/bep) -* Update import paths to gohugoio/hugo [d8717cd4](https://github.com/gohugoio/hugo/commit/d8717cd4c74e80ea8e20adead9321412a2d76022) [@bep](https://github.com/bep) \ No newline at end of file +* Update import paths to gohugoio/hugo [d8717cd4](https://github.com/gohugoio/hugo/commit/d8717cd4c74e80ea8e20adead9321412a2d76022) [@bep](https://github.com/bep) diff --git a/content/en/news/0.24-relnotes/index.md b/content/en/news/0.24-relnotes/index.md index ec71e246f..458b9dded 100644 --- a/content/en/news/0.24-relnotes/index.md +++ b/content/en/news/0.24-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "The Revival of the Archetypes!" link: "" title: "Hugo 0.24" -draft: false -author: bep aliases: [/0-24/] --- @@ -71,4 +69,4 @@ Hugo now has: ## Fixes * Fix error handling for `JSON` front matter [fb53987a](https://github.com/gohugoio/hugo/commit/fb53987a4ff2acb9da8dec6ec7b11924d37352ce) [@bep](https://github.com/bep) [#3610](https://github.com/gohugoio/hugo/issues/3610) -* Fix handling of quoted brackets in `JSON` front matter [3183b9a2](https://github.com/gohugoio/hugo/commit/3183b9a29d8adac962fbc73f79b04542f4c4c55d) [@bep](https://github.com/bep) [#3511](https://github.com/gohugoio/hugo/issues/3511) \ No newline at end of file +* Fix handling of quoted brackets in `JSON` front matter [3183b9a2](https://github.com/gohugoio/hugo/commit/3183b9a29d8adac962fbc73f79b04542f4c4c55d) [@bep](https://github.com/bep) [#3511](https://github.com/gohugoio/hugo/issues/3511) diff --git a/content/en/news/0.24.1-relnotes/index.md b/content/en/news/0.24.1-relnotes/index.md index 2ec2cef55..19e69ce0a 100644 --- a/content/en/news/0.24.1-relnotes/index.md +++ b/content/en/news/0.24.1-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "This release fixes some important archetype-related regressions from Hugo 0.24" link: "" title: "Hugo 0.24.1" -draft: false -author: bep aliases: [/0-24-1/] --- @@ -19,4 +17,4 @@ This release fixes some important **archetype-related regressions** from the rec ## Enhancements -* Create default archetype on new site [bfa336d9](https://github.com/gohugoio/hugo/commit/bfa336d96173377b9bbe2298dbd101f6a718c174) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626) \ No newline at end of file +* Create default archetype on new site [bfa336d9](https://github.com/gohugoio/hugo/commit/bfa336d96173377b9bbe2298dbd101f6a718c174) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626) diff --git a/content/en/news/0.25-relnotes/index.md b/content/en/news/0.25-relnotes/index.md index 9527c911a..6ceef445d 100644 --- a/content/en/news/0.25-relnotes/index.md +++ b/content/en/news/0.25-relnotes/index.md @@ -4,8 +4,6 @@ categories: ["Releases"] description: "Hugo 0.25 automatically opens the page you're working on in the browser" link: "" title: "Hugo 0.25" -draft: false -author: bep aliases: [/0-25/] --- @@ -75,4 +73,4 @@ Hugo now has: ### Other * Fix handling of `JSON` front matter with escaped quotes [e10e51a0](https://github.com/gohugoio/hugo/commit/e10e51a00827b9fdc1bee51439fef05afc529831) [@bep](https://github.com/bep) [#3661](https://github.com/gohugoio/hugo/issues/3661) -* Fix typo in code comment [56d82aa0](https://github.com/gohugoio/hugo/commit/56d82aa025f4d2edb1dc6315132cd7ab52df649a) [@dvic](https://github.com/dvic) \ No newline at end of file +* Fix typo in code comment [56d82aa0](https://github.com/gohugoio/hugo/commit/56d82aa025f4d2edb1dc6315132cd7ab52df649a) [@dvic](https://github.com/dvic) diff --git a/content/en/news/0.25.1-relnotes/index.md b/content/en/news/0.25.1-relnotes/index.md index 7d70d87a5..16f5892b7 100644 --- a/content/en/news/0.25.1-relnotes/index.md +++ b/content/en/news/0.25.1-relnotes/index.md @@ -1,11 +1,8 @@ --- -date: 2017-07-10T17:53:58-04:00 categories: ["Releases"] description: "This is a bug-fix release with a couple of important fixes" link: "" title: "Hugo 0.25.1" -draft: false -author: bep aliases: [/0-25-1/] --- @@ -22,4 +19,4 @@ Hugo now has: * Fix union when the first slice is empty [dbbc5c48](https://github.com/gohugoio/hugo/commit/dbbc5c4810a04ac06fad7500d88cf5c3bfe0c7fd) [@bep](https://github.com/bep) [#3686](https://github.com/gohugoio/hugo/issues/3686) * Navigate to changed on CREATE When working with content from IntelliJ IDE, like WebStorm, every file save is followed by two events: "RENAME" and then "CREATE". [7bcc1ce6](https://github.com/gohugoio/hugo/commit/7bcc1ce659710f2220b400ce3b76e50d2e48b241) [@miltador](https://github.com/miltador) * Final (!) fix for issue with escaped JSON front matter [7f82b41a](https://github.com/gohugoio/hugo/commit/7f82b41a24af0fd04d28fbfebf9254766a3c6e6f) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682) -* Fix issue with escaped JSON front matter [84db6c74](https://github.com/gohugoio/hugo/commit/84db6c74a084d2b52117b999d4ec343cd3389a68) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682) \ No newline at end of file +* Fix issue with escaped JSON front matter [84db6c74](https://github.com/gohugoio/hugo/commit/84db6c74a084d2b52117b999d4ec343cd3389a68) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682) diff --git a/content/en/news/lets-celebrate-hugos-5th-birthday/index.md b/content/en/news/lets-celebrate-hugos-5th-birthday/index.md index 08e1fbabd..a54f01115 100644 --- a/content/en/news/lets-celebrate-hugos-5th-birthday/index.md +++ b/content/en/news/lets-celebrate-hugos-5th-birthday/index.md @@ -3,7 +3,6 @@ date: 2018-07-04 title: "Let’s celebrate Hugo’s 5th birthday" description: "How a side project became one of the most popular frameworks for building websites." categories: [blog] -author: bep --- _By Bjørn Erik Pedersen ([@bepsays](https://twitter.com/bepsays) / [@bep](https://github.com/bep)), Hugo Lead_ diff --git a/content/en/templates/404.md b/content/en/templates/404.md index f0d2ecd9a..e1249b9b9 100644 --- a/content/en/templates/404.md +++ b/content/en/templates/404.md @@ -2,18 +2,13 @@ title: Custom 404 Page linktitle: 404 Page description: If you know how to create a single page template, you have unlimited options for creating a custom 404. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [templates] keywords: [404, page not found] menu: docs: - parent: "templates" + parent: templates weight: 120 -weight: 120 #rem -draft: false -aliases: [] -toc: false +weight: 120 --- When using Hugo with [GitHub Pages](https://pages.github.com/), you can provide your own template for a [custom 404 error page](https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site) by creating a 404.html template file in the root of your `layouts` folder. When Hugo generates your site, the `404.html` file will be placed in the root. diff --git a/content/en/templates/_index.md b/content/en/templates/_index.md index 18ae40eac..aad680a76 100644 --- a/content/en/templates/_index.md +++ b/content/en/templates/_index.md @@ -2,18 +2,12 @@ title: Templates linktitle: Templates Overview description: Go templating, template types and lookup order, shortcodes, and data. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 menu: docs: - parent: "templates" + parent: templates weight: 01 -weight: 01 #rem +weight: 01 categories: [templates] keywords: [] -draft: false aliases: [/templates/overview/,/templates/content] -toc: false -notesforauthors: --- diff --git a/content/en/templates/base.md b/content/en/templates/base.md index 6488b6b48..93f5110ef 100644 --- a/content/en/templates/base.md +++ b/content/en/templates/base.md @@ -1,18 +1,13 @@ --- title: Base Templates and Blocks -linktitle: description: The base and block constructs allow you to define the outer shell of your master templates (i.e., the chrome of the page). -date: 2017-02-01 -publishdate: 2017-02-01 categories: [templates,fundamentals] keywords: [blocks,base] menu: docs: - parent: "templates" + parent: templates weight: 20 weight: 20 -sections_weight: 20 -draft: false aliases: [/templates/blocks/,/templates/base-templates-and-blocks/] toc: true --- diff --git a/content/en/templates/data-templates.md b/content/en/templates/data-templates.md index 8051e554d..8ecde7b88 100644 --- a/content/en/templates/data-templates.md +++ b/content/en/templates/data-templates.md @@ -1,17 +1,13 @@ --- title: Data Templates -linktitle: description: In addition to Hugo's built-in variables, you can specify your own custom data in templates or shortcodes that pull from both local and dynamic sources. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [templates] keywords: [data,dynamic,csv,json,toml,yaml,xml] menu: docs: - parent: "templates" + parent: templates weight: 80 weight: 80 -sections_weight: 80 aliases: [/extras/datafiles/,/extras/datadrivencontent/,/doc/datafiles/] toc: true --- diff --git a/content/en/templates/files.md b/content/en/templates/files.md index 697863c4c..2170f9a7e 100644 --- a/content/en/templates/files.md +++ b/content/en/templates/files.md @@ -1,19 +1,13 @@ --- title: Local File Templates -linktitle: Local File Templates description: Hugo's `readDir` and `readFile` functions make it easy to traverse your project's directory structure and write file contents to your templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [files,directories] menu: docs: - parent: "templates" + parent: templates weight: 110 weight: 110 -sections_weight: 110 -draft: false aliases: [/extras/localfiles/,/templates/local-files/] toc: true --- diff --git a/content/en/templates/homepage.md b/content/en/templates/homepage.md index b72889301..c55b758f6 100644 --- a/content/en/templates/homepage.md +++ b/content/en/templates/homepage.md @@ -2,18 +2,13 @@ title: Homepage Template linktitle: Homepage Template description: The homepage of a website is often formatted differently than the other pages. For this reason, Hugo makes it easy for you to define your new site's homepage as a unique template. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [homepage] menu: docs: - parent: "templates" + parent: templates weight: 30 weight: 30 -sections_weight: 30 -draft: false aliases: [/layout/homepage/,/templates/homepage-template/] toc: true --- diff --git a/content/en/templates/internal.md b/content/en/templates/internal.md index 05a6c862f..5cfd1fe11 100644 --- a/content/en/templates/internal.md +++ b/content/en/templates/internal.md @@ -1,22 +1,14 @@ --- title: Internal Templates -linktitle: Internal Templates description: Hugo ships with a group of boilerplate templates that cover the most common use cases for static websites. -date: 2017-03-06 -publishdate: 2017-03-06 -lastmod: 2017-03-06 categories: [templates] keywords: [internal, analytics,] menu: docs: - parent: "templates" + parent: templates weight: 168 weight: 168 -sections_weight: 168 -draft: false -aliases: [] toc: true -wip: true --- <!-- reference: https://discourse.gohugo.io/t/lookup-order-for-partials/5705/6 code: https://github.com/gohugoio/hugo/blob/e445c35d6a0c7f5fc2f90f31226cd1d46e048bbc/tpl/template_embedded.go#L147 --> diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 682a9cce0..8b1ae8428 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -2,18 +2,13 @@ title: Introduction to Hugo Templating linktitle: Templating description: Hugo uses Go's `html/template` and `text/template` libraries as the basis for the templating. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2022-09-20 categories: [templates,fundamentals] keywords: [go] menu: docs: - parent: "templates" + parent: templates weight: 10 weight: 10 -sections_weight: 10 -draft: false aliases: [/layouts/introduction/,/layout/introduction/, /templates/go-templates/] toc: true --- diff --git a/content/en/templates/lists/index.md b/content/en/templates/lists/index.md index c78555d39..d23477ac2 100644 --- a/content/en/templates/lists/index.md +++ b/content/en/templates/lists/index.md @@ -2,18 +2,13 @@ title: Lists of Content in Hugo linktitle: List Templates description: Lists have a specific meaning and usage in Hugo when it comes to rendering your site homepage, section page, taxonomy list, or taxonomy terms list. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [lists,sections,rss,taxonomies,terms] menu: docs: - parent: "templates" + parent: templates weight: 22 weight: 22 -sections_weight: 22 -draft: false aliases: [/templates/list/,/layout/indexes/] toc: true --- diff --git a/content/en/templates/lookup-order.md b/content/en/templates/lookup-order.md index edb03839e..431c32c52 100644 --- a/content/en/templates/lookup-order.md +++ b/content/en/templates/lookup-order.md @@ -2,21 +2,14 @@ title: Hugo's Lookup Order linktitle: Template Lookup Order description: Hugo searches for the layout to use for a given page in a well defined order, starting from the most specific. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-07-05 categories: [templates,fundamentals] keywords: [templates] menu: docs: - parent: "templates" + parent: templates weight: 15 quicklinks: weight: 15 -sections_weight: 15 -draft: false -aliases: [/templates/lookup/] -toc: true --- ## Hugo Layouts Lookup Rules diff --git a/content/en/templates/menu-templates.md b/content/en/templates/menu-templates.md index 9cb92459a..6dadbdcc0 100644 --- a/content/en/templates/menu-templates.md +++ b/content/en/templates/menu-templates.md @@ -1,12 +1,11 @@ --- title: Menu Templates -linkTitle: Menu Templates description: Use menu variables and methods in your templates to render a menu. categories: [templates] keywords: [lists,sections,menus] menu: docs: - parent: "templates" + parent: templates weight: 130 toc: true weight: 130 diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md index 5f257d91a..f8448b097 100644 --- a/content/en/templates/output-formats.md +++ b/content/en/templates/output-formats.md @@ -1,19 +1,13 @@ --- title: Custom Output Formats -linktitle: Custom Output Formats description: Hugo can output content in multiple formats, including calendar events, e-book formats, Google AMP, and JSON search indexes, or any custom text format. -date: 2017-03-22 -publishdate: 2017-03-22 -lastmod: 2023-03-31 categories: [templates] keywords: ["amp", "outputs", "rss"] menu: docs: - parent: "templates" + parent: templates weight: 18 weight: 18 -sections_weight: 18 -draft: false aliases: [/templates/outputs/,/extras/output-formats/,/content-management/custom-outputs/] toc: true --- diff --git a/content/en/templates/pagination.md b/content/en/templates/pagination.md index 32c130b72..445264f95 100644 --- a/content/en/templates/pagination.md +++ b/content/en/templates/pagination.md @@ -2,16 +2,13 @@ title: Pagination linktitle: Pagination description: Hugo supports pagination for your homepage, section pages, and taxonomies. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [templates] keywords: [lists,sections,pagination] menu: docs: - parent: "templates" + parent: templates weight: 140 weight: 140 -sections_weight: 140 aliases: [/extras/pagination,/doc/pagination/] toc: true --- diff --git a/content/en/templates/partials.md b/content/en/templates/partials.md index 85aa33a50..e03908f6c 100644 --- a/content/en/templates/partials.md +++ b/content/en/templates/partials.md @@ -1,19 +1,13 @@ --- title: Partial Templates -linktitle: Partial Templates description: Partials are smaller, context-aware components in your list and page templates that can be used economically to keep your templating DRY. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [lists,sections,partials] menu: docs: - parent: "templates" + parent: templates weight: 90 weight: 90 -sections_weight: 90 -draft: false aliases: [/templates/partial/,/layout/chrome/,/extras/analytics/] toc: true --- diff --git a/content/en/templates/render-hooks.md b/content/en/templates/render-hooks.md index a0534d20e..395cb9240 100644 --- a/content/en/templates/render-hooks.md +++ b/content/en/templates/render-hooks.md @@ -2,14 +2,12 @@ title: "Markdown Render Hooks" linkTitle: "Render Hooks" description: "Render Hooks allow custom templates to override markdown rendering functionality." -date: 2017-03-11 categories: [templates] keywords: [markdown] toc: true menu: docs: - title: "Markdown Render Hooks" - parent: "templates" + parent: templates weight: 20 --- diff --git a/content/en/templates/robots.md b/content/en/templates/robots.md index 52a77314b..df935d31a 100644 --- a/content/en/templates/robots.md +++ b/content/en/templates/robots.md @@ -2,20 +2,14 @@ title: Robots.txt File linktitle: Robots.txt description: Hugo can generate a customized robots.txt in the same way as any other template. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [robots,search engines] menu: docs: - parent: "templates" + parent: templates weight: 165 weight: 165 -sections_weight: 165 -draft: false aliases: [/extras/robots-txt/] -toc: false --- To generate a robots.txt file from a template, change the [site configuration][config]: diff --git a/content/en/templates/rss.md b/content/en/templates/rss.md index 28ccafa56..e1bd19e54 100644 --- a/content/en/templates/rss.md +++ b/content/en/templates/rss.md @@ -1,19 +1,13 @@ --- title: RSS Templates -linktitle: RSS Templates description: Hugo ships with its own RSS 2.0 template that requires almost no configuration, or you can create your own RSS templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 keywords: [rss, xml, templates] categories: [templates] menu: docs: - parent: "templates" + parent: templates weight: 150 weight: 150 -sections_weight: 150 -draft: false toc: true --- diff --git a/content/en/templates/section-templates.md b/content/en/templates/section-templates.md index 3ca732e4b..94f1df865 100644 --- a/content/en/templates/section-templates.md +++ b/content/en/templates/section-templates.md @@ -2,18 +2,13 @@ title: Section Page Templates linktitle: Section Templates description: Templates used for section pages are **lists** and therefore have all the variables and methods available to list pages. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [lists,sections,templates] menu: docs: - parent: "templates" + parent: templates weight: 40 weight: 40 -sections_weight: 40 -draft: false aliases: [/templates/sections/] toc: true --- diff --git a/content/en/templates/shortcode-templates.md b/content/en/templates/shortcode-templates.md index 6cfb6d460..8d2a09f5b 100644 --- a/content/en/templates/shortcode-templates.md +++ b/content/en/templates/shortcode-templates.md @@ -2,19 +2,13 @@ title: Create Your Own Shortcodes linktitle: Shortcode Templates description: You can extend Hugo's built-in shortcodes by creating your own using the same templating syntax as that for single and list pages. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [shortcodes,templates] menu: docs: - parent: "templates" + parent: templates weight: 100 weight: 100 -sections_weight: 100 -draft: false -aliases: [] toc: true --- diff --git a/content/en/templates/single-page-templates.md b/content/en/templates/single-page-templates.md index 9fac42c02..2a06d74db 100644 --- a/content/en/templates/single-page-templates.md +++ b/content/en/templates/single-page-templates.md @@ -1,19 +1,13 @@ --- title: Single Page Templates -linktitle: description: The primary view of content in Hugo is the single view. Hugo will render every Markdown file provided with a corresponding single template. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-04-06 categories: [templates] keywords: [page, templates] menu: docs: - parent: "templates" + parent: templates weight: 60 weight: 60 -sections_weight: 60 -draft: false aliases: [/layout/content/] toc: true --- diff --git a/content/en/templates/sitemap-template.md b/content/en/templates/sitemap-template.md index b9469e0fa..d0738a362 100644 --- a/content/en/templates/sitemap-template.md +++ b/content/en/templates/sitemap-template.md @@ -1,16 +1,13 @@ --- title: Sitemap Templates description: Hugo provides built-in sitemap templates. -date: 2017-02-01 categories: [templates] keywords: [sitemap, xml, templates] menu: docs: - parent: "templates" + parent: templates weight: 160 weight: 160 -sections_weight: 160 -draft: false aliases: [/layout/sitemap/,/templates/sitemap/] toc: true --- diff --git a/content/en/templates/taxonomy-templates.md b/content/en/templates/taxonomy-templates.md index 0cf7ea729..6642a528b 100644 --- a/content/en/templates/taxonomy-templates.md +++ b/content/en/templates/taxonomy-templates.md @@ -1,19 +1,13 @@ --- title: Taxonomy Templates -# linktitle: description: Taxonomy templating includes taxonomy list pages, taxonomy terms pages, and using taxonomies in your single page templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [taxonomies,metadata,front matter,terms,templates] menu: docs: - parent: "templates" + parent: templates weight: 50 weight: 50 -sections_weight: 50 -draft: false aliases: [/taxonomies/displaying/,/templates/terms/,/indexes/displaying/,/taxonomies/templates/,/indexes/ordering/, /templates/taxonomies/, /templates/taxonomy/] toc: true --- diff --git a/content/en/templates/template-debugging.md b/content/en/templates/template-debugging.md index b8938890f..0f32fa732 100644 --- a/content/en/templates/template-debugging.md +++ b/content/en/templates/template-debugging.md @@ -1,18 +1,13 @@ --- title: Template Debugging description: You can use Go templates' `printf` function to debug your Hugo templates. These snippets provide a quick and easy visualization of the variables available to you in different contexts. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [templates] keywords: [debugging,troubleshooting] menu: docs: - parent: "templates" + parent: templates weight: 180 weight: 180 -sections_weight: 180 -aliases: [] -toc: false --- Here are some snippets you can add to your template to answer some common questions. diff --git a/content/en/templates/views.md b/content/en/templates/views.md index 495f701bd..e7d681021 100644 --- a/content/en/templates/views.md +++ b/content/en/templates/views.md @@ -1,20 +1,13 @@ --- title: Content View Templates -# linktitle: Content Views description: Hugo can render alternative views of your content, which is especially useful in list and summary views. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [templates] keywords: [views] menu: docs: - parent: "templates" + parent: templates weight: 70 weight: 70 -sections_weight: 70 -draft: false -aliases: [] toc: true --- diff --git a/content/en/tools/_index.md b/content/en/tools/_index.md index 93a6debc5..b553dac9c 100644 --- a/content/en/tools/_index.md +++ b/content/en/tools/_index.md @@ -2,17 +2,13 @@ title: Developer Tools linktitle: Developer Tools Overview description: In addition to Hugo's powerful CLI, there is a large number of community-developed tool chains for Hugo developers. -date: 2016-12-05 -publishdate: 2016-12-05 -lastmod: 2017-02-26 categories: [developer tools] keywords: [] menu: docs: - parent: "tools" + parent: tools weight: 01 weight: 01 -sections_weight: 01 --- One of Hugo's greatest strengths is its passionate---and always evolving---developer community. With the exception of the `highlight` shortcode mentioned in [Syntax Highlighting][syntax], the tools and other projects featured in this section are offerings from both commercial services and open-source projects, many of which are developed by Hugo developers just like you. diff --git a/content/en/tools/editors.md b/content/en/tools/editors.md index ed67885fc..55ab47090 100644 --- a/content/en/tools/editors.md +++ b/content/en/tools/editors.md @@ -2,19 +2,13 @@ title: Editor Plug-ins for Hugo linktitle: Editor Plug-ins description: The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [developer tools] keywords: [editor, plug-ins] menu: docs: - parent: "tools" + parent: tools weight: 50 weight: 50 -sections_weight: 50 -draft: false -aliases: [] -toc: false --- The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow. diff --git a/content/en/tools/frontends.md b/content/en/tools/frontends.md index 7ad44df53..1bfaf0995 100644 --- a/content/en/tools/frontends.md +++ b/content/en/tools/frontends.md @@ -2,20 +2,13 @@ title: Frontend Interfaces with Hugo linktitle: Frontends description: Do you prefer a graphical user interface over a text editor? Give these frontends a try. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [developer tools] keywords: [frontend, gui] menu: docs: - parent: "tools" + parent: tools weight: 40 weight: 40 -sections_weight: 40 -draft: false -aliases: [] -toc: false --- - [enwrite](https://github.com/zzamboni/enwrite). Enwrite enables evernote-powered, statically generated blogs and websites. Now posting to your blog or updating your website is as easy as writing a new note in Evernote! diff --git a/content/en/tools/migrations.md b/content/en/tools/migrations.md index d6ca14ab5..06c722718 100644 --- a/content/en/tools/migrations.md +++ b/content/en/tools/migrations.md @@ -2,17 +2,12 @@ title: Migrate to Hugo linktitle: Migrations description: A list of community-developed tools for migrating from your existing static site generator or content management system to Hugo. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2022-03-26 keywords: [migrations, jekyll, wordpress, drupal, ghost, contentful] menu: docs: - parent: "tools" + parent: tools weight: 10 weight: 10 -sections_weight: 10 -draft: false aliases: [/developer-tools/migrations/, /developer-tools/migrated/] toc: true --- diff --git a/content/en/tools/other.md b/content/en/tools/other.md index ed7c530d0..3f8aeebbb 100644 --- a/content/en/tools/other.md +++ b/content/en/tools/other.md @@ -2,18 +2,13 @@ title: Other Hugo Community Projects linktitle: Other Projects description: Some interesting projects developed by the Hugo community that don't quite fit into our other developer tool categories. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [developer tools] keywords: [frontend, gui] menu: docs: - parent: "tools" + parent: tools weight: 70 weight: 70 -sections_weight: 70 -aliases: [] -toc: false --- And for all the other small things around Hugo: diff --git a/content/en/tools/search.md b/content/en/tools/search.md index 464aa9107..688012550 100644 --- a/content/en/tools/search.md +++ b/content/en/tools/search.md @@ -2,17 +2,11 @@ title: Search for your Hugo Website linktitle: Search description: See some of the open-source and commercial search options for your newly created Hugo website. -date: 2017-02-01 -publishdate: 2017-02-01 -categories: [developer tools] -keywords: [search,tools] menu: docs: - parent: "tools" + parent: tools weight: 60 weight: 60 -sections_weight: 60 -aliases: [] toc: true --- diff --git a/content/en/tools/starter-kits.md b/content/en/tools/starter-kits.md index 8399e99df..deaa3411c 100644 --- a/content/en/tools/starter-kits.md +++ b/content/en/tools/starter-kits.md @@ -1,20 +1,13 @@ --- title: Starter Kits -linktitle: Starter Kits description: A list of community-developed projects designed to help you get up and running with Hugo. -date: 2017-02-22 -publishdate: 2017-02-01 -lastmod: 2018-08-11 keywords: [starters,assets,pipeline] menu: docs: - parent: "tools" + parent: tools weight: 30 weight: 30 -sections_weight: 30 -draft: false aliases: [/developer-tools/migrations/,/developer-tools/migrated/] -toc: false --- Know of a Hugo-related starter kit that isn't mentioned here? [Please add it to the list.][addkit] diff --git a/content/en/troubleshooting/_index.md b/content/en/troubleshooting/_index.md index 3170dc7d8..51f1791a3 100644 --- a/content/en/troubleshooting/_index.md +++ b/content/en/troubleshooting/_index.md @@ -1,21 +1,12 @@ --- title: Troubleshoot -linktitle: Troubleshoot description: Frequently asked questions and known issues pulled from the Hugo Discuss forum. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 menu: docs: - parent: "troubleshooting" + parent: troubleshooting weight: 1 weight: 1 -draft: false -hidesectioncontents: false -slug: aliases: [/troubleshooting/faqs/,/faqs/] -toc: false -notesforauthors: --- The Troubleshooting section includes known issues, recent workarounds, and FAQs pulled from the [Hugo Discussion Forum][forum]. diff --git a/content/en/troubleshooting/build-performance.md b/content/en/troubleshooting/build-performance.md index e17f41072..5fc6fef69 100644 --- a/content/en/troubleshooting/build-performance.md +++ b/content/en/troubleshooting/build-performance.md @@ -1,17 +1,10 @@ --- title: Build Performance -linktitle: Build Performance description: An overview of features used for diagnosing and improving performance issues in site builds. -date: 2017-03-12 -publishdate: 2017-03-12 -keywords: [performance, build] -categories: [troubleshooting] menu: docs: - parent: "troubleshooting" + parent: troubleshooting weight: 3 -slug: -aliases: [] toc: true --- diff --git a/content/en/troubleshooting/faq.md b/content/en/troubleshooting/faq.md index 998f9bbbe..04e857acb 100644 --- a/content/en/troubleshooting/faq.md +++ b/content/en/troubleshooting/faq.md @@ -2,11 +2,10 @@ title: Frequently Asked Questions linktitle: FAQ description: Solutions to some common Hugo problems. -date: 2018-02-10 categories: [troubleshooting] menu: docs: - parent: "troubleshooting" + parent: troubleshooting keywords: [faqs] weight: 2 toc: true diff --git a/content/en/variables/_index.md b/content/en/variables/_index.md index 382ee25d4..9b5289573 100644 --- a/content/en/variables/_index.md +++ b/content/en/variables/_index.md @@ -2,20 +2,14 @@ title: Variables and Params linktitle: Variables Overview description: Page-, file-, taxonomy-, and site-level variables and parameters available in templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [variables and params] keywords: [variables,params,values,globals] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 1 -weight: 01 #rem -sections_weight: 01 +weight: 01 aliases: [/templates/variables/] -toc: false --- Hugo's templates are context aware and make a large number of values available to you as you're creating views for your website. diff --git a/content/en/variables/files.md b/content/en/variables/files.md index 049c47396..784ab7c64 100644 --- a/content/en/variables/files.md +++ b/content/en/variables/files.md @@ -3,10 +3,9 @@ title: File Variables description: "Use File variables to access file-related values for each page that is backed by a file." categories: [variables and params] keywords: [files] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 40 toc: true weight: 40 diff --git a/content/en/variables/git.md b/content/en/variables/git.md index 24878e350..293acf72c 100644 --- a/content/en/variables/git.md +++ b/content/en/variables/git.md @@ -2,21 +2,14 @@ title: Git Info Variables linktitle: Git Variables description: Get the last Git revision information for every content file. -date: 2017-03-12 -publishdate: 2017-03-12 -lastmod: 2017-03-12 categories: [variables and params] keywords: [git] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 70 weight: 70 -sections_weight: 70 aliases: [/extras/gitinfo/] -toc: false -wip: false --- {{% note "`.GitInfo` Performance Considerations" %}} diff --git a/content/en/variables/menus.md b/content/en/variables/menus.md index 735121949..9a6fe517a 100644 --- a/content/en/variables/menus.md +++ b/content/en/variables/menus.md @@ -1,15 +1,12 @@ --- title: Menu Variables -linktitle: Menu Variables description: Use these variables and methods in your menu templates. categories: [variables and params] keywords: [menus] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 50 -toc: false weight: 50 aliases: [/variables/menu/] --- diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 6704075f4..20e7c004f 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -1,20 +1,13 @@ --- title: Page Variables -linktitle: description: Page-level variables are defined in a content file's front matter, derived from the content's file location, or extracted from the content body itself. -date: 2017-02-01 -publishdate: 2017-02-01 categories: [variables and params] keywords: [pages] -draft: false menu: docs: - title: "variables defined by a page" - parent: "variables" + parent: variables weight: 20 weight: 20 -sections_weight: 20 -aliases: [] toc: true --- diff --git a/content/en/variables/pages.md b/content/en/variables/pages.md index de8017945..5ca1f2758 100644 --- a/content/en/variables/pages.md +++ b/content/en/variables/pages.md @@ -1,18 +1,13 @@ --- title: Pages Methods -linktitle: description: Pages is the core page collection in Hugo and has many useful methods. -date: 2019-10-20 categories: [variables and params] keywords: [pages] -draft: false menu: docs: - title: "methods defined on a page collection" - parent: "variables" + parent: variables weight: 21 weight: 21 -sections_weight: 20 aliases: [/pages] toc: true --- diff --git a/content/en/variables/shortcodes.md b/content/en/variables/shortcodes.md index 483973eb0..3d4185b45 100644 --- a/content/en/variables/shortcodes.md +++ b/content/en/variables/shortcodes.md @@ -1,19 +1,13 @@ --- title: Shortcode Variables -linktitle: Shortcode Variables description: Shortcodes can access page variables and also have their own specific built-in variables. -date: 2017-03-12 -publishdate: 2017-03-12 categories: [variables and params] keywords: [shortcodes] menu: docs: - parent: "variables" + parent: variables weight: 20 weight: 20 -sections_weight: 20 -aliases: [] -toc: false --- [Shortcodes][shortcodes] have access to parameters delimited in the shortcode declaration via [`.Get`][getfunction], page- and site-level variables, and also the following shortcode-specific fields: @@ -48,4 +42,4 @@ toc: false [getfunction]: /functions/get/ [markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown [shortcodes]: /templates/shortcode-templates/ -[scratch]: /functions/scratch \ No newline at end of file +[scratch]: /functions/scratch diff --git a/content/en/variables/site.md b/content/en/variables/site.md index ffa728510..8b7003eeb 100644 --- a/content/en/variables/site.md +++ b/content/en/variables/site.md @@ -1,19 +1,13 @@ --- title: Site Variables -linktitle: Site Variables description: Many, but not all, site-wide variables are defined in your site's configuration. However, Hugo provides a number of built-in variables for convenient access to global values in your templates. -date: 2017-02-01 -publishdate: 2017-02-01 -lastmod: 2017-02-01 categories: [variables and params] keywords: [global,site] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 10 weight: 10 -sections_weight: 10 aliases: [/variables/site-variables/] toc: true --- diff --git a/content/en/variables/sitemap.md b/content/en/variables/sitemap.md index 24700182a..b0b080d00 100644 --- a/content/en/variables/sitemap.md +++ b/content/en/variables/sitemap.md @@ -2,19 +2,13 @@ title: Sitemap Variables linktitle: Sitemap Variables description: -date: 2017-03-12 -publishdate: 2017-03-12 categories: [variables and params] keywords: [sitemap] -draft: false menu: docs: - parent: "variables" + parent: variables weight: 80 weight: 80 -sections_weight: 80 -aliases: [] -toc: false --- A sitemap is a `Page` and therefore has all the [page variables][pagevars] available to use sitemap templates. They also have the following sitemap-specific variables available to them: diff --git a/content/en/variables/taxonomy.md b/content/en/variables/taxonomy.md index 336930672..63b552328 100644 --- a/content/en/variables/taxonomy.md +++ b/content/en/variables/taxonomy.md @@ -1,16 +1,14 @@ --- title: Taxonomy Variables -linktitle: description: Hugo's taxonomy system exposes variables to taxonomy and term templates. categories: [variables and params] keywords: [taxonomy,term] menu: docs: - parent: "variables" + parent: variables weight: 30 toc: true weight: 30 -aliases: [] --- ## Taxonomy templates From 075c9f3fe1e810a8be4abe1522e7f1cf888ea0f3 Mon Sep 17 00:00:00 2001 From: Joe Mooring <joe.mooring@veriphor.com> Date: Sat, 1 Apr 2023 09:57:47 -0700 Subject: [PATCH 48/95] Remove old todos --- content/en/functions/apply.md | 4 ---- content/en/getting-started/configuration.md | 4 +--- 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/content/en/functions/apply.md b/content/en/functions/apply.md index aa345d607..e75eb45fa 100644 --- a/content/en/functions/apply.md +++ b/content/en/functions/apply.md @@ -10,10 +10,6 @@ signature: ["apply COLLECTION FUNCTION [PARAM...]"] relatedfuncs: [] --- -{{< todo >}} -POTENTIAL NEW CONTENT: see apply/sequence discussion: https://discourse.gohugo.io/t/apply-printf-on-a-sequence/5722; -{{< /todo >}} - `apply` expects at least three parameters, depending on the function being applied. 1. The first parameter is the sequence to operate on. diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index e8268baab..b9be01bbf 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -32,11 +32,9 @@ hugo --config a.toml,b.toml,c.toml Multiple site config files can be specified as a comma-separated string to the `--config` switch. {{% /note %}} -{{< todo >}}TODO: distinct config.toml and others (the root object files){{< /todo >}} - ## hugo.toml vs config.toml -In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier code editors and build tools to identify this as a Hugo configuration file and project. +In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier for code editors and build tools to identify this as a Hugo configuration file and project. {{< new-in "0.110.0" >}} From ffe5d39b943954aee4ffa0e783c02a847f224851 Mon Sep 17 00:00:00 2001 From: Joe Mooring <joe.mooring@veriphor.com> Date: Sat, 1 Apr 2023 09:58:36 -0700 Subject: [PATCH 49/95] Remove duplicate shortcodes --- content/en/templates/files.md | 1 - layouts/shortcodes/content-tree.html | 14 -------------- layouts/shortcodes/directoryindex.html | 13 ------------- layouts/shortcodes/docfile.html | 11 ----------- layouts/shortcodes/exfile.html | 12 ------------ layouts/shortcodes/exfm.html | 13 ------------- layouts/shortcodes/gh.html | 9 --------- layouts/shortcodes/ghrepo.html | 1 - layouts/shortcodes/nohighlight.html | 1 - layouts/shortcodes/note.html | 9 --------- layouts/shortcodes/tip.html | 9 --------- layouts/shortcodes/warning.html | 9 --------- layouts/shortcodes/yt.html | 11 ----------- 13 files changed, 113 deletions(-) delete mode 100644 layouts/shortcodes/content-tree.html delete mode 100644 layouts/shortcodes/directoryindex.html delete mode 100644 layouts/shortcodes/docfile.html delete mode 100644 layouts/shortcodes/exfile.html delete mode 100644 layouts/shortcodes/exfm.html delete mode 100644 layouts/shortcodes/gh.html delete mode 100644 layouts/shortcodes/ghrepo.html delete mode 100644 layouts/shortcodes/nohighlight.html delete mode 100644 layouts/shortcodes/note.html delete mode 100644 layouts/shortcodes/tip.html delete mode 100644 layouts/shortcodes/warning.html delete mode 100644 layouts/shortcodes/yt.html diff --git a/content/en/templates/files.md b/content/en/templates/files.md index 2170f9a7e..943428f07 100644 --- a/content/en/templates/files.md +++ b/content/en/templates/files.md @@ -48,7 +48,6 @@ If you are going to create [custom shortcodes](/templates/shortcode-templates/) {{% /warning %}} [called directly in the Hugo docs]: https://github.com/gohugoio/hugoDocs/blob/master/content/en/templates/files.md -[dirindex]: https://github.com/gohugoio/hugo/blob/master/docs/layouts/shortcodes/directoryindex.html [osfileinfo]: https://golang.org/pkg/os/#FileInfo [readDir]: /functions/readdir/ [readFile]: /functions/readfile/ diff --git a/layouts/shortcodes/content-tree.html b/layouts/shortcodes/content-tree.html deleted file mode 100644 index 0cb527cb5..000000000 --- a/layouts/shortcodes/content-tree.html +++ /dev/null @@ -1,14 +0,0 @@ -<div class="code"> - <pre><code> - ├── blog - │   ├── _index.md [section] - │   ├── first-post.md [page] - │   └── second-post - │   ├── index.md [page bundle] - │   └── photo.jpg [page resource] - └── tags - ├── _index.md [taxonomy] - └── funny - └── _index.md [term] - </code></pre> -</div> \ No newline at end of file diff --git a/layouts/shortcodes/directoryindex.html b/layouts/shortcodes/directoryindex.html deleted file mode 100644 index 37e7d3ad1..000000000 --- a/layouts/shortcodes/directoryindex.html +++ /dev/null @@ -1,13 +0,0 @@ -{{- $pathURL := .Get "pathURL" -}} -{{- $path := .Get "path" -}} -{{- $files := readDir $path -}} -<table> - <th>Size in bytes</th> - <th>Name</th> -{{- range $files }} - <tr> - <td>{{ .Size }}</td> - <td><a href="{{ $pathURL }}{{ .Name | relURL }}" target="_blank"> {{ .Name }}</a></td> - </tr> -{{- end }} -</table> diff --git a/layouts/shortcodes/docfile.html b/layouts/shortcodes/docfile.html deleted file mode 100644 index 2f982aae8..000000000 --- a/layouts/shortcodes/docfile.html +++ /dev/null @@ -1,11 +0,0 @@ -{{ $file := .Get 0}} -{{ $filepath := $file }} -{{ $syntax := index (split $file ".") 1 }} -{{ $syntaxoverride := eq (len .Params) 2 }} -<div class="code-copy" id="{{$file | urlize}}"> - <div class="code-copy-header"><div class="action-buttons"></div><span title="" class="filename">{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div> - <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet> - <div class="copy-text"><i class="icon-clipboard"></i> COPY</div> - </button> - <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre> -</div> diff --git a/layouts/shortcodes/exfile.html b/layouts/shortcodes/exfile.html deleted file mode 100644 index 226782957..000000000 --- a/layouts/shortcodes/exfile.html +++ /dev/null @@ -1,12 +0,0 @@ -{{ $file := .Get 0}} -{{ $filepath := replace $file "static/" ""}} -{{ $syntax := index (split $file ".") 1 }} -{{ $syntaxoverride := eq (len .Params) 2 }} -<div class="code-copy" id="{{$file | urlize}}"> - <div class="code-copy-header examplesite"><div class="action-buttons"></div><span class="filename"><i class="icon-website"></i>{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div> - <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet> - <div class="copy-text"><i class="icon-clipboard"></i> COPY</div> - </button> - <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre> - <a role="button" target="_blank" href="{{$.Site.Params.ghdocsrepo}}{{$file}}" title="See {{$filepath}} source on GitHub" class="tooltip see-on-github" data-tooltip="See {{$filepath}} source on GitHub">Source<i class="icon-github"></i></a> -</div> diff --git a/layouts/shortcodes/exfm.html b/layouts/shortcodes/exfm.html deleted file mode 100644 index c0429bbe1..000000000 --- a/layouts/shortcodes/exfm.html +++ /dev/null @@ -1,13 +0,0 @@ -<!-- Similar to exfile.html but *only* pulls the front matter from the example/content/*md --> -{{ $file := .Get 0}} -{{ $filepath := replace $file "static/" ""}} -{{ $syntax := index (split $file ".") 1 }} -{{ $syntaxoverride := eq (len .Params) 2 }} -<div class="code-copy" id="{{$file | urlize}}"> - <div class="code-copy-header examplesite"><div class="action-buttons"></div><span title="" class="filename">{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div> - <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet> - <div class="copy-text"><i class="icon-clipboard"></i> COPY</div> - </button> - <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre> - <a role="button" target="_blank" href="{{$.Site.Params.ghdocsrepo}}{{$file}}" title="See {{$filepath}} on GitHub" class="see-on-github">Source<i class="icon-github"></i></a> -</div> \ No newline at end of file diff --git a/layouts/shortcodes/gh.html b/layouts/shortcodes/gh.html deleted file mode 100644 index 981f4b838..000000000 --- a/layouts/shortcodes/gh.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ range .Params }} - {{ if eq (substr . 0 1) "@" }} - <a href="//github.com/{{ substr . 1 }}">{{ . }}</a> - {{ else if eq (substr . 0 2) "0x" }} - <a href="//github.com/gohugoio/hugo/commit/{{ substr . 2 }}">{{ substr . 2 6 }}</a> - {{ else }} - <a href="//github.com/gohugoio/hugo/issues/{{ . }}">#{{ . }}</a> - {{ end }} -{{ end }} diff --git a/layouts/shortcodes/ghrepo.html b/layouts/shortcodes/ghrepo.html deleted file mode 100644 index e9df40d6a..000000000 --- a/layouts/shortcodes/ghrepo.html +++ /dev/null @@ -1 +0,0 @@ -<a href="{{$.Site.Params.ghrepo}}" target="_blank">GitHub repository</a> \ No newline at end of file diff --git a/layouts/shortcodes/nohighlight.html b/layouts/shortcodes/nohighlight.html deleted file mode 100644 index 238234f17..000000000 --- a/layouts/shortcodes/nohighlight.html +++ /dev/null @@ -1 +0,0 @@ -<pre><code class="hljs nohighlight">{{ .Inner }}</code></pre> \ No newline at end of file diff --git a/layouts/shortcodes/note.html b/layouts/shortcodes/note.html deleted file mode 100644 index 24d2cd0b2..000000000 --- a/layouts/shortcodes/note.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} -<aside class="admonition note"> - <div class="note-icon"> - {{partial "svg/exclamation.svg" (dict "size" "20px" ) }} - </div> - <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}note{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Note{{end}}</h2> --> - <!-- <h3>Note</h3> --> - <div class="admonition-content">{{- .Inner -}}</div> -</aside> diff --git a/layouts/shortcodes/tip.html b/layouts/shortcodes/tip.html deleted file mode 100644 index 139e3376b..000000000 --- a/layouts/shortcodes/tip.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} -<aside class="admonition tip"> - <div class="tip-icon"> - {{partial "svg/exclamation.svg" .}} - </div> - <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}tip{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Tip{{end}}</h2> --> - <!-- <h3>Tip</h3> --> - <div class="admonition-content">{{- .Inner -}}</div> -</aside> diff --git a/layouts/shortcodes/warning.html b/layouts/shortcodes/warning.html deleted file mode 100644 index c9147be64..000000000 --- a/layouts/shortcodes/warning.html +++ /dev/null @@ -1,9 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} -<aside class="admonition warning"> - <div class="admonition-icon"> - {{partial "svg/exclamation.svg" .}} - </div> - <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}warning{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Warning{{end}}</h2> --> - <!-- <h3>Warning</h3> --> - <div class="admonition-content">{{- .Inner -}}</div> -</aside> diff --git a/layouts/shortcodes/yt.html b/layouts/shortcodes/yt.html deleted file mode 100644 index 6915cec5f..000000000 --- a/layouts/shortcodes/yt.html +++ /dev/null @@ -1,11 +0,0 @@ -<div class="video-wrapper" data-streaming="youtube" data-videoid="{{.Get "id"}}" > - <i class="icon-video-play-button shortcode"></i> - {{if (.Get "thumbnail")}} - <div style="background-image:url(/images/thumbnails/{{.Get "thumbnail"}})" alt="YouTube Thumbnail" class="video-thumbnail"></div> - {{else}} - <div style="background-image:url(//img.youtube.com/vi/{{.Get "id"}}/0.jpg)" alt="YouTube Thumbnail" class="video-thumbnail"></div> - {{end}} -</div> -{{ if (.Get "description") }} -<div class="video-description">{{ .Get "description" | markdownify }}</div> -{{ end }} \ No newline at end of file From cc96070f060e3bbeaf54a56a2273f82874bab59c Mon Sep 17 00:00:00 2001 From: Joe Mooring <joe.mooring@veriphor.com> Date: Sat, 1 Apr 2023 10:06:11 -0700 Subject: [PATCH 50/95] Correct functions archetype --- archetypes/functions.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/archetypes/functions.md b/archetypes/functions.md index 34df3e3c0..891458daa 100644 --- a/archetypes/functions.md +++ b/archetypes/functions.md @@ -1,9 +1,11 @@ --- -linktitle: "" +title: {{ replace .Name "-" " " | title }} description: "" -categories: [functions] -tags: [] -ns: "" signature: [] +categories: [functions] +keywords: [] +menu: + docs: + parent: functions relatedfuncs: [] --- From 7bee3e4c146b14bec8107e632cb556cbcdb5b10f Mon Sep 17 00:00:00 2001 From: Joe Mooring <joe.mooring@veriphor.com> Date: Sat, 1 Apr 2023 10:25:09 -0700 Subject: [PATCH 51/95] Cleanup action delimiters --- content/en/content-management/multilingual.md | 2 +- content/en/content-management/shortcodes.md | 2 +- content/en/content-management/toc.md | 8 +-- content/en/contribute/documentation.md | 18 +++--- content/en/functions/after.md | 32 +++++----- content/en/functions/chomp.md | 2 +- content/en/functions/default.md | 4 +- content/en/functions/hugo.md | 2 +- content/en/functions/humanize.md | 6 +- content/en/functions/images/index.md | 6 +- content/en/functions/isset.md | 2 +- content/en/functions/len.md | 2 +- content/en/functions/now.md | 2 +- content/en/functions/render.md | 2 +- content/en/functions/string.md | 2 +- content/en/functions/urlize.md | 4 +- content/en/functions/where.md | 2 +- content/en/functions/with.md | 4 +- content/en/news/0.59.0-relnotes/index.md | 4 +- content/en/readfiles/dateformatting.md | 2 +- content/en/templates/404.md | 12 ++-- content/en/templates/base.md | 2 +- content/en/templates/data-templates.md | 2 +- content/en/templates/homepage.md | 36 ++++++------ content/en/templates/introduction.md | 14 ++--- content/en/templates/lists/index.md | 36 ++++++------ content/en/templates/section-templates.md | 2 +- content/en/templates/shortcode-templates.md | 22 +++---- content/en/templates/single-page-templates.md | 58 +++++++++---------- content/en/templates/views.md | 8 +-- content/en/variables/page.md | 8 +-- content/en/variables/pages.md | 4 +- content/en/variables/site.md | 2 +- 33 files changed, 157 insertions(+), 157 deletions(-) diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index 63312a054..c2e3cfa66 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -344,7 +344,7 @@ The function will read `.Count` from `.ReadingTime` and evaluate whether the num {{< code-toggle file="i18n/en-US" >}} [readingTime] one = "One minute to read" -other = "{{.Count }} minutes to read" +other = "{{ .Count }} minutes to read" {{< /code-toggle >}} Assuming `.ReadingTime.Count` in the context has value is 525600. The result will be: diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md index 0697ab8ea..b59be8163 100644 --- a/content/en/content-management/shortcodes.md +++ b/content/en/content-management/shortcodes.md @@ -185,7 +185,7 @@ This shortcode will convert the source code provided into syntax-highlighted HTM <div> <h1 id="title">{{ .Title }}</h1> {{ range .Pages }} - {{ .Render "summary"}} + {{ .Render "summary" }} {{ end }} </div> </section> diff --git a/content/en/content-management/toc.md b/content/en/content-management/toc.md index 0bf3a7c70..aa1e74622 100644 --- a/content/en/content-management/toc.md +++ b/content/en/content-management/toc.md @@ -14,7 +14,7 @@ aliases: [/extras/toc/] {{% note "TOC Heading Levels are Fixed" %}} -Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `<nav id="TableOfContents"><ul></ul></nav>` was going to start at `<h1>` when pulling from `{{.Content }}`. +Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `<nav id="TableOfContents"><ul></ul></nav>` was going to start at `<h1>` when pulling from `{{ .Content }}`. Hugo [v0.60.0](https://github.com/gohugoio/hugo/releases/tag/v0.60.0) made a switch to [Goldmark](https://github.com/yuin/goldmark/) as the default library for Markdown which has improved and configurable implementation of TOC. Take a look at [how to configure TOC](/getting-started/configuration-markup/#table-of-contents) for Goldmark renderer. @@ -72,15 +72,15 @@ The following is a [partial template][partials] that adds slightly more logic fo {{ if and (gt .WordCount 400 ) (.Params.toc) }} <aside> <header> - <h2>{{.Title }}</h2> + <h2>{{ .Title }}</h2> </header> - {{.TableOfContents }} + {{ .TableOfContents }} </aside> {{ end }} {{< /code >}} {{% note %}} -With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{.TableOfContents }}` variable to pull from. +With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{ .TableOfContents }}` variable to pull from. {{% /note %}} ## Usage with AsciiDoc diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index a72483dc0..259765190 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -72,7 +72,7 @@ Here is a review of the front matter fields automatically generated for you usin `relatedfuncs` : other [templating functions] you feel are related to your new function to help fellow Hugo users. -`{{.Content }}` +`{{ .Content }}` : an extended description of the new function; examples are not only welcomed but encouraged. In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#add-code-blocks). @@ -136,15 +136,15 @@ This example HTML code block tells Hugo users the following: <main> <article> <header> - <h1>{{.Title }}</h1> + <h1>{{ .Title }}</h1> {{ with .Params.subtitle }} - <span>{{.}}</span> + <span>{{ . }}</span> </header> <div> - {{.Content }} + {{ .Content }} </div> <aside> - {{.TableOfContents }} + {{ .TableOfContents }} </aside> </article> </main> @@ -161,15 +161,15 @@ The output of this example will render to the Hugo docs as follows: <main> <article> <header> - <h1>{{.Title }}</h1> + <h1>{{ .Title }}</h1> {{ with .Params.subtitle }} - <span>{{.}}</span> + <span>{{ . }}</span> </header> <div> - {{.Content }} + {{ .Content }} </div> <aside> - {{.TableOfContents }} + {{ .TableOfContents }} </aside> </article> </main> diff --git a/content/en/functions/after.md b/content/en/functions/after.md index f182d913b..810d969b6 100644 --- a/content/en/functions/after.md +++ b/content/en/functions/after.md @@ -30,24 +30,24 @@ You can use `after` in combination with the [`first` function] and Hugo's [power {{< code file="layouts/section/articles.html" download="articles.html" >}} {{ define "main" }} <section class="row featured-article"> - <h2>Featured Article</h2> - {{ range first 1 .Pages.ByPublishDate.Reverse }} - <header> - <h3><a href="{{.Permalink }}">{{.Title }}</a></h3> - </header> - <p>{{.Description }}</p> - {{ end }} + <h2>Featured Article</h2> + {{ range first 1 .Pages.ByPublishDate.Reverse }} + <header> + <h3><a href="{{ . Permalink }}">{{ .Title }}</a></h3> + </header> + <p>{{ .Description }}</p> +{{ end }} </section> <div class="row recent-articles"> - <h2>Recent Articles</h2> - {{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }} - <section class="recent-article"> - <header> - <h3><a href="{{.Permalink }}">{{.Title }}</a></h3> - </header> - <p>{{.Description }}</p> - </section> - {{ end }} + <h2>Recent Articles</h2> + {{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }} + <section class="recent-article"> + <header> + <h3><a href="{{ .Permalink }}">{{ .Title }}</a></h3> + </header> + <p>{{ .Description }}</p> + </section> + {{ end }} </div> {{ end }} {{< /code >}} diff --git a/content/en/functions/chomp.md b/content/en/functions/chomp.md index d8f8bfe4f..861e7ecc4 100644 --- a/content/en/functions/chomp.md +++ b/content/en/functions/chomp.md @@ -16,5 +16,5 @@ relatedfuncs: [truncate] Useful in a pipeline to remove newlines added by other processing (e.g., [`markdownify`](/functions/markdownify/)). ```go-html-template -{{ chomp "<p>Blockhead</p>\n"}} → "<p>Blockhead</p>" +{{ chomp "<p>Blockhead</p>\n" }} → "<p>Blockhead</p>" ``` diff --git a/content/en/functions/default.md b/content/en/functions/default.md index a8bac86dd..800d4c824 100644 --- a/content/en/functions/default.md +++ b/content/en/functions/default.md @@ -71,13 +71,13 @@ The following have equivalent return values but are far less terse. This demonst Using `if`: {{< code file="if-instead-of-default.html" copy="false" >}} -<title>{{ if .Params.seo_title }}{{.Params.seo_title }}{{ else }}{{.Title }}{{ end }} +{{ if .Params.seo_title }}{{ .Params.seo_title }}{{ else }}{{ .Title }}{{ end }} => Sane Defaults {{< /code >}} Using `with`: {{< code file="with-instead-of-default.html" copy="false" >}} -{{ with .Params.seo_title }}{{.}}{{ else }}{{.Title }}{{ end }} +{{ with .Params.seo_title }}{{ . }}{{ else }}{{ .Title }}{{ end }} => Sane Defaults {{< /code >}} diff --git a/content/en/functions/hugo.md b/content/en/functions/hugo.md index c7326242f..9da434653 100644 --- a/content/en/functions/hugo.md +++ b/content/en/functions/hugo.md @@ -89,7 +89,7 @@ An example table listing the dependencies: {{ range $index, $element := hugo.Deps }} {{ add $index 1 }} - {{ with $element.Owner }}{{.Path }}{{ end }} + {{ with $element.Owner }}{{ .Path }}{{ end }} {{ $element.Path }} {{ with $element.Replace }} diff --git a/content/en/functions/humanize.md b/content/en/functions/humanize.md index b6e2b8e2a..6cbd85837 100644 --- a/content/en/functions/humanize.md +++ b/content/en/functions/humanize.md @@ -14,8 +14,8 @@ If the input is either an int64 value or the string representation of an integer ```go-html-template -{{ humanize "my-first-post"}} → "My first post" -{{ humanize "myCamelPost"}} → "My camel post" -{{ humanize "52"}} → "52nd" +{{ humanize "my-first-post" }} → "My first post" +{{ humanize "myCamelPost" }} → "My camel post" +{{ humanize "52" }} → "52nd" {{ humanize 103 }} → "103rd" ``` diff --git a/content/en/functions/images/index.md b/content/en/functions/images/index.md index 4e16ef965..9cd772e5b 100644 --- a/content/en/functions/images/index.md +++ b/content/en/functions/images/index.md @@ -45,7 +45,7 @@ images.Text TEXT DICT) The following example will add the text `Hugo rocks!` to the image with the specified color, size and position. ```go-html-template -{{ $img := resources.Get "/images/background.png"}} +{{ $img := resources.Get "/images/background.png" }} {{ $img = $img.Filter (images.Text "Hugo rocks!" (dict "color" "#ffffff" "size" 60 @@ -60,7 +60,7 @@ You can load a custom font if needed. Load the font as a Hugo `Resource` and set ```go-html-template {{ $font := resources.GetRemote "https://github.com/google/fonts/raw/main/apache/roboto/static/Roboto-Black.ttf" }} -{{ $img := resources.Get "/images/background.png"}} +{{ $img := resources.Get "/images/background.png" }} {{ $img = $img.Filter (images.Text "Hugo rocks!" (dict "font" $font ))}} @@ -221,6 +221,6 @@ images.ImageConfig PATH ```go-html-template {{ with (imageConfig "favicon.ico") }} -favicon.ico: {{.Width }} x {{.Height }} +favicon.ico: {{ .Width }} x {{ .Height }} {{ end }} ``` diff --git a/content/en/functions/isset.md b/content/en/functions/isset.md index bbedcd4bb..ea0abf1e5 100644 --- a/content/en/functions/isset.md +++ b/content/en/functions/isset.md @@ -17,6 +17,6 @@ Takes either a slice, array, or channel and an index or a map and a key as input ``` {{% warning %}} -All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{ if isset .Site.Params "myparam"}}` and *not* with `{{ if isset .Site.Params "myParam"}}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with). +All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{ if isset .Site.Params "myparam" }}` and *not* with `{{ if isset .Site.Params "myParam" }}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with). This restriction also applies when accessing page-level front matter keys from within [shortcodes](/content-management/shortcodes/). {{% /warning %}} diff --git a/content/en/functions/len.md b/content/en/functions/len.md index f621f8c90..9a57fb9b8 100644 --- a/content/en/functions/len.md +++ b/content/en/functions/len.md @@ -30,7 +30,7 @@ You may want to append a class to a heading according to the length of the strin {{< code file="check-title-length.html" >}}
    - {{.Title }} + {{ .Title }}
    {{< /code >}} diff --git a/content/en/functions/now.md b/content/en/functions/now.md index 47afdc64d..68d628f11 100644 --- a/content/en/functions/now.md +++ b/content/en/functions/now.md @@ -16,7 +16,7 @@ For example, building your site on June 24, 2017, with the following templating: ```go-html-template
    - © {{ now.Format "2006"}} + © {{ now.Format "2006" }}
    ``` diff --git a/content/en/functions/render.md b/content/en/functions/render.md index 7086fd96b..4e4648652 100644 --- a/content/en/functions/render.md +++ b/content/en/functions/render.md @@ -18,7 +18,7 @@ This example could render a piece of content using the content view located at ` ```go-html-template {{ range .Pages }} - {{ .Render "summary"}} + {{ .Render "summary" }} {{ end }} ``` diff --git a/content/en/functions/string.md b/content/en/functions/string.md index 6c2211daf..056be999b 100644 --- a/content/en/functions/string.md +++ b/content/en/functions/string.md @@ -10,4 +10,4 @@ signature: ["string INPUT"] relatedfuncs: [] --- -* `{{ string "BatMan"}}` → "BatMan" +* `{{ string "BatMan" }}` → "BatMan" diff --git a/content/en/functions/urlize.md b/content/en/functions/urlize.md index 1b953452b..0bf7a28ee 100644 --- a/content/en/functions/urlize.md +++ b/content/en/functions/urlize.md @@ -22,9 +22,9 @@ The following might be used as a partial within a [single page template][singlet {{< code file="layouts/partials/content-header.html" download="content-header.html" >}}
    -

    {{.Title }}

    +

    {{ .Title }}

    {{ with .Params.location }} - + {{ end }} {{ with .Params.tags }} diff --git a/content/en/functions/where.md b/content/en/functions/where.md index b05e21cc0..49882b807 100644 --- a/content/en/functions/where.md +++ b/content/en/functions/where.md @@ -77,7 +77,7 @@ The following logical operators are available with `where`: When using booleans you should not put quotation marks. ```go-html-template {{ range where .Pages "Draft" true }} -

    {{.Title }}

    +

    {{ .Title }}

    {{ end }} ``` diff --git a/content/en/functions/with.md b/content/en/functions/with.md index 24707457a..591aea01e 100644 --- a/content/en/functions/with.md +++ b/content/en/functions/with.md @@ -20,8 +20,8 @@ The following example checks for a [user-defined site variable](/variables/site/ {{< code file="layouts/partials/twitter.html" >}} {{ with .Site.Params.twitteruser }}{{ end }} {{< /code >}} diff --git a/content/en/news/0.59.0-relnotes/index.md b/content/en/news/0.59.0-relnotes/index.md index d122e4c44..98fe5d088 100644 --- a/content/en/news/0.59.0-relnotes/index.md +++ b/content/en/news/0.59.0-relnotes/index.md @@ -19,13 +19,13 @@ See [Image Processing Options](https://gohugo.io/content-management/image-proces Another useful addon is the `$pages.Next` and `$pages.Prev` methods on the core page collections in Hugo. These works the same way as the built-in static variants one `Page`, e.g. `.Next` and `.NextInSection`: ``` -{{ with .Site.RegularPages.Next . }}{{.RelPermalink }}{{ end }} +{{ with .Site.RegularPages.Next . }}{{ .RelPermalink }}{{ end }} ``` The above is a functionally equivalent (but slightly slower) variant of: ``` -{{ with .Next }}{{.RelPermalink }}{{ end }} +{{ with .Next }}{{ .RelPermalink }}{{ end }} ``` See [Pages Methods](https://gohugo.io/variables/pages/) for more information. diff --git a/content/en/readfiles/dateformatting.md b/content/en/readfiles/dateformatting.md index 5e5e454fb..1128a01a1 100644 --- a/content/en/readfiles/dateformatting.md +++ b/content/en/readfiles/dateformatting.md @@ -61,7 +61,7 @@ Spelled-out cardinal numbers (e.g. "one", "two", and "three") and ordinal abbrev To continue with the example above: ```go-html-template -{{.Date.Format "Jan 2nd 2006"}} +{{ .Date.Format "Jan 2nd 2006" }} ``` Hugo assumes you want to append `nd` as a string to the day of the month and outputs the following: diff --git a/content/en/templates/404.md b/content/en/templates/404.md index e1249b9b9..280a7b8db 100644 --- a/content/en/templates/404.md +++ b/content/en/templates/404.md @@ -27,12 +27,12 @@ In addition to the standard page variables, the 404 page has access to all site This is a basic example of a 404.html template: {{< code file="layouts/404.html" download="404.html" >}} -{{ define "main"}} -
    -
    -

    Go Home

    -
    -
    +{{ define "main" }} +
    +
    +

    Go Home

    +
    +
    {{ end }} {{< /code >}} diff --git a/content/en/templates/base.md b/content/en/templates/base.md index 93f5110ef..654531fe6 100644 --- a/content/en/templates/base.md +++ b/content/en/templates/base.md @@ -82,7 +82,7 @@ The following shows how you can override both the `"main"` and `"title"` block a {{< code file="layouts/_default/single.html" download="single.html" >}} {{ define "title" }} - + {{ .Title }} – {{ .Site.Title }} {{ end }} {{ define "main" }} diff --git a/content/en/templates/data-templates.md b/content/en/templates/data-templates.md index 8ecde7b88..77c126b32 100644 --- a/content/en/templates/data-templates.md +++ b/content/en/templates/data-templates.md @@ -127,7 +127,7 @@ Achievements: You can use the following code to render the `Short Description` in your layout: ```go-html-template -
    Short Description of {{.Site.Data.User0123.Name }}:

    {{ index .Site.Data.User0123 "Short Description" | markdownify }}

    +
    Short Description of {{ .Site.Data.User0123.Name }}:

    {{ index .Site.Data.User0123 "Short Description" | markdownify }}

    ``` Note the use of the [`markdownify` template function][markdownify]. This will send the description through the Markdown rendering engine. diff --git a/content/en/templates/homepage.md b/content/en/templates/homepage.md index c55b758f6..12102261e 100644 --- a/content/en/templates/homepage.md +++ b/content/en/templates/homepage.md @@ -33,27 +33,27 @@ See the homepage template below or [Content Organization][contentorg] for more i ## Example Homepage Template -The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title }}` and `{{.Content }}` [page variables][pagevars]. +The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{ .Title }}` and `{{ .Content }}` [page variables][pagevars]. {{< code file="layouts/index.html" download="index.html" >}} {{ define "main" }} -
    -
    -

    {{.Title }}

    - {{ with .Params.subtitle }} - {{.}} - {{ end }} -
    -
    - - {{.Content }} -
    -
    - {{ range first 10 .Site.RegularPages }} - {{ .Render "summary"}} - {{ end }} -
    -
    +
    +
    +

    {{ .Title }}

    + {{ with .Params.subtitle }} + {{ . }} + {{ end }} +
    +
    + + {{ .Content }} +
    +
    + {{ range first 10 .Site.RegularPages }} + {{ .Render "summary" }} + {{ end }} +
    +
    {{ end }} {{< /code >}} diff --git a/content/en/templates/introduction.md b/content/en/templates/introduction.md index 8b1ae8428..13c6aeb83 100644 --- a/content/en/templates/introduction.md +++ b/content/en/templates/introduction.md @@ -544,11 +544,11 @@ Here is an example of corresponding code that could be used inside a `toc.html` {{ if not .Params.notoc }} {{ end }} @@ -574,7 +574,7 @@ Within a footer layout, you might then declare a `
    ` that is only rendere ```go-html-template {{ if .Site.Params.copyrighthtml }}
    -
    {{.Site.Params.CopyrightHTML | safeHTML }}
    +
    {{ .Site.Params.CopyrightHTML | safeHTML }}
    {{ end }} ``` @@ -584,8 +584,8 @@ An alternative way of writing the "`if`" and then referencing the same value is {{< code file="layouts/partials/twitter.html" >}} {{ with .Site.Params.twitteruser }} {{ end }} {{< /code >}} @@ -597,7 +597,7 @@ Finally, you can pull "magic constants" out of your layouts as well. The followi

    Recent Posts

    diff --git a/content/en/templates/lists/index.md b/content/en/templates/lists/index.md index d23477ac2..3c7b13c24 100644 --- a/content/en/templates/lists/index.md +++ b/content/en/templates/lists/index.md @@ -87,21 +87,21 @@ You can now access this `_index.md`'s' content in your list template: {{< code file="layouts/_default/list.html" download="list.html" >}} {{ define "main" }}
    -
    -
    -

    {{.Title}}

    -
    - - {{.Content}} -
    -
    {{ end }} {{< /code >}} @@ -128,7 +128,7 @@ This above will output the following HTML: ### List Pages Without `_index.md` -You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content}}` and only the default values for `.Title` etc. +You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{ .Content }}` and only the default values for `.Title` etc. Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from: @@ -168,7 +168,7 @@ This list template has been modified slightly from a template originally used in
      {{ range .Pages }} - {{ .Render "li"}} + {{ .Render "li" }} {{ end }}
    @@ -185,7 +185,7 @@ This list template has been modified slightly from a template originally used in

    {{ .Title }}

    {{ range .Pages }} - {{ .Render "summary"}} + {{ .Render "summary" }} {{ end }}
    @@ -376,14 +376,14 @@ Hugo provides some functions for grouping pages by Section, Type, Date, etc. {{ end }} {{< /code >}} -In the above example, you may want `{{.Title}}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: +In the above example, you may want `{{ .Title }}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]: {{< code file="layouts/partials/by-page-field.html" >}} {{ range .Pages.GroupBy "Section" }} {{ with $.Site.GetPage "section" .Key }} -

    {{.Title}}

    +

    {{ .Title }}

    {{ else }}

    {{ .Key | title }}

    @@ -539,7 +539,7 @@ While these are logical defaults, they are not always the desired order. There a ### Order Within Groups -Because Grouping returns a `{{.Key}}` and a slice of pages, all the ordering methods listed above are available. +Because Grouping returns a `{{ .Key }}` and a slice of pages, all the ordering methods listed above are available. Here is the ordering for the example that follows: diff --git a/content/en/templates/section-templates.md b/content/en/templates/section-templates.md index 94f1df865..1d2ca8265 100644 --- a/content/en/templates/section-templates.md +++ b/content/en/templates/section-templates.md @@ -49,7 +49,7 @@ Examples: {{ .Content }}
      {{ range .Paginator.Pages }} -
    • {{.Title }} +
    • {{ .Title }}
      {{ partial "summary.html" . }}
      diff --git a/content/en/templates/shortcode-templates.md b/content/en/templates/shortcode-templates.md index 8d2a09f5b..6f491f209 100644 --- a/content/en/templates/shortcode-templates.md +++ b/content/en/templates/shortcode-templates.md @@ -209,21 +209,21 @@ You have created the shortcode at `/layouts/shortcodes/img.html`, which loads th {{< code file="/layouts/shortcodes/img.html" >}} -
      - {{ with .Get "link" }}{{ end }} - +
      + {{ with .Get "link" }}{{ end }} + {{ if .Get "link" }}{{ end }} {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr") }} -
      {{ if isset .Params "title" }} +
      {{ if isset .Params "title" }}

      {{ .Get "title" }}

      {{ end }} {{ if or (.Get "caption") (.Get "attr") }}

      {{ .Get "caption" }} {{ with .Get "attrlink" }} {{ end }} - {{ .Get "attr" }} + {{ .Get "attr" }} {{ if .Get "attrlink" }} {{ end }}

      {{ end }} -
      - {{ end }} +
      + {{ end }}
      {{< /code >}} @@ -232,10 +232,10 @@ Would be rendered as: {{< code file="img-output.html" copy="false" >}}
      - -
      -

      Steve Francia

      -
      + +
      +

      Steve Francia

      +
      {{< /code >}} diff --git a/content/en/templates/single-page-templates.md b/content/en/templates/single-page-templates.md index 2a06d74db..aba64e1d2 100644 --- a/content/en/templates/single-page-templates.md +++ b/content/en/templates/single-page-templates.md @@ -30,40 +30,40 @@ This single page template makes use of Hugo [base templates], the [`.Format` fun

      {{ .Title }}

      -
      - {{ .Content }} -
      +
      + {{ .Content }} +
    + {{ end }} + +
    + {{ with .PrevInSection }} + + {{ end }} + {{ with .NextInSection }} + + {{ end }} +
    {{ end }} {{< /code >}} diff --git a/content/en/templates/views.md b/content/en/templates/views.md index e7d681021..ec56ba21e 100644 --- a/content/en/templates/views.md +++ b/content/en/templates/views.md @@ -65,10 +65,10 @@ In this example, `.Render` is passed into the template to call the [render funct {{< code file="layouts/_default/list.html" download="list.html" >}}
    -

    {{ .Title }}

    - {{ range .Pages }} - {{ .Render "summary"}} - {{ end }} +

    {{ .Title }}

    + {{ range .Pages }} + {{ .Render "summary" }} + {{ end }}
    {{< /code >}} diff --git a/content/en/variables/page.md b/content/en/variables/page.md index 20e7c004f..7b985d07a 100644 --- a/content/en/variables/page.md +++ b/content/en/variables/page.md @@ -90,10 +90,10 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. : access when creating links to the content. If set, Hugo will use the `linktitle` from the front matter before `title`. .Next -: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ with .Next }}{{.Permalink }}{{ end }}`. Calling `.Next` from the first page returns `nil`. +: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ with .Next }}{{ .Permalink }}{{ end }}`. Calling `.Next` from the first page returns `nil`. .NextInSection -: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ with .NextInSection }}{{.Permalink }}{{ end }}`. Calling `.NextInSection` from the first page returns `nil`. +: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ with .NextInSection }}{{ .Permalink }}{{ end }}`. Calling `.NextInSection` from the first page returns `nil`. .OutputFormats : 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/).) @@ -112,10 +112,10 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo]. : the slice of strings that results from splitting .Plain into words, as defined in Go's [strings.Fields](https://pkg.go.dev/strings#Fields). .Prev -: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ if .Prev }}{{.Prev.Permalink }}{{ end }}`. Calling `.Prev` from the last page returns `nil`. +: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ if .Prev }}{{ .Prev.Permalink }}{{ end }}`. Calling `.Prev` from the last page returns `nil`. .PrevInSection -: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ if .PrevInSection }}{{.PrevInSection.Permalink }}{{ end }}`. Calling `.PrevInSection` from the last page returns `nil`. +: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ if .PrevInSection }}{{ .PrevInSection.Permalink }}{{ end }}`. Calling `.PrevInSection` from the last page returns `nil`. .PublishDate : the date on which the content was or will be published; `.Publishdate` pulls from the `publishdate` field in a content's front matter. See also `.ExpiryDate`, `.Date`, and `.Lastmod`. diff --git a/content/en/variables/pages.md b/content/en/variables/pages.md index 5ca1f2758..15904de95 100644 --- a/content/en/variables/pages.md +++ b/content/en/variables/pages.md @@ -18,8 +18,8 @@ Also see [List templates](/templates/lists) for an overview of sort methods. `.Next` and `.Prev` on `Pages` work similar to the methods with the same names on `.Page`, but are more flexible (and slightly slower) as they can be used on any page collection. -`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Next . }}{{.RelPermalink }}{{ end }}`. Calling `.Next` with the first page in the collection returns `nil`. +`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Next . }}{{ .RelPermalink }}{{ end }}`. Calling `.Next` with the first page in the collection returns `nil`. ## .Prev PAGE -`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Prev . }}{{.RelPermalink }}{{ end }}`. Calling `.Prev` with the last page in the collection returns `nil`. +`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Prev . }}{{ .RelPermalink }}{{ end }}`. Calling `.Prev` with the last page in the collection returns `nil`. diff --git a/content/en/variables/site.md b/content/en/variables/site.md index 8b7003eeb..71111eb83 100644 --- a/content/en/variables/site.md +++ b/content/en/variables/site.md @@ -111,7 +111,7 @@ baseURL = "https://yoursite.example.com/" You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description: {{< code file="layouts/partials/head.html" >}} - + {{< /code >}} ## The `.Site.Pages` Variable {#site-pages} From 47535dc873576049eb002418e66a6b3de5a81c37 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 1 Apr 2023 11:00:05 -0700 Subject: [PATCH 52/95] Cleanup hasPrefix hasSuffix --- content/en/functions/hasPrefix.md | 13 ------------- content/en/functions/hasSuffix.md | 13 ------------- content/en/functions/strings.HasPrefix.md | 16 ++++++++++++++++ content/en/functions/strings.HasSuffix.md | 11 ++++++----- 4 files changed, 22 insertions(+), 31 deletions(-) delete mode 100644 content/en/functions/hasPrefix.md delete mode 100644 content/en/functions/hasSuffix.md create mode 100644 content/en/functions/strings.HasPrefix.md diff --git a/content/en/functions/hasPrefix.md b/content/en/functions/hasPrefix.md deleted file mode 100644 index 37a15deed..000000000 --- a/content/en/functions/hasPrefix.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: hasprefix -description: Tests whether a string begins with prefix. -categories: [functions] -menu: - docs: - parent: functions -keywords: [strings] -signature: ["hasPrefix STRING PREFIX"] -relatedfuncs: [hasSuffix] ---- - -* `{{ hasPrefix "Hugo" "Hu" }}` → true diff --git a/content/en/functions/hasSuffix.md b/content/en/functions/hasSuffix.md deleted file mode 100644 index 994a3a572..000000000 --- a/content/en/functions/hasSuffix.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: hasSuffix -description: Tests whether a string ends with suffix. -categories: [functions] -menu: -docs: -parent: functions -keywords: [strings] -signature: ["hasSuffix STRING SUFFIX"] -relatedfuncs: [hasPrefix] ---- - -* `{{ hasSuffix "Hugo" "go" }}` → true diff --git a/content/en/functions/strings.HasPrefix.md b/content/en/functions/strings.HasPrefix.md new file mode 100644 index 000000000..70317a4c1 --- /dev/null +++ b/content/en/functions/strings.HasPrefix.md @@ -0,0 +1,16 @@ +--- +title: strings.HasPrefix +description: Tests whether a string begins with prefix. +categories: [functions] +menu: + docs: + parent: functions +keywords: [strings] +signature: ["hasPrefix STRING PREFIX","strings.HasPrefix STRING PREFIX"] +relatedfuncs: [hasSuffix] +aliases: [/functions/hasprefix/] +--- + +```go-html-template +{{ hasPrefix "Hugo" "Hu" }} → true +``` diff --git a/content/en/functions/strings.HasSuffix.md b/content/en/functions/strings.HasSuffix.md index 086cac548..3ead121a3 100644 --- a/content/en/functions/strings.HasSuffix.md +++ b/content/en/functions/strings.HasSuffix.md @@ -1,15 +1,16 @@ --- title: strings.HasSuffix -description: Determine whether a given string ends with the provided trailing suffix string. +description: Tests whether a string ends with suffix. categories: [functions] menu: docs: parent: functions keywords: [strings] -signature: ["strings.HasSuffix STRING SUFFIX"] +signature: ["hasSuffix STRING SUFFIX","strings.HasSuffix STRING SUFFIX"] relatedfuncs: [hasPrefix] +aliases: [/functions/hassuffix/] --- - {{ $pdfPath := "/path/to/some.pdf" }} - {{ strings.HasSuffix $pdfPath "pdf" }} → true - {{ strings.HasSuffix $pdfPath "txt" }} → false +```go-html-template +{{ hasSuffix "Hugo" "go" }} → true +``` From 59f8a1f48e39c71784ec91e380e8d617214dbc4d Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 1 Apr 2023 11:25:26 -0700 Subject: [PATCH 53/95] Clarify title function --- content/en/functions/title.md | 22 ++++++++------------- content/en/getting-started/configuration.md | 8 +++++++- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/content/en/functions/title.md b/content/en/functions/title.md index 2e7d891ea..c7ed68bb4 100644 --- a/content/en/functions/title.md +++ b/content/en/functions/title.md @@ -1,29 +1,23 @@ --- title: title -description: Converts all characters in the provided string to title case. +description: Converts the provided string to title case. categories: [functions] menu: docs: parent: functions keywords: [strings] signature: - - "title INPUT" - - "strings.Title INPUT" + - "title STRING" + - "strings.Title STRING" relatedfuncs: [] --- ```go-html-template -{{ title "BatMan"}}` → "Batman" +{{ title "table of contents (TOC)" }} → "Table of Contents (TOC)" ``` -Can be combined in pipes. In the following snippet, the link text is cleaned up using `humanize` to remove dashes and `title` to convert the value of `$name` to Initial Caps. +By default, Hugo adheres to the capitalization rules in the [Associated Press (AP) Stylebook]. Change your [site configuration] if you would prefer to follow the [Chicago Manual of Style], or to use Go's convention of captilalizing every word. -```go-html-template -{{ range $name, $items := .Site.Taxonomies.categories }} -
  • {{ $name | humanize | title }} ({{ len $items }})
  • -{{ end }} -``` - -## Configure Title Case - -The default is AP Stylebook, but you can [configure it](/getting-started/configuration/#configure-title-case). +[Associated Press (AP) Stylebook]: https://www.apstylebook.com/ +[Chicago Manual of Style]: https://www.chicagomanualofstyle.org/home.html +[site configuration]: /getting-started/configuration/#configure-title-case diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index b9be01bbf..0eabd4591 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -575,7 +575,13 @@ status = 404 ## Configure Title Case -Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. It defaults to [AP Stylebook](https://www.apstylebook.com/) for title casing, but you can also set it to `Chicago` or `Go` (every word starts with a capital letter). +Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. + +By default, Hugo adheres to the capitalization rules in the [Associated Press (AP) Stylebook]. Set `titleCaseStyle` to `chicago` if you would prefer to follow the [Chicago Manual of Style], or set if to `go` to use Go's convention of captilalizing every word. + +[Associated Press (AP) Stylebook]: https://www.apstylebook.com/ +[Chicago Manual of Style]: https://www.chicagomanualofstyle.org/home.html +[site configuration]: /getting-started/configuration/#configure-title-case ## Configuration Environment Variables From ad65d2931db95658e5b74a552bb8a0855ea16510 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 1 Apr 2023 11:58:24 -0700 Subject: [PATCH 54/95] Clarify seq function --- content/en/functions/seq.md | 35 +++++++++++------------------------ 1 file changed, 11 insertions(+), 24 deletions(-) diff --git a/content/en/functions/seq.md b/content/en/functions/seq.md index bd9befd86..75edf5d2d 100644 --- a/content/en/functions/seq.md +++ b/content/en/functions/seq.md @@ -1,6 +1,6 @@ --- title: seq -description: Creates a sequence of integers. +description: Returns a slice of integers. categories: [functions] menu: docs: @@ -10,32 +10,19 @@ signature: ["seq LAST", "seq FIRST LAST", "seq FIRST INCREMENT LAST"] relatedfuncs: [] --- -It's named and used in the model of [GNU's seq]. - -``` -3 → 1, 2, 3 -1 2 4 → 1, 3 --3 → -1, -2, -3 -1 4 → 1, 2, 3, 4 -1 -2 → 1, 0, -1, -2 +```go-html-template +{{ seq 2 }} → [1 2] +{{ seq 0 2 }} → [0 1 2] +{{ seq -2 2 }} → [-2 -1 0 1 2] +{{ seq -2 2 2 }} → [-2 0 2] ``` -## Example: `seq` with `range` and `after` - -You can use `seq` in combination with `range` and `after`. The following will return 19 elements: +Iterate over a sequence of integers: ```go-html-template -{{ range after 1 (seq 20) }} +{{ $product := 1 }} +{{ range seq 4 }} + {{ $product = mul $product . }} {{ end }} +{{ $product }} → 24 ``` - -However, when ranging with an index, the following may be less confusing in that `$indexStartingAt1` and `$num` will return `1,2,3 ... 20`: - -```go-html-template -{{ range $index, $num := seq 20 }} - {{ $indexStartingAt1 := add $index 1 }} -{{ end }} -``` - - -[GNU's seq]: https://www.gnu.org/software/coreutils/manual/html_node/seq-invocation.html#seq-invocation From 3afac22fc12ede44a44429f9174cbb8024533d19 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 2 Apr 2023 08:07:36 -0700 Subject: [PATCH 55/95] Refactor code shortcode --- content/en/about/license.md | 2 +- .../en/content-management/build-options.md | 4 +- content/en/content-management/sections.md | 2 +- content/en/content-management/toc.md | 4 +- content/en/content-management/urls.md | 2 +- content/en/contribute/documentation.md | 349 +++++------------- content/en/functions/after.md | 2 +- content/en/functions/apply.md | 6 +- content/en/functions/default.md | 6 +- content/en/functions/dict.md | 2 +- content/en/functions/param.md | 4 +- content/en/functions/safeURL.md | 6 +- content/en/functions/sort.md | 10 +- content/en/functions/urlize.md | 2 +- .../hosting-on-netlify.md | 6 +- content/en/templates/404.md | 2 +- content/en/templates/base.md | 6 +- content/en/templates/homepage.md | 2 +- content/en/templates/internal.md | 2 +- content/en/templates/introduction.md | 2 +- content/en/templates/lists/index.md | 8 +- content/en/templates/partials.md | 4 +- content/en/templates/robots.md | 2 +- content/en/templates/section-templates.md | 2 +- content/en/templates/shortcode-templates.md | 8 +- content/en/templates/single-page-templates.md | 2 +- content/en/templates/taxonomy-templates.md | 2 +- content/en/templates/views.md | 6 +- layouts/shortcodes/code.html | 61 +-- 29 files changed, 187 insertions(+), 329 deletions(-) diff --git a/content/en/about/license.md b/content/en/about/license.md index e7e3ddce1..0173836dc 100644 --- a/content/en/about/license.md +++ b/content/en/about/license.md @@ -144,7 +144,7 @@ _END OF TERMS AND CONDITIONS_ To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets `[]` replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives. -{{< code file="apache-notice.txt" download="apache-notice.txt" >}} +{{< code file="apache-notice.txt" >}} Copyright [yyyy] [name of copyright owner] Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/content/en/content-management/build-options.md b/content/en/content-management/build-options.md index d5b594800..068959e2a 100644 --- a/content/en/content-management/build-options.md +++ b/content/en/content-management/build-options.md @@ -76,7 +76,7 @@ _build: render: false {{< /code-toggle >}} -{{< code file="layouts/index.html" copy="false" >}} +{{< code file="layouts/index.html" copy=false >}}
    {{ with site.GetPage "who-we-are" }} {{ .Content }} @@ -100,7 +100,7 @@ cascade: list: true # default {{< /code-toggle >}} -{{< code file="layouts/_defaults/testimonials.html" copy="false" >}} +{{< code file="layouts/_defaults/testimonials.html" copy=false >}}
    {{ range first 5 .Pages }}
    diff --git a/content/en/content-management/sections.md b/content/en/content-management/sections.md index 8d0549117..10c87e6cb 100644 --- a/content/en/content-management/sections.md +++ b/content/en/content-management/sections.md @@ -59,7 +59,7 @@ If you need a specific template for a sub-section, you need to adjust either the With the available [section variables and methods](#section-page-variables-and-methods) you can build powerful navigation. One common example would be a partial to show Breadcrumb navigation: -{{< code file="layouts/partials/breadcrumb.html" download="breadcrumb.html" >}} +{{< code file="layouts/partials/breadcrumb.html" >}}