From 047c4188dfc854f658d16f1e4a9501f9c97a31c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Mon, 16 Apr 2018 07:43:59 +0200 Subject: [PATCH] Squashed 'docs/' changes from d9c8fc220..f9a5dc59b MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit f9a5dc59b Code Toggle block added to doc site final batch Templates ✅ Variables ✅ 4d4107968 Add eSolia as new sponsor 000fed94e Add missing closing tags for li in menu template example f462b620f Clarify that local CSV files cannot be inside data dir ae083641a Added hugo-search-index to list of search tools e2b64d0b7 Remove extra link 2fb4c9af5 Release 0.38.2 59b1c9853 releaser: Prepare repository for 0.39-DEV 92f6a05ea releaser: Add release notes to /docs for release of 0.38.2 76244729e releaser: Bump versions for release of 0.38.2 0960c5fb3 Adjust gray color of tab vs pane in code-toggle. 8ae3aadd7 use code-toggle shortcode when relevant Content Management ✅ 455b8b53b Update related.md 6e8d19090 Release 0.38.1 079ba044c releaser: Prepare repository for 0.39-DEV 6f23e6ec1 releaser: Add release notes to /docs for release of 0.38.1 c51692ceb releaser: Bump versions for release of 0.38.1 d37ea6a5e Update related.md faa2707d0 Update index.md 9ce901dcb Add a forgotten language tag (go-html-template) for code b05aaed14 Update where.md 4d4760819 Fix typo in code-toggle.md c5a5250a1 Use the new go-html-template Chroma lexer 2de831f4b Add the full list of Chroma lexers 18114d4b4 Update Output Formats b069d7f84 Release 0.38 caaa8355a releaser: Prepare repository for 0.39-DEV e45b7cc9f releaser: Add release notes to /docs for release of 0.38 40f40906e releaser: Bump versions for release of 0.38 2d52e2e4e Merge commit 'ed8bf081fdbf336e026517b7e1b123c039014ab5' 1439f64a0 docs: Generate docshelper data 5b0edfd79 Add .Site.IsServer fdb579ad1 Merge commit '0a23baa6a90901f772c234107c4f12c16c76f4aa' 7b71da1f8 hugolib: Add Reset method to delete key from Scratch 63a131664 docs: Add docs for lang.Merge 55cba056d Merge commit '3886fc1fef6ac19d58b9ba1bb642d0c6c9a54031' 6f301ebcc docs: Add docs on the new front matter configuration 7ba35ef56 Merge commit 'c0290655825e7bb36e13fb39f89d85b392cf1adc' 3d2cab754 releaser: Prepare repository for 0.38-DEV 095e888e1 releaser: Add release notes to /docs for release of 0.37.1 593fa0dcb releaser: Bump versions for release of 0.37.1 c18c1df54 releaser: Prepare repository for 0.38-DEV git-subtree-dir: docs git-subtree-split: f9a5dc59b77d15cc2c7534e10bcd90bcfeda7bb4 --- config.toml | 2 +- content/about/new-in-032/index.md | 10 +- content/content-management/comments.md | 10 +- content/content-management/front-matter.md | 38 +- .../image-processing/index.md | 4 +- content/content-management/menus.md | 22 +- content/content-management/multilingual.md | 24 +- content/content-management/page-bundles.md | 2 +- content/content-management/page-resources.md | 44 +- content/content-management/related.md | 5 + content/content-management/static-files.md | 6 +- .../content-management/syntax-highlighting.md | 7 +- content/content-management/taxonomies.md | 78 +- content/content-management/urls.md | 13 +- content/functions/lang.Merge.md | 47 + content/functions/scratch.md | 6 + content/functions/where.md | 14 +- content/getting-started/code-toggle.md | 4 +- content/getting-started/configuration.md | 129 +- content/news/0.27-relnotes-ready.md | 2 +- content/news/0.27-relnotes.md | 2 +- content/news/0.35-relnotes-ready.md | 102 + content/news/0.35-relnotes/index.md | 2 +- .../news/0.38-relnotes/featured-poster.png | Bin 0 -> 69978 bytes content/news/0.38-relnotes/index.md | 66 + content/news/0.38.1-relnotes/index.md | 32 + content/news/0.38.2-relnotes/index.md | 25 + content/templates/data-templates.md | 12 +- content/templates/internal.md | 16 +- content/templates/introduction.md | 2 +- content/templates/menu-templates.md | 63 +- content/templates/output-formats.md | 69 +- content/templates/sitemap-template.md | 4 +- content/tools/search.md | 1 + content/variables/site.md | 11 +- data/docs.json | 1264 ++ layouts/shortcodes/chroma-lexers.html | 6 + layouts/shortcodes/code.html | 3 + netlify.toml | 8 +- ...56bf3a_69978_480x0_resize_catmullrom_2.png | Bin 0 -> 30670 bytes ...56bf3a_69978_640x0_resize_catmullrom_2.png | Bin 0 -> 50111 bytes themes/gohugoioTheme/data/sponsors.toml | 6 +- themes/gohugoioTheme/src/css/_tabs.css | 8 +- .../gohugoioTheme/static/dist/app.bundle.js | 11880 +++++++++++++++- themes/gohugoioTheme/static/dist/main.css | 2 +- .../static/images/sponsors/esolia-logo.svg | 67 + 46 files changed, 13748 insertions(+), 370 deletions(-) create mode 100644 content/functions/lang.Merge.md create mode 100644 content/news/0.35-relnotes-ready.md create mode 100644 content/news/0.38-relnotes/featured-poster.png create mode 100644 content/news/0.38-relnotes/index.md create mode 100644 content/news/0.38.1-relnotes/index.md create mode 100644 content/news/0.38.2-relnotes/index.md create mode 100644 layouts/shortcodes/chroma-lexers.html create mode 100644 resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_480x0_resize_catmullrom_2.png create mode 100644 resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_640x0_resize_catmullrom_2.png create mode 100644 themes/gohugoioTheme/static/images/sponsors/esolia-logo.svg diff --git a/config.toml b/config.toml index 653e61f7b..25cc01a0d 100644 --- a/config.toml +++ b/config.toml @@ -70,7 +70,7 @@ twitter = "GoHugoIO" [params] description = "The world’s fastest framework for building websites" ## Used for views in rendered HTML (i.e., rather than using the .Hugo variable) - release = "0.37.1" + release = "0.38.1" ## Setting this to true will add a "noindex" to *EVERY* page on the site removefromexternalsearch = false ## Gh repo for site footer (include trailing slash) diff --git a/content/about/new-in-032/index.md b/content/about/new-in-032/index.md index 41bd58937..b8ca6430e 100644 --- a/content/about/new-in-032/index.md +++ b/content/about/new-in-032/index.md @@ -61,7 +61,7 @@ Note that changes to any resource inside the `content` folder will trigger a rel #### List all Resources -```html +```go-html-template {{ range .Resources }}
  • {{ .ResourceType | title }}
  • {{ end }} @@ -73,7 +73,7 @@ For an absolute URL, use `.Permalink`. #### List All Resources by Type -```html +```go-html-template {{ with .Resources.ByType "image" }} {{ end }} @@ -83,7 +83,7 @@ Type here is `page` for pages, else the main type in the MIME type, so `image`, #### Get a Specific Resource -```html +```go-html-template {{ $logo := .Resources.GetByPrefix "logo" }} {{ with $logo }} {{ end }} @@ -91,7 +91,7 @@ Type here is `page` for pages, else the main type in the MIME type, so `image`, #### Include Page Resource Content -```html +```go-html-template {{ with .Resources.ByType "page" }} {{ range . }}

    {{ .Title }}

    @@ -146,7 +146,7 @@ This is the shortcode used in the examples above: And it is used like this: -```html +```go-html-template {{}} ``` diff --git a/content/content-management/comments.md b/content/content-management/comments.md index 355bf0042..20932a825 100644 --- a/content/content-management/comments.md +++ b/content/content-management/comments.md @@ -27,15 +27,11 @@ Hugo comes with all the code you need to load Disqus into your templates. Before ### Configure Disqus -Disqus comments require you set a single value in your [site's configuration file][configuration]. The following show the configuration variable in a `config.toml` and `config.yml`, respectively: +Disqus comments require you set a single value in your [site's configuration file][configuration] like so: -``` +{{< code-toggle copy="false" >}} disqusShortname = "yourdiscussshortname" -``` - -``` -disqusShortname: "yourdiscussshortname" -``` +{{}} For many websites, this is enough configuration. However, you also have the option to set the following in the [front matter][] of a single content file: diff --git a/content/content-management/front-matter.md b/content/content-management/front-matter.md index a6a3f2403..2fc18ee31 100644 --- a/content/content-management/front-matter.md +++ b/content/content-management/front-matter.md @@ -34,9 +34,9 @@ YAML JSON : a single JSON object surrounded by '`{`' and '`}`', followed by a new line. -### TOML Example +### Example -``` +{{< code-toggle >}} +++ title = "spf13-vim 3.0 release and new website" description = "spf13-vim is a cross platform distribution of vim plugins and resources for Vim." @@ -48,39 +48,7 @@ categories = [ ] slug = "spf13-vim-3-0-release-and-new-website" +++ -``` - -### YAML Example - -``` ---- -title: "spf13-vim 3.0 release and new website" -description: "spf13-vim is a cross platform distribution of vim plugins and resources for Vim." -tags: [ ".vimrc", "plugins", "spf13-vim", "vim" ] -lastmod: 2015-12-23 -date: "2012-04-06" -categories: - - "Development" - - "VIM" -slug: "spf13-vim-3-0-release-and-new-website" ---- -``` - -### JSON Example - -``` -{ - "title": "spf13-vim 3.0 release and new website", - "description": "spf13-vim is a cross platform distribution of vim plugins and resources for Vim.", - "tags": [ ".vimrc", "plugins", "spf13-vim", "vim" ], - "date": "2012-04-06", - "categories": [ - "Development", - "VIM" - ], - "slug": "spf13-vim-3-0-release-and-new-website" -} -``` +{{}} ## Front Matter Variables diff --git a/content/content-management/image-processing/index.md b/content/content-management/image-processing/index.md index 1f84ba04d..ecc85bb51 100644 --- a/content/content-management/image-processing/index.md +++ b/content/content-management/image-processing/index.md @@ -23,7 +23,7 @@ The `image` is a [Page Resource]({{< relref "content-management/page-resources" To get all images in a [Page Bundle]({{< relref "content-management/organization#page-bundles" >}}): -```html +```go-html-template {{ with .Resources.ByType "image" }} {{ end }} @@ -131,7 +131,7 @@ This is the shortcode used in the examples above: And it is used like this: -```html +```go-html-template {{}} ``` diff --git a/content/content-management/menus.md b/content/content-management/menus.md index 1353ce0e2..c2eadf50f 100644 --- a/content/content-management/menus.md +++ b/content/content-management/menus.md @@ -118,9 +118,9 @@ 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]. -Here’s an example snippet pulled from a `config.toml`: +Here’s an example snippet pulled from a configuration file: -{{< code file="config.toml" >}} +{{< code-toggle file="config.toml" >}} [[menu.main]] name = "about hugo" pre = "" @@ -132,23 +132,7 @@ Here’s an example snippet pulled from a `config.toml`: pre = "" weight = -100 url = "/getting-started/" -{{< /code >}} - -Here's the equivalent snippet in a `config.yaml`: - -{{< code file="config.yml" >}} -menu: - main: - - name: "about hugo" - pre: "" - weight: -110 - identifier: "about" - url: "/about/" - - name: "getting started" - pre: "" - weight: -100 - url: "/getting-started/" -{{< /code >}} +{{< /code-toggle >}} {{% 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`. diff --git a/content/content-management/multilingual.md b/content/content-management/multilingual.md index 8da599cd2..28a6e4fec 100644 --- a/content/content-management/multilingual.md +++ b/content/content-management/multilingual.md @@ -21,9 +21,9 @@ You should define the available languages in a `languages` section in your site ## Configure Languages -The following is an example of a TOML site configuration for a multilingual Hugo project: +The following is an example of a site configuration for a multilingual Hugo project: -{{< code file="config.toml" download="config.toml" >}} +{{< code-toggle file="config" >}} DefaultContentLanguage = "en" copyright = "Everything is mine" @@ -45,7 +45,7 @@ weight = 2 linkedin = "lien-francais" [languages.fr.params.navigation] help = "Aide" -{{< /code >}} +{{< /code-toggle >}} Anything not defined in a `[languages]` block will fall back to the global value for that key (e.g., `copyright` for the English [`en`] language). @@ -92,7 +92,7 @@ This means that you can now configure a `baseURL` per `language`: Example: -```bash +{{< code-toggle file="config" >}} [languages] [languages.no] baseURL = "https://example.no" @@ -105,7 +105,7 @@ baseURL = "https://example.com" languageName = "English" weight = 2 title = "In English" -``` +{{}} With the above, the two sites will be generated into `public` with their own root: @@ -132,7 +132,7 @@ Live reload and `--navigateToChanged` between the servers work as expected. Taxonomies and [Blackfriday configuration][config] can also be set per language: -{{< code file="bf-config.toml" >}} +{{< code-toggle file="config" >}} [Taxonomies] tag = "tags" @@ -152,7 +152,7 @@ weight = 2 title = "Français" [languages.fr.Taxonomies] plaque = "plaques" -{{< /code >}} +{{}} ## Translate Your Content @@ -178,11 +178,6 @@ You can also set the key used to link the translations explicitly in front matte translationKey: "my-story" ``` - -{{% note %}} -**Before Hugo 0.31**, the file's directory was not considered when looking for translations. This did not work when you named all of your content files, say, `index.md`. Now we use the full content path. -{{% /note %}} - If you need distinct URLs per language, you can set the slug in the non-default language file. For example, you can define a custom slug for a French translation in the front matter of `content/about.fr.md` as follows: ```yaml @@ -192,6 +187,7 @@ slug: "a-propos" At render, Hugo will build both `/about/` and `/a-propos/` as properly linked translated pages. +For merging of content from other languages (i.e. missing content translations), see [lang.Merge](/functions/lang.merge/). ## Link to Translated Content @@ -354,7 +350,7 @@ The rendering of the main navigation works as usual. `.Site.Menus` will just con ``` -## Missing translations +## Missing Translations If a string does not have a translation for the current language, Hugo will use the value from the default language. If no default value is set, an empty string will be shown. @@ -364,6 +360,8 @@ While translating a Hugo website, it can be handy to have a visual indicator of Hugo will generate your website with these missing translation placeholders. It might not be suited for production environments. {{% /note %}} +For merging of content from other languages (i.e. missing content translations), see [lang.Merge](/functions/lang.merge/). + ## Multilingual Themes support To support Multilingual mode in your themes, some considerations must be taken for the URLs in the templates. If there is more than one language, URLs must meet the following criteria: diff --git a/content/content-management/page-bundles.md b/content/content-management/page-bundles.md index 09aeae8ea..34620a5e2 100644 --- a/content/content-management/page-bundles.md +++ b/content/content-management/page-bundles.md @@ -93,7 +93,7 @@ anywhere: But you can get it by `.Site.GetPage`. Here is an example: -```html +```go-html-template {{ $headless := .Site.GetPage "page" "some-headless-bundle" }} {{ $reusablePages := $headless.Resources.Match "author*" }}

    Authors

    diff --git a/content/content-management/page-resources.md b/content/content-management/page-resources.md index f3b12d8c4..cefb1cd47 100644 --- a/content/content-management/page-resources.md +++ b/content/content-management/page-resources.md @@ -83,9 +83,9 @@ params : A map of custom key/values. -### Resources metadata: YAML Example +### Resources metadata example -~~~yaml +{{< code-toggle copy="false">}} title: Application date : 2018-01-25 resources : @@ -108,41 +108,7 @@ resources : - src : "**.docx" params : icon : "word" -~~~ - -### Resources metadata: TOML Example - -~~~toml -title = Application -date : 2018-01-25 -[[resources]] - src = "images/sunset.jpg" - name = "header" -[[resources]] - src = "documents/photo_specs.pdf" - title = "Photo Specifications" - [resources.params] - icon = "photo" -[[resources]] - src = "documents/guide.pdf" - title = "Instruction Guide" -[[resources]] - src = "documents/checklist.pdf" - title = "Document Checklist" -[[resources]] - src = "documents/payment.docx" - title = "Proof of Payment" -[[resources]] - src = "**.pdf" - name = "pdf-file-:counter" - [resources.params] - icon = "pdf" -[[resources]] - src = "**.docx" - [resources.params] - icon = "word" -~~~ - +{{}} From the example above: @@ -165,14 +131,14 @@ 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: -~~~toml +{{< code-toggle copy="false">}} [[resources]] src = "*specs.pdf" title = "Specification #:counter" [[resources]] src = "**.pdf" name = "pdf-file-:counter" -~~~ +{{}} the `Name` and `Title` will be assigned to the resource files as follows: diff --git a/content/content-management/related.md b/content/content-management/related.md index 8ae6e79ce..6f66e4468 100644 --- a/content/content-management/related.md +++ b/content/content-management/related.md @@ -34,6 +34,11 @@ To list up to 5 related pages is as simple as including something similar to thi {{ end }} {{< /code >}} + +{{% note %}} +Read [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation more advanced usage of this feature. +{{% /note %}} + The full set of methods available on the page lists can bee seen in this Go interface: ```go diff --git a/content/content-management/static-files.md b/content/content-management/static-files.md index 12d27ccf2..fe5ea77e0 100644 --- a/content/content-management/static-files.md +++ b/content/content-management/static-files.md @@ -15,11 +15,11 @@ toc: true The `static` folder is where you place all your **static files**, e.g. stylesheets, JavaScript, images etc. -You can set the name of the static folder to use in your configuration file, for example `config.toml`. From **Hugo 0.31** you can configure as many static directories as you need. All the files in all the static directories will form a union filesystem. +You can set the name of the static folder to use in your configuration file. From **Hugo 0.31** you can configure as many static directories as you need. All the files in all the static directories will form a union filesystem. Example: -```toml +{{< code-toggle copy="false" file="config" >}} staticDir = ["static1", "static2"] [languages] [languages.no] @@ -35,7 +35,7 @@ baseURL = "https://example.com" languageName = "English" weight = 2 title = "In English" -``` +{{}} In the above, with no theme used: diff --git a/content/content-management/syntax-highlighting.md b/content/content-management/syntax-highlighting.md index 67d443fd4..e7eb011c8 100644 --- a/content/content-management/syntax-highlighting.md +++ b/content/content-management/syntax-highlighting.md @@ -147,7 +147,7 @@ See [Highlight](/functions/highlight/). It is also possible to add syntax highlighting with GitHub flavored code fences. To enable this, set the `pygmentsCodeFences` to `true` in Hugo's [configuration file](/getting-started/configuration/); ```` -```html +```go-html-template

    {{ .Title }}

    @@ -159,6 +159,11 @@ It is also possible to add syntax highlighting with GitHub flavored code fences. ``` ```` +## List of Chroma Highlighting Languages + +The full list of Chroma lexers and their aliases (which is the identifier used in the `hightlight` template func or when doing highlighting in code fences): + +{{< chroma-lexers >}} ## Highlight with Pygments Classic diff --git a/content/content-management/taxonomies.md b/content/content-management/taxonomies.md index 1a59ebe3e..287c6f899 100644 --- a/content/content-management/taxonomies.md +++ b/content/content-management/taxonomies.md @@ -103,23 +103,14 @@ When taxonomies are used---and [taxonomy templates][] are provided---Hugo will a Taxonomies must be defined in your [website configuration][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: TOML Taxonomy Configuration +### Example: Taxonomy Configuration -``` +{{< code-toggle copy="false" >}} [taxonomies] tag = "tags" category = "categories" series = "series" -``` - -### Example: YAML Taxonomy Configuration - -``` -taxonomies: - tag: "tags" - category: "categories" - series: "series" -``` +{{}} ### Preserve Taxonomy Values @@ -145,53 +136,16 @@ Assigning content to a taxonomy is done in the [front matter][]. Simply create a If you would like the ability to quickly generate content files with preconfigured taxonomies or terms, read the docs on [Hugo archetypes](/content-management/archetypes/). {{% /note %}} -### Example: TOML Front Matter with Taxonomies +### Example: Front Matter with Taxonomies -``` -+++ +{{< code-toggle copy="false">}} title = "Hugo: A fast and flexible static site generator" tags = [ "Development", "Go", "fast", "Blogging" ] categories = [ "Development" ] series = [ "Go Web Dev" ] slug = "hugo" project_url = "https://github.com/gohugoio/hugo" -+++ -``` - -### Example: YAML Front Matter with Taxonomies - -``` ---- -title: "Hugo: A fast and flexible static site generator" -tags: ["Development", "Go", "fast", "Blogging"] -categories: ["Development"] -series: ["Go Web Dev"] -slug: "hugo" -project_url: "https://github.com/gohugoio/hugo" ---- -``` - -### Example: JSON Front Matter with Taxonomies - -``` -{ - "title": "Hugo: A fast and flexible static site generator", - "tags": [ - "Development", - "Go", - "fast", - "Blogging" - ], - "categories" : [ - "Development" - ], - "series" : [ - "Go Web Dev" - ], - "slug": "hugo", - "project_url": "https://github.com/gohugoio/hugo" -} -``` +{{}} ## Order Taxonomies @@ -199,29 +153,15 @@ A content file can assign weight for each of its associate taxonomies. Taxonomic The following TOML and YAML examples show a piece of content that has a weight of 22, which can be used for ordering purposes when rendering the pages assigned to the "a", "b" and "c" values of the `tags` taxonomy. It has also been assigned the weight of 44 when rendering the "d" category page. -### Example: TOML Taxonomic `weight` +### Example: Taxonomic `weight` -``` -+++ +{{< code-toggle copy="false" >}} title = "foo" tags = [ "a", "b", "c" ] tags_weight = 22 categories = ["d"] categories_weight = 44 -+++ -``` - -### Example: YAML Taxonomic `weight` - -``` ---- -title: foo -tags: [ "a", "b", "c" ] -tags_weight: 22 -categories: ["d"] -categories_weight: 44 ---- -``` +{{}} By using taxonomic weight, the same piece of content can appear in different positions in different taxonomies. diff --git a/content/content-management/urls.md b/content/content-management/urls.md index dd91fbced..d33725b72 100644 --- a/content/content-management/urls.md +++ b/content/content-management/urls.md @@ -29,19 +29,12 @@ These examples use the default values for `publishDir` and `contentDir`; i.e., ` For example, if one of your [sections][] is called `post` 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. -### YAML Permalinks Configuration Example +### Permalinks Configuration Example -{{< code file="config.yml" copy="false" >}} +{{< code-toggle file="config" copy="false" >}} permalinks: post: /:year/:month/:title/ -{{< /code >}} - -### TOML Permalinks Configuration Example - -{{< code file="config.toml" copy="false" >}} -[permalinks] - post = "/:year/:month/:title/" -{{< /code >}} +{{< /code-toggle >}} Only the content under `post/` will have the new URL structure. For example, the file `content/post/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/`. diff --git a/content/functions/lang.Merge.md b/content/functions/lang.Merge.md new file mode 100644 index 000000000..6e1d41c0f --- /dev/null +++ b/content/functions/lang.Merge.md @@ -0,0 +1,47 @@ +--- +title: lang.Merge +description: "Merge missing translations from other languages." +godocref: "" +workson: [] +date: 2018-03-16 +categories: [functions] +keywords: [multilingual] +menu: + docs: + parent: "functions" +toc: false +signature: ["lang.Merge FROM TO"] +workson: [] +hugoversion: +relatedfuncs: [] +deprecated: false +draft: false +aliases: [] +comments: +--- + +As an example: + +```bash +{{ $pages := .Site.RegularPages | lang.Merge $frSite.RegularPages | lang.Merge $enSite.RegularPages }} +``` + +Will "fill in the gaps" in the current site with, from left to right, content from the French site, and lastly the English. + + +A more practical example is to fill in the missing translations for the "minority languages" with content from the main language: + + +```bash + {{ $pages := .Site.RegularPages }} + {{ .Scratch.Set "pages" $pages }} + {{ $mainSite := .Sites.First }} + {{ if ne $mainSite .Site }} + {{ .Scratch.Set "pages" ($pages | lang.Merge $mainSite.RegularPages) }} + {{ end }} + {{ $pages := .Scratch.Get "pages" }} + ``` + +{{% note %}} +Note that the slightly ugly `.Scratch` construct will not be needed once this is fixed: https://github.com/golang/go/issues/10608 +{{% /note %}} diff --git a/content/functions/scratch.md b/content/functions/scratch.md index a827db543..b8fc0e59c 100644 --- a/content/functions/scratch.md +++ b/content/functions/scratch.md @@ -32,6 +32,7 @@ See [this Go issue](https://github.com/golang/go/issues/10608) for the main moti * `Get` returns the `value` for the `key` given. * `SetInMap` takes a `key`, `mapKey` and `value` * `GetSortedMapValues` returns array of values from `key` sorted by `mapKey` +* `Delete` takes a `key` to remove `Set` and `SetInMap` can store values of any type. @@ -69,6 +70,11 @@ The usage is best illustrated with some samples: {{ $.Scratch.SetInMap "a3" "c" "CC" }} {{ $.Scratch.SetInMap "a3" "b" "BB" }} {{ $.Scratch.GetSortedMapValues "a3" }} {{/* => []interface {}{"AA", "BB", "CC"} */}} + +{{ $.Scratch.Add "a" 1 }} +{{ $.Scratch.Delete "a" }} +{{ $.Scratch.Add "a" 2 }} +{{ $.Scratch.Get "a" }} {{/* => 2 */}} ``` {{% note %}} diff --git a/content/functions/where.md b/content/functions/where.md index 3aa03296b..eb3111215 100644 --- a/content/functions/where.md +++ b/content/functions/where.md @@ -22,7 +22,7 @@ needsexample: true `where` filters an array to only the elements containing a matching value for a given field. -``` +```go-html-template {{ range where .Data.Pages "Section" "post" }} {{ .Content }} {{ end }} @@ -36,7 +36,7 @@ series: golang +++ ``` -``` +```go-html-template {{ range where .Site.Pages "Params.series" "golang" }} {{ .Content }} {{ end }} @@ -44,7 +44,7 @@ series: golang It can also be used with the logical operators `!=`, `>=`, `in`, etc. Without an operator, `where` compares a given field with a matching value equivalent to `=`. -``` +```go-html-template {{ range where .Data.Pages "Section" "!=" "post" }} {{ .Content }} {{ end }} @@ -81,7 +81,7 @@ The following logical operators are available with `where`: ## Use `where` with `intersect` -``` +```go-html-template {{ range where .Site.Pages ".Params.tags" "intersect" .Params.tags }} {{ if ne .Permalink $.Permalink }} {{ .Render "summary" }} @@ -113,7 +113,7 @@ The following grabs the first five content files in `post` using the [default or You can also nest `where` clauses to drill down on lists of content by more than one parameter. The following first grabs all pages in the "blog" section and then ranges through the result of the first `where` clause and finds all pages that are *not* featured: -``` +```go-html-template {{ range where (where .Data.Pages "Section" "blog" ) ".Params.featured" "!=" "true" }} ``` @@ -128,7 +128,7 @@ Only the following operators are available for `nil` * `=`, `==`, `eq`: True if the given field is not set. * `!=`, `<>`, `ne`: True if the given field is set. -``` +```go-html-template {{ range where .Data.Pages ".Params.specialpost" "!=" nil }} {{ .Content }} {{ end }} @@ -140,7 +140,7 @@ This is especially important for themes, but to list the most relevant pages on This will, by default, list pages from the _section with the most pages_. -```html +```go-html-template {{ $pages := where .Site.RegularPages "Type" "in" .Site.Params.mainSections }} ``` diff --git a/content/getting-started/code-toggle.md b/content/getting-started/code-toggle.md index ae3e3e84b..3e6b7da0d 100644 --- a/content/getting-started/code-toggle.md +++ b/content/getting-started/code-toggle.md @@ -15,7 +15,7 @@ toc: true This is an exemple for the Config Toggle shortcode. Its purpose is to let users choose a Config language by clicking on its corresponding tab. Upon doing so, every Code toggler on the page will be switched to the target language. Also, target language will be saved in user's `localStorage` so when they go to a different pages, Code Toggler display their last "toggled" config language. -## That Congig Toggler +## That Config Toggler {{< code-toggle file="config">}} @@ -72,4 +72,4 @@ blackfriday: plainIDAnchors: true extensions: - hardLineBreak -{{< /code >}} \ No newline at end of file +{{< /code >}} diff --git a/content/getting-started/configuration.md b/content/getting-started/configuration.md index f6d4b63a8..8da25fd58 100644 --- a/content/getting-started/configuration.md +++ b/content/getting-started/configuration.md @@ -98,6 +98,10 @@ enableMissingTranslationPlaceholders (false) enableRobotsTXT (false) : Enable generation of `robots.txt` file. +frontmatter + +: See [Front matter Configuration](#configure-front-matter). + footnoteAnchorPrefix ("") : Prefix for footnote anchors. @@ -246,9 +250,11 @@ Similar to the template [lookup order][], Hugo has a default set of rules for se In your `config` file, you can direct Hugo as to how you want your website rendered, control your website's menus, and arbitrarily define site-wide parameters specific to your project. -## YAML Configuration +## Example Configuration -{{< code file="config.yml">}} +The following is a typical example of a configuration file. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]: + +{{< code-toggle file="config">}} baseURL: "https://yoursite.example.com/" title: "My Hugo Site" footnoteReturnLinkContents: "↩" @@ -262,50 +268,7 @@ params: - "foo1" - "foo2" SidebarRecentLimit: 5 -{{< /code >}} - -The following is a typical example of a YAML configuration file. The values nested under `params:` will populate the [`.Site.Params`][] variable for use in [templates][]: - -{{< code file="config.yml">}} -baseURL: "https://yoursite.example.com/" -title: "My Hugo Site" -footnoteReturnLinkContents: "↩" -permalinks: - post: /:year/:month/:title/ -params: - Subtitle: "Hugo is Absurdly Fast!" - AuthorName: "Jon Doe" - GitHubUser: "spf13" - ListOfFoo: - - "foo1" - - "foo2" - SidebarRecentLimit: 5 -{{< /code >}} - -## TOML Configuration - -The following is an example of a TOML configuration file. The values under `[params]` will populate the `.Site.Params` variable for use in [templates][]: - -{{< code file="config.toml">}} -contentDir = "content" -layoutDir = "layouts" -publishDir = "public" -buildDrafts = false -baseURL = "https://yoursite.example.com/" -canonifyURLs = true -title = "My Hugo Site" - -[taxonomies] - category = "categories" - tag = "tags" - -[params] - subtitle = "Hugo is Absurdly Fast!" - author = "John Doe" -{{< /code >}} - - - +{{< /code-toggle >}} ## Configure with Environment Variables @@ -337,6 +300,67 @@ ignoreFiles = [ "\\.foo$", "\\.boo$" ] The above is a list of regular expressions. Note that the backslash (`\`) character is escaped in this example to keep TOML happy. +## Configure Front Matter + +### Configure Dates + +Dates are important in Hugo, and you can configure how Hugo assigns dates to your content pages. You do this by adding a `frontmatter` section to your `config.toml`. + + +The default configuration is: + +```toml +[frontmatter] +date = ["date","publishDate", "lastmod"] +lastmod = [":git" "lastmod", "date","publishDate"] +publishDate = ["publishDate", "date"] +expiryDate = ["expiryDate"] +``` + +If you, as an example, have a non-standard date parameter in some of your content, you can override the setting for `date`: + + ```toml +[frontmatter] +date = [ "myDate", ":default"] +``` + +The `:default` is a shortcut to the default settings. The above will set `.Date` to the date value in `myDate` if present, if not we will look in `date`,`publishDate`, `lastmod` and pick the first valid date. + +In the list to the right, values starting with ":" are date handlers with a special meaning (see below). The others are just names of date parameters (case insensitive) in your front matter configuration. Also note that Hugo have some built-in aliases to the above: `lastmod` => `modified`, `publishDate` => `pubdate`, `published` and `expiryDate` => `unpublishdate`. With that, as an example, using `pubDate` as a date in front matter, will, by default, be assigned to `.PublishDate`. + +The special date handlers are: + + +`:fileModTime` +: Fetches the date from the content file's last modification timestamp. + +An example: + + ```toml +[frontmatter] +lastmod = ["lastmod" ,":fileModTime", ":default"] +``` + + +The above will try first to extract the value for `.Lastmod` starting with the `lastmod` front matter parameter, then the content file's modification timestamp. The last, `:default` should not be needed here, but Hugo will finally look for a valid date in `:git`, `date` and then `publishDate`. + + +`:filename` +: Fetches the date from the content file's filename. For example, `218-02-22-mypage.md` will extract the date `218-02-22`. Also, if `slug is not set, `mypage` will be used as the value for `.Slug`. + +An example: + +```toml +[frontmatter] +date = [":filename", ":default"] +``` + +The above will try first to extract the value for `.Date` from the filename, then it will look in front matter parameters `date`, `publishDate` and lastly `lastmod`. + + +`:git` +: This is the Git author date for the last revision of this content file. This will only be set if `--enableGitInfo` is set or `enableGitInfo = true` is set in site config. + ## Configure Blackfriday [Blackfriday](https://github.com/russross/blackfriday) is Hugo's built-in Markdown rendering engine. @@ -352,22 +376,13 @@ However, if you have specific needs with respect to Markdown, Hugo exposes some 2. Blackfriday flags must be grouped under the `blackfriday` key and can be set on both the site level *and* the page level. Any setting on a page will override its respective site setting. {{% /note %}} -{{< code file="bf-config.toml" >}} +{{< code-toggle file="config" >}} [blackfriday] angledQuotes = true fractions = false plainIDAnchors = true extensions = ["hardLineBreak"] -{{< /code >}} - -{{< code file="bf-config.yml" >}} -blackfriday: - angledQuotes: true - fractions: false - plainIDAnchors: true - extensions: - - hardLineBreak -{{< /code >}} +{{< /code-toggle >}} ## Configure Additional Output Formats diff --git a/content/news/0.27-relnotes-ready.md b/content/news/0.27-relnotes-ready.md index 3dd02d455..9251c3768 100644 --- a/content/news/0.27-relnotes-ready.md +++ b/content/news/0.27-relnotes-ready.md @@ -9,7 +9,7 @@ categories: ["Releases"] Hugo `0.27`comes with fast and flexible **Related Content** ([3b4f17bb](https://github.com/gohugoio/hugo/commit/3b4f17bbc9ff789faa581ac278ad109d1ac5b816) [@bep](https://github.com/bep) [#98](https://github.com/gohugoio/hugo/issues/98)). To add this to your site, put something like this in your single page template: -```html +```go-html-template {{ $related := .Site.RegularPages.Related . | first 5 }} {{ with $related }}

    See Also

    diff --git a/content/news/0.27-relnotes.md b/content/news/0.27-relnotes.md index a4ead0816..92fc3a7b0 100644 --- a/content/news/0.27-relnotes.md +++ b/content/news/0.27-relnotes.md @@ -11,7 +11,7 @@ images: Hugo `0.27`comes with fast and flexible **Related Content** ([3b4f17bb](https://github.com/gohugoio/hugo/commit/3b4f17bbc9ff789faa581ac278ad109d1ac5b816) [@bep](https://github.com/bep) [#98](https://github.com/gohugoio/hugo/issues/98)). To add this to your site, put something like this in your single page template: -```html +```go-html-template {{ $related := .Site.RegularPages.Related . | first 5 }} {{ with $related }}

    See Also

    diff --git a/content/news/0.35-relnotes-ready.md b/content/news/0.35-relnotes-ready.md new file mode 100644 index 000000000..3788c0326 --- /dev/null +++ b/content/news/0.35-relnotes-ready.md @@ -0,0 +1,102 @@ + +--- +date: 2018-01-31 +title: "0.35" +description: "0.35" +slug: "0.35" +categories: ["Releases"] +--- + + The most notable new feature in Hugo `0.35` is perhaps **Headless Bundles**. + +This means that you in your `index.md` front matter can say: + +```yaml +headless: true +``` +And +* it will have no `Permalink` and no rendered HTML in `/public` +* it will not be part of `.Site.RegularPages` etc. + +But you can get it by: + +* `.Site.GetPage ...` + +The use cases are many: + +* Shared media libraries +* Reusable page content "snippets" +* ... + +But this release contains more goodies than possible to sum up in one paragraph, so study the release notes carefully. It represents **42 contributions by 8 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 [@vassudanagunta](https://github.com/vassudanagunta), [@yanzay](https://github.com/yanzay), and [@robertbasic](https://github.com/robertbasic) for their ongoing contributions. + +And as always a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition. + +Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs), +which has received **28 contributions by 5 contributors**. A special thanks to [@bep](https://github.com/bep), [@kaushalmodi](https://github.com/kaushalmodi), [@regisphilibert](https://github.com/regisphilibert), and [@salim-b](https://github.com/salim-b) for their work on the documentation site. + + +Hugo now has: + +* 22967+ [stars](https://github.com/gohugoio/hugo/stargazers) +* 448+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors) +* 197+ [themes](http://themes.gohugo.io/) + + +## Notes + +* Deprecate `useModTimeAsFallback` [adfd4370](https://github.com/gohugoio/hugo/commit/adfd4370b67fd7181178bd6b3b1d07356beaac71) [@bep](https://github.com/bep) [#4351](https://github.com/gohugoio/hugo/issues/4351) +* Deprecate CLI flags `canonifyURLs`, `pluralizeListTitles`, `preserveTaxonomyNames`, `uglyURLs` [f08ea02d](https://github.com/gohugoio/hugo/commit/f08ea02d24d42929676756950f3affaca7fd8c01) [@bep](https://github.com/bep) [#4347](https://github.com/gohugoio/hugo/issues/4347) +* Remove undraft command [2fa70c93](https://github.com/gohugoio/hugo/commit/2fa70c9344b231c9d999bbafdfa4acbf27ed9f6e) [@robertbasic](https://github.com/robertbasic) [#4353](https://github.com/gohugoio/hugo/issues/4353) + +## Enhancements + +### Templates + +* Update Twitter card to also consider images in `.Resources` [25d691da](https://github.com/gohugoio/hugo/commit/25d691daff57d7c6d7d0f63af3991d22e3f788fe) [@bep](https://github.com/bep) [#4349](https://github.com/gohugoio/hugo/issues/4349) +* Seed random on init only [83c761b7](https://github.com/gohugoio/hugo/commit/83c761b71a980aee6331179b271c7e24e999e8eb) [@liguoqinjim](https://github.com/liguoqinjim) +* Remove duplicate layout lookup layouts [b2fcbb1f](https://github.com/gohugoio/hugo/commit/b2fcbb1f9774aa1e929b8575c0e1ac366ab2fb73) [@bep](https://github.com/bep) [#4319](https://github.com/gohugoio/hugo/issues/4319) +* Add "removable-media" interface to `snapcraft.yaml` [f0c0ece4](https://github.com/gohugoio/hugo/commit/f0c0ece44d55b6c2997cbd106d1bc099ea1a2fa7) [@anthonyfok](https://github.com/anthonyfok) [#3837](https://github.com/gohugoio/hugo/issues/3837) + +### Other + +* Add a way to disable one or more languages [6413559f](https://github.com/gohugoio/hugo/commit/6413559f7575e2653d76227a8037a7edbaae82aa) [@bep](https://github.com/bep) [#4297](https://github.com/gohugoio/hugo/issues/4297)[#4329](https://github.com/gohugoio/hugo/issues/4329) +* Handle newly created files in Fast Render Mode [1707dae8](https://github.com/gohugoio/hugo/commit/1707dae8d3634006017eb6d040df4dbafc53d92f) [@yanzay](https://github.com/yanzay) [#4339](https://github.com/gohugoio/hugo/issues/4339) +* Extract the Fast Render Mode logic into a method [94e736c5](https://github.com/gohugoio/hugo/commit/94e736c5e167a0ee70a528e1c19d64a47e7929c2) [@bep](https://github.com/bep) [#4339](https://github.com/gohugoio/hugo/issues/4339) +* Remove unused code [ae5a45be](https://github.com/gohugoio/hugo/commit/ae5a45be6f0ee4d5c52b38fd28b22b55d9cd7b2d) [@bep](https://github.com/bep) +* Add the last lookup variant for the `GetPage` index [3446fe9b](https://github.com/gohugoio/hugo/commit/3446fe9b8937610b8b628b2c212eb25888a7c1bb) [@bep](https://github.com/bep) [#4312](https://github.com/gohugoio/hugo/issues/4312) +* Simplify bundle lookup via `.Site.GetPage`, `ref`, `relref` [517b6b62](https://github.com/gohugoio/hugo/commit/517b6b62389d23bfe41fe3ae551a691b11bdcaa7) [@bep](https://github.com/bep) [#4312](https://github.com/gohugoio/hugo/issues/4312) +* Remove some now superflous Fast Render Mode code [feeed073](https://github.com/gohugoio/hugo/commit/feeed073c3320b09fb38168ce272ac88b987f1d2) [@bep](https://github.com/bep) [#4339](https://github.com/gohugoio/hugo/issues/4339) +* Make resource counters for `name` and `title` independent [df20b054](https://github.com/gohugoio/hugo/commit/df20b05463fef42aba93d5208e410a7ecc56da5d) [@bep](https://github.com/bep) [#4335](https://github.com/gohugoio/hugo/issues/4335) +* Provide .Name to the archetype templates [863a812e](https://github.com/gohugoio/hugo/commit/863a812e07193541b42732b0e227f3d320433f01) [@bep](https://github.com/bep) [#4348](https://github.com/gohugoio/hugo/issues/4348) +* Only set `url` if permalink in metadata and remove duplicate confirm msg [3752348e](https://github.com/gohugoio/hugo/commit/3752348ef13ced8f6f528b42ee7d76a12a97ae5c) [@lildude](https://github.com/lildude) [#1887](https://github.com/gohugoio/hugo/issues/1887) +* Start Resources :counter first time they're used [7b472e46](https://github.com/gohugoio/hugo/commit/7b472e46084b603045b87cea870ffc73ac1cf7e7) [@bep](https://github.com/bep) [#4335](https://github.com/gohugoio/hugo/issues/4335) +* Update to Go 1.9.3 [a91aba1c](https://github.com/gohugoio/hugo/commit/a91aba1c1562259dffd321a608f38c38dd4d5aeb) [@bep](https://github.com/bep) [#4328](https://github.com/gohugoio/hugo/issues/4328) +* Support pages without front matter [91bb774a](https://github.com/gohugoio/hugo/commit/91bb774ae4e129f7ed0624754b31479c960ef774) [@vassudanagunta](https://github.com/vassudanagunta) [#4320](https://github.com/gohugoio/hugo/issues/4320)[#4320](https://github.com/gohugoio/hugo/issues/4320) +* Add page metadata dates tests [3f0379ad](https://github.com/gohugoio/hugo/commit/3f0379adb72389954ca2be6a9f2ebfcd65c6c440) [@vassudanagunta](https://github.com/vassudanagunta) +* Re-generate CLI docs [1e27d058](https://github.com/gohugoio/hugo/commit/1e27d0589118a114e49c032e4bd68b4798e44a5b) [@bep](https://github.com/bep) +* Remove and update deprecation status [d418c2c2](https://github.com/gohugoio/hugo/commit/d418c2c2eacdc1dc6fffe839e0a90600867878ca) [@bep](https://github.com/bep) +* Shorten the stale setup [4a7c2b36](https://github.com/gohugoio/hugo/commit/4a7c2b3695fe7b88861f2155ea7ef635fe425cd4) [@bep](https://github.com/bep) +* Add a `GetPage` to the site benchmarks [a1956391](https://github.com/gohugoio/hugo/commit/a19563910eec5fed08f3b02563b9a7b38026183d) [@bep](https://github.com/bep) +* Add headless bundle support [0432c64d](https://github.com/gohugoio/hugo/commit/0432c64dd22e4610302162678bb93661ba68d758) [@bep](https://github.com/bep) [#4311](https://github.com/gohugoio/hugo/issues/4311) +* Merge matching resources params maps [5a0819b9](https://github.com/gohugoio/hugo/commit/5a0819b9b5eb9e79826cfa0a65f235d9821b1ac4) [@bep](https://github.com/bep) [#4315](https://github.com/gohugoio/hugo/issues/4315) +* Add some general code contribution criterias [78c86330](https://github.com/gohugoio/hugo/commit/78c863305f337ed4faf3cf0a23675f28b0ae5641) [@bep](https://github.com/bep) +* Tighten page kind logic, introduce tests [8125b4b0](https://github.com/gohugoio/hugo/commit/8125b4b03d10eb73f8aea3f9ea41172aba8df082) [@vassudanagunta](https://github.com/vassudanagunta) + +## Fixes +* Fix `robots.txt` in multihost mode [4d912e2a](https://github.com/gohugoio/hugo/commit/4d912e2aad39bfe8d76672cf53b01317792e02c5) [@bep](https://github.com/bep) [#4193](https://github.com/gohugoio/hugo/issues/4193) +* Fix `--uglyURLs` from comand line regression [016398ff](https://github.com/gohugoio/hugo/commit/016398ffe2e0a073453cf46a9d6bf72d693c11e5) [@bep](https://github.com/bep) [#4343](https://github.com/gohugoio/hugo/issues/4343) +* Avoid unescape in `highlight` [ebdd8cba](https://github.com/gohugoio/hugo/commit/ebdd8cba3f5965a8ac897833f313d772271de649) [@bep](https://github.com/bep) [#4219](https://github.com/gohugoio/hugo/issues/4219) +* Fix Docker build [a34213f0](https://github.com/gohugoio/hugo/commit/a34213f0b5624de101272aab469ca9b6fe0c273f) [@skoblenick](https://github.com/skoblenick) [#4076](https://github.com/gohugoio/hugo/issues/4076)[#4077](https://github.com/gohugoio/hugo/issues/4077) +* Fix language params handling [ae742cb1](https://github.com/gohugoio/hugo/commit/ae742cb1bdf35b81aa0ede5453da6b0c4a4fccf2) [@bep](https://github.com/bep) [#4356](https://github.com/gohugoio/hugo/issues/4356)[#4352](https://github.com/gohugoio/hugo/issues/4352) +* Fix handling of top-level page bundles [4eb2fec6](https://github.com/gohugoio/hugo/commit/4eb2fec67c3a72a3ac98aa834dc56fd4504626d8) [@bep](https://github.com/bep) [#4332](https://github.com/gohugoio/hugo/issues/4332) +* Fix `baseURL` server regression for multilingual sites [ed4a00e4](https://github.com/gohugoio/hugo/commit/ed4a00e46f2344320a22f07febe5aec4075cb3fb) [@bep](https://github.com/bep) [#4333](https://github.com/gohugoio/hugo/issues/4333) +* Fix "date" page param [322c5672](https://github.com/gohugoio/hugo/commit/322c567220aa4123a5d707629c1bebd375599912) [@vassudanagunta](https://github.com/vassudanagunta) [#4323](https://github.com/gohugoio/hugo/issues/4323) +* Fix typo in comment [912147ab](https://github.com/gohugoio/hugo/commit/912147ab896e69a450b7100c3d6bf81a7bf78b5a) [@yanzay](https://github.com/yanzay) + + + + + diff --git a/content/news/0.35-relnotes/index.md b/content/news/0.35-relnotes/index.md index 6ce614dfa..80b4afd7b 100644 --- a/content/news/0.35-relnotes/index.md +++ b/content/news/0.35-relnotes/index.md @@ -74,7 +74,7 @@ Hugo now has: * Only set `url` if permalink in metadata and remove duplicate confirm msg [3752348e](https://github.com/gohugoio/hugo/commit/3752348ef13ced8f6f528b42ee7d76a12a97ae5c) [@lildude](https://github.com/lildude) [#1887](https://github.com/gohugoio/hugo/issues/1887) * Start Resources :counter first time they're used [7b472e46](https://github.com/gohugoio/hugo/commit/7b472e46084b603045b87cea870ffc73ac1cf7e7) [@bep](https://github.com/bep) [#4335](https://github.com/gohugoio/hugo/issues/4335) * Update to Go 1.9.3 [a91aba1c](https://github.com/gohugoio/hugo/commit/a91aba1c1562259dffd321a608f38c38dd4d5aeb) [@bep](https://github.com/bep) [#4328](https://github.com/gohugoio/hugo/issues/4328) -* Support pages without front matter [91bb774a](https://github.com/gohugoio/hugo/commit/91bb774ae4e129f7ed0624754b31479c960ef774) [@vassudanagunta](https://github.com/vassudanagunta) [#4320](https://github.com/gohugoio/hugo/issues/4320)[#4320](https://github.com/gohugoio/hugo/issues/4320) +* Support pages without front matter [91bb774a](https://github.com/gohugoio/hugo/commit/91bb774ae4e129f7ed0624754b31479c960ef774) [@vassudanagunta](https://github.com/vassudanagunta) [#4320](https://github.com/gohugoio/hugo/issues/4320) * Add page metadata dates tests [3f0379ad](https://github.com/gohugoio/hugo/commit/3f0379adb72389954ca2be6a9f2ebfcd65c6c440) [@vassudanagunta](https://github.com/vassudanagunta) * Re-generate CLI docs [1e27d058](https://github.com/gohugoio/hugo/commit/1e27d0589118a114e49c032e4bd68b4798e44a5b) [@bep](https://github.com/bep) * Remove and update deprecation status [d418c2c2](https://github.com/gohugoio/hugo/commit/d418c2c2eacdc1dc6fffe839e0a90600867878ca) [@bep](https://github.com/bep) diff --git a/content/news/0.38-relnotes/featured-poster.png b/content/news/0.38-relnotes/featured-poster.png new file mode 100644 index 0000000000000000000000000000000000000000..1e7988c8f6e086ad4ac09b90876ee9346114e401 GIT binary patch literal 69978 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 *dxD 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 T24$k{00000NkvXXu0mjfvwV~9 literal 0 HcmV?d00001 diff --git a/content/news/0.38-relnotes/index.md b/content/news/0.38-relnotes/index.md new file mode 100644 index 000000000..88ef88872 --- /dev/null +++ b/content/news/0.38-relnotes/index.md @@ -0,0 +1,66 @@ + +--- +date: 2018-04-02 +title: "The Easter Egg Edition" +description: "Hugo 0.38: Date and slug from filenames, multiple content dirs, config from themes, language merge func …" +categories: ["Releases"] +--- + +Hugo `0.38` is an **Easter egg** filled with good stuff. We now support fetching **date and slug from the content filename**, making the move from Jekyll even easier. And you can now set `contentDir` per language with intelligent merging, and themes can now provide configuration ... Also worth mentioning is several improvements in the [Chroma](https://github.com/alecthomas/chroma) highlighter, most notable support for Go templates. + +We are working hard to get the documentation up-to-date with the new features, but you can also see them in action with the full source at [hugotest.bep.is](http://hugotest.bep.is/). + +This release represents **39 contributions by 4 contributors** to the main Hugo code base. +[@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@anthonyfok](https://github.com/anthonyfok), [@felicianotech](https://github.com/felicianotech), and [@paulcmal](https://github.com/paulcmal) for their ongoing contributions. + +And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his great work on the documentation site. + +Also, a shoutout to [@regisphilibert](https://github.com/regisphilibert) for his work on the new [Code Toggle Shortcode](https://gohugo.io/getting-started/code-toggle/) on the Hugo docs site, which we will put to good use to improve all the configuration samples. + +Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs), +which has received **55 contributions by 18 contributors**. A special thanks to [@kaushalmodi](https://github.com/kaushalmodi), [@bep](https://github.com/bep), [@xa0082249956](https://github.com/xa0082249956), and [@paulcmal](https://github.com/paulcmal) for their work on the documentation site. + + +Hugo now has: + +* 24547+ [stars](https://github.com/gohugoio/hugo/stargazers) +* 447+ [contributors](https://github.com/gohugoio/hugo/graphs/contributors) +* 213+ [themes](http://themes.gohugo.io/) + +## Notes + +* Hugo now allows partial redefinition `outputs` in your site configuration. This is what most people would expect, but it is still a change in behaviour. For details, see [#4487](https://github.com/gohugoio/hugo/issues/4487) +* Before this release, Hugo flattened URLs of processed images in sub-folders. This worked fine but was not intentional. See [#4502](https://github.com/gohugoio/hugo/issues/4502). + +## Enhancements + +* Allow themes to define output formats, media types and params [e9c7b620](https://github.com/gohugoio/hugo/commit/e9c7b6205f94a7edac0e0df2cd18d1456cb26a06) [@bep](https://github.com/bep) [#4490](https://github.com/gohugoio/hugo/issues/4490) +* Allow partial redefinition of the `ouputs` config [f8dc47ee](https://github.com/gohugoio/hugo/commit/f8dc47eeffa847fd0b51e376da355e3d957848a6) [@bep](https://github.com/bep) [#4487](https://github.com/gohugoio/hugo/issues/4487) +* Add a way to merge pages by language [ffaec4ca](https://github.com/gohugoio/hugo/commit/ffaec4ca8c4c6fd05b195879ccd65acf2fd5a6ac) [@bep](https://github.com/bep) [#4463](https://github.com/gohugoio/hugo/issues/4463) +* Extract `date` and `slug` from filename [68bf1511](https://github.com/gohugoio/hugo/commit/68bf1511f2be39b6576d882d071196e477c72c9f) [@bep](https://github.com/bep) [#285](https://github.com/gohugoio/hugo/issues/285)[#3310](https://github.com/gohugoio/hugo/issues/3310)[#3762](https://github.com/gohugoio/hugo/issues/3762)[#4340](https://github.com/gohugoio/hugo/issues/4340) +* Add `Delete` method to delete key from `Scratch` [e46ab29b](https://github.com/gohugoio/hugo/commit/e46ab29bd24caa9e2cfa51f24ba15037750850d6) [@paulcmal](https://github.com/paulcmal) +* Simplify Prev/Next [79dd7cb3](https://github.com/gohugoio/hugo/commit/79dd7cb31a941d7545df33b938ca3ed46593ddfd) [@bep](https://github.com/bep) +* List Chroma lexers [2c54f1ad](https://github.com/gohugoio/hugo/commit/2c54f1ad48fe2a2f7504117d351d45abc89dcb1f) [@bep](https://github.com/bep) [#4554](https://github.com/gohugoio/hugo/issues/4554) +* Add support for a `contentDir` set per language [eb42774e](https://github.com/gohugoio/hugo/commit/eb42774e587816b1fbcafbcea59ed65df703882a) [@bep](https://github.com/bep) [#4523](https://github.com/gohugoio/hugo/issues/4523)[#4552](https://github.com/gohugoio/hugo/issues/4552)[#4553](https://github.com/gohugoio/hugo/issues/4553) +* Update Chroma [7a634898](https://github.com/gohugoio/hugo/commit/7a634898c359a6af0da52be17df07cae97c7937c) [@bep](https://github.com/bep) [#4549](https://github.com/gohugoio/hugo/issues/4549) +* Add `.Site.IsServer` [1823c053](https://github.com/gohugoio/hugo/commit/1823c053c8900cb6ee53b8e5c02939c7398e34dd) [@felicianotech](https://github.com/felicianotech) [#4478](https://github.com/gohugoio/hugo/issues/4478) +* Move to Ubuntu Trusty image [511d5d3b](https://github.com/gohugoio/hugo/commit/511d5d3b7681cb76822098f430ed6862232ca529) [@anthonyfok](https://github.com/anthonyfok) +* Bump some deprecations [b6798ee8](https://github.com/gohugoio/hugo/commit/b6798ee8676c48f86b0bd8581ea244f4be4ef3fa) [@bep](https://github.com/bep) +* Update Chroma to get `Go template support` [904a3d9d](https://github.com/gohugoio/hugo/commit/904a3d9ddf523d452d04d0b5814503e0ff17bd2e) [@bep](https://github.com/bep) [#4515](https://github.com/gohugoio/hugo/issues/4515) +* Recover from error in server [f0052b6d](https://github.com/gohugoio/hugo/commit/f0052b6d0f8e113a50aeb6cd7bd34555dbf34a00) [@bep](https://github.com/bep) [#4516](https://github.com/gohugoio/hugo/issues/4516) +* Spring test cleaning, take 2 [da880157](https://github.com/gohugoio/hugo/commit/da88015776645cc68b96e8b94030c95905df53ae) [@bep](https://github.com/bep) +* Add docs for `lang.Merge` [70005364](https://github.com/gohugoio/hugo/commit/70005364a245ea3bc59c74192e1f4c56cb6879cf) [@bep](https://github.com/bep) +* Remove archetype title/date warning [ac12d51e](https://github.com/gohugoio/hugo/commit/ac12d51e7ea3a0ffb7d8053a10b6bf6acf1235ae) [@bep](https://github.com/bep) [#4504](https://github.com/gohugoio/hugo/issues/4504) +* Add docs on the new front matter configuration [0dbf79c2](https://github.com/gohugoio/hugo/commit/0dbf79c2f8cd5b1a5c91c04a8d677f956b0b8fe8) [@bep](https://github.com/bep) [#4495](https://github.com/gohugoio/hugo/issues/4495) +* Refactor the GitInfo into the date handlers [ce6e4310](https://github.com/gohugoio/hugo/commit/ce6e4310febf5659392a41b543594382441f3681) [@bep](https://github.com/bep) [#4495](https://github.com/gohugoio/hugo/issues/4495) +* Do not print build total when `--quiet` is set [50a03a5a](https://github.com/gohugoio/hugo/commit/50a03a5acc7c200c795590c3f4b964fdc56085f2) [@bep](https://github.com/bep) [#4456](https://github.com/gohugoio/hugo/issues/4456) + +## Fixes + +* Fix freeze in invalid front matter error case [93e24a03](https://github.com/gohugoio/hugo/commit/93e24a03ce98d3212a2d49ad04739141229d0809) [@bep](https://github.com/bep) [#4526](https://github.com/gohugoio/hugo/issues/4526) +* Fix path duplication/flattening in processed images [3fbc7553](https://github.com/gohugoio/hugo/commit/3fbc75534d1acda2be1c597aa77c919d3a02659d) [@bep](https://github.com/bep) [#4502](https://github.com/gohugoio/hugo/issues/4502)[#4501](https://github.com/gohugoio/hugo/issues/4501) +* Fix SVG and similar resource handling [ba94abbf](https://github.com/gohugoio/hugo/commit/ba94abbf5dd90f989242af8a7027d67a572a6128) [@bep](https://github.com/bep) [#4455](https://github.com/gohugoio/hugo/issues/4455) + + + + diff --git a/content/news/0.38.1-relnotes/index.md b/content/news/0.38.1-relnotes/index.md new file mode 100644 index 000000000..b900b6fb0 --- /dev/null +++ b/content/news/0.38.1-relnotes/index.md @@ -0,0 +1,32 @@ + +--- +date: 2018-04-05 +title: "Some Live Reload Fixes" +description: "Hugo 0.38.1 fixes some live reload issues introduced in 0.38." +categories: ["Releases"] +images: +- images/blog/hugo-bug-poster.png + +--- + + + +This is a bug-fix that is mainly motivated by some issues with server live reloading introduced in Hugo 0.38. + +* Fix livereload for the home page bundle [f87239e4](https://github.com/gohugoio/hugo/commit/f87239e4cab958bf59ecfb1beb8cac439441a553) [@bep](https://github.com/bep) [#4576](https://github.com/gohugoio/hugo/issues/4576) +* Fix empty BuildDate in "hugo version" [294c0f80](https://github.com/gohugoio/hugo/commit/294c0f8001fe598278c1eb8015deb6b98e8de686) [@anthonyfok](https://github.com/anthonyfok) +* Fix some livereload content regressions [a4deaeff](https://github.com/gohugoio/hugo/commit/a4deaeff0cfd70abfbefa6d40c0b86839a216f6d) [@bep](https://github.com/bep) [#4566](https://github.com/gohugoio/hugo/issues/4566) +* Update github.com/bep/gitmap to fix snap build [4d115c56](https://github.com/gohugoio/hugo/commit/4d115c56fac9060230fbac6181a05f7cc6d10b42) [@anthonyfok](https://github.com/anthonyfok) [#4538](https://github.com/gohugoio/hugo/issues/4538) +* Fix two tests that are broken on Windows [26f34fd5](https://github.com/gohugoio/hugo/commit/26f34fd59da1ce1885d4f2909c5d9ef9c1726944) [@neurocline](https://github.com/neurocline) + + +This release also contains some improvements: + +* Add bash completion [874159b5](https://github.com/gohugoio/hugo/commit/874159b5436bc9080aec71a9c26d35f8f62c9fd0) [@anthonyfok](https://github.com/anthonyfok) +* Handle mass content etc. edits in server mode [730b66b6](https://github.com/gohugoio/hugo/commit/730b66b6520f263af16f555d1d7be51205a8e51d) [@bep](https://github.com/bep) [#4563](https://github.com/gohugoio/hugo/issues/4563) + + + + + + diff --git a/content/news/0.38.2-relnotes/index.md b/content/news/0.38.2-relnotes/index.md new file mode 100644 index 000000000..bac85a057 --- /dev/null +++ b/content/news/0.38.2-relnotes/index.md @@ -0,0 +1,25 @@ + +--- +date: 2018-04-09 +title: "Hugo 0.38.2: Two Bugfixes" +description: "0.38.2 fixes --contentDir flag handling and \".\" in content filenames." +categories: ["Releases"] +images: +- images/blog/hugo-bug-poster.png + +--- + + +This is a bug-fix release with a couple of important fixes: + + +* Fix handling of the `--contentDir` and possibly other related flags [080302eb](https://github.com/gohugoio/hugo/commit/080302eb8757fd94ccbd6bf99103432cd98e716c) [@bep](https://github.com/bep) [#4589](https://github.com/gohugoio/hugo/issues/4589) +* Fix handling of content files with "." in them [2817e842](https://github.com/gohugoio/hugo/commit/2817e842407c8dcbfc738297ab634392fcb41ce1) [@bep](https://github.com/bep) [#4559](https://github.com/gohugoio/hugo/issues/4559) + + +Also in this release: + +* Set .Parent in bundled pages to its owner [6792d86a](https://github.com/gohugoio/hugo/commit/6792d86ad028571c684a776c5f00e0107838c955) [@bep](https://github.com/bep) [#4582](https://github.com/gohugoio/hugo/issues/4582) + + + diff --git a/content/templates/data-templates.md b/content/templates/data-templates.md index c0b2b5145..460a657ef 100644 --- a/content/templates/data-templates.md +++ b/content/templates/data-templates.md @@ -95,16 +95,16 @@ Discover a new favorite bass player? Just add another `.toml` file in the same d ## Example: Accessing Named Values in a Data File -Assume you have the following YAML structure in your `User0123.yml` data file located directly in `data/`: +Assume you have the following data structure in your `User0123.[yml|toml|json]` data file located directly in `data/`: -``` +{{< code-toggle file="User0123" >}} Name: User0123 "Short Description": "He is a **jolly good** fellow." Achievements: - "Can create a Key, Value list from Data File" - "Learns Hugo" - "Reads documentation" -``` +{{}} You can use the following code to render the `Short Description` in your layout:: @@ -213,12 +213,16 @@ If you don't like caching at all, you can fully disable caching with the command Currently, you can only use those authentication methods that can be put into an URL. [OAuth][] and other authentication methods are not implemented. -### Load Local files +## Load Local files To load local files with `getJSON` and `getCSV`, the source files must reside within Hugo's working directory. The file extension does not matter, but the content does. It applies the same output logic as above in [Calling the Functions with a URL](#calling-the-functions-with-a-url). +{{% note %}} +The local CSV files to be loaded using `getCSV` must be located **outside** of the `data` directory. +{{% /note %}} + ## LiveReload with Data Files There is no chance to trigger a [LiveReload][] when the content of a URL changes. However, when a *local* file changes (i.e., `data/*` and `themes//data/*`), a LiveReload will be triggered. Symlinks are not supported. Note too that because downloading of data takes a while, Hugo stops processing your Markdown files until the data download has completed. diff --git a/content/templates/internal.md b/content/templates/internal.md index 6f8d4e864..7fbfec43c 100644 --- a/content/templates/internal.md +++ b/content/templates/internal.md @@ -33,13 +33,9 @@ Hugo ships with internal templates for Google Analytics tracking, including both Provide your tracking id in your configuration file: -``` +{{< code-toggle file="config" >}} googleAnalytics = "UA-123-45" -``` - -``` -googleAnalytics: "UA-123-45" -``` +{{}} ### Use the Google Analytics Template @@ -62,13 +58,9 @@ Hugo also ships with an internal template for [Disqus comments][disqus], a popul To use Hugo's Disqus template, you first need to set a single value in your site's `config.toml` or `config.yml`: -``` +{{< code-toggle file="config" >}} disqusShortname = "yourdiscussshortname" -``` - -``` -disqusShortname: "yourdiscussshortname" -``` +{{}} You also have the option to set the following in the front matter for a given piece of content: diff --git a/content/templates/introduction.md b/content/templates/introduction.md index 95db7eab8..32df11297 100644 --- a/content/templates/introduction.md +++ b/content/templates/introduction.md @@ -458,7 +458,7 @@ You can arbitrarily define as many site-level parameters as you want in your [si For instance, you might declare the following: -{{< code file="config.yaml" >}} +{{< code-toggle file="config" >}} params: copyrighthtml: "Copyright © 2017 John Doe. All Rights Reserved." twitteruser: "spf13" diff --git a/content/templates/menu-templates.md b/content/templates/menu-templates.md index 9eba3dc1b..5efb080d8 100644 --- a/content/templates/menu-templates.md +++ b/content/templates/menu-templates.md @@ -28,34 +28,39 @@ The following is an example: {{< code file="layouts/partials/sidebar.html" download="sidebar.html" >}} {{< /code >}} @@ -89,16 +94,16 @@ In the above, the menu item is marked as active if on the current section's list ## Site Config menus -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, i.e. `config.toml`: +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-toggle file="config" >}} [[menu.main]] name = "This is the blog section" title = "blog section" weight = -110 identifier = "blog" url = "/blog/" -``` +{{}} {{% note %}} The `identifier` *must* match the section name. diff --git a/content/templates/output-formats.md b/content/templates/output-formats.md index 9af68f5e0..ff286c9d2 100644 --- a/content/templates/output-formats.md +++ b/content/templates/output-formats.md @@ -1,7 +1,7 @@ --- 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. +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: 2017-03-22 @@ -37,13 +37,13 @@ This is the full set of built-in media types in Hugo: To add or modify a media type, define it in a `mediaTypes` section in your [site configuration][config], either for all sites or for a given language. -``` +{{< code-toggle file="config" >}} [mediaTypes] [mediaTypes."text/enriched"] suffix = "enr" [mediaTypes."text/html"] suffix = "asp" -``` +{{}} The above example adds one new media type, `text/enriched`, and changes the suffix for the built-in `text/html` media type. @@ -60,11 +60,11 @@ suffix = "htm" mediaType = "text/html" ``` -**Note** that for the above to work, you also need to add an`outputs` definition in your site config. +**Note** that for the above to work, you also need to add an `outputs` definition in your site config. -## Output Formats +## Output Format Definitions -Given a media type and some additional configuration, you get an `Output Format`: +Given a media type and some additional configuration, you get an **Output Format**. This is the full set of Hugo's built-in output formats: @@ -76,13 +76,13 @@ This is the full set of Hugo's built-in output formats: To add or modify an output format, define it in an `outputFormats` section in your site's [configuration file](/getting-started/configuration/), either for all sites or for a given language. -``` +{{< code-toggle file="config" >}} [outputFormats.MyEnrichedFormat] mediaType = "text/enriched" baseName = "myindex" isPlainText = true protocol = "bep://" -``` +{{}} The above example is fictional, but if used for the homepage on a site with `baseURL` `https://example.org`, it will produce a plain text homepage with the URL `bep://example.org/myindex.enr`. @@ -122,32 +122,44 @@ The following is the full list of configuration options for output formats and t ## Output Formats for Pages -A `Page` in Hugo can be rendered to multiple representations on the file system. By default, all pages will render as `HTML` with some of them also as `RSS` (homepage, sections, etc.). +A `Page` in Hugo can be rendered to multiple *output formats* on the file +system. -This can be changed by defining an `outputs` list of output formats in either the `Page` front matter or in the site configuration (either for all sites or per language). +### Default Output Formats +Every `Page` has a [`Kind`][page_kinds] attribute, and the default Output +Formats are set based on that. -Example from site `config.toml`: +| Kind | Default Output Formats | +|--------------- |----------------------- | +| `page` | HTML | +| `home` | HTML, RSS | +| `section` | HTML, RSS | +| `taxonomyTerm` | HTML, RSS | +| `taxonomy` | HTML, RSS | -``` +### Customizing Output Formats + +This can be changed by defining an `outputs` list of output formats in either +the `Page` front matter or in the site configuration (either for all sites or +per language). + +Example from site config file`: + +{{< code-toggle file="config" >}} [outputs] home = ["HTML", "AMP", "RSS"] page = ["HTML"] -``` - -Example from site `config.yml`: - -``` -outputs: - home: ["HTML", "AMP", "RSS"] - page: ["HTML"] -``` +{{}} -* The output definition is per `Page` `Kind` (i.e, `page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`). -* The names used must match the `Name` of a defined `Output Format`. -* Any `Kind` without a definition will default to `HTML`. +Note that in the above examples, the *output formats* for `section`, +`taxonomyTerm` and `taxonomy` will stay at their default value `["HTML", +"RSS"]`. + +* The `outputs` definition is per [`Page` `Kind`][page_kinds] (`page`, `home`, `section`, `taxonomy`, or `taxonomyTerm`). +* The names (e.g. `HTML`, `AMP`) used must match the `Name` of a defined *Output Format*. + * These names are case insensitive. * These can be overridden per `Page` in the front matter of content files. -* Output formats are case insensitive. The following is an example of `YAML` front matter in a content file that defines output formats for the rendered `Page`: @@ -165,7 +177,7 @@ outputs: Each `Page` has both an `.OutputFormats` (all formats, including the current) and an `.AlternativeOutputFormats` variable, the latter of which is useful for creating a `link rel` list in your site's ``: -```html +```go-html-template {{ range .AlternativeOutputFormats -}} {{ end -}} @@ -175,7 +187,7 @@ Note that `.Permalink` and `.RelPermalink` on `Page` will return the first outpu This is how you link to a given output format: -```html +```go-html-template {{ with .OutputFormats.Get "json" -}} {{ .Name }} {{- end }} @@ -183,7 +195,7 @@ This is how you link to a given output format: From content files, you can use the [`ref` or `relref` shortcodes](/content-management/shortcodes/#ref-and-relref): -```html +```go-html-template [Neat]({{}}) [Who]({{}}) ``` @@ -222,3 +234,4 @@ The partial below is a plain text template (Outpuf Format is `CSV`, and since th [lookup order]: /templates/lookup/ [media type]: https://en.wikipedia.org/wiki/Media_type [partials]: /templates/partials/ +[page_kinds]: /templates/section-templates/#page-kinds diff --git a/content/templates/sitemap-template.md b/content/templates/sitemap-template.md index 98a4c2b1d..29b59ad12 100644 --- a/content/templates/sitemap-template.md +++ b/content/templates/sitemap-template.md @@ -63,12 +63,12 @@ on render. Please don't include this in the template as it's not valid HTML. Defaults for ``, `` and `filename` values can be set in the site's config file, e.g.: -``` +{{< code-toggle file="config" >}} [sitemap] changefreq = "monthly" priority = 0.5 filename = "sitemap.xml" -``` +{{}} The same fields can be specified in an individual content file's front matter in order to override the value assigned to that piece of content at render time. diff --git a/content/tools/search.md b/content/tools/search.md index 149bdfe05..2145c187c 100644 --- a/content/tools/search.md +++ b/content/tools/search.md @@ -24,6 +24,7 @@ A static website with a dynamic search function? Yes. As alternatives to embedda * [hugo-lunr](https://www.npmjs.com/package/hugo-lunr). A simple way to add site search to your static Hugo site using [lunr.js](http://lunrjs.com/). Hugo-lunr will create an index file of any html and markdown documents in your Hugo project. * [hugo-lunr-zh](https://www.npmjs.com/package/hugo-lunr-zh). A bit like Hugo-lunr, but Hugo-lunr-zh can help you separate the Chinese keywords. * [Github Gist for Fuse.js integration](https://gist.github.com/eddiewebb/735feb48f50f0ddd65ae5606a1cb41ae). This gist demonstrates how to leverage Hugo's existing build time processing to generate a searchable JSON index used by [Fuse.js](http://fusejs.io/) on the client side. Although this gist uses Fuse.js for fuzzy matching, any client side search tool capable of reading JSON indexes will work. Does not require npm, grunt or other build-time tools except Hugo! +* [hugo-search-index](https://www.npmjs.com/package/hugo-search-index). A library containing Gulp tasks and a prebuilt browser script that implements search. Gulp generates a search index from project markdown files. ## Commercial Search Services diff --git a/content/variables/site.md b/content/variables/site.md index 00b1d20e7..a5909a563 100644 --- a/content/variables/site.md +++ b/content/variables/site.md @@ -52,6 +52,9 @@ The following is a list of site-level (aka "global") variables. Many of these va .Site.IsMultiLingual : whether there are more than one language in this site. See [Multilingual](/content-management/multilingual/) for more information. +.Site.IsServer +: a boolean to indicate if the site is being served with Hugo's built-in server. See [`hugo server`](/commands/hugo_server/) for more information. + .Site.Language.Lang : the language code of the current locale (e.g., `en`). @@ -106,15 +109,15 @@ The following is a list of site-level (aka "global") variables. Many of these va ### Example: `.Site.Params` -The following `config.toml` defines a site-wide param for `description`: +The following `config.[yaml|toml|json]` defines a site-wide param for `description`: -``` +{{< code-toggle file="config" >}} baseURL = "https://yoursite.example.com/" [params] description = "Tesla's Awesome Hugo Site" author = "Nikola Tesla" -``` +{{}} You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description: @@ -122,4 +125,4 @@ You can use `.Site.Params` in a [partial template](/templates/partials/) to call {{< /code >}} -[config]: /getting-started/configuration/ \ No newline at end of file +[config]: /getting-started/configuration/ diff --git a/data/docs.json b/data/docs.json index 641d32818..593dcabdf 100644 --- a/data/docs.json +++ b/data/docs.json @@ -1,4 +1,1222 @@ { + "chroma": { + "lexers": [ + { + "Name": "ABNF", + "Aliases": [ + "abnf" + ] + }, + { + "Name": "ANTLR", + "Aliases": [ + "antlr" + ] + }, + { + "Name": "APL", + "Aliases": [ + "apl" + ] + }, + { + "Name": "ActionScript", + "Aliases": [ + "actionscript", + "as" + ] + }, + { + "Name": "ActionScript 3", + "Aliases": [ + "actionscript3", + "as", + "as3" + ] + }, + { + "Name": "Ada", + "Aliases": [ + "ada", + "ada2005", + "ada95", + "adb", + "ads" + ] + }, + { + "Name": "Angular2", + "Aliases": [ + "ng2" + ] + }, + { + "Name": "ApacheConf", + "Aliases": [ + "aconf", + "apache", + "apacheconf", + "conf", + "htaccess" + ] + }, + { + "Name": "AppleScript", + "Aliases": [ + "applescript" + ] + }, + { + "Name": "Awk", + "Aliases": [ + "awk", + "gawk", + "mawk", + "nawk" + ] + }, + { + "Name": "BNF", + "Aliases": [ + "bnf" + ] + }, + { + "Name": "Base Makefile", + "Aliases": [ + "bsdmake", + "mak", + "make", + "makefile", + "mf", + "mk" + ] + }, + { + "Name": "Bash", + "Aliases": [ + "bash", + "bashrc", + "ebuild", + "eclass", + "exheres-0", + "exlib", + "ksh", + "sh", + "shell", + "zsh", + "zshrc" + ] + }, + { + "Name": "Batchfile", + "Aliases": [ + "bat", + "batch", + "cmd", + "dosbatch", + "winbatch" + ] + }, + { + "Name": "BlitzBasic", + "Aliases": [ + "b3d", + "bb", + "blitzbasic", + "bplus", + "decls" + ] + }, + { + "Name": "Brainfuck", + "Aliases": [ + "b", + "bf", + "brainfuck" + ] + }, + { + "Name": "C", + "Aliases": [ + "c", + "h", + "idc" + ] + }, + { + "Name": "C#", + "Aliases": [ + "c#", + "cs", + "csharp" + ] + }, + { + "Name": "C++", + "Aliases": [ + "C", + "CPP", + "H", + "c++", + "cc", + "cp", + "cpp", + "cxx", + "h++", + "hh", + "hpp", + "hxx" + ] + }, + { + "Name": "CFEngine3", + "Aliases": [ + "cf", + "cf3", + "cfengine3" + ] + }, + { + "Name": "CMake", + "Aliases": [ + "cmake", + "txt" + ] + }, + { + "Name": "COBOL", + "Aliases": [ + "COB", + "CPY", + "cob", + "cobol", + "cpy" + ] + }, + { + "Name": "CSS", + "Aliases": [ + "css" + ] + }, + { + "Name": "Cap'n Proto", + "Aliases": [ + "capnp" + ] + }, + { + "Name": "Ceylon", + "Aliases": [ + "ceylon" + ] + }, + { + "Name": "ChaiScript", + "Aliases": [ + "chai", + "chaiscript" + ] + }, + { + "Name": "Cheetah", + "Aliases": [ + "cheetah", + "spitfire", + "spt", + "tmpl" + ] + }, + { + "Name": "Clojure", + "Aliases": [ + "clj", + "clojure" + ] + }, + { + "Name": "CoffeeScript", + "Aliases": [ + "coffee", + "coffee-script", + "coffeescript" + ] + }, + { + "Name": "Common Lisp", + "Aliases": [ + "cl", + "common-lisp", + "lisp" + ] + }, + { + "Name": "Coq", + "Aliases": [ + "coq", + "v" + ] + }, + { + "Name": "Crystal", + "Aliases": [ + "cr", + "crystal" + ] + }, + { + "Name": "Cython", + "Aliases": [ + "cython", + "pxd", + "pxi", + "pyrex", + "pyx" + ] + }, + { + "Name": "DTD", + "Aliases": [ + "dtd" + ] + }, + { + "Name": "Dart", + "Aliases": [ + "dart" + ] + }, + { + "Name": "Diff", + "Aliases": [ + "diff", + "patch", + "udiff" + ] + }, + { + "Name": "Django/Jinja", + "Aliases": [ + "django", + "jinja" + ] + }, + { + "Name": "Docker", + "Aliases": [ + "docker", + "dockerfile" + ] + }, + { + "Name": "EBNF", + "Aliases": [ + "ebnf" + ] + }, + { + "Name": "Elixir", + "Aliases": [ + "elixir", + "ex", + "exs" + ] + }, + { + "Name": "Elm", + "Aliases": [ + "elm" + ] + }, + { + "Name": "EmacsLisp", + "Aliases": [ + "el", + "elisp", + "emacs", + "emacs-lisp" + ] + }, + { + "Name": "Erlang", + "Aliases": [ + "erl", + "erlang", + "es", + "escript", + "hrl" + ] + }, + { + "Name": "FSharp", + "Aliases": [ + "fs", + "fsharp", + "fsi" + ] + }, + { + "Name": "Factor", + "Aliases": [ + "factor" + ] + }, + { + "Name": "Fish", + "Aliases": [ + "fish", + "fishshell", + "load" + ] + }, + { + "Name": "Forth", + "Aliases": [ + "forth", + "frt", + "fs" + ] + }, + { + "Name": "Fortran", + "Aliases": [ + "F03", + "F90", + "f03", + "f90", + "fortran" + ] + }, + { + "Name": "GAS", + "Aliases": [ + "S", + "asm", + "gas", + "s" + ] + }, + { + "Name": "GDScript", + "Aliases": [ + "gd", + "gdscript" + ] + }, + { + "Name": "GLSL", + "Aliases": [ + "frag", + "geo", + "glsl", + "vert" + ] + }, + { + "Name": "Genshi", + "Aliases": [ + "genshi", + "kid", + "xml+genshi", + "xml+kid" + ] + }, + { + "Name": "Genshi HTML", + "Aliases": [ + "html+genshi", + "html+kid" + ] + }, + { + "Name": "Genshi Text", + "Aliases": [ + "genshitext" + ] + }, + { + "Name": "Gnuplot", + "Aliases": [ + "gnuplot", + "plot", + "plt" + ] + }, + { + "Name": "Go", + "Aliases": [ + "go", + "golang" + ] + }, + { + "Name": "Go HTML Template", + "Aliases": [ + "go-html-template" + ] + }, + { + "Name": "Go Text Template", + "Aliases": [ + "go-text-template" + ] + }, + { + "Name": "Groovy", + "Aliases": [ + "gradle", + "groovy" + ] + }, + { + "Name": "HTML", + "Aliases": [ + "htm", + "html", + "xhtml", + "xslt" + ] + }, + { + "Name": "HTTP", + "Aliases": [ + "http" + ] + }, + { + "Name": "Handlebars", + "Aliases": [ + "handlebars" + ] + }, + { + "Name": "Haskell", + "Aliases": [ + "haskell", + "hs" + ] + }, + { + "Name": "Haxe", + "Aliases": [ + "haxe", + "hx", + "hxsl" + ] + }, + { + "Name": "Hexdump", + "Aliases": [ + "hexdump" + ] + }, + { + "Name": "Hy", + "Aliases": [ + "hy", + "hylang" + ] + }, + { + "Name": "INI", + "Aliases": [ + "cfg", + "dosini", + "inf", + "ini" + ] + }, + { + "Name": "Idris", + "Aliases": [ + "idr", + "idris" + ] + }, + { + "Name": "Io", + "Aliases": [ + "io" + ] + }, + { + "Name": "JSON", + "Aliases": [ + "json" + ] + }, + { + "Name": "JSX", + "Aliases": [ + "jsx", + "react" + ] + }, + { + "Name": "Java", + "Aliases": [ + "java" + ] + }, + { + "Name": "JavaScript", + "Aliases": [ + "javascript", + "js", + "jsm" + ] + }, + { + "Name": "Julia", + "Aliases": [ + "jl", + "julia" + ] + }, + { + "Name": "Kotlin", + "Aliases": [ + "kotlin", + "kt" + ] + }, + { + "Name": "LLVM", + "Aliases": [ + "ll", + "llvm" + ] + }, + { + "Name": "Lighttpd configuration file", + "Aliases": [ + "lighttpd", + "lighty" + ] + }, + { + "Name": "Lua", + "Aliases": [ + "lua", + "wlua" + ] + }, + { + "Name": "Mako", + "Aliases": [ + "mako", + "mao" + ] + }, + { + "Name": "Mason", + "Aliases": [ + "m", + "mason", + "mc", + "mhtml", + "mi" + ] + }, + { + "Name": "Mathematica", + "Aliases": [ + "cdf", + "ma", + "mathematica", + "mma", + "nb", + "nbp" + ] + }, + { + "Name": "MiniZinc", + "Aliases": [ + "MZN", + "dzn", + "fzn", + "minizinc", + "mzn" + ] + }, + { + "Name": "Modula-2", + "Aliases": [ + "def", + "m2", + "mod", + "modula2" + ] + }, + { + "Name": "MorrowindScript", + "Aliases": [ + "morrowind", + "mwscript" + ] + }, + { + "Name": "MySQL", + "Aliases": [ + "mysql", + "sql" + ] + }, + { + "Name": "Myghty", + "Aliases": [ + "myghty", + "myt" + ] + }, + { + "Name": "NASM", + "Aliases": [ + "ASM", + "asm", + "nasm" + ] + }, + { + "Name": "Newspeak", + "Aliases": [ + "newspeak", + "ns2" + ] + }, + { + "Name": "Nginx configuration file", + "Aliases": [ + "conf", + "nginx" + ] + }, + { + "Name": "Nim", + "Aliases": [ + "nim", + "nimrod" + ] + }, + { + "Name": "Nix", + "Aliases": [ + "nix", + "nixos" + ] + }, + { + "Name": "OCaml", + "Aliases": [ + "ml", + "mli", + "mll", + "mly", + "ocaml" + ] + }, + { + "Name": "Objective-C", + "Aliases": [ + "h", + "m", + "obj-c", + "objc", + "objective-c", + "objectivec" + ] + }, + { + "Name": "Octave", + "Aliases": [ + "m", + "octave" + ] + }, + { + "Name": "PHP", + "Aliases": [ + "inc", + "php", + "php3", + "php4", + "php5", + "php[345]" + ] + }, + { + "Name": "PL/pgSQL", + "Aliases": [ + "plpgsql" + ] + }, + { + "Name": "POVRay", + "Aliases": [ + "inc", + "pov" + ] + }, + { + "Name": "PacmanConf", + "Aliases": [ + "conf", + "pacmanconf" + ] + }, + { + "Name": "Perl", + "Aliases": [ + "perl", + "pl", + "pm", + "t" + ] + }, + { + "Name": "Pig", + "Aliases": [ + "pig" + ] + }, + { + "Name": "PkgConfig", + "Aliases": [ + "pc", + "pkgconfig" + ] + }, + { + "Name": "PostScript", + "Aliases": [ + "eps", + "postscr", + "postscript", + "ps" + ] + }, + { + "Name": "PostgreSQL SQL dialect", + "Aliases": [ + "postgres", + "postgresql" + ] + }, + { + "Name": "PowerShell", + "Aliases": [ + "posh", + "powershell", + "ps1", + "psm1" + ] + }, + { + "Name": "Prolog", + "Aliases": [ + "ecl", + "pl", + "pro", + "prolog" + ] + }, + { + "Name": "Protocol Buffer", + "Aliases": [ + "proto", + "protobuf" + ] + }, + { + "Name": "Puppet", + "Aliases": [ + "pp", + "puppet" + ] + }, + { + "Name": "Python", + "Aliases": [ + "py", + "python", + "pyw", + "sage", + "sc", + "tac" + ] + }, + { + "Name": "Python 3", + "Aliases": [ + "py3", + "python3" + ] + }, + { + "Name": "QBasic", + "Aliases": [ + "BAS", + "bas", + "basic", + "qbasic" + ] + }, + { + "Name": "R", + "Aliases": [ + "R", + "Renviron", + "Rhistory", + "Rprofile", + "S", + "r", + "s", + "splus" + ] + }, + { + "Name": "Racket", + "Aliases": [ + "racket", + "rkt", + "rktd", + "rktl" + ] + }, + { + "Name": "Ragel", + "Aliases": [ + "ragel" + ] + }, + { + "Name": "Rexx", + "Aliases": [ + "arexx", + "rex", + "rexx", + "rx" + ] + }, + { + "Name": "Ruby", + "Aliases": [ + "duby", + "gemspec", + "rake", + "rb", + "rbw", + "rbx", + "ruby" + ] + }, + { + "Name": "Rust", + "Aliases": [ + "in", + "rs", + "rust" + ] + }, + { + "Name": "SCSS", + "Aliases": [ + "scss" + ] + }, + { + "Name": "SPARQL", + "Aliases": [ + "rq", + "sparql" + ] + }, + { + "Name": "SQL", + "Aliases": [ + "sql" + ] + }, + { + "Name": "Sass", + "Aliases": [ + "sass" + ] + }, + { + "Name": "Scala", + "Aliases": [ + "scala" + ] + }, + { + "Name": "Scheme", + "Aliases": [ + "scheme", + "scm", + "ss" + ] + }, + { + "Name": "Scilab", + "Aliases": [ + "sce", + "sci", + "scilab", + "tst" + ] + }, + { + "Name": "Smalltalk", + "Aliases": [ + "smalltalk", + "squeak", + "st" + ] + }, + { + "Name": "Smarty", + "Aliases": [ + "smarty", + "tpl" + ] + }, + { + "Name": "Snobol", + "Aliases": [ + "snobol" + ] + }, + { + "Name": "Solidity", + "Aliases": [ + "sol", + "solidity" + ] + }, + { + "Name": "SquidConf", + "Aliases": [ + "conf", + "squid", + "squid.conf", + "squidconf" + ] + }, + { + "Name": "Swift", + "Aliases": [ + "swift" + ] + }, + { + "Name": "TASM", + "Aliases": [ + "ASM", + "asm", + "tasm" + ] + }, + { + "Name": "TOML", + "Aliases": [ + "toml" + ] + }, + { + "Name": "Tcl", + "Aliases": [ + "rvt", + "tcl" + ] + }, + { + "Name": "Tcsh", + "Aliases": [ + "csh", + "tcsh" + ] + }, + { + "Name": "TeX", + "Aliases": [ + "aux", + "latex", + "tex", + "toc" + ] + }, + { + "Name": "Termcap", + "Aliases": [ + "src", + "termcap" + ] + }, + { + "Name": "Terminfo", + "Aliases": [ + "src", + "terminfo" + ] + }, + { + "Name": "Terraform", + "Aliases": [ + "terraform", + "tf" + ] + }, + { + "Name": "Thrift", + "Aliases": [ + "thrift" + ] + }, + { + "Name": "Transact-SQL", + "Aliases": [ + "t-sql", + "tsql" + ] + }, + { + "Name": "Turtle", + "Aliases": [ + "ttl", + "turtle" + ] + }, + { + "Name": "Twig", + "Aliases": [ + "twig" + ] + }, + { + "Name": "TypeScript", + "Aliases": [ + "ts", + "tsx", + "typescript" + ] + }, + { + "Name": "TypoScript", + "Aliases": [ + "ts", + "txt", + "typoscript" + ] + }, + { + "Name": "TypoScriptCssData", + "Aliases": [ + "typoscriptcssdata" + ] + }, + { + "Name": "TypoScriptHtmlData", + "Aliases": [ + "typoscripthtmldata" + ] + }, + { + "Name": "VHDL", + "Aliases": [ + "vhd", + "vhdl" + ] + }, + { + "Name": "VimL", + "Aliases": [ + "exrc", + "gvimrc", + "vim", + "vimrc" + ] + }, + { + "Name": "WDTE", + "Aliases": [ + "wdte" + ] + }, + { + "Name": "XML", + "Aliases": [ + "rss", + "svg", + "wsdl", + "wsf", + "xml", + "xsd", + "xsl", + "xslt" + ] + }, + { + "Name": "Xorg", + "Aliases": [ + "conf", + "xorg.conf" + ] + }, + { + "Name": "YAML", + "Aliases": [ + "yaml", + "yml" + ] + }, + { + "Name": "cfstatement", + "Aliases": [ + "cfs" + ] + }, + { + "Name": "markdown", + "Aliases": [ + "markdown", + "md", + "mkd" + ] + }, + { + "Name": "reStructuredText", + "Aliases": [ + "rest", + "restructuredtext", + "rst" + ] + }, + { + "Name": "reg", + "Aliases": [ + "reg", + "registry" + ] + }, + { + "Name": "systemverilog", + "Aliases": [ + "sv", + "svh", + "systemverilog" + ] + }, + { + "Name": "verilog", + "Aliases": [ + "v", + "verilog" + ] + } + ] + }, "media": { "types": [ { @@ -197,6 +1415,26 @@ "noUgly": false, "notAlternative": false }, + { + "MediaType": "text/plain+txt", + "name": "ROBOTS", + "mediaType": { + "type": "text/plain", + "string": "text/plain+txt", + "mainType": "text", + "subType": "plain", + "suffix": "txt", + "delimiter": "." + }, + "path": "", + "baseName": "robots", + "rel": "alternate", + "protocol": "", + "isPlainText": true, + "isHTML": false, + "noUgly": false, + "notAlternative": false + }, { "MediaType": "application/rss+xml", "name": "RSS", @@ -216,6 +1454,26 @@ "isHTML": false, "noUgly": true, "notAlternative": false + }, + { + "MediaType": "application/xml+xml", + "name": "Sitemap", + "mediaType": { + "type": "application/xml", + "string": "application/xml+xml", + "mainType": "application", + "subType": "xml", + "suffix": "xml", + "delimiter": "." + }, + "path": "", + "baseName": "sitemap", + "rel": "sitemap", + "protocol": "", + "isPlainText": false, + "isHTML": false, + "noUgly": true, + "notAlternative": false } ], "layouts": [ @@ -1430,6 +2688,12 @@ } }, "lang": { + "Merge": { + "Description": "", + "Args": null, + "Aliases": null, + "Examples": null + }, "NumFmt": { "Description": "NumFmt formats a number with the given precision using the\nnegative, decimal, and grouping options. The `options`\nparameter is a string consisting of `\u003cnegative\u003e \u003cdecimal\u003e \u003cgrouping\u003e`. The\ndefault `options` value is `- . ,`.\n\nNote that numbers are rounded up at 5 or greater.\nSo, with precision set to 0, 1.5 becomes `2`, and 1.4 becomes `1`.", "Args": [ diff --git a/layouts/shortcodes/chroma-lexers.html b/layouts/shortcodes/chroma-lexers.html new file mode 100644 index 000000000..0df2b868f --- /dev/null +++ b/layouts/shortcodes/chroma-lexers.html @@ -0,0 +1,6 @@ +
    +{{ range .Site.Data.docs.chroma.lexers }} +
    {{ .Name }}
    +
    {{ delimit .Aliases ", " }}
    +{{ end }} +
    \ No newline at end of file diff --git a/layouts/shortcodes/code.html b/layouts/shortcodes/code.html index 83220c47d..2ee20b1eb 100644 --- a/layouts/shortcodes/code.html +++ b/layouts/shortcodes/code.html @@ -5,6 +5,9 @@ {{ $.Scratch.Set "codeLang" (index . 0 | strings.TrimPrefix ".") }} {{ end }} {{ with .Get "codeLang" }}{{ $.Scratch.Set "codeLang" . }}{{ end }} +{{ if eq (.Scratch.Get "codeLang") "html"}} +{{ $.Scratch.Set "codeLang" "go-html-template" }} +{{ end }}
    {{- with $file -}}
    {{.}}
    diff --git a/netlify.toml b/netlify.toml index 5955d26cd..0f24d5ae3 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ publish = "public" command = "hugo" [context.production.environment] -HUGO_VERSION = "0.37.1" +HUGO_VERSION = "0.38.2" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" @@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true" command = "hugo --enableGitInfo" [context.split1.environment] -HUGO_VERSION = "0.37.1" +HUGO_VERSION = "0.38.2" HUGO_ENV = "production" [context.deploy-preview] command = "hugo -b $DEPLOY_PRIME_URL" [context.deploy-preview.environment] -HUGO_VERSION = "0.37.1" +HUGO_VERSION = "0.38.2" [context.branch-deploy] command = "hugo -b $DEPLOY_PRIME_URL" [context.branch-deploy.environment] -HUGO_VERSION = "0.37.1" +HUGO_VERSION = "0.38.2" [context.next.environment] HUGO_ENABLEGITINFO = "true" diff --git a/resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_480x0_resize_catmullrom_2.png b/resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_480x0_resize_catmullrom_2.png new file mode 100644 index 0000000000000000000000000000000000000000..ec2bf453ca41b205d36bdab58489657550eff8a0 GIT binary patch literal 30670 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
    aq}o5>@RuvASig^a zZ9fdHusg0=D6oZ1lwd21~TfK5_0nmmO9~B!fYeY*`@| zhxPu^b5y=ez?h!9xYnAgQHfMaylS1+2Pt0MT)>lj$39@6bWp*TWub(nhB0DNRG4dd z1gJ3aJG{X9lqXM79!X-Vl^F59#C-5n;)GhDc(N~CFY@lAd%TY8GDKXz{XS~|d-!04 zP2LWp*S&WiJw^8}EeM>DDWC8oY{X5oES-L8jvGZzexK*gy(j~#VXO-s_N=fDQ#JFR zWt~o^0q_NR#n|0kTu83?@&f*HD_^zQc8J)weY@A2%2v&jV34jub16|KTa_L=9Yz=d6A9O0Q3O{L4OdZ2HJqwH_w?L`xU;ma=#O<@ z`yVm?8Q0!mx*cyIl$BoszBK?Q~jab35DG?VEO| zJyr-~yo4kaGOiMD9t}kRu3KSiGUHiM*_lfvjt;n*wW0Ss(!D~uJ~Kkttf3~$B1&T_ zM>&tXEU2mKx5vl73f~Vg?htGJGS3#S%KLV^-M+f&bQoa28ZfV{-7H>iO*lO9q`|EQ zm3gVcYIIf1r0F^Ir6FRGrO8perX$FTS9c(f6jZ4rrtDu$S^vss4RE(Y>0HX4s?`B* zHNL@j_-OIxR_lVT_y(Wbj4&T6=>cn~>>R|AZy6D@oKCFWnOVB3ewwH7==1b!`-<6R zJ6v00!W6GRRY~&)g>N<#fpwsJ%+R7x4TK^({*|WyGx|o~5LPcEllv(~_FH=Oxp+8V3;O+*nx^#s$3z!~;GE`0REZLSO2-bS4 zj(tkmkbZs1H)M37*8tsEzfxkO<`BaQU_qIkP+zNLgufxGp&bAAFhie1tkW4^bs)S~ zb%LdKbyfY}$B$W~b}vp7<^k)IP^i{d#mTC^p%I%-M}1hPI%T8EmU-%wiPuyF*SEs1 zG$d@x5pi`}AU7g)h#aKP^Nh08?7}GLSD=c?{9KYbjqfzw_X0lC+HIwuC9`xHF@~l; z)I?d;XJ7e#+8^=RrXHVDR59buxc3Muf}EF99GSD+;dE-_*wgnzt4mBlJk<;KA>(zD zomO9*_Oz^Gh}Rl-geX4pnUJu z7781Nifkz3tNZHdXd&<7iZ>9`AWJXA8*-*1Mw~Gdv2SaH>dX6HE0YYDZ#cGC354u; z{B%1PEQj0vy?~MM6-8`+Bpx;&B`RZ8i|wqsI~(Atp6KYSdt!lQwZ*c=7RSp&SXN3| zWLs>jm+6Fsy|8E7_=NS$R<{;~@I#B$F%?w1U54-@)-LUn(O#&4RSk=PS^R!(Jo&H} zR&Fw5L1FX4KD!6pM`S(d455WqsKP^h5XZ1&8-i2SQ^vIy`aSR%bM;c0bSYxU1GW!k zMOHmlOj%q!a4%G-@^5>5@B@Y7BWxSbo)re*GDn?nt4-}=Xn&)ERl)?ZRfZd4j87OF zUo7yAU)7)=hSu1Eo(N-N$q_3Tw0sRvp;wI3w8qra@-3FRu?p~gRWn>ekww`sx3lsB zp^~ViT7Crn7Sv4rgxHRttYgtYG*i03_SsA@i6K(}Ly7h_EHTM@7d`rY=4RGSE^-DzeJ8FtFuaTl+T!C6}P z1kvbP7@M$*$*YzarN=!_8|Ycq4|vh3ss9YIzA2`Vkd+V0gxLfZaZ^-ze-txuVs%Ep zp(CSaz8|sQ4Y*y&de!qg9Rc=C8-g}s8+XSTgE9>4!bt@lbL{9XYSnYxJ<_M4Wj>2k*BX}# z8&8kB^r8W~)9PqRd0qQd#=iow{vEeUygFCy@_H5ndc+v><0CzNSU7I-lb+-1*s&=v z4acZ8&Q8C;qa41hl%fzBUoi5L30RB{KQ^p@3w??_Q|(s6pk1AN-eEe8MKxxz9>5<+G>}}Ipujz z)Xuk0WBF0YEhW?~^5_4`K2$NwGHYp-gN097-L20(C(H1$bE)5{qS%X1p7D5JX}NNb z1mxWPoqOa@D0H1M=va4Krz-5HL{8fy?v(BM{|5j7|NqMWi!rmYnF#;@002ovPDHLk FV1o9SPNe_< literal 0 HcmV?d00001 diff --git a/resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_640x0_resize_catmullrom_2.png b/resources/_gen/images/news/0.38-relnotes/featured-poster_hudf8012d38ef42d46a6cab1b31156bf3a_69978_640x0_resize_catmullrom_2.png new file mode 100644 index 0000000000000000000000000000000000000000..b97d27f322eb83d0d266270592f321427d4ed775 GIT binary patch literal 50111 zcmV)2K+M01P)0x<%eod;h~b;Grz=olF0#RP35Z|7e)< zVtDdvaP6K&|5T^{Yn9(jhX1Bn|Gh%;W_0nnH~+6s^Sw3TS$O47i~omp;!cSA$TI(- zUhGqm?UzjNwK>*~FzHc_>5xtTbB+JAO!&nz*+_xxu{-m;Fxrww?yNWewn_htx&NGF z;)YG~T7mLkeE)Be>6b_Ulx*s)Jn5)3@~l7ImqhTHPVq&R@=cBZc8TefO8<*=|9yht zP=WuDaPml#|CO=-fq(ychW~|o^QcANn?mhamGfJg|Cne0fq3$wN#t37=Y~_hfCsXp70HP%ve@L8AOabDeNV&s5V>Wos*UtRx_wC$5n=wW@~fKc02bI?V4 z@=B51nl0p`K;n5?=B7U5RFBt;OX^&N?x#KFkV)BWS@Kke+E97elP>abYyXe7-g#5$ zo;9YaxlR))Poz8zm*}P%9XKP(O5x`4l=v{HiVpa5Qg!p)S$#_KLNq*=+j?F}O`e%^&s7~rseA7yD@p5<6 zhEdFHPt$iz&R1^9PHX9Ia@#zC`E029aEbb2mg;XUX}ZL zuJxi)!fr&GX(9NEZ19y_(u*#QUL53cZ0Bd3`IKV$iKFj~UiW*C_L^Dyp;xVQCGdo0 zw|pu=DhRneYQKdm*^*n{oM^gYK_C(W_GzAWP!`~MW$d1Ikc=!z004jhNkl$<=uT~_wmYFv9KcMFlrw7A)(bv52GzPp-Dk*k#K zv3zZ*>78{8$8I|`AY~c$4yARAmsVd>Dp{;Rf+>(8AiK+QOn{!om;&P@wiHXa4L!0H z%^xUQ{eI8e?>TQ!B$<8c?Nrq{heMrDeSa^{?|CXk3{|zi>_+f{t!R(~<_8DI z2OAo69scJnQ!Z=A%HA>6ZrC%E{Db(e_)q1|Ed6sZ`N6TzmHaWbBHN|dH@g$Bi9^OM z_qeno`%+P{TPx99rPeN1Uew!Vy?a-kwzIgHC#gi9Lp1gSS;>8zVd~t}s z?$gBX1LET~gTwGjKTvSwy9F`z@@K}NfRS0A|p4IPjLHV3yJ>Q_7vBU5E}*Pr{_d z)(}T+2n!$q!>_0O@>vG?@=1l4+p>?&!hhQ|ZQml33jot#Zfh)G{S*8FdW=FYeN6v~ z1%4WT2P!W*_3!d!h2MqCggz&J`}ZS$v;lulo-CKt)YR#5wM5|Nn>qD@Tf7hEcv=ZNt{W`l&}$bv?MeNUiEk6>hen=ac68u ziiKhdak0oAP5Gx3%i5QTLqV-H<4BUDeHYZ%fb7w-lqpt*!!iZ253GlRq6lfBu-1?RUekhP8dH)c}HDeDQ^CT^9lm9YPaq+AW_!9Ygso zHpQtXMozk7?4!5X`L(qDD4CNANcOAFiX=sR9V}_BOy!CirgGzmzL-)?QD%h72*=Sf z4eGZMd&vHbskB}>XQpM!Zzo#?$+M*78~S&{B#xlQpeY1W5N`@6mM?J!RG`j2R1XiZ z$Zmg&_Y@V43QKHFb;@ENsYUEKr`OO=8C4Kve{3?W87tG~Pzhn8 zqM|90CYqKeToe={W9kU$dxqczT zh@Y^(sD2LTuhKL2p!C_rkJ0CWACtd*QvTTeo+n-i+N^OvH!;kYHq}QV)rXu|1qVCb z=zgoGL_no&H;7b7TP-~_dFD*&BZ|{(+0V7fVYVzgD2hPCB>tailCPH~q(=WT8N_=~ z2Ps!1(K_=S*w@t5jfM=9NTh4ZAVjz&CJDZTKg@MlZRWi0xg-+hcg6hXY!?5kN`Mpw{P1qp-91gnrj1ch4YXlQ4FpLL63 zN|P{_332 zIy}D%)bVp;h&zAG;&Stg6tX2;_OZiC0s~T_q@$(G3(uxm%p_X|@p4FDsgyzl4knVq zqiTz39p_v)_9RB6X4F#WpNJIqi@4~Jyqol2smPj^Mbkjs6p{>)1lrIxV_PV5Xjt-F zW?3q8XDLHqsIZ27djzP&JS(l1-(pEPQC$+b7iruT6}dZr9KJ1{fFa43O0It;f<2e$ z!!`4_z3uJl+P@z&FI(K^a{RdYQ%AIjup}~z#L3bXmim7LR6|cuQjr#rk*}C(DT*znO8kjsXnApy zq{c~@Mpaw74kn4qc|4&9}h?Znvs)VNJDfcP-|zB56IH3A0v~R zLW5Xt&WE(@7XO}G)T315q^H~zLKZtimPPzJ0kN{`7R2HvjYmz@g+pwwawbSh($Kz9 zre#s zR_@eWT3l#|46LBmBD!MQ0tJ=Wvxq5_`0<@uD#J#CSrXxp15@rK(Od27V98X6shK}Z z<$^8Y4ao0{LDKEQK1-V}k5d2g$-^`a)pKcR*#g-Ur`$%i%WWf&VxE64F2eYuSn^k? z%&!o?0}k&`=TE?Q!C`wH^mTFP&#bAj;U{fyjTFLtEHdGVX}$wHg8?B-mh#bs7pK0d z(mZM?86*xMQbgYt=TzBcb-GOHgXHLW-AV~&FC`E31iwDF`1OwDJF@#TM@NNLoNpBg{ zS20Ld&(uttuq`a`R6WK9HA>w5F$|}%q#lwcGAdi7d^ba-*9?iJWztPar!RZSGIdu~ zT78i_mhvq1mns?Gx21WWLdZ!xYuN1yi-m=wZODItFewz&!vf0)gq0qE0G4c#8U!VN zC0h2+$NO{ghbg~9ZuIR}y}mUf{9~r62M4BhWE41}rKU&}6E&q# zIf>FunfV z{CMhR%aH0OV_oS0*2s9cM)r=>@VxZCea5op3JMhrF#m^Sl~o2+d3~1n+MC32B4u@2 z{=+m(t@Bm6K+2pMq#r@$%uE?2tA0__?lBr#h$~;Cu9+!vkR%Tx^34WSSW|DT{75W2fJF}XZ%?sE!W5JE!(RL6?E7_g zy&ZDOpNsm*&{y=f2`{fkQCOoAF~t3&Ntr!QYzTI71vIFR*qk*>&o_$&nlmGkV=0Oa zVT*-~nDlfQrbQ%BtZ31?JZ0&LKWJ!{kNhe11v1Dh+SwKT)=H98|BEDB{yFM}+Fb%e zqhGj$rb!QyVx@=UvgXeso~flW)NW;1E)HPv9@+O%EUK?G^ILh*S^DQ|er?4rU3TkR zOk-QIAR>@VCKCzNw})VARnE^q_TOYVL!PB`KWc>&M6VjMXnU9nG5}RitVzzclpdjAWSo~JqE3q&L{fcVDMg^)e^Z@Xz8A~T^^Ce<`subz zJyWEdKUL|Zjs6g9SRxTA3s*Gaxu0n0YHccUB(h~XdT)uzG^LzdGM8`C@1QAifFwkb zzJh7WP5I|6hr7A-gh>0#2Y>JcV6k2Q?B>@Ye_Hgr-y`$Fh8vkOu;t*@s6ZI;6Y3Xa z2r?EE!3<9i*4TRNYFNGMi!TttfI$*{QZSTt5KbJkZoK!1`(fl%DF;vXjHompuc|W* zk)Kw37on%6#^MMgXjm$HVi|fqS=c_=6JfWjmZOwDV2eXiABasG zP3k7l9F?WIS`1Tz%}`MXjm@;GIz?}Y=%<6`;+zYNWyGh_wLp8`5r;4F(NPR$s zxuv24YRW_`Yf#H;ia1#Fp)9f~U6f#(dJ!^l+4Lhd3Gr4%1s?cL4Vk@4+q*UVc?v$y`8N^|PA*UZ9097aZOnp|6V-9qges z&iiELUyU@rlDMEi5U=cwL@-mMM?5{&pH@b*{3KwgGBhn@RH1`qs+^l8+1{9cDh~8zD$w} zXM)9%+wj2u0gT z{;fieVViY}T$-HtphV64Lc2al@$)u4Z%q3xID6ix`hoLj=m{4!>J4L$gfhGQCZtdg zNQ5!Y?5iPmTt(IU_U#K8G@uhgV##1cgs#U85Ll4_iA=Sc8Ja~jk$Q=Y%e=_yjs zadT9(qciNss!!7bBk$e0al!pGZIdFoZn5`@dwdR6`FzF2)B}{WzSt`dO60&J&HhUI zE)W6_dF7sM`0cURJJ*mt-Jl9|Y2qa)pYhl@NPNU#M(#-Eq;Zb{rA0D_DttXPkj5rt zx|KC)L7vP6li;O8}~sIf0vz+uSd_vepzwq(&ffO-;BUb8eGl)(-+k{iJ;~Ks+>+h?*%f~l{U|YOV7uC+3hBR4^i<e6nre_6$@6hANdb+*Q6Z`FI;vYj#GaOy_1&YL zj$-Gzu$?lUH@mnMd5D(>u1=g47cPhL4V(H$ip7<&S3>4Dpq5rszDk#2mlrRJ%2U^p zXX5&KCSShz;)^E?zkRC1msB{{>Pa%ep6dwo^nnSn(D-;jD06^}(D zA`T{f#E4*xDowy3gaN}cVaiuiMVh+twNwnEb!I7nwCrWovIfPHDH^->C>!L;9zB00 z5(*C)bcfG{LRal0ws*Tj`7WE7UdU~ZKh5rzxx^ip-6y)*Z=dPKHr7{^{Hgj;m)IjA z`#6ZWaUeOL31N(-E{1}(9%7Ob43L^2H4TgiZb`+b>dP=`cG^&)N$Xf-plr$*N19+; z#gPpbSMy_QE;{J2vu^UDw%g-kzv{8NrX28hCqr!tUCJnq$cy!H#s7v68=#R&gM$uWP`uvN)85T(pms~ zJ0la(hE^db27VB-RBU3IT9=7o(%c{^moj9cT3BH^LRPCfpr_njVdK%A9=8o#ai-gsl_70qWo7JHnbbVq7=LB13712M4%KUgrVTCySG3o6 zpH}c9=N7W#C$lZ`DKWDMS3(x1604k$#yKbwG`EASOa>LuR1-5>wi%q2Q^=;-FvL$T zke*-C)n*YS4O-P$i&ApB(8Y7GZLxh9{!QXlku~%G7epqykW^qMSfE>RYa4 zlFAx`R3exLnc~hVe^dv`98HOcD}yfdDa%+w?4GWI#UAP>j|Km<^JwIY95|1aoLdM> zYD3ra&oHgSyNj0*K5V60mDQmO^+NnW@fw)$X~60H(QY?w{9293LI)E{-x4y1%ttAl^Iky8oXwBBAQec7-X(m!!$GpPb+{oX#$#!3?T#T$P~Gx?2qkN z*FSpB34LDYPZ=_WQi&gaL}w~B=gV%0i*11rZg=3ofgMn_%chWX{E1S2EiEmD$IE5# za2X%5NdS?(a-gpst?nUiaJi#b+g01uz#d4eRruLDd-st!cQdzT2qCPeKI}s&no0)- zMNM=<8tkA*R;&6LSvMWb1c*n+E92CBSC*P=S?QWdYPL+Wv8jrp=})nk>bH<=zdj)O zBe*!(gEIi1zKue6cd*3nyg6LAZN!rt3v8;9fyW`Pr9NQEbxO5O%KWyG*m$la`{IRQA*_)o1|f`lkyH z|K!y<(HXP{#d@QDB-_AUJ-zwUz6$hM%IGno@P zl^?2yw*L^)*MP7!F!E|^y8t`5!=*a*6y*;n(+E^^3vv8Nt`A#6;YQp%yU!Q2IgCOd z6G2tIsv_xtLAom}HV~6ef+k%#i}Ypfid7*$t>58-?l3|spX~R<*-RPTP!cX08jBH zc;|9?d1>i|3#DLofxhzk^72FVhwAH@>E)qDZ7sqFTF1Zx=wgT;(1-ZFDBiaZ`OECv zmm#wav0h(MbPy!C(C}Auh$Kk;frJnTsx#TE4wA@Mx87p+0f$(ba;9k6$41B8TD()( zRMU=XMp|_M%PK-LXatL}im3ik$#H?N9Ggy}BG6q1g)8Y5IN0UW8GE>Y5y~_5crcD5 zvLVOT;P+y&)N>mtaOE5}mv+In47YmV4sZJ#FzDdc7KIP6tE-E_r3){0u)yT+#fv8w zGy5{g9xXiO&Y zmU9jzTOQ0fTPfYBwA?OzWH0r2Dd)HPL+r&v>g@~ldsB-_Xz{Y;J8`9b>O9 z7OU%u0fXTfKEz_NF63`3L-^woC=2w0_AE1NiJ(^dN4j_uDntp|-m50bKdPPz%}~HL zN3BVJjZ(|Nm~^smLr$nbrrNcoYgA}M=J+u7s3AAH{pGY|%1bjIClpRcrWD@JT$Tpa zrh?q{6R2fMOW7VvGvyiBEVG>tNu*e6@Zjfv`sc@whki8lqoKcg{OLdc>C4aW4f?YN ze3Uat_;S7Te<|k{S3DJ4h}KZ=-wtv7pw)_2R~v&1v@l)~zF1wjE6nhF^5Q^-0m$*w zO0F_I@0SRYfR)r;g-ErZ*2N+1Zz$wiCLN@&E3Sh9?ZuS928X5mud&;eI@@0#c}YSeCM9N3;p5qg@p?WKLD>D-(6T( zUs(Eo7Sev73vfaJR1!9IPUGO`g@GHOY%y|8qf`Nwd4Zt6^aW8|>|SyfHG|7>;#)@!~>I;zz77-e(wVsskgW zI(Aitg(jA5Mpb%(2}gXwy6m(hO;DO(<=Bz=LTP`8p*%Rf9EUv8T(M8#5l172>g z7I5IQeJ%kkNIw@a=4j~Z0>5wddpq3f@zttu*Na1$OokvRtT6D0VwVU8NpXR6^dy+f zJ+!%g!C+92l0%xGXDiOH4yqnvcrQRoUt~XDo1FEzF?Jv zHcgp>5&S9qN=tproueJesd!jINck%*{|~MkeqK&C)XcXQ{FayB>)YlKDi&^YE!vd= zetvsD=l5A5n=N$J);84c$FSp*&;1lyZ%3bJUxY$INuY255x?6wzivX>T}|Zl&^AQJ z9jV@5MZdOs~E*Uphk%`yng|W4Jp7tmRvG z6=s5KRm5AjV+Dj(@nv}^6AEe?i1(q}3EoH)LMNUS^~}^7bE``HKW2Y5603<;2Bkuh z{*~&0Ds7SU7<>*6)!k;AG?k~ae`K_g`rT3$uo!d>C<}CS51;&?$Z3B|%gYNf!4bhb}h5gB)Tqu;0 z1TqQC1aIF?+*SYv6+T?y63QIQ^qoR4p{6DZCA74QSg{&F3|7n3V2DRIxYvMb>vA(p zeQG;ZQ%|SAGW6M)5lxG1AtrdU{iLfY04%l%AUo-WnBa=6$V_|iSN^HTmVYYeNo|e5 zGF|`fxyz^4jw}f&+LZ#X-tOX?7X;usPc_$e#p+@ODIgs3mq8#hY>$CrE2ZvB00Q_Wk3Rnl*HWUir67TA$ zi`B)(R=4#N?Cn`81iL~4gSW9IfWZX&sRcoa82qa$u@WS~OzQ~}LDCOLLXc`bRN*2R z)Z^!Xmg6%GI*TWVP@9aD`hF&5OO!p!pJAa;ik@SOBmr##2+aId0UsnNpzNK~=wtd< z|E1@q3lczw0q2|VEH16+6~5T+6j1td1qC7NwW5*_u!2*9P7Y~is&O)#{7U(OxD;3uDaA`nan2=%lws~<@4D1=E^HGwWfdrs5@3A7rY z1|k}nvL}R?SlQM{xpm7kNh<0LXt@of$|??<^w@05W5^I|Zy0n-}H-)(QN=;qdxy{_sD84QBj(A|w#-LqCv? z`?ZfPXV_HR=Q~i{9YK-{1XQa-D)ABwR-+l_D^>GC{Q!0TEG=zfsZ^lqgVU-FXog0q zDEVbUVbo>HP${4u0yAnf0Q-h~KgEh^(ZBDef41cAvsc=#U)k7Y{FN#9aR(6yn&4P0 z1_tpHZvdZrtJ_j-%niUJ+k6d|06liK19*OidibYc@JuFn`x8dsC&CR(;4f{l(Yz#e zLL&>BYYZoT=19GLXf?CwVge#ucubnp`U-+*?Fv33Ue{?2Jnb? zl(0Hh$2_?)9nx)b%S&NdU(mQa1q>X?g@VD`W1kQSOvqFWt#wuwm3LxF5 zP-5&84+0ZX%Yq5T8%ab{Y2?vzP4t`SRb{8@Ig!6@+{x!^TNnMzzP7_d5b?m+ z?tDOjZ+LeALff4J1_ED(J{jZusW^laDCU46Jsctkt`>c2r1OpTZiI;ENS}f!4yx2l zFr-v5K=jR^_EZZd_zYSyq%~E5s|GFcEVhhWR9A|c(A*XTD*zE2f3Ht(71;(QfuztA zt5X`L{Wt!14Nmz~?&D5l+KQ2I_!}so3}?p*OT#p(Hnm#--{=_|6B4Kb;UGGJq+E(A z7v}jy0vclpk_1%FAFY;2XoKdI8j47zTH5!3bka;&Y$Y?vw4z!4?hx%Fk-fc^j9W}P zLo_YOaw?!r01HyUBW(>X1lIFHx$V5T&ug6sO8xZCAnL86m)CiQcc*|dntfi#W(XkD zzo|!G@8%Cf+ZcoPiAx-k2#VCQsH_sKRP%ndpy=e~c^X+ULyGTJE{0@Xs-^bf9g-Z7 zC47ddP0c2MEs4y$MtXzwUN(_4w3Op#=q8=l`D-x#=Z*1r)nez^TTmT`OQ@nRR8^`LnGw}ezZ+*+;)h0Pzn*20dKj6A zw)ucE1Zk)(NCBs@FP~z>t3w+a8b1I2Hd`N^cEgt+$4*@`Fu| zA%4K$?g0!eX%eV~A+qG2l(67Zbx`zVsB$X`86B#GE~EP8IFT8Yi(EphWfW{sug@^` zSXO2M4e1oBsRO0$rFE^^u1r3xotfZb0pJ0~pESV*0a(#pD;Qz}e+YjK+e^x;1{Vv? zcd*m?(28EJfV<0vtd9u-3p2rwrW)}w^^E|0Hb%U_+ggvDA}eI;jYA2mR--|b??)nA znXJK)!8{cmBhKr&L;B06c%Vl7fbD0e0nEvkT(l_U#| zBfAO#aHE!0Gu2B56@Sy)k1csT>Ovsj!A>pW+fo6OUX?dK?bDwsKeiO8h(f5r2 z9HI)SBrwFiK-%-G>!HLesG$_n`hT?$S=nT!qoOD)2%&MnAmOj6IfOC^NPfu5ROvxe ztF$t-J`#JbP`;`8fJy<`iLYJr`m~O&e*HCGSHE6mZK=)%AmOjpHwnnwwB3M90o=v} z|6pkCZ-)B%j=om0+9(t-Jj{*_FFtzqT&%RZx~}+Z^xR_a#@EnR)pb2JMOufq^Z9n) z+rIzC-VvsNV?+Yc1Y;abeK?|q)j{&}aE`erwcL#8{Rqh_7<2+vm$B#xF->J&#jhB# z=+@+po<(Q-Qnb36VCsu$6uO;*4-?3j9R#q%(K_Z7Ck^IYNQVg381GBxYpW16)-FmP>!moCv#MEZ#SBawP!Yd6@cCTWyWu>ItUCm?g+q&^~R~N z9l*xMN1h5;(foaV!nUB!lo zLH1}tFm(aF74XRU^XEUs#veZ2=!z)-6@CpnAE1FlifjP#U2GTAey9Yf*TvB3dsZhTnXS*M~Alw<_h?grx!RBeT4Xpk1=-3e9|AlxR0uETJ#^O?5$y^<*1~;xcgs<}slpud(tvU$KV~7uVPgLWCm5D@k zqB^9a5k4%FmjB6_iL_C`a`JLRul19aFD8vds3IDwP}OdNl>*|KF9^W3ItPI`!mMs% z$Gccko7XEd4*S?%lKMubc-o~gY_q|>KA_D2H~Ra4ZhyFyha(8!6;A+#0{+Zv1syX#S!$Yv zpuQ)b9OQXGdp)x#JK(c!h=E4*XZvY=szExEElc(4sjg*NwB-{8H~0r3F6}XogKHbO zAINZwE$zHU_>FESfPB({9mwdBRgXlVUmC`dgYnM;y0oLMJSo`G@u0&e4Z{`ipFCGs zOFeRi!Kx;eRxPWHp2#Z)RrMe3s>AvN+8a_GQnSIxPUKLKR0akNL(O|2r%JUk2+V(trR@K_-}|0tG^1e$Yayi(id(+2WX5 zW`biaJJ8W1U(=*=qa@JJ1W&o~=bZ<1X??979nuMW@U`dPVgO!y%X3HP8-0Ahgl1}k zWE_a>jjI+tZDORGw8N}-q?(UKrz?hdK~}Y@aR`V~XJsd~go_rO=>5Hzd9h5}z+vt| zlIgO@_)ePw>L$3ZuplHX0OZpPFzsq9q^kOSSFKwhQ&(5FqY>XMrqHeF4$?4TJAsd$ zZC5=;+8eDMDhBaUz>mTH{=H91^w}d}f}P#L>W7iEnn2Rq8zkdAR6R^}P?t;9ODu|C zs!1g^J_NL~QLRHxfT%Lca!eA1R3s23ho-G~Rn4Ai6zM~fuo$MCnc&(2qu{kzj1VXQ z9NS49f@-~vNSd4ASZpV;%u(>^bp9H{J_-mXSgo!Gw-p$K$mR#&|NikG{?2!F>Bgf+ z&VraA>&-||4~}|rytbg46eG~udr=y#suvw3-*jv@E9rmMI0a`G7z4@6vTqz@0^}w0(b7D%k}l!~7MzP&VM<1gkk!EX=weu>Zoix|Ww2-&VZ76M4~FuW?CXR|AOEhHrnEi=!}$jOex6j{|FJ|>C5D5nVw*h*lukit>X%!{FAseh5CTH1j3WiLPC%LrUGLEz}f~8%P<1N;rI@YXDIBDKwky4 z@fUL&l;jKG8=49BPDF3lz6JoDsc2rU!l%dzlI*gWC7+m9xsFP&uykP}n8}oEZEclQ zW`aSq=+!}vEURke)8!`;iGZP`%(4{)s?okCk9Nfj3S{i1twzC=ipt$Xi~5$j0+M1F zFu`>NCZZXDbt3;#S65f~ba{PkBA;EWQaM}!!;PsO_<I{GJDZ{iHe}y3w ztWE?EEI%DT$=lPXB^jLW0}#X&*b*$lngK0rmE9bwrcc;j{4o$qjsKt>ZL%;>?MwZj ztNiI;i%n6kdP2&yAtAMeMG!&(af-9r-ApruZMC*e&*TUn5TvPbc>DNtC}K0hzCNIn zzgU5TlKM0NckKgiJQ50cVf^Vhv?rt_`gTSDl);?LQ~qo#!LxqV!RkatFb07!Yr*R3 zM6g7xE!y~U=1fAZAy!T#Evh0(>SXv)4$pccGPWy-D1kuiN zz}kZIfRaEt%~{p9MFfsE!~m9dm?~hnajJ2B+ljI^>|UUc0xmiEixoI1=?xi#Jm}cH z0#-zY0FE6Re~JWd(K)gNfa96l;1CL=NBd00AvE_Gebt-&%I96kzSWj zhASZEm1nl|3x)~-uu%b6r>2?w*H=IkK!)ItW;^kFR{gT8lauFEOZc~ktBJRNwd@pDa#`J8xR!n;Fck<-PiyD8D=>XL{WqS!U z(y=o&lWWOp1Y19ysh7lb`zw~-*sHHYmYfmRq z0H>z5$?ZJT0rc|$r2^vIlw1T0>j|l7{T8C&r7{0NauDtmsR1?Eob-BVzqw$jG@+%keyX#L*jg-3Fg0aV`+z7| z3qnXSf=eQLoAxX$eu`9_N^eW{)7A$Qo;zCo#F5P*{2_t^}7uzdL7!Mvv{_e>0Mvb%stARB@^t8cCEE%?v-e%>$nbNYZ+oz@YJqi=OY+e& z_Ei>IW0Dr}8`>`wQf)Qt^?-U;oKGHbZDKyv3N6)|O0`B((bTXrp7iV&-Fp+fB~L1< zR6dc-T3?4h^{hq zI~xx8X?QG50d!SB83iZKoT*kOIFSG&iVzV6WK|3N(9Ht_-k8a&44nu zre-@WQ|g^5`-9bxIFn51Yp70NlZ=Zq)QCBOW04~ds1+l4&x|n7MpEe z%gzKu2d^z~HN}#}BVv(&u?&4q7!fe5iDgI`15-y!Came?Se2DB5xuPs_>)%r?AfST zHn!H0(rwvox9CtTtfh16MmLT=e!jXCX?(;5u)}W>mO$V+8DijcHS z@w8k#UA_+V;hLRihln!1)=!4AF;UngsePAWy->)X#1C z`G6IR8h#I$>!)In-Q)qE19xE>1+%t{3TTH*2e2}v19$^T!d1$~;Tb$HJ!5a3%QtQ; zmkTUQ$8SJ8$<_>rDPIhGiIx0ebWjU@@NC>j4JYZkdSa>W(eZZ$G4ReMec$*=2DCR_PF5xufHGA_dVyt0pG9V! zBo)tc>QnhEH6|(0Qn^5y&o+1(rkJK-%GCU*K2h*%kIz3o57#xge|-M&>EjfuaUFYWYDJm96h5*PwYQ|Nrvu95`T>w1O*-2p3 z)(mJRSInccNCL*x#{XJ!?jb{~*|H4H>!VY?@g8IgNoILK$K+VMDajYQBMRFKnq}11 zR!L4f7K;^X%%3;z9KbHldKdFJV_5rI&>Yc^RS2>hACS+^`)G>zfU=#$%MG}3NXjID z(CiAx)+wblmbvjqTbW#w0VujTEJOWdjiIK7QPo+z=7o@E$f0k16dju?+Tv4Yu>uF| zQMOn!>5ui>M#UUmcRX9~_fH}bd+!x$SFM`0SB+X-sL@JoAGLRp1g%lCwA9urT54~K zs9l@ZCNWBD#ttI+`Tp+s@4oImujh<=o^zh}`(d4DW_mL9^Ztzm^EX>d8cBn>ifU|S zsIh~D)WqH&-7C*YvH~mBXm1v&qQJpcr|0o*8qVCoRKdU53Ce1Ht*d=c>~YMIm_c9Q zGOadcf?WYsQD~nj5cv5X(Mip5M#J}y&aCyI<#)Qppr9b~&##^8Id0(Y`rS$=1*pJm z-49wN#^u84%jvLu-X&kzd?p-Jt8aDu)b@Odz9&gPWig9BM%%mtefcf0!w+lBtn~kU zPl8^I1#N-#{?OzztHd~R?9GDZ=7rE~I}H9{sjkAv(KoM=O-E>bL}+1}o#@&7CW2bU z;H4lR9z&+&rAPJsA$O+!5d_NQ@*GCC%~fk4PDusAcIw6sLX|r%eyPo)MwKR~T(-US z;NWi}F-EJ}jeT9w(27s$Tqq$5@ozlF(EH`O%C$8S7Tu-UgUcu^Kj&I7Bpchl{hVJ~ z1Ymda4XaYimmu7NUxC=vY5^oJV212InGs#Ol8%m2B2R97nIEKK5@W4S_psT_8Z|3M z<>loKE!Nn2xp+H-sURG~34KPhXS9o#QyXS)Zi3>JeXC6#JrK^kTst&Caz92YMQ#XXfUtiN_bTvp5wsECgWJkzBPD z@`LrhjFWgi*kv7(&S~@PZ*Zz3)srsBfQsAg$y-PK6ufP9CLII&^n7Yh9tTv%k?zIa ziv6ltF9EBTRpW{AhtaX~G|$g3pUldvNpo^b1-Pbkch{ebW0}~|6DpL?Z*yLINYq@< z#1T9ynE4eLWYAg+K^(tk(&E*~chDAJv$2{q$_C4HvofGymiQFPh5FhmnlVp)BQf!mZA{7}!RO)&1`8iap zFqmQ0JE!0|gCA*P_NqqOi2)Ro7Aa=LBh3u>^ukkE3?=4eXyGaf57d4BdKWiUN258H zpAj4+yTmhbadGR9BF)QpWFp$gAIRkHudFN)Ur4zd z29mE1ZVP?tX01LKciiZk-gTkk4?A&kcXi#|2GwlHJqCL2{#zN{ zsMuCPLF2O{%HM@Hv6eT7I2YIYK}>M`^Vpb}iTMXhP(qht&5n(bS|Zh~vYOpEXMktb zk2Z)8ZI>}!KThLc6)JG>LHqBdd0=>04yjE?3?5qrA|C8VocR&!3{trI_b{+Fl8(?P zQBhIV9B(D1V8vj?O#h%hxwv>h^+UNX9<9gd1fKGPNi$7Aj;iVq-bLx2YR(-LskP!d zmwV3&xR0}X31ndyjVVE~F6732Gz?%Tw z0sVPWa|5yk*jwtOJ3f&P8V;@xDx^KNL~Aae7la4b{WOtzfF2xO$Qu!ZkGKliIpgg< zj7Ta0%s~dlphn4%>ETK`K!LoHabuOYg6`!E1a}e*wYL{nc|v$8ECzRWp1bGn?*0!R z8WF5+2>%%Wm*uDBO+p!Ju2^lJJ_Eq#R4oIDU0wNngTcY3Q!ik+5>+&~?)KdM!*%(5 zxCs=+07YWu)E8h8!Ba{!;7{~;CdS3=o!p)8ON-$-hw{rtrquujiyCXgxe#&G@$t8D zUAMdtWZ|KM@Q34jKrGewt{F8|;t~ko3PnzDS58LW1`eZ;u{U%n<%un?elk zD9=MnzwgABxjTQv@zcJGs+r4W@oo#ber&rzzty*yBo#^?$>Hd~+tBmv4@eozL3OtQ zFv4ZCx3Mc6eW?R%66qqEn^EH|5- zo=O7nt+cX%5xiB<-WwX#N~!2tRz~vRnVA$eDy+?CS=Qtz$TDJQ&n(F5^#!}+IFul- zGCap^Dk2zHSU_3H?aAq>z1MmNDOoh=6dCU(gRZFHP2lCF*TC8B(%VM_j-2^_HPn0w z*5J27*O`mZo0|nK=j(;sGr!l2`Yd_FJ1cMLV4TAEjv2x!j`lEMRZB4qrNknwaBuFuOzmLBKVfkTZgH_23V8q>JPe{eYdpO8 z*)_w7{DOi zYmdxKvCf$6&9t@ivmE38v1bNv`dF=oa7+|)Z|tDXyBBlYJVqxf9!fuVt8ybifDSXQ zu%|XdGhb8Zv~GT$n|T%*@w(~f++-Ikh4#-j`oJ?58ti?c+&3|?Ma!C29l^ZDTio2L z)p4zkRBYeNQ_9n>xg&yU;Jp_<^4W=?plf##nyjq=HKHIf(zZ$rvm-k`pS745$4qd9 zAgYkfa!vf+zk@4-vwcl2J;JkO&8!#sx$EO5L4NvuckY=--a>DSr}u0eI(MZy`Tc2K z|Bvvb1?_D-A@bh$Zb!hWK3wVkZf!*&5g5kvqwD=)SC@8TltJ)E)bq!;_Bs3{Ro-Wt zn>Lg@JQD9n-TH7~GVVoV04&WTn~f#hMYU#3P`JTsA%J5#9m}>41lfz$EV|@ImJ*a) zMMXtIMMYuc5iFEkptB3+j!V(Cl%+zPGbQ4T@1xB{M7aT-8@1eG&aN$#UQ&;GZh2Qc zwv_7p>{37HVgu|dm3UwL-qzf{EHj@k$W{(lrOnrGt~0OzpW_cf{fRzVS`s6NT%f+X zDXZ|9g^2(Q9Ip^J-)G+|E?G}=9r(@$B&1E`UA!wODS7~w0qxm;cCIfj7M@!zMX_$* z0&DMXXMow*UR{U8MzaPpAOb;!hu%k5X`D)0a=g)HI6M@_DG{Cgm~dp=i)z-Rf!oF0 zb~A&AbD4QR=WI*7WiCxpZ~b2UffNR$v?CI`p~e#ZED;jX&RXz){7|3zuzD2c1Mt~u z_tycRUtuznXD(u4j|dru^|P$T;^f$5mTGT>QG9|Psx4!}$=HwOe&S0B>{|=eyY7Aq zhGt0$bkpS=#R}cH77T_P&8ym5Y&k++?0K+;YxQABVJv`KD$i`hP+^) z;N#N_3(Cc#Mq-DaQht9H)SOl2hxa*Jx#kNYv^z=gv1NAKwgGXovcNf6$_3e|W!cds zS-S%c+wiB8P%%(s-CttGH$X&madd3$$&$KTR2xaHzEQEhFFWMdLTaQ({A^$?C$O>cwyW7G}jH& zKfXUK8vD1=Zq$N4j~~oV)(RvS(O2qfTHD%Q4vw2+8TWB`#O+sAS83GzjlI+K*!F^N z6<0KTNX6s2j|CMge_(s?%dJru;Kn4lqtAK^nsB ze5MSAevtMp4Q$^Ti--1q!$nU|LlfxPU{V@Ar`VNlReI$x6S7VR<6yQyII*=A_taiacU?ml<+rprb zMBl#W&ok0L3a-E49&dD)=x;vcwY{U5u+?&j#B0ax-%#Y4+`AW9zne{#z=uw%Xe#@}Bb-&`(uM!MMQI|{}`9L?p76?liMr|-FL zo!hu&2#aBh|{^Eu|1`G%mgM=oRj2-mBEccT~JMacdjJA%l*1)={uI73YQM~ z=97p00UkIX`kD4_hu~&SEg3ZJhSKNZoQ@fDKvW$X=7#xsORMqp`VZMz9!tg@gM8yW-}~aj*Ri-wFRdQqc&f6 zihH4%y<12{5{^$;>6799&QxAr-cI6_zmHyLAAc6^ z>t5^iuwibbVx()Nf;mn4*B#WhaC5A5zd6m}OqTY03XqMuZO+=7mOzi9vwG}Pu8!HM zsX8XSSu-;}PdVsC(4X0z8s<36t+tBcN*X^96gpHl*R{8I3q&D$n{rdY2 z`!Qo+$|jSvo6v(YtiWnT#?HFICp~a4u)fSzqF-7V_`=uS4ESyv7~yHiOB`!nETMQc z(8}v>exR(o6m}1*)+QyT5nes;H_ULwQ3vnCcuq~d1`9yXTg7%+bGfXr5a|@WM0)8zf}%97ju~vTWxYy zM6|UJpl(>yRps{2=La`rvM1*fn(x2*CVP5Aikd5qu_Qta@j^}<^`NIh{dL_BaVp!Q ziN~*~3Tbst({!qCE;G4*UBx%}u44;EgPNS%R$iA~hrP10vYTf7M5BV~ef^d0-q^zE zhrmEuFd&P#1Tz!a-b%X%WJRT?*BDhOnDfO9tr+!jq^lH6f9K7_D57|pnETBDp161R z2jtRgCm;CDpJ1$$G4L@g{{WibJmDjKT%loQ?%UXnF~)6i{M+vhK5MaC%)VUuO>BQ$ zWVliq4Hk+frXQ=yNE2@BrM9m*JXIiHlYCodD8%O;e`EpZYRq60s#IN=Udr$sx=s6H z+snfd(6{zBin4=q@~zOk}cQMGsosM|>!X%t9UvhcKs zgRAkS7_9A9Oq`ycT8h3-pnz*8ykgWw$^8B)_|}q>M)fXE02EU2dvrPp(Z_<5`-F+o3;mp+iW?vu%%-*AXIqJSqMWTPqJ?6gsFhA-QOzV2b z@cmuFn5d9>JZwUPlR33GZb~!308pX~hg#_|sLM9rApaUP{b|=hcAn4qi+w!Fr*PD3KcPApZicP>#3-$$WAw;Lwb-QwEda`fFGnm^A*4E(s_GjbG z82&?O=3`C%xM2b3U5aO6$g+lZ&EKf(^SgJ&CTV>%Qfc99#A>%&eYYNt{$RG6UOnFO8)#IeSbpD&5R~@3@xgz^qL(COn>uyDC)|Y;2a38 z7XBpcckOQS$=cd_^e-9nC^q$PP~>OIgn>F6Z*Jr_P=Gk256YBhYU0RYQg1(3lT2~t3dJK zp!0wGw))`<-ZV%ZJqI8yZA z8gm-}7(I z8ZM)mV{kPjNAP0^<3}zMKH2v~8NQR`*Og0o5y{yu*8JCycd=LS%1_viaWo`BWz*AQ z$aD^$U;5>xRckNAh;a&rSLNQ$_DHfkLtwik~)rKDevD5I+S{3-`-D3c5I^ z^jo92P0%8__}4{GUIcl}vGZ5oJ6;HEN~&(l4@-`=@*pwJv6qmhEi0x61#jUUU~l=z5GP zcIY>dfg;V}GCB+_Twe%UBha4n&JW<^pIsdx38*7`P_9|F8zzp z*NVF_c}zO>-4>qZV}D={#+~SP`-t~0NIE|9N-x5X&D!f1ly6?hYTEy|LTGs0o2f>u zNgA^)VZ8Gdt8+(8{W+@`o*MVzoQ7sw4cQ^tG4#qjR3z z?>rneBXc8j72m(V81?cT^-5!(O~^S$1W6!YQa7rZPCIdrdW~*0p%T&YQ+i#C+JgJ@ z&jRI7h&%tLC}7Kn@KFC~do~%=S(b?Yw(cRzEIWwRn?_xO#FKhg^nQunJdY_jXH1>? zH);5dHyvPTB zxGD#kZFmT>pm~4Y+gHE9pU(&$7$!W{Vh2w!oxL1WIhv=aL;b^>0Q+w)91T3hRw?lw zi2D&kxu-N^V79ql+q<6IcOfRFYjWHXL}v5TtN-*@GDV*8zu|ABJTp?UI_IG)7#S-9 z6Bm!{v)W);3ByT^iOHiQBYD|v^1<#bdmH13{MOHNzaQ;TnX1RVpFR9)?4K$1G+Qlj z>zCb_c+JzZV&h2fNJWDovM9i^s*h3*^n(9X42%}se)|K^6LdURUQA&gE4J}Dy|pM}-cyeZ{>=hAkc7S@X)4i^I!OnxurJJhj|SLe`WQpuMBSv9H=1LLHry zvlHuu9vvBC1?_-tv#DJR0}HNlrf^x{$!pouu)nDx_ON)jp>yw3eVo9aMZA?)P zF9W}%TK8XSILs^Y3#G>M-@`UgrKs~-!;(dcDvsQuVIj$B2t}T21qLJOlyg-Tpj3aU zR>bLk7eCq(50hHzdW4YV|H!OFx2BqQJ&HH_#2%$w)Div#n{Bob|8x;`hFt2V{s+Gc zq=Bx{bVY5#R1Pz7HGrlT{t(SM{z`IDys8sz`lN@ z=H)>2v)=}EVp?-A&k=}YKr zuPty4`Iqx+2RHPb3>5)Tqi>d7vHfAZ|8Rd`KMEEE(s@$w zB9@?b;&Uxp_j&9x)sxr4?Ebs{7XJSJb0hy+jQvep9+lRHjy{kw`1*6xA0(}B`>5mc zu@tgQJX8I5kEN&1Izwl;#!S!5G!Tr!UGViA72W$$q8ZwMI;y(=2Q$>os)knc2V{ZR zHpogQaw7qBcx!n~kZ=Mre`(dA>{UW9Jy81_Jw1{}*nI_N!gPb?yhB<80)R`VM;(ONE(BOy-yP1CH!}-zJhF%W z_?2pzD;~|+A((#)7mRps0Gh%ddC4`kWGxKSyBy_+g$-YhZ63{ygd<+c<&1d#a4|J) zjy9c@*W~4|r~J9>TV@w2iQH=^++hSs`_TKeHl^AJsMaR`?HV+>yf|K{?>J%9=R*Q6 zHyxuo_h9JhPE}ZS1U$yGGmo-wx=p^e2Tq9T44gT$9pnoJvTK&~v|nX(dxQk@8Ayd* zqP~^|Tn79Ouw6J_wDW3}gwk6p7o3MbV*4!9nKkCU0qk;5RYFlGNz7WkYYA_pw3-|K zljAqc^W&m0ZmuL;swqn~e+)tuf-6vQ@U}5v0gN+Co0zeFrIf!(GL6D0FrYnPVJENRP8mUe z9iyf!{@GbrEF2#%F8yn499gupMX0o8jd*ROka^_fh{>3q{|kTgND-+BSK;706yk|#TybKkR2~M%a zzW(>Gcsa@h=K-UsMg{Pzk7J&VOK;83_fa&3Mxoyp*Q>P53!@Fi{NKae!0EU9ZOG?u4=-(@T~f8JE`fU(PAmj zV`yW(brbD8q@W;hrzKn?XJoT>u7u}1`Df=kcv#(3i^wmuNTE!Q$IqzaKiX0Pl z=S|`HN~KQ$kKGO+;DqQPGlxD@dhk|-|K{jY*!~rvC9H+#8M_}f^|$VJ28bTZ2TGy~ z6$b~`14;GUx7RXbLOmluxVd)FaxUkGme8p))L6>!aN_W{l*Gii1t~dHeZ@!o66idq zIfm-5lEO{ZXe`n0 zz*vudkw6aUh~HB3IdbWQq2$I@=oqWRu5%32kC8)kRGsYwDv*otn zz2!UW`_K0H7@AS)`O9^|ste2ZG&JG1fGG9>7U;2v`dSgnpc0^t9v`7cGR(Fq-8T$; z4B!1}x*Tqb8%`Y8`d-0ytfaP3C7P-+is?qqcj0qB5<`*9Jl@xkPyAB*!efQtrhj{* z6l#@xa}EELJ5{CZHAbINg-Z;yn`g`(wuhbF2eGrU`B6_%8ymM93kv3oH1BUgVOM)a zDY%&3E$DE@N3JCv4!pjIvJBYu<*S0TETATYpv53BgX^;Jm4{t%@7JBLrBo6(wtlBn z>gW>5aia!6q&S@uZs=762WP=PE zG>ff){;ShH&}F*c$lT^YkJXI|+a_`^+Ql?mGrTxouP$NynU7y9TZoiDdt{+dRM8 ztjD@f7Sy=R9@j3tcgLFQHf2uZt;p}edso+WBgk~d^+A}d@V?4euelH<7x7v>??D0X z;K*@Gomacw#G!dbFG2xyfV1--8P)@~*cwXB5Y=YeCBExnyNhjWjs~OU{>q6v(qf0~=>GG;Ul~iB!%d9}O#JjPPUIyayKePDt zDE&WM+1;3(=daAdoNNXRZ1 z(8mD|8oeCJVIJViy$=H*W6RFzNxke{3imaXca>bpy)J+u>(SRz-U9=*Ucf>&<%vbq zC?)UfHBgwvS7a?WcB+vSlV=!Wq~kU06M2-eU*;VVZpw(iM9xbwwws1EHFQQ?JDU{O z^KnfdU`mtGa5hDNsp9Ofu>L?jPh*Ng`OnGFH<_@4WO9nzp!XoD^DHc;_SSTdq>LNk zrs+yWWIS@a;m#@TaDXz zZ~LRFRl&z&)pU%0OX))dYC9!jbhHofNh$i3-N7E^+$Hcwk60R$^1<5_O15{ayZUf`aJpn{ja zxj)~PJ}&kKVKIJxi5Zdv$*`4cnGUYP&UV02fYFfB=cjv19?`2K@wSFQLG%=O|0-_) zVQP1@V@U-jGMQZ@0>)>cdSm8doK|T1aF*1y{&D8(1-#hz5>}P`k+{FiWcybQ)n9+K zwFT`eX;k)c)%JsN+&S=LpaA%L0viXI;hzMctFv1DlKT5$ZzrDgA*?M`xpt4#BptQ> zBV>hIjEd>_rc<0gU;Br6cM5XWtUk9m_CCv%zYHHlsfzGA7jStna{Q(?B>L)j|G+tf zYwAH?4Ep%Bt6F;cBA7{?)Dj<+>K2d+PfW^^cOiajI9+Zi|IaEgczAffv+Tc_?aHRB zulqJ(R&%Rc)QSMV?;SukBjDKRm>z9(uSWIEmimHrJ!T8|wfnHL>9Nn}v=KAH@}H z-)cH6x~<(s3b}OUhTI|pc*{w)T>)C5^d*SKudh(l`7d$U(_duCn3N`%$@MMbncVZ&e|O?6g)f41b!MI)06=n&T|+X7m-`tc+sDqu^g?yXzz4vV zoLaBTdjbG~(~E;H&uvAU$68YNHJ3ZCuwB1c#0o2@^Ru(FTP4N$$KA-V6$_6Z*^v-D z)d)6`{l%@*dUxL-iJ+9zF9AxWDvNa`!H7eoOe zvz*CS$^ONTyD+Xm2ihEF077;f09%|mSU2kLW8TU4CY%y9USfM#?*rV}$?iQ!`;$=2 z9PvY4BgAJxMMLwq(%p-I9LkMd=p*`)7f-K|2rOd7G6SB}aBk3$qEr*OdUG_-y3i}* zq^>Sye^@8c%DZLrnI3%%>FnTVO-Btmgs@N2hu#9?epIm|u1UFF5C3+#Er(zZjLwIj25i>!oP&V4h{* zeG*9IM1cE|O`;+MU}hr$|4kMzn!kDa*aT4Orn=n;sU-W0>auoGj@TSsGa8D?u}x7> zZKNiWki@ew{Ed4$*OJs`xNBW?59e?x36}W+2AY{dmcYNNO4l!QFu?(8TUuAq z#PhzR%rRtJK{Is*i_cb9G>2?q+_>aWNx{$Xt)Yqq$vM2-N(BJ{YICyyfKt9D(ug4ZgqnOeONU;W zbpet-@+4~VZdfaA8&4BkEOWO=Hb6UvgMkI7NSXakSP>-@Ock0e`i@xA(`P)##dWSfZ_! z&QBr0r93FM;%)mSV6bBe`V>~uRC=*`AAPW}*3@4C+{ya0YCt81Z}aazbiq4A)Lc~I zn@GgPKdTWa34{Yio#wLI!%>WmFH8hIA(9dZ;(7rOTH37;rKD8oNa6Kj5lM;9Vj1tq zgGU6tQC<0}`e>S}xy-+7nhLL#&YN?_%aAZ?uzg`mCUnc`9{T6N6FIh+* zW()aVC$HKj-zKjLp)^ecjGo&3@x2Go&=5hrCUteL-k>BvSgY|r%(b2$yr#}AcOYl$ zvKS7X;*fB0mo1hb+!@p)RqYecmofpk$q{3<;?HXv!iQb_k<#|d$n(n~%sy$^^{8LV zWr_u-%|jLU{31`aJYzmX`rp?iP!#o^Bj8gZFtVw1=P7R2R|N4+E2z!JM-Z)~VHWL7 z^MrO781&8l#~t~hzLNj93C*kHsVdUNOs5tA2?Qm`(g@v=m{xO_?KZim?BZ}3^-8cH z{71*LWC&LHE&5CJgBbO-T_zL8$a;U4g@Ie>-RQKGPj}=H-kD_S zHWwT}RJ0rb@YM;l9%b4eoasstG}%KGn(;H2CQDL(dv~Hl!g|Ti<$m&6X%c?}ZeoQ^ z2ae%O@AMPpI0A7M%_|Sx|6AKAHs;Rch~Vb#>BRj+ZB;VXhlOFA>PZemmA$}}Y22YOq3zL$?% zlr)v})djn{x{68`6zFqmZL_cWS_@nSbic+(sUe9ARWgFjOnOG679&}&)se?bny`qo zrC?I{@z_2O2$pnP!`yJm$*BgSWcx9?2K-FIw!60e*?e<-pu3|ZHD!3q!Qr*(+Y^cZ zGL<{>*&8*4jSEl8n+H{YX(d#!Xbdfx9yU|I%%Oi6D~wk*Z7L`?cD zVwLAT4KuzKd`q)V)1cMV^Z7IS!8tJ3E+tpK4Fk?OX|52|YMk#UQS};!CMJ zSxArV>Uc;Z^~_K85Q+#lfoZ7Jns^H z$QtpJ#TCZ3=8dVHXIj{yOX>efd|Ik!=OgaMIyjwn9i;;?SrNnAvD2pY&Jm0Irlv`@ zO>8P@F-h_t!8QrWMb3l#$PfLk(>*MyISQsk&e7%On3bP9I}cwwXO#5oVScX71Sc=i zL?iX^3$HQx>}!{VRr^BnhlDBFfplEh@n6-yr1QUTqa(o-OL_w~loC;8?>~4rqZB-K@rKB%HG(F`VhNUs zge&A&0Si0nG2zj{mE+;r`dgVaEvQ4lqqVp}>uuqfynK1H!cnir{}>*gR#Z$&CIT^? zn2;0={GU?H*Z3d zM(;&(G zvoFrvo2ADRWGm6@ltsyu{4{i?Edf4*ey;kXKYesjRe{@+(|yy^(|uu;C~3`zdxpTU zk_DFTAM5zyo`0CJ-1MrC%aZ|&XyhYINM~U3rw-1f_UHNTiyJAD+;@<(wwg9{{VMK- zEM%ik8o5C5cPlpnOQsSWB{>cQl_|KzmYX00d& zB`Q*V_$9smBIYkQxq97KNM;dMAQ;|L&<>Jf43kTh`aRb`gWtx+pcqEKp-8)pl_+JN z#1=0pzK10-6q9@oEuA>=?4=V`WZyeZo@aLlW zg`8r+`k7oV*c|ZgDa{kjWrGD; z)$H}rcKu44=6(U35HW9LikSa2&3zv_cLVnQB>xg?-aSqA*Z$@3xoviyv&xqPSF%D! zzte+dnfX`UPN|2kKx~T*>OOB%Ie@;O#vpj&|`=3i7pw^(*t&% zj?v|E5^_rxw6Yz(mCxSpH2f)W7U|v0iM6!UxFT}*p$1@#c#7_3(I`bujjqo59LE{KWBEEY zHNt(|)+uIt66>)sX)2TtM;Z$~oBq@i;GO;b3d1~n*u!AIfsee zxoa$bBQpK2M zI~}v8%O|G#3T~xWptSaIO~T=y>LhBjL)EKdGtrW9)hlA3QM@KMB(eVu7@=HC**1DS z=GMt5>c-W0t{wGqYNIex?phi*!1zXYmfpAEyWW<7jFAYM-WpW^?&Rms1p0z6oGy-J zdev)22K~%8{!ZxI;R6HsLu}p%KJ28IW!x&yE8lqmg)4}9rzLg7fitvO zoh;I|j3KvjF7XpYtK@NgjSfUR2;70k9iI33AES9G_|t2X4R~c4-=V{VT9XZwY=NEZ zZt;MSr`fHDD{^ihE`xgfMbftIOjBW|5YCx2wDLS>Ooi1_MNXscl_#s5agcz;i)~rM zV^TJAqI;EK^oHX2#}h3}o6 zutO8G(_X)>bh-5O^i=dO_EatQw@t0JKP|@J$lgb%B*+FUA2R~OTMq+HdK2i8UNY>% z3{JOap9@BDbNQ;!*^=Jj$N<8W>CH?<+a}wU7`Wq=r31HnePDz~@OEs)Q(TufV;AvE z`Xij_LSb*xNYYO=gIY>w3;o`Vju|ygcijLKI{0O-{z>7E-T$mOZ9Ro^NP)8(VopWC z{;Lj)WiI_q7A8?%4qo~B^XDUpiR;-UURG(E?g7wBIZ~R4Cu7_h$E}s<;)GAn?3Xdk z?im^og!D7zX0NA8Vso^z_kIO2>R`RMcc*RNp_{HK;0{tDX-$uBjqn%%uhMTVuJ)?S zxhGA1Rar5M7h&njQt@y~5CP5-5lPoPIV*!4?-?dFN0P5p&x^sZ?Fopjf?lR109EDK zKu-4-(1Ex({3N6zsmGQxW4vj{4;lz9DRAHQ0RQ+m+*)Gec;3OZOF->U8Jxu088tV1?3E!dQj z#t)M%L0M=;XP++f)lr&a z8_4lsxN;1iNYM4%rn-&#u<69*?CN?OTucXYfy6g-yNe@rqDjSZ;hT$hQu=447Hkl^ zzFugm8?f~Gn+r|pipn--LXvY2=ClxK1enjosdRh!_%SfmI$l-9y!mY*7+F5ufQ5i? z4Id@@&V6k=Bn3Ys`BCNOo0gj>Ev;$`*y7VquTrF*-o6EY+Fv}aX}UENvEQo>N`0c! z@x)y3spt>4X2et7q~^;NDBUu>iY`TPa4=@?69^Q!5A0geLvR8en=F2KyWBnF)-dvw zca*iw42TiOu75UF#b#ALuPdZA+pz7Vkl@_eFL1&KKA*v8&U!=nTd`f*JEBn8yxbiP zeU867`dcmm6ryaG)^Z;l?%Gbyv3zIzqUEyFAPr3l}LKMQ&9KLS6%KQjF zTrj=L7VoPZeJ&;;hBm2RyU-e9>#djiOwSpy!4bh8XBT@5OHV~2zeK96kA9xTOh24{ z5~K4)dhA<>=J6LeXexzwTl9LqE>chK~p2$?$FXK?FIWhjt2IJ4NEY&Z4Qjhv6d3bns@_8yBdBCywZ zPjbqgdkk76p>)kJcf$20XD!BbDiASzf#{+UnD8Gm1e2Mvg0=IA{va0K>9t*1*;QGo z-FA;cx6-59!^fxEj9(dlhwE>)YwOHXyUmQG({)hzUAFwL9)F;4aCWd3b&{+A$t457 zRUg-STuTol;*ZRE5e~JwxLJXf*kA2W;OnxmaOnqts`%si23Vzl_sneE7#7#9U=4bU zuB>bVz;&ut$%}*D^Z@O~3V7D%`xm`6&(+%W-`7TVAvO%5&BnV`+pxMvTA#cM6Z{w= zgQS|HMyc`JW!qa^-`2R4l?!}Kd+wwRL>h^26*>z$F>W=%#A}FBE_%N-EgxKLJR6q$ zj-sO=;D8K^|20f$RCAkL?HT=KtxVC#u zR=~H+pePdp5L|FK^xcz_cIBzGta{D$@+vAgM20wNuA^Xt*dU( z#s#0LV)!9XU5u!@D(f6Q`t6az{H{T}T5uicUsrxzS69BQgLOz?eq+2hsbbzJe=oGj z)q7U0?Lq;`tbS~;fw%t=edvA{4Dp+c;1-d$#i#$oZ?3H1(>ljzV`goacdzaJu)Djr zySKZ$_vX!;H*W{t4!rH^>PoB`hPPHg4KZE-ld>A;MNp3sR+rxDy1M%FZT?qW6~Q{d zjU>&c7ThCm%^>XR>azazdjv2)KRr(4=z)wLQAcx%5;7~KK0eDR2M0)w!wLKi|?e6XE?tvG6`{vEtw*v!j zyArDf*9{5;<9kz;vOZc5u{_Zy8^eP9W8Hwwn~*BDv5Zt#SBrHF*wdA-X&+hsKv%w< z3nt`X!+f?qEXXGY2kW}KOJct2arzj2^FZHxT^%wwUpGHL-%SY4Teb5i)jWOr`svfx zyt8;^((qK^x3EC2S70Y0^?}-C@b_3QUD~4Gb-}m395_w(SWoD|^jOV@CKZ5}m9v+j z*QROa^0mv*;|M3OUAw#o^j+J#h7yPh2>iVr80bpqh3Dv?WcL3K*pYO`-{>2g@9v&t z_|^6EC`(o*Nb78s*q`5J#BX3AziYtyHy!Fp%E;~t0_&~c9=FvId7M5JL4cB}Sa)4_ zcaz<};7+OtYxvaxbYOK_iVRx)4ZCxWH}EkIo0OY15q=AEK;Ht3|MU#jAYn-0miQ%? zORZakUk&4rLw8SBK5k8*fR{O4g0RaPSJyaLj4@bxnTQi3zEs=#^4_&;dwbX3?CtIC zy#WUAz8x4Cc$?qmUoZ8qm$D9jih~Bt_}aEXoz;t6r4{R?BI9~Rbz@Kc7(VnsAMsaL z$GmM9i{m7kAn?j>^skpb)OGB{T0qYX2m&Eh6|@2Nej2bVs?+0lmrGiae;xk=E$*AA ze!t(}!`*LH)j$;t>=0x~VE15m_k2&OQku$~qw}1;`EDStPGgVyd-L~Tbz_BJcW0}q zUwCS?P<4gLf=>m1FBVw%hX^hTv{<)T^Wokf;EA`equ8&8Z@~%FVTU$Gy@QCmCUi^# zOi$Z2t(V4nAoa+VkgO8KId<~u6urd{vHH^3lO`pngqU6V{I!>Wf4@^oWKwK?}Fxk z0jPT#Ts)pbM~wF2!yh#tYV_V#g&!f<)KufRtbpvAkvF68S(<=$@ABT>jH87v>`A68yjOpcF*6VO7Q}8FXm*^P*l?= zY=P6aP_uY%@!lfonE@_fun8b+s`=2=RMR98ch8bO*suu`hlW)wxZ<~Wz~8&ed++wh zPy_Fx2BHf@RYRU6_PF$QOIT=#kVthi3X#D<4&Ef=k8PL_FtH#Dm1#im#QoiXM28L# z$Wc{wm)pQylC-KSkiY>WN~C0%q3W*0AT7<8DAbNpC5V+x=wSX>KI&MVK+s?db=~*4 z?g4)JV}KpE{IPi$Kmq6H7w;_)e{%~9bKMJbCVOgNac)kgkMRcpB7Tc9bAmlRSRV*L zwc=6Ghv*@GO-)T>O^z={okri~y~|7k_m~9ky}5h$?i+GxUHRDbicJoL67(=Fd@gs6 z1A4W-aD4})TgIY5f*BOfOt0*WlPzW&P518d_ zAis*#>8?qh1RYfpN{aKj3I&fbpk)CYAg^>lJw2X=vB2; zjkWNZ8pM(igl+*cJnU*XbjtbZM71I-F4Uw zA^6jzY{2B?3^e6enFF&ilbkgpR63w^BS8i$<*ChK~`) z*=uLsx2e6Uz23nvx-9r%K#5ra8cdO0=F^vH3vC_d{`zac4@6MlxA$fb3gr!jVFZmMVp9y+uZ=v&6d znh?Q2ATVD8050ONc+ZHR2Ah6nQP78ecTpe0)kt8;6MC)F;n$>TUpoy%UweDKLnG+2 zfJ~a!E1qPRm6K%eE`QDW+k5wF54yePJyZzcod%3Sy;=Eqdxg z;ilnP({6yUoe?OkzP-2CVZoAlLJgmV$qM)m6p#?y<8E+3I5P=19eVk4=tNEr!t=5G zF;3f9{un_!pFa;X8clawL_pT8v4;+_nK{UE;;0HqY^h>IarKh`G5W|Bj$c&^_|q1l zmujMzw5i}LBx`Oigo7B4q45{iCt!eBJ;zUB;jwxoFn}T$n4f17$hZ==fU^tRfZX&4uNhJZ*cl^75i0*t))+omah(!Y~ctv2aWM zSp8VN3|@JCQ4#e;MG}JbVaz}b)&yz-ixP#4dJ2_GYN+0!7rJ)!L_42u7eO9h!SR!Y zuf4suy%(*%w_XikLUvvx+LCwYK?TnffUm#}H@|CcCJLMH8bdLxfsRSASwP4`BR-KY z&r&Wq(2@XpWrhg@w7V^unH36q5U9fPa=oN6g2j@;a*ZU3uV%KCkydWnMBW$>EHA1r zV$mES2(X1)fVwb{XA(QuzDPF4A0XHi9t)EM1{PsJ1eFk~q;C;?Zc~%dg|;^_nkbSJ z3+1(fxF$V!0zTxAFiZr%^Uw?2VD3E4@ulb43LHQC`q{g8uYkcniyfnF+=X8rRNbmwut(# z&wu?4w|w^Q)w^e;f@sYofl}S?ZdFUUAapC)@2dX@lsLiaTKdVNE^L%qF24v8Csv>6aYC?yQV zq|7E;{7ma#oqzT0852M-DAQ&Zr@ zXBt&lE(Kk$WI)Ob8AIjuMfK%H%%jyKSvvT*i=?!KAfzabZ7%pLDng0`cbqUjZ8ipB zA#MdI6*8bm$^>|9Lhz=uBK^`LpRdGM1f%+1M6fqZZaCZ&4uqQmtU_E9FvuYf_Bem- z?K;QXOAb^A5ofSnn`_r-BQ|@DnNaeEs3$7{0Cj|Yt$;33dv;!kAWl4c_YC@1&xpZJ z;n~PVmUEAY_>d4HO00oj2Ol*;h-R=cY^=Z;5gnB?HcT#&NWvA8rxR1@rD zvIyuZ(J^5VC|F-u*wa};;hhb7ItWWTJBtc?3QI6QLdY~uleQQpZQ_I8=PRl21q6NJ zFjYi=KcxtgH3i$r;|BEAhh9#f2A$H{jT1)hu)S|cQawT6(9nqEvk;4q!Sm;zJv$HT z$I@4zgPqV7zUu6hWT}}kLv>88=BKOvwNN{Mi?*0I{Oh*kL=_TD3Ia>yILi>$Gbt0E zlt3ww-J}F=y%vq3hGDi66K6f0otV3UM z(+wfHHi>T;y#5JcQ3c;K;3G0C@5I zMNDx->BWoZFJ7eOxLQ-fXWTRfUtvJ5xyAA#Y>CCN%xtEX2;G9Ps(M&RVn$qa7M64t zif~Jc^G#yLNb2k<)CF(cOPUmrBC;Y}+fzdL^$5b+Iwknp+Hj_gZ_(4!i9FfT*F%K% z$VPL5OJ5Jt#|B?XZ%MDu=j-)_d#8QV;V>}>PB;)~3N!lJ*{CTPMD75+Y3Qd_u2TmS zqX;z30#aI`AWnvF^zkJ`WVnS5$%yw1k-B>wv5t&K>~Q)&^rrX|4ySdOCq201)%wJmfKno)J53 zj`KvfpB}+7Y0 ztrI$}c#(jjB16y*ff_-@f`6)omKS0h16u=2rK&>_)41b#3^>)2*rNk8;7NKMOJ!@ka;<6sL zSx-q%XItQKe-jUXw0W@L(~c$4*U3k1It1G~pLP1CJ%LKkq9+iXZtDU5Q2tN>+owSR z0lD^YFzgE+?(ZCdZEh|Er`vh&i4tAV!j z7mZ7GKq7_b5yod11%8;k5(ENqB_$={{hdwhSiiG5kD$%51w7d~7{hl>;rc^uIrSg0 z1*~w6?TB|f`{gAiqN2%S{Q9Dj!tlXSBpN*_EE-wfTqLIl?vz8qq)J#}$>C8XB4vw4 zjt+`CNtKYAHZFb7a9~r!BB&s2f!me98EAWoL^cB=))V}-!PaeUZ7?Ab=sVb4UXGAO zBaz7R&bF^d(?C$bUQod4>FIXg;*NC2k;rBc0BoNQg5RC)?d_fB9@NayNCGHYfrlpG zyG8IZ0MBaa@XufEN+Jklg(c?y|pa?hz??U-$-VHj&o@2YOD;F;3+_Zsr#n3z z#Gnrh2$UpjL<47Nh=~><#OH?CjGE68u?LZn=(}}GhL01O?Bd$9 zXKT;a7=vw^A1>+aDJ<#qm;l@c&Pw)8nAKAQg91$gbH@yzgrBddq@>qZ5>{eFyV)=7 z)Q4XsqN3VkoiDNzW`YTXv}v~1rZX;MZGmO=el|hJL z>{|n1Ecuo%`W6$mV2uVg0{FhYxc2SZGuE{Mfo;!N4H1KRg#!A*O3YdSKczM{!HQ0m z0{RF)Ux}}%$X8!f_*7l^%#Ie3q>>&M=lAg3J%^Uq!f_4@IWz|R^bFD_+m^f9!Grpw zJ;A84t*5QAt!;F)tp@;9C?KB0HfZ0p5BgrvzjoigQU3Ury;$w#-gn5SQ#&52Av|nS z$D*YfSKdYO7BD1g(wLqpReI`{-GBexm|7g&HGB92BLE$x7wY7_D1mZIykeVQr3bh)px=R2}4dtQo6_;@QF;M+4DGvCRh_BNdaHbTGF*tXu*Ncc3i^#ECIrpwjY zP6=)WI~r{p6}xH!21naQ!7LQ;#Whikh-WT*S9*9WS%6hREu@Cb`e~zwu3e30Y1TB8@XYWK+qVo0xtBb zF{^L41Tbs?pwCzD!TiD1N}oAZ6qfw0E|ZUS))Opq<{K{#&EvK zDph<#Lq_<}O9C)T1Whywp~SI%PYo*k8c_kwY$>R_sGN+2ARCZ88n3ObVY0T?h6t`{ zA(2V}7sG)-IBa&oP55p}1t5Z1qKE;}@7DK18aC)(bopp!|KQ+Y=Sbu02s95=a|k%} z^-#@He}d7Yqs@bZgUzF5{ql&f4cH;^LvYp_*MY-EWC-17kFKU3U0yyqI?^Ku9HY*S zHnNPA8#`3Mbq?V2&d!eR9QFl(!Qk|vywju2gZ(3U!FKO-sCRm3Bt-g0xQr4f#2$B+ z=r|jQBkDL>G--(O*mme`DPzN}hHB0Af>l>nR~rF5j$Jj3b?}KfZf$FfKh`d*hyk~o z0)c?S1=j}x;b1sWuT;RGN&y!kCJ#^h!oKNgJ-5-LqeujmED{j}Mrwu#xgKAS?-p-b zJ2K>3jz%co@{vwfjzGGAoi+|k8;1y?93Aaxtdw&^4P&&Owp&CX_}s=uwlC;MN0C4& z28^E63EOfH(FdJ;)=_q$(zctv>E6&tXh@d720bRk;w^dd7DtO?CWF~v8NSC&3czW?Z#rxaKcusjV410v;lAt0R*$I0<%-~3{8h9{Bz%Oi>QxKK_^L5)eX{81(3HCXqrtXj{``` zB!Ocf$jFoJ>X`QJ)wQc!|JK(;%LEc=cENM)fnXqLjse*hMG6H3Gz0Yt0NYXh!r}0= zX{E`Q@g=H{F*pLr(6lc$x6<)O0G*!3TZrI#BUeA+K22w?+Q|^pKStm>?WvIopdEnQ zL2lErj&$go4uypOZQ$ZZfEC4IzS}ZMeFjp}MgehH8^w zHLyfzp~j<|jjHwFah8o%L7fr6FJNDZM2xO}b@i*O53fGFdUfsL)wQb+*B-6|fos$@ zf$a@GMGSZt2zVBQ3e14ZfJeC|=2%8JUY?~$R(;9))Psic7bq5Se(VGq) zl*Y=KPXX9YqaA-Eqle4OI|ql`=5R7n=?!|}dOegpF`3RKWGM^)(cRwzkHe zMgY*KP{5$aqr%MNK?Id+JONKw;et^OAc+}#9W{YgavPeS4oy${e2EF*$&;InN&?9P zH=6er*;jBhbc;z~gS?B{#?ji*(b~~lw{DG$j*N_$gM;NJxKe`9a4!yxFP08RLg0f# z*osoi;yy+mxJVeUD=2EHwotZMro+z+;8&)(uLvpknCrDPq9sU{Dq5dB_xN0C&WYs6d!jvh9(n-_YB;@Z*L#>R$*#_Gn#hQ``Pm}eLZNBj zgz1^u>GgO$-k`_hH37I8HXH^N5cqSm0FcD5ks(qo|GvIK3KKVpJ7JEmB%ev@MQB~U zs)OmO04Gago<)<} zK^N>HtQ5^3(dEOYKzmcoB7PgS--}v_oo3q#%A(7Mi-ADX;+(Qc<(DBz;nIWJl$-~yBdl#1f}yPZIg6t(H_=xC=Yz{L_63dv)v_jn;OKsn$k(K3Y+FXy037NXksd;fZlqcR~fd1>l3-ZZ}k9MUZA~)slM_)55`u?3Vi|g^uVe zEiHBYb+9S%`wH+Q1Q~yXpwBmw0Dz0&YAY2Axb3N|Q~|hvd@0IUqnUg(2xV|OG#v_t zAoQCKA%==m+iCY`rU)&gz3y9Fy(H}d{u)fqc6l21V#4@n#O)qI#iQ(e7pmq=C$8A(=}2h&?pN z7o+PN%Z1;3^UYV#3l0%KAdni!Py$1~*e!H|naWB}rBVSGaE$`M3EP?Zds{a6IE@y?_8wt2e|;x{3H=tM^W9(S#Yw9O#w#MC&mJmhvm zu&2kbc9akdg+khg_EOdzU~dAtiHXWekH@Y7>4@;lCIV|Q1mw~tDHVf;^@&)jN%&wN zl6^LSMASDl@eMM@$85rENaQyUACeCi3J4WLUnl_=TnU&}R;pZZ<>GdwSplP!6y})$ zTt<-3&7TD@kii5*R%|P_XABh|!zdU28hhzGnii$1IGYkh`{) zK}S|yTkEbJal1qAklUhdXvaH2=9#FRn5dMldGla%bMru65b}l!C*`hs4k zDvX^9v{EsdN_$8}*a$nZBZH{{{Dw33)i=B|VP!>`onaoCKOO_RM?;F{1PfcPtXxE; zQvnDCsa8M$&|LkjB=ab+#r7L-(5q;?iGr`MzXh&tDc$PUdra$#U02e3B03K3JBWUvS`yPU*(gMKkV9*;3 znLjY}RPuauDrQHw36yB~H4=;TVdwZ8kTU@2 z=T4X;uohkLXegw$11_uVNLwucG~W5;?d{6#Z3TdHSRtI4Hno3H(R(ZbJe>9fJ?1z1 zN1jTN5z+~BYX|^X%fzc1drpt}Qv@pjy;wVC2)Zdh?F0D(t2|PK&db3G;;&NGfT_O{ zZ$XF?Se=W_eL80RrG5(zWlQDDQuS*q%=|f>Bz;b@zY4&!QVOH9Fktu1LqBxuTmq?C z6>eoBF<@n7<$~Ajg6Fokx3@he7$S%0CM!(}$N;R=BFZTKcmO|@$eec~=v7p=gOxh- zcvS$7>a~ljmq`Jm2bC5INcB^~u9heyB8fh4sK7g|`rG1tFY#wz2c~0Z1A%V08=evX zFqL^ur?b>gtdu&Pe&#V_uxKfqPDY*+<M)X+`c)>mioVW_>KP| zN3a6hwMK!zq4)s=ovYkdx?otPhyek>i3wEU4RSrKYY0EUth0S$M%U)Y*UE8 z5`vDlva-_bf)8PZ0>HV-iOR}}2{R@~0wW6-9P~_hf~G&L<(kFKYiim%c~Fb6i0T6Y z2sUau(mw6Qcmq%YL(B)eWdY<4*jwQ7stAli6j&Lf5s+`{&dv_Ga~g7M(^&S z$p~U@vs4l?rP65=0=rV4N*wx~&Mc=h%W+l)4{2i(c9uaGH(hZe=s)WRgAlNEy`r(2 zbRi^HLSh)|T;=w*sum13VSYQhjWPLza!utnF=PSYgvaYOzv(#A`(Sf45IuBD3aG0; z)S4>Qn;wvKb2Cg3_!D8EThCuX$XgKddV^lCxsnv!3?hN12hRLgd?zEMAgDui(PIV-|SjnkY?F-PN4V-|x3W|A+Oi#^_ZQ<5mrJ>rxiI^F#k1wLv}WL;M{a-f)N7fH_|5y zS*emq3twx34|+%v2JqMh0{9I`;JUw}0sySw1S$ZGD!=$8%qq7lEfi4Yf=K|qidSY7 ze^sKMnhpjrAY@cTS=$0Xww&jIk9-3<2U*c{B9JA3XNUw94`@GJ=+5LmHZ!D92!h#A0xMT_?xi&zISD_|5W zA!a>_Yf zz?rUe9|8gM%M>@@mlFcbbGzM8Rdwg$IGe?Q1;}54;u{NW2sD2DgC4>dYDOorvvb_J z?)3EZ>Wb9V(u`7p3}?p4MT?R&r}K*QN=)X`2wSJT2d;p8_cH`bOM$-%2B5hXj5w(st;L&=lSiJ)ZH3H5wkMbmR(?Dh**x6dKHOAr z#9Xjf`9~blql4}3?E_Uy@X4sBfj6EYd+Cw{X5TV<%*qLmxvG7bT>wf4RfHVGFPAXP zc4ud2g8&u;!3l>H-^73dR+nZ`(i z37Tv@F_K1qLQuB-w@4!sjzuNAl_Pg-O9J5I3LQ+2L3A2(^IhtFhj&^8ZR1pnj~grrKNG7nwFL3OiP0S*~>~x)6trhm1V%s z1@s|+434vBE#yn)OUwzV&g$WcVYnOrIlu71rL`J?ia$!S0FXBTtN!R((au2avSd~y zSy*J-I{^qP+WBlPx?hc?0CyEoyF@RXju)EkcALM8HT=F1o%Kio0_cTEumEGe0wAs+ zCnq~QyTE-Ai5wj*tF9MZ0bH#4tQE(Jrh^BjDoAQZM#dG+pOdSUY)+jQw!RLsS~0==7QZLW*2TwG17%MIB%)CicGTAIrBFD*@TlX*r8jRvHpX(65kc#OTQEQTK@jySa| zQ9Dh8=y4Dj`u+YaaKiZ2PKC7sdMsQped;k0_ZNf*9>5R8Owkr?TR0xd<}FA}0uQU* zs48x%fB=E1wIG4Hx$c~t?3{RTh7hozAe3vC%ZVI!c6KP;=1)bV2lP!~JjdC|$ZV*6ss$9o3g@nO?Zrjd7=r_kffxfK67|G6v*0!vFl z08>cjO~JFVmnHTGYb(~dkOV`zzx6g}{A3&nXXw4+*x0CQ_|!S$x6rq-sG)~2Rb zpcl@~ap%-p{;Gy#%b|jTf`aTE6M)feaKWJ*8vr8|b12{L80{bz_{&XCuSicVB@e7s zQpp9om@z%HMA0aeE{gSBS$f$M9L5VE(nNqsu$>m^X|!`}(3`x35qjDWKG^B^XZZ1h z##(BfPywi{YAky=fbo}MM+~ec|pXB`sYUcD$*-z zGg4DiQz;D0MGY*7L%a6@z)-eX0i%bx5E|y%0J!O)h$D`GBT|sf08E7t@X8hLeg!x# zmln1O##|=wT#{xA@ML@y_%Q%Y;-&F+ny2SDY3CG_#c#A9f2Kdn@5C?7Dk@Sz7u@bz zMKcWeT7?2m2$Nlm^dCR;zq%&r7`B?pPBs!a(3JCpY$20?QKx77BRMi?t9vfI8A59`>}!p=(5adv+RfxCc&6 z&A4*q$`#@-PdG~n9-U>$WV(dli6}2ikw>#K>|72DuFk17?3l(7&pYS$=Rq~ZS$d_S zlm~$-0Ktu@6p-CtukL%_$kEObe!2>ELtRno0QBlZ^C)i5vgy`DDs|aH`UZ^1^3D!s z+c9K|ZUSOdrWjX2PgYS23YeQ?kU;*!k-8e{em3$a6j1v)U~<74fKV@4)<1CtOt!uH z-$$i?YqKnG9Pw)WWndkc)jlBfLsC*K_!Agr85NRiragX0V434Dz|5XO0x`><=TCDw zOG`5D+^iWq(}nG0Y6C&^ej#B9sPCcVfuWGTS+ zt(4X9rX(6!KH4GCkLwo8!(s)IU0#o16L;6&3+za|Oir zlC0(3o2^s8qfNs(>;$#PMlbhA`v;pxy6fC*kO4#i6aX?y5fHlavJ4WapUJZ(PGYZ& z=p%FdP25SAl65ZcTox#x|B64OG$XYl6&zD;{0b;3S{yAgn+P8_s))o9fN^wFe*g`Q3A7b_4R|OAsUTrGXc~TP;3+3&IJN3W569*w~djt z;R=p)4md+N;4BFjbd_cCuoVw|l$4eI%>bSesq6IV(|PCe^8EOHMJdJS=@tqII;T)T zDKd*0W*-F$I7tGikm{YV;UJX-UbeMJy#?w&LzB;$`(IY3)U;L#&MlR$6cGd`Y;W`F;2JQPR06YWz89sC7 z3@tlDGdPz5eag8^f1W=p%jvv=P8cePx#7ZV?qR>XwC1Db%#DO zG%?aJaArKUM4Y-_=+0IGSdi_t z{ugs6BRip7u79~q05P!V8kiv@5D8R%#(;+x`lkXAYQf;d6#zzdCbEUv;~gsSh9=a% zAO}xbj^uz-Gn`BSvjl)f6GD~{d_wrlI}`w(k*FfYI?a(`5_W=<#MJDBHWRO*5T=|y zotcu7c^Vrt8G%p_N%txg5GBrd9v^Y|Q~@WN02ZFEcaKm6D?1g`_Y=(?mPXb8%{w=rI6^3Q4?9b5>5D zNffZSAWS)(l9F;dGcPYME6abydF2X|z;y3&B&zEo6o&0b4a=89dUsk-u)V2x#~wL4 z2<2!cDXbuy!IbSiI5M^_mvb=vNPSF^0guFWuV-0?PNP1ed8c13i)@3s@ zb^ezDCphAbC@wx%rqef;;(>>*$Hhj<;|pk!F> zu%Nx5H`MFx^|pJPCOl1*?Nn*-dM5CvcKAIYI5hfNZ$Y-VV5nfk+g>m<1PLwA^&YW**}k)XI1x(E z&B1dk;GO;sO&stBqiA$_dFNm#C!6sn2_SdCR8vh!DKkN6T;dWSx_E6_LoXh4{6)|y z@k0STlaid0aylh51vM}&&3T2FN^UwU6rIoWGE{h%&6Nozr8}JC^-gRbqD^d1^t#>I znuO(0kulT3l;bYo*|sM_p`2_ze6YD9Uv_qFHb30Ngx3v)pDpWODG4A(Rlr|bTAGr; z?3~={Z0`g+zIP;tUnAcii_$2nq~J0qmo2`Mk(vSZhxA;-$r&`8?vJ~G9mne(%3VTNfG1dT;>?K?CnV}<5sqNRi8E(T;qp@{z#mGW zGwq6S!dNESy;M~Jj80MatmE1orgUcZa(TfKOgRS5=p#Fw@Tp9fE0-|Rc9N^}zfR`V zn1KwkI8f3++7UWs{iO-|R3@KMj!C4|HwkJqx#Bq5<3e>Ms)3|sxyT2{C0{NzVy?LH zvjy;k5U&&REE}H?bTRU@L^Ayx?cmgz6f_D0vqY)Lj!A#>vd!cf2r}GnVr?qV${(jS$bd%6XO*yZL};Ay^txw#U4;%u|h zvhrN6OqVMYDjR}7g0L)3C5*|Q1|KQl-)TunNoSIilao(L1R4t^-KJ2m(Bsqqxj54G zCgqP&@D|y`fte=CTeIdD7E-0VL;n@#s1*;=^8s_Vw2Q=-{b?b=qSshyTx+URp6g$ z7tS*gn5xGkU4Ed|LO{)9(#@qT=@Jy|Vt259ywj~Jyr7+N_3#qa1uR)WvJ8j;M!IzQB_nslj(r)+6GDMeZ zpDk6>lML}nH7}3aG%{1bx9Qxl@WYm8p?Cmn9tWY-hE1$?&%cy#^7a>3nk$nBfN`+* zg)EuF_J!?)L(QuMV6x5%!$2ynD$4Xev;LM=f z2a~@{S0)cP7=nt6B~qj=Rek_u%ZLG`{?;f^W!G5BPxp$SuwZ3`(RuotU*@_{t@ zb7dO%;}J(*n(1OQjAx-1?zqgEAzxvt`H{&moNpHDAM%%yX<&qk>I+-4W?!1M7?z}v zKuH7Bw2ww&nPQ_k6aKz8tRl(Z|-5w19|sP-V`=%=oD; zHpXd4U3@p?igY>|PW>~Zy2dQVUtXrmg(rAQ5|r= z<)z6Cs&1wAQX>lz5ey6J44(#Ek$9JmU`AGv&2TzwwJXbIz^@EDqZ`gL>`r}g`Xj`? zA6DneuTz&v$hF`vMF&cf3YpJ?P`M`n;cp|)4B#pLLPQe5JV|c!w@>JgS^4Vec#F>_6qz`|~0RI9+@OMfkL^lI6msUL=a?2MBQ{5WJ%VsjOrCF$+B0LE=6 zi~x!-@RTt+%5%B$()h10rMa%alZt<=pXQ=ccDX3Q3AULIysWIeEMm-+Mz16CGVz@R zj`JiA>6gY>#w>atB|y#8y3EYXOuZIn<>|7exkxcHU1cizl1#2|i_#((mRbcrrA zjehL{Uy)_8i)RDBV!nvoku>V0Go=f{-RJQu6!4+?@iVsN@7NrwcJ|i*Xdf7wu0`jW zL^0#d;e|j2f%xU6iJMF#poQcO9(W)_k}CSTG7~hZECpM+VB|8u#B`VC5e1hiyHa*? zrhMXfE&^Sud#IezDfQJFdBF=ygPF8E>iM(BJN^X9OV|yG%Ut+`W>V!NQ{jItiAhR2 z@ulGVA^@szJ7JzSwM9!$(KMcrN2-YeIP-f9_WKr%^Y^v#MHz%^BMp= zVTsfiuoG4Uo|4*Q7$2GVS{!<+FlLH53|Qd)Vp>Kk^ismMa^YXLDj?Ev$jn9g=yiOV zRSTY84C$!+#B{mjqSOj9*(~|m?p#tw*TgTEj~Fp7;REy5i@;BDwF(6BQnU*w%j6LQ?3?yq#-10@HU4W=Y)pTSTb3!G zgz*4ukA$9f2{_F^+Dq06pfUvfp9b)YSW=vYLVub?ILddejKd=>DJwI3TG>veoHDn^ zNo!M1DRXO?l=)a*V-`CVvAo=r6#FZnE$~BS6t%K4K7oCTHGFmkm#u0&`FrS#2f)AJ zGZ|%xBwN98Y?GR(Qp7k`QJ1ACKj?^&O{XMDib71*i+%!ft63%=WpXc|Kk-xS)k|57 zt1RQyj{iyilHx{8v6Z5(5$8UP#geR}Fb0M?l45PBz1hTGI*=9drwrMs)1RPaHeC#5 z8Alm*_E{J*%QT%gZ~0D^0T=@3{hPq`0?zMWvX%XP{3#UhIALDAc`b_Ml<^&p;fC27 zzq@+nvb@I{?Yf=B&Sm`;%2!^elC{(uXSLB!;zH8>3=y(2%C7BjAP3as*^dPx@qzftNX0nn3-1Q4v4@o3^Nj-ceA`) zls8OyaJkVXf#QqfI_wtPn8m4@Hxs7|48k@4z4-ml)Pl*Z&M4uVZF`4JuO3B`Wbw6; zDp#DRXnTkMmg{xU$y*26@Bc7WMGn3yN$zx6 zc@-d$+bPuXv&taZVWvHSD`p25*U7Gt>9%&Ma4QTwXV2k49kZzZNVm$NVAOQFpK}jB z!}JHWMA7Q6+>UGNlalVAL%XryBa$3K!yHobdC2_5mcRvTd3cx1FHS7xNiy~5?6F6~ zNDl8qveoTy@ZIC>HM`n`Pxkos7Z7D>miWdvM-mnX(4Hf94>Zdg5i4V|c9Eu4 z$QWZ2M_7N26)_lhpV0XxuOV literal 0 HcmV?d00001 diff --git a/themes/gohugoioTheme/data/sponsors.toml b/themes/gohugoioTheme/data/sponsors.toml index 5e35a25dc..eb9964f39 100644 --- a/themes/gohugoioTheme/data/sponsors.toml +++ b/themes/gohugoioTheme/data/sponsors.toml @@ -11,7 +11,7 @@ logo = "/images/sponsors/linode-logo_standard_light_medium.png" copy = "" [[banners]] -name = "" -link = "" -logo = "" +name = "eSolia" +link = "https://esolia.com/" +logo = "/images/sponsors/esolia-logo.svg" copy = "" \ No newline at end of file diff --git a/themes/gohugoioTheme/src/css/_tabs.css b/themes/gohugoioTheme/src/css/_tabs.css index 4ed15b63d..6e0022cc9 100644 --- a/themes/gohugoioTheme/src/css/_tabs.css +++ b/themes/gohugoioTheme/src/css/_tabs.css @@ -7,13 +7,17 @@ outline: none; background-color:white; } +.tab-pane code{ + background:#f1f2f2; + border-radius:0; +} .tab-pane .chroma{ background:none; padding:0; } .tab-button.active{ - border-bottom-color:#f3f4f4; - background-color: #f4f4f4; + border-bottom-color:#f1f2f2; + background-color: #f1f2f2; } .tab-content .tab-pane{ display: none; diff --git a/themes/gohugoioTheme/static/dist/app.bundle.js b/themes/gohugoioTheme/static/dist/app.bundle.js index 6391e71e9..7ea75e36f 100644 --- a/themes/gohugoioTheme/static/dist/app.bundle.js +++ b/themes/gohugoioTheme/static/dist/app.bundle.js @@ -1,22 +1,11890 @@ -!function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=11)}([function(t,e,n){"use strict";var r=function(t){var e=document.createElement("a");return e.className="header-link",e.href="#"+t,e.innerHTML=' ',e},i=function(t,e){for(var n=e.getElementsByTagName("h"+t),i=0;i0&&p.parentNode.classList.add("expand")}}catch(t){a=!0,u=t}finally{try{!s&&l.return&&l.return()}finally{if(a)throw u}}}},function(t,e,n){"use strict";n(13)({apiKey:"167e7998590aebda7f9fedcf86bc4a55",indexName:"hugodocs",inputSelector:"#search-input",debug:!0})},function(t,e,n){"use strict";n(14),n(15)},function(t,e,n){"use strict";function r(){for(var t=this.dataset.target.split(" "),e=document.querySelector(".mobilemenu:not(.dn)"),n=document.querySelector(".desktopmenu:not(.dn)"),r=document.querySelector(".desktopmenu:not(.dn)"),i=0;i=0?function(){var t=window.pageYOffset;(t>=i-s||window.innerHeight+t>=document.body.offsetHeight)&&clearInterval(u)}:function(){window.pageYOffset<=(i||0)&&clearInterval(u)};var u=setInterval(a,16)},e=document.querySelectorAll("#TableOfContents ul li a");[].forEach.call(e,function(e){e.addEventListener("click",function(n){n.preventDefault();var r=e.getAttribute("href"),i=document.querySelector(r),o=e.getAttribute("data-speed");i&&t(i,o||500)},!1)})}}()},function(t,e,n){"use strict";function r(t){if(t.target){t.preventDefault();var e=t.currentTarget,n=e.getAttribute("data-toggle-tab")}else var n=t;window.localStorage&&window.localStorage.setItem("configLangPref",n);for(var r=document.querySelectorAll("[data-toggle-tab='"+n+"']"),i=document.querySelectorAll("[data-pane='"+n+"']"),a=0;a 0) codeBlock.parentNode.classList.add('expand'); + } + } catch (err) { + _didIteratorError = true; + _iteratorError = err; + } finally { + try { + if (!_iteratorNormalCompletion && _iterator.return) { + _iterator.return(); + } + } finally { + if (_didIteratorError) { + throw _iteratorError; + } + } + } +} + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var docsearch = __webpack_require__(13); +docsearch({ + apiKey: '167e7998590aebda7f9fedcf86bc4a55', + indexName: 'hugodocs', + inputSelector: '#search-input', + debug: true // Set debug to true if you want to inspect the dropdown +}); + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var lazysizes = __webpack_require__(14); +// var lsnoscript = require('lazysizes/plugins/noscript/ls.noscript.js'); +var unveilhooks = __webpack_require__(15); + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// Grab any element that has the 'js-toggle' class and add an event listner for the toggleClass function +var toggleBtns = document.getElementsByClassName('js-toggle'); +for (var i = 0; i < toggleBtns.length; i++) { + toggleBtns[i].addEventListener('click', toggleClass, false); +} + +function toggleClass() { + // Define the data target via the dataset "target" (e.g. data-target=".docsmenu") + var content = this.dataset.target.split(' '); + // Find any menu items that are open + var mobileCurrentlyOpen = document.querySelector('.mobilemenu:not(.dn)'); + var desktopCurrentlyOpen = document.querySelector('.desktopmenu:not(.dn)'); + var desktopActive = document.querySelector('.desktopmenu:not(.dn)'); + + // Loop through the targets' divs + for (var i = 0; i < content.length; i++) { + var matches = document.querySelectorAll(content[i]); + //for each, if the div has the 'dn' class (which is "display:none;"), remove it, otherwise, add that class + [].forEach.call(matches, function (dom) { + dom.classList.contains('dn') ? dom.classList.remove('dn') : dom.classList.add('dn'); + return false; + }); + // close the currently open menu items + if (mobileCurrentlyOpen) mobileCurrentlyOpen.classList.add('dn'); + if (desktopCurrentlyOpen) desktopCurrentlyOpen.classList.add('dn'); + if (desktopActive) desktopActive.classList.remove('db'); + } +} + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js'); + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var scrollDir = __webpack_require__(16); + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +// query selector targets Hugo TOC +(function () { + + 'use strict'; + + // Feature Test + + if ('querySelector' in document && 'addEventListener' in window && Array.prototype.forEach) { + + // Function to animate the scroll + var smoothScroll = function smoothScroll(anchor, duration) { + + // Calculate how far and how fast to scroll + var startLocation = window.pageYOffset; + var endLocation = anchor.offsetTop; + var distance = endLocation - startLocation; + var increments = distance / (duration / 16); + var stopAnimation; + + // Scroll the page by an increment, and check if it's time to stop + var animateScroll = function animateScroll() { + window.scrollBy(0, increments); + stopAnimation(); + }; + + // If scrolling down + if (increments >= 0) { + // Stop animation when you reach the anchor OR the bottom of the page + stopAnimation = function stopAnimation() { + var travelled = window.pageYOffset; + if (travelled >= endLocation - increments || window.innerHeight + travelled >= document.body.offsetHeight) { + clearInterval(runAnimation); + } + }; + } + // If scrolling up + else { + // Stop animation when you reach the anchor OR the top of the page + stopAnimation = function stopAnimation() { + var travelled = window.pageYOffset; + if (travelled <= (endLocation || 0)) { + clearInterval(runAnimation); + } + }; + } + + // Loop the animation function + var runAnimation = setInterval(animateScroll, 16); + }; + + // Define smooth scroll links + var scrollToggle = document.querySelectorAll('#TableOfContents ul li a'); + + // For each smooth scroll link + [].forEach.call(scrollToggle, function (toggle) { + + // When the smooth scroll link is clicked + toggle.addEventListener('click', function (e) { + + // Prevent the default link behavior + e.preventDefault(); + + // Get anchor link and calculate distance from the top + var dataID = toggle.getAttribute('href'); + var dataTarget = document.querySelector(dataID); + var dataSpeed = toggle.getAttribute('data-speed'); + + // If the anchor exists + if (dataTarget) { + // Scroll to the anchor + smoothScroll(dataTarget, dataSpeed || 500); + } + }, false); + }); + } +})(); + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +/** + * Scripts which manages Code Toggle tabs. + */ +var i; +// store tabs variable +var allTabs = document.querySelectorAll("[data-toggle-tab]"); +var allPanes = document.querySelectorAll("[data-pane]"); + +function toggleTabs(event) { + + if (event.target) { + event.preventDefault(); + var clickedTab = event.currentTarget; + var targetKey = clickedTab.getAttribute("data-toggle-tab"); + } else { + var targetKey = event; + } + // We store the config language selected in users' localStorage + if (window.localStorage) { + window.localStorage.setItem("configLangPref", targetKey); + } + var selectedTabs = document.querySelectorAll("[data-toggle-tab='" + targetKey + "']"); + var selectedPanes = document.querySelectorAll("[data-pane='" + targetKey + "']"); + + for (var i = 0; i < allTabs.length; i++) { + allTabs[i].classList.remove("active"); + allPanes[i].classList.remove("active"); + } + + for (var i = 0; i < selectedTabs.length; i++) { + selectedTabs[i].classList.add("active"); + selectedPanes[i].classList.add("active"); + } +} + +for (i = 0; i < allTabs.length; i++) { + allTabs[i].addEventListener("click", toggleTabs); +} +// Upon page load, if user has a prefered language in its localStorage, tabs are set to it. +if (window.localStorage.getItem('configLangPref')) { + toggleTabs(window.localStorage.getItem('configLangPref')); +} + +/***/ }), +/* 10 */ +/***/ (function(module, exports) { + +// removed by extract-text-webpack-plugin + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _main = __webpack_require__(10); + +var _main2 = _interopRequireDefault(_main); + +__webpack_require__(0); + +__webpack_require__(1); + +__webpack_require__(2); + +__webpack_require__(3); + +__webpack_require__(4); + +__webpack_require__(5); + +__webpack_require__(7); + +__webpack_require__(8); + +__webpack_require__(9); + +__webpack_require__(6); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +var require;var require;/*! * clipboard.js v1.7.1 * https://zenorocha.github.io/clipboard.js * * Licensed MIT © Zeno Rocha */ -!function(e){t.exports=e()}(function(){var t;return function t(e,n,i){function o(a,u){if(!n[a]){if(!e[a]){var c="function"==typeof r&&r;if(!u&&c)return r(a,!0);if(s)return s(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var h=n[a]={exports:{}};e[a][0].call(h.exports,function(t){var n=e[a][1][t];return o(n||t)},h,h.exports,t,e,n,i)}return n[a].exports}for(var s="function"==typeof r&&r,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=t.action,this.container=t.container,this.emitter=t.emitter,this.target=t.target,this.text=t.text,this.trigger=t.trigger,this.selectedText=""}},{key:"initSelection",value:function(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function(){var t=this,e="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return t.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[e?"right":"left"]="-9999px";var n=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=n+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,r.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function(){this.selectedText=(0,r.default)(this.target),this.copyText()}},{key:"copyText",value:function(){var t=void 0;try{t=document.execCommand(this.action)}catch(e){t=!1}this.handleResult(t)}},{key:"handleResult",value:function(t){this.emitter.emit(t?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function(){this.removeFake()}},{key:"action",set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=t,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function(){return this._action}},{key:"target",set:function(t){if(void 0!==t){if(!t||"object"!==(void 0===t?"undefined":i(t))||1!==t.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&t.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(t.hasAttribute("readonly")||t.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=t}},get:function(){return this._target}}]),t}();t.exports=s})},{select:5}],8:[function(e,n,r){!function(i,o){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],o);else if(void 0!==r)o(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var s={exports:{}};o(s,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=s.exports}}(this,function(t,e,n,r){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function s(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function a(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function u(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var c=i(e),l=i(n),h=i(r),f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},p=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof t.action?t.action:this.defaultAction,this.target="function"==typeof t.target?t.target:this.defaultTarget,this.text="function"==typeof t.text?t.text:this.defaultText,this.container="object"===f(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,h.default)(t,"click",function(t){return e.onClick(t)})}},{key:"onClick",value:function(t){var e=t.delegateTarget||t.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new c.default({action:this.action(e),target:this.target(e),text:this.text(e),container:this.container,trigger:e,emitter:this})}},{key:"defaultAction",value:function(t){return u("action",t)}},{key:"defaultTarget",value:function(t){var e=u("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return u("text",t)}},{key:"destroy",value:function(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],e="string"==typeof t?[t]:t,n=!!document.queryCommandSupported;return e.forEach(function(t){n=n&&!!document.queryCommandSupported(t)}),n}}]),e}(l.default);t.exports=d})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)})},function(t,e,n){/*! docsearch 2.4.1 | © Algolia | github.com/algolia/docsearch */ -!function(e,n){t.exports=n()}(0,function(){return function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="",e(e.s=46)}([function(t,e,n){"use strict";function r(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var i=n(1);t.exports={isArray:null,isFunction:null,isObject:null,bind:null,each:null,map:null,mixin:null,isMsie:function(){return!!/(msie|trident)/i.test(navigator.userAgent)&&navigator.userAgent.match(/(msie |rv:)(\d+(.\d+)?)/i)[2]},escapeRegExChars:function(t){return t.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")},isNumber:function(t){return"number"==typeof t},toStr:function(t){return void 0===t||null===t?"":t+""},cloneDeep:function(t){var e=this.mixin({},t),n=this;return this.each(e,function(t,r){t&&(n.isArray(t)?e[r]=[].concat(t):n.isObject(t)&&(e[r]=n.cloneDeep(t)))}),e},error:function(t){throw new Error(t)},every:function(t,e){var n=!0;return t?(this.each(t,function(r,i){if(!(n=e.call(null,r,i,t)))return!1}),!!n):n},any:function(t,e){var n=!1;return t?(this.each(t,function(r,i){if(e.call(null,r,i,t))return n=!0,!1}),n):n},getUniqueId:function(){var t=0;return function(){return t++}}(),templatify:function(t){if(this.isFunction(t))return t;var e=i.element(t);return"SCRIPT"===e.prop("tagName")?function(){return e.text()}:function(){return String(t)}},defer:function(t){setTimeout(t,0)},noop:function(){},formatPrefix:function(t,e){return e?"":t+"-"},className:function(t,e,n){return(n?"":".")+t+e},escapeHighlightedString:function(t,e,n){e=e||"";var i=document.createElement("div");i.appendChild(document.createTextNode(e)),n=n||"";var o=document.createElement("div");o.appendChild(document.createTextNode(n));var s=document.createElement("div");return s.appendChild(document.createTextNode(t)),s.innerHTML.replace(RegExp(r(i.innerHTML),"g"),e).replace(RegExp(r(o.innerHTML),"g"),n)}}},function(t,e,n){"use strict";t.exports={element:null}},function(t,e){var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString;t.exports=function(t,e,i){if("[object Function]"!==r.call(e))throw new TypeError("iterator must be a function");var o=t.length;if(o===+o)for(var s=0;s was loaded but did not call our provided callback"),JSONPScriptError:i("JSONPScriptError","