From 2ca9da4af83875c32a5e6bb818ec80019194eaf7 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 09:56:26 -0800 Subject: [PATCH 01/68] Include winget command to uninstall --- content/en/installation/windows.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/content/en/installation/windows.md b/content/en/installation/windows.md index e04268cd2..e66878d70 100644 --- a/content/en/installation/windows.md +++ b/content/en/installation/windows.md @@ -55,6 +55,12 @@ scoop install hugo-extended winget install Hugo.Hugo.Extended ``` +To uninstall the extended edition of Hugo: + +```sh +winget uninstall --name "Hugo (Extended)" +``` + [Winget]: https://learn.microsoft.com/en-us/windows/package-manager/ {{% include "installation/_common/04-build-from-source.md" %}} From 78bcf358ea0aadcb602913bebd4e24014bdd4f02 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 11:41:53 -0800 Subject: [PATCH 02/68] Update Tailwind CSS npm package version to 4.0 --- content/en/functions/css/TailwindCSS.md | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/content/en/functions/css/TailwindCSS.md b/content/en/functions/css/TailwindCSS.md index 1b24fc207..3fd727dfb 100644 --- a/content/en/functions/css/TailwindCSS.md +++ b/content/en/functions/css/TailwindCSS.md @@ -16,27 +16,17 @@ toc: true {{< new-in 0.128.0 >}} -{{% todo %}}remove this admonition when feature is stable.{{% /todo %}} - -{{% note %}} -This is an experimental feature pending the release of TailwindCSS v4.0. - -The functionality, configuration requirements, and documentation are subject to change at any time and may be not compatible with prior releases. -{{% /note %}} - ## Prerequisites To use this function you must install the Tailwind CSS CLI v4.0 or later. You may install the CLI as an npm package or as a standalone executable. See the [Tailwind CSS documentation] for details. + +```text +npm install --save-dev tailwindcss @tailwindcss/cli +``` + [Tailwind CSS documentation]: https://tailwindcss.com/docs/installation -{{% note %}} -Prior to the release of Tailwind CSS v4.0 you must install [v4.0.0-alpha.26](https://github.com/tailwindlabs/tailwindcss/releases/tag/v4.0.0-alpha.26) or later. - -`npm install --save-dev tailwindcss@next @tailwindcss/cli@next` - -{{% /note %}} - ## Options minify From 51cb92180e182ce8bc23b1204dd38027c0f586f9 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 12:46:43 -0800 Subject: [PATCH 03/68] Improve description of output format template selection --- .../en/functions/collections/Dictionary.md | 2 +- content/en/getting-started/configuration.md | 6 +- content/en/hugo-modules/configuration.md | 4 +- content/en/templates/output-formats.md | 69 +++++++++---------- 4 files changed, 37 insertions(+), 44 deletions(-) diff --git a/content/en/functions/collections/Dictionary.md b/content/en/functions/collections/Dictionary.md index e7de0877f..a55838e27 100644 --- a/content/en/functions/collections/Dictionary.md +++ b/content/en/functions/collections/Dictionary.md @@ -33,7 +33,7 @@ To create an empty map: {{ $m := dict }} ``` -Note that the `key` can be either a `string` or a `string slice`. The latter is useful to create a deeply nested structure, e.g.: +Note that the `key` can be either a `string` or a `[]string`. The latter is useful to create a deeply nested structure, e.g.: ```go-html-template {{ $m := dict (slice "a" "b" "c") "value" }} diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index 448689295..a0e3de1b1 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -291,7 +291,7 @@ To remain consistent and prevent unexpected behavior, do not mix these strategie ###### disableKinds -(`string slice`) Disable rendering of the specified page [kinds](g), any of `404`, `home`, `page`, `robotstxt`, `rss`, `section`, `sitemap`, `taxonomy`, or `term`. +(`[]string`) Disable rendering of the specified page [kinds](g), any of `404`, `home`, `page`, `robotstxt`, `rss`, `section`, `sitemap`, `taxonomy`, or `term`. ###### disableLanguages @@ -337,7 +337,7 @@ See [Front matter Configuration](#configure-front-matter). (`bool`) Ignore the cache directory. Default is `false`. ###### ignoreLogs -(`string slice`) A slice of message identifiers corresponding to warnings and errors you wish to suppress. See [`erroridf`] and [`warnidf`]. +(`[]string`) A slice of message identifiers corresponding to warnings and errors you wish to suppress. See [`erroridf`] and [`warnidf`]. [`erroridf`]: /functions/fmt/erroridf/ [`warnidf`]: /functions/fmt/warnidf/ @@ -474,7 +474,7 @@ content/post/hügó.md → https://example.org/post/hugo/ {{< new-in 0.124.0 >}} -(`string slice`) A list of segments to render. If not set, everything will be rendered. This is more commonly set in a CLI flag, e.g. `hugo --renderSegments segment1,segment2`. The segment names must match the names in the [segments](#configure-segments) configuration. +(`[]string`) A list of segments to render. If not set, everything will be rendered. This is more commonly set in a CLI flag, e.g. `hugo --renderSegments segment1,segment2`. The segment names must match the names in the [segments](#configure-segments) configuration. ###### sectionPagesMenu diff --git a/content/en/hugo-modules/configuration.md b/content/en/hugo-modules/configuration.md index c6d8c3900..3fb1fbeec 100644 --- a/content/en/hugo-modules/configuration.md +++ b/content/en/hugo-modules/configuration.md @@ -161,14 +161,14 @@ lang : (`string`) The language code, e.g. "en". Only relevant for `content` mounts, and `static` mounts when in multihost mode. includeFiles -: (`string` or `string slice`) One or more [glob](https://github.com/gobwas/glob) patterns matching files or directories to include. If `excludeFiles` is not set, the files matching `includeFiles` will be the files mounted. +: (`string` or `[]string`) One or more [glob](https://github.com/gobwas/glob) patterns matching files or directories to include. If `excludeFiles` is not set, the files matching `includeFiles` will be the files mounted. The glob patterns are matched to the file names starting from the `source` root, they should have Unix styled slashes even on Windows, `/` matches the mount root and `**` can be used as a super-asterisk to match recursively down all directories, e.g `/posts/**.jpg`. The search is case-insensitive. excludeFiles -: (`string` or `string slice`) One or more glob patterns matching files to exclude. +: (`string` or `[]string`) One or more glob patterns matching files to exclude. ### Example diff --git a/content/en/templates/output-formats.md b/content/en/templates/output-formats.md index c81d58488..c81a81264 100644 --- a/content/en/templates/output-formats.md +++ b/content/en/templates/output-formats.md @@ -22,7 +22,7 @@ This is the full set of built-in media types in Hugo: {{< datatable "config" "mediaTypes" "_key" "suffixes" >}} -**Note:** +Notes: - It is possible to add custom media types or change the defaults; e.g., if you want to change the suffix for `text/html` to `asp`. - `Suffixes` are the values that will be used for URLs and file names for that media type in Hugo. @@ -41,7 +41,7 @@ To add or modify a media type, define it in a `mediaTypes` section in your [site The above example adds one new media type, `text/enriched`, and changes the suffix for the built-in `text/html` media type. -**Note:** these media types are configured for **your output formats**. If you want to redefine one of Hugo's default output formats (e.g. `HTML`), you also need to redefine the media type. So, if you want to change the suffix of the `HTML` output format from `html` (default) to `htm`: +These media types are configured for your output formats. If you want to redefine one of Hugo's default output formats, you also need to redefine the media type. So, if you want to change the suffix of the `HTML` output format from `html` (default) to `htm`: {{< code-toggle file=hugo >}} [mediaTypes] @@ -65,7 +65,8 @@ This is the full set of Hugo's built-in output formats: {{< datatable "config" "outputFormats" "_key" "baseName" "isHTML" "isPlainText" "mediaType" "noUgly" "path" "permalinkable" "protocol" "rel" >}} -- A page can be output in as many output formats as you want, and you can have an infinite amount of output formats defined **as long as they resolve to a unique path on the file system**. In the above table, the best example of this is `amp` vs. `html`. `amp` has the value `amp` for `path` so it doesn't overwrite the `html` version; e.g. we can now have both `/index.html` and `/amp/index.html`. +- A page can be output in as many output formats as you want, and you can have an infinite amount of output formats defined as long as they resolve to a unique path on the file system. In the above table, the best example of this is `amp` vs. `html`. `amp` has the value `amp` for `path` so it doesn't overwrite the `html` version; e.g. we can now have both `/index.html` and `/amp/index.html`. + - The `mediaType` must match a defined media type. - You can define new output formats or redefine built-in output formats; e.g., if you want to put `amp` pages in a different path. @@ -89,10 +90,10 @@ baseName : (`string`) The base name of the published file. Default is `index`. isHTML -: (`bool`) If `true`, classifies the output format as HTML. Hugo uses this value to determine when to create alias redirects, when to inject the LiveReload script, etc. Default is `false`. +: (`bool`) Whether to classify the output format as HTML. Hugo uses this value to determine when to create alias redirects, when to inject the LiveReload script, etc. Default is `false`. isPlainText -: (`bool`) If `true`, Hugo parses templates for this output format with Go's [text/template] package instead of the [html/template] package. Default is `false`. +: (`bool`) Whether to parse templates for this output format with Go's [text/template] package instead of the [html/template] package. Default is `false`. [html/template]: https://pkg.go.dev/html/template [text/template]: https://pkg.go.dev/text/template @@ -103,12 +104,12 @@ mediaType [media type]: https://en.wikipedia.org/wiki/Media_type notAlternative -: (`bool`) If `true`, excludes this output format from the values returned by the [`AlternativeOutputFormats`] method on a `Page` object. Default is `false`. +: (`bool`) Whether to exclude this output format from the values returned by the [`AlternativeOutputFormats`] method on a `Page` object. Default is `false`. [`AlternativeOutputFormats`]: /methods/page/alternativeoutputformats/ noUgly -: (`bool`) If `true`, disables ugly URLs for this output format when `uglyURLs` is `true` in your site configuration. Default is `false`. +: (`bool`) Whether to disable ugly URLs for this output format when `uglyURLs` is `true` in your site configuration. Default is `false`. path : (`string`) The path to the directory containing the published files, relative to the root of the publish directory. @@ -126,10 +127,10 @@ rel : (`string`) If provided, you can assign this value to `rel` attributes in `link` elements when iterating over output formats in your templates. Default is `alternate`. root -: (`bool`) If `true`, files will be published to the root of the publish directory. Default is `false`. +: (`bool`) Whether to publish files to the root of the publish directory. Default is `false`. ugly -: (`bool`) If `true`, enables uglyURLs for this output format when `uglyURLs` is `false` in your site configuration. Default is `false`. +: (`bool`) Whether to enable uglyURLs for this output format when `uglyURLs` is `false` in your site configuration. Default is `false`. weight : (`int`) When set to a non-zero value, Hugo uses the `weight` as the first criteria when sorting output formats, falling back to the name of the output format. Lighter items float to the top, while heavier items sink to the bottom. Hugo renders output formats sequentially based on the sort order. @@ -160,11 +161,11 @@ Example from site configuration file: page = ["html"] {{}} -Note that in the above examples, the _output formats_ for `section`, +Note that in the examples above, the output formats for `section`, `taxonomy` and `term` will stay at their default value `['html','rss']`. -* The `outputs` definition is per page [`Kind`]. -* The names (e.g. `html`, `amp`) must match the `name` of a defined output format, and can be overridden per page in front matter. +- The `outputs` definition is per page [`Kind`]. +- The names (e.g. `html`, `amp`) must match the `name` of a defined output format, and can be overridden per page in front matter. The following is an example of front matter in a content file that defines output formats for the rendered `Page`: @@ -196,7 +197,8 @@ The [`Permalink`] and [`RelPermalink`] methods on a `Page` object return the fir [`Permalink`]: /methods/page/permalink [`RelPermalink`]: /methods/page/relpermalink -__from `single.json.json`:__ +From `single.json.json`: + ```go-html-template {{ .RelPermalink }} → /that-page/ {{ with .OutputFormats.Get "json" }} @@ -206,7 +208,7 @@ __from `single.json.json`:__ In order for them to return the output format of the current template file instead, the given output format should have its `permalinkable` setting set to true. -**Same template file as above with json output format's `permalinkable` set to true:** +This is the same template file as above with the `json` output format's `permalinkable` parameter set to `true`: ```go-html-template {{ .RelPermalink }} → /that-page/index.json @@ -215,34 +217,25 @@ In order for them to return the output format of the current template file inste {{ end }} ``` -From content files, you can use the `ref` or `relref` shortcodes: +## Template lookup order -```go-html-template -[Neat]({{}}) -[Who]({{}}) +Each output format requires a template conforming to the [template lookup order]. + +For the highest specificity in the template lookup order, include the page kind, output format, and suffix in the file name: + +[template lookup order]: /templates/lookup-order/ + +```text +[page kind].[output format].[suffix] ``` -## Templates for your output formats +For example, for section pages: -Each output format requires a corresponding template conforming to the [template lookup order](/templates/lookup-order/). Hugo considers both output format and suffix when selecting a template. - -For example, to generate a JSON file for the home page, the template with highest specificity is `layouts/index.json.json`. - -Hugo will now also detect the media type and output format of partials, if possible, and use that information to decide if the partial should be parsed as a plain text template or not. - -Hugo will look for the name given, so you can name it whatever you want. But if you want it treated as plain text, you should use the file suffix and, if needed, the name of the Output Format. The pattern is as follows: - -```go-html-template -[partial name].[OutputFormat].[suffix] -``` - -The partial below is a plain text template . The output format is `csv`, and since this is the only output format with the suffix `csv`, we don't need to include the output format `name`): - -```go-html-template -{{ partial "mytextpartial.csv" . }} -``` +Output format|Template path +:--|:-- +`html`|`layouts/_default/section.html.html` +`json`|`layouts/_default/section.json.json` +`rss`|`layouts/_default/section.rss.xml` [site configuration]: /getting-started/configuration/ -[lookup order]: /templates/lookup-order/ -[media type]: https://en.wikipedia.org/wiki/Media_type [`kind`]: /methods/page/kind/ From ce24fe4e0f4becfb023de53719d00f78d37de7ed Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 14:48:36 -0800 Subject: [PATCH 04/68] Update param.md --- content/en/shortcodes/param.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/shortcodes/param.md b/content/en/shortcodes/param.md index 70866d4ba..bff659ec1 100755 --- a/content/en/shortcodes/param.md +++ b/content/en/shortcodes/param.md @@ -27,7 +27,7 @@ params: size: medium --- -We found a {{}} shirt. +We found a {{%/* param "color" */%}} shirt. {{< /code >}} Hugo renders this to: @@ -39,5 +39,5 @@ Hugo renders this to: Access nested values by [chaining](g) the [identifiers](g): ```text -{{}} +{{%/* param my.nested.param */%}} ``` From b8160af039ea7cf71afd6f28ac88bbffcfd40872 Mon Sep 17 00:00:00 2001 From: Patrice Chalin Date: Fri, 24 Jan 2025 12:12:03 -0500 Subject: [PATCH 05/68] Delete page self-reference in page/type.md --- content/en/methods/page/Type.md | 1 - 1 file changed, 1 deletion(-) diff --git a/content/en/methods/page/Type.md b/content/en/methods/page/Type.md index 565f6397c..2a2a5c731 100644 --- a/content/en/methods/page/Type.md +++ b/content/en/methods/page/Type.md @@ -7,7 +7,6 @@ action: related: - methods/page/Kind - methods/page/Layout - - methods/page/Type returnType: string signatures: [PAGE.Type] --- From d22cadc25a47271cf3d0b77d2115c52c6bb782ef Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 24 Jan 2025 10:49:59 -0800 Subject: [PATCH 06/68] Update mathematics.md --- content/en/content-management/mathematics.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/content-management/mathematics.md b/content/en/content-management/mathematics.md index 5eda9ffa3..f600fd89b 100644 --- a/content/en/content-management/mathematics.md +++ b/content/en/content-management/mathematics.md @@ -44,7 +44,7 @@ Equations and expressions can be displayed inline with other text, or as standal Whether an equation or expression appears inline, or as a block, depends on the delimiters that surround the mathematical markup. Delimiters are defined in pairs, where each pair consists of an opening and closing delimiter. The opening and closing delimiters may be the same, or different. {{% note %}} -You can configure Hugo to render mathematical markup on the client-side using the MathJax or KaTeX display engine, or you can render the markup while building your site with the [`transform.ToMath`]function. +You can configure Hugo to render mathematical markup on the client side using the MathJax or KaTeX display engine, or you can render the markup with the [`transform.ToMath`] function while building your site. The first approach is described below. From 82a2365bd5afec9ff1998ab3abf3aa77a985a125 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 24 Jan 2025 16:28:05 -0800 Subject: [PATCH 07/68] Add print-only QR code example --- content/en/functions/images/QR.md | 36 ++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/content/en/functions/images/QR.md b/content/en/functions/images/QR.md index 1e8783d05..8b372e948 100644 --- a/content/en/functions/images/QR.md +++ b/content/en/functions/images/QR.md @@ -6,7 +6,7 @@ action: aliases: [] related: [] returnType: images.ImageResource - signatures: ['images.QR TEXT OPTIONS'] + signatures: ['images.QR TEXT [OPTIONS]'] toc: true math: true --- @@ -72,6 +72,40 @@ Specify `level`, `scale`, and `targetDir` as needed to achieve the desired resul {{< qr text="https://gohugo.io" level="high" scale=3 targetDir="codes" class="qrcode" />}} +To include a QR code that points to the `Permalink` of the current page: + +{{< code file=layouts/_default/single.html >}} +{{ with images.QR .Permalink }} + QR code linking to {{ $.Permalink }} +{{ end }} +{{< /code >}} + +Then hide the QR code with CSS unless printing the page: + +```css +/* Hide QR code by default */ +.qr-code { + display: none; +} + +/* Show QR code when printing */ +@media print { + .qr-code { + display: block; + } +} +``` + + + + ## Scale As you decrease the size of a QR code, the maximum distance at which it can be reliably scanned by a device also decreases. From 152a92d80af4f6342c6d23628e7cd35173c44ecb Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 24 Jan 2025 18:52:23 -0800 Subject: [PATCH 08/68] Update Last.md --- content/en/functions/collections/Last.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/functions/collections/Last.md b/content/en/functions/collections/Last.md index 8219e120d..7739b8726 100644 --- a/content/en/functions/collections/Last.md +++ b/content/en/functions/collections/Last.md @@ -27,6 +27,8 @@ Set `N` to zero to return an empty collection. Use `last` and [`where`] together. +[`where`]: /functions/collections/where/ + ```go-html-template {{ range where .Pages "Section" "articles" | last 5 }} {{ .Render "summary" }} From 92f03a35093124caeaebbd44e4b48cf5ccf1f951 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 25 Jan 2025 10:01:54 -0800 Subject: [PATCH 09/68] Revise description of privacy settings --- content/en/about/features.md | 56 ++++---- content/en/about/privacy.md | 120 ++++-------------- .../glossary/embedded-template.md | 5 + content/en/templates/embedded.md | 29 ++++- 4 files changed, 84 insertions(+), 126 deletions(-) create mode 100644 content/en/getting-started/glossary/embedded-template.md diff --git a/content/en/about/features.md b/content/en/about/features.md index c04f69686..883d53407 100644 --- a/content/en/about/features.md +++ b/content/en/about/features.md @@ -32,7 +32,7 @@ toc: true : Reduce development time and cost by creating or importing packaged combinations of archetypes, assets, content, data, templates, translation tables, static files, or configuration settings. A module may serve as the basis for a new site, or to augment an existing site. [Privacy] -: Configure the behavior of Hugo's embedded templates and shortcodes to facilitate compliance with regional privacy regulations, including the [GDPR] and [CCPA]. +: Configure your site to help comply with regional privacy regulations. [Security] : Hugo's security model is based on the premise that template and configuration authors are trusted, but content authors are not. This model enables generation of HTML output safe against code injection. Other protections prevent "shelling out" to arbitrary applications, limit access to specific environment variables, prevent connections to arbitrary remote data sources, and more. @@ -105,35 +105,37 @@ toc: true [Minification] : Minify HTML, CSS, and JavaScript to reduce file size, bandwidth consumption, and loading times. -[CCPA]: https://en.wikipedia.org/wiki/California_Consumer_Privacy_Act -[Sass processing]: /functions/css/Sass/ -[Caching]: /functions/partials/includecached/ -[CommonMark]: https://spec.commonmark.org/current/ -[Content adapters]: /content-management/content-adapters/ -[Content formats]: /content-management/formats/ -[Data]: /content-management/data-sources/ -[Diagrams]: /content-management/diagrams/ -[GDPR]: https://en.wikipedia.org/wiki/General_Data_Protection_Regulation -[GitHub Flavored Markdown]: https://github.github.com/gfm/ -[Image processing]: /content-management/image-processing/ -[JavaScript bundling]: /functions/js/build/ -[Markdown attributes]: /content-management/markdown-attributes/ -[Markdown extensions]: /getting-started/configuration-markup/#goldmark-extensions -[Markdown render hooks]: /render-hooks/introduction/ -[Mathematics]: /content-management/mathematics/ -[Menus]: /content-management/menus/ -[Minification]: /getting-started/configuration/#configure-minify -[Modules]: /hugo-modules/ [Multilingual]: /content-management/multilingual/ [Multiplatform]: /installation/ [Output formats]: /templates/output-formats/ -[Privacy]: /about/privacy/ -[Security]: /about/security/ -[Segmentation]: /getting-started/configuration/#configure-segments -[Shortcodes]: /content-management/shortcodes/ -[Syntax highlighting]: /content-management/syntax-highlighting/ -[Tailwind CSS processing]: /functions/css/tailwindcss/ -[Taxonomies]: /content-management/taxonomies/ [Templates]: /templates/introduction/ [Themes]: https://themes.gohugo.io/ +[Modules]: /hugo-modules/ +[Privacy]: /about/privacy/ +[Security]: /about/security/ + +[Content formats]: /content-management/formats/ +[CommonMark]: https://spec.commonmark.org/current/ +[GitHub Flavored Markdown]: https://github.github.com/gfm/ +[Markdown attributes]: /content-management/markdown-attributes/ +[Markdown extensions]: /getting-started/configuration-markup/#goldmark-extensions +[Markdown render hooks]: /render-hooks/introduction/ +[Diagrams]: /content-management/diagrams/ +[Mathematics]: /content-management/mathematics/ +[Syntax highlighting]: /content-management/syntax-highlighting/ +[Shortcodes]: /content-management/shortcodes/ + +[Content adapters]: /content-management/content-adapters/ +[Taxonomies]: /content-management/taxonomies/ +[Data]: /content-management/data-sources/ +[Menus]: /content-management/menus/ [URL management]: /content-management/urls/ + +[Image processing]: /content-management/image-processing/ +[JavaScript bundling]: /functions/js/build/ +[Sass processing]: /functions/css/Sass/ +[Tailwind CSS processing]: /functions/css/tailwindcss/ + +[Caching]: /functions/partials/includecached/ +[Segmentation]: /getting-started/configuration/#configure-segments +[Minification]: /getting-started/configuration/#configure-minify diff --git a/content/en/about/privacy.md b/content/en/about/privacy.md index 425af0bcf..ef4faa793 100644 --- a/content/en/about/privacy.md +++ b/content/en/about/privacy.md @@ -1,7 +1,7 @@ --- title: Privacy linkTitle: Privacy -description: Configure your site to facilitate compliance with regional privacy regulations. +description: Configure your site to help comply with regional privacy regulations. categories: [about] keywords: ["GDPR", "Privacy", "Data Protection"] menu: @@ -11,112 +11,42 @@ menu: weight: 40 toc: true aliases: [/gdpr/,/about/hugo-and-gdpr/] +toc: true --- - General Data Protection Regulation ([GDPR](https://en.wikipedia.org/wiki/General_Data_Protection_Regulation)) is a regulation in EU law on data protection and privacy for all individuals within the European Union and the European Economic Area. It became enforceable on 25 May 2018. +## Responsibility - **Hugo is a static site generator. By using Hugo you are already standing on very solid ground. Static HTML files on disk are much easier to reason about compared to server and database driven websites.** +Site authors are responsible for ensuring compliance with regional privacy regulations, including but not limited to: - But even static websites can integrate with external services, so from version `0.41`, Hugo provides a **privacy configuration** that covers the relevant built-in templates. +- GDPR (General Data Protection Regulation): Applies to individuals within the European Union and the European Economic Area. +- CCPA (California Consumer Privacy Act): Applies to California residents. +- CPRA (California Privacy Rights Act): Expands upon the CCPA with stronger consumer privacy protections. +- Virginia Consumer Data Protection Act (CDPA): Applies to businesses that collect, process, or sell the personal data of Virginia residents. - Note that: +Hugo's privacy settings can assist in compliance efforts. - * These settings have their defaults setting set to _off_, i.e. how it worked before Hugo `0.41`. You must do your own evaluation of your site and apply the appropriate settings. - * These settings work with the [embedded templates](/templates/embedded/). Some theme may contain custom templates for embedding services like Google Analytics. In that case these options have no effect. - * We will continue this work and improve this further in future Hugo versions. +## Embedded templates -## All privacy settings +Hugo provides [embedded templates](g) to simplify site and content creation. Some of these templates interact with external services. For example, the `youtube` shortcode connects with YouTube's servers to embed videos on your site. -Below are all privacy settings and their default value. These settings need to be put in your site configuration (e.g. `hugo.toml`). +Some of these templates include settings to enhance privacy. -{{< code-toggle file=hugo >}} -[privacy] -[privacy.disqus] -disable = false -[privacy.googleAnalytics] -disable = false -respectDoNotTrack = false -[privacy.instagram] -disable = false -simple = false -[privacy.vimeo] -disable = false -enableDNT = false -simple = false -[privacy.x] -disable = false -enableDNT = false -simple = false -[privacy.youtube] -disable = false -privacyEnhanced = false -{{< /code-toggle >}} -## Disable all services +## Configuration -An example privacy configuration that disables all the relevant services in Hugo. With this configuration, the other settings will not matter. +{{% note %}} +These settings affect the behavior of some of Hugo's embedded templates. These settings may or may not affect the behavior of templates provided by third parties in their modules or themes. +{{% /note %}} -{{< code-toggle file=hugo >}} -[privacy] -[privacy.disqus] -disable = true -[privacy.googleAnalytics] -disable = true -[privacy.instagram] -disable = true -[privacy.vimeo] -disable = true -[privacy.x] -disable = true -[privacy.youtube] -disable = true -{{< /code-toggle >}} +These are the default privacy settings for Hugo's embedded templates: -## The privacy settings explained +{{< code-toggle config=privacy />}} -### GoogleAnalytics +See each template's documentation for a description of its privacy settings: -respectDoNotTrack -: Enabling this will make the GA templates respect the "Do Not Track" HTTP header. - -### Instagram - -simple -: If simple mode is enabled, a static and no-JS version of the Instagram image card will be built. Note that this only supports image cards and the image itself will be fetched from Instagram's servers. - -**Note:** If you use the _simple mode_ for Instagram and a site styled with Bootstrap 4, you may want to disable the inline styles provided by Hugo: - -{{< code-toggle file=hugo >}} -[services] -[services.instagram] -disableInlineCSS = true -{{< /code-toggle >}} - -### X - -enableDNT -: Enabling this for the x shortcode, the post and its embedded page on your site are not used for purposes that include personalized suggestions and personalized ads. - -simple -: If simple mode is enabled, a static and no-JS version of a post will be built. - -**Note:** If you use the _simple mode_ for X, you may want to disable the inline styles provided by Hugo: - -{{< code-toggle file=hugo >}} -[services] -[services.x] -disableInlineCSS = true -{{< /code-toggle >}} - -### YouTube - -privacyEnhanced -: When you turn on privacy-enhanced mode, YouTube won’t store information about visitors on your website unless the user plays the embedded video. - -### Vimeo - -enableDNT -: Enabling this for the vimeo shortcode, the Vimeo player will be blocked from tracking any session data, including all cookies and stats. - -simple -: If simple mode is enabled, the video thumbnail is fetched from Vimeo's servers and it is overlaid with a play button. If the user clicks to play the video, it will open in a new tab directly on Vimeo's website. +- [Disqus partial](/templates/embedded/#privacy-disqus) +- [Google Analytics partial](/templates/embedded/#privacy-google-analytics) +- [Instagram shortcode](/shortcodes/instagram/#privacy) +- [Vimeo shortcode](/shortcodes/vimeo/#privacy) +- [X shortcode](/shortcodes/x/#privacy) +- [YouTube shortcode](/shortcodes/youtube/#privacy) diff --git a/content/en/getting-started/glossary/embedded-template.md b/content/en/getting-started/glossary/embedded-template.md new file mode 100644 index 000000000..b514040d3 --- /dev/null +++ b/content/en/getting-started/glossary/embedded-template.md @@ -0,0 +1,5 @@ +--- +title: embedded template +--- + +An _embedded template_ is a built-in component within the Hugo application. This includes features like [partials](g), [shortcodes](g), and [render hooks](g) that provide pre-defined structures or functionalities for creating website content. diff --git a/content/en/templates/embedded.md b/content/en/templates/embedded.md index 246381db2..c96d2a436 100644 --- a/content/en/templates/embedded.md +++ b/content/en/templates/embedded.md @@ -34,7 +34,7 @@ To include the embedded template: {{ template "_internal/disqus.html" . }} ``` -### Configure Disqus +### Configuration {#configuration-disqus} To use Hugo's Disqus template, first set up a single configuration value: @@ -55,6 +55,15 @@ You can also set the following in the front matter for a given piece of content: - `disqus_title` - `disqus_url` +### Privacy {#privacy-disqus} + +Adjust the relevant privacy settings in your site configuration. + +{{< code-toggle config=privacy.disqus />}} + +disable +: (`bool`) Whether to disable the template. Default is `false`. + ## Google Analytics {{% note %}} @@ -76,7 +85,7 @@ To include the embedded template: {{ template "_internal/google_analytics.html" . }} ``` -### Configure Google Analytics +### Configuration {#configuration-google-analytics} Provide your tracking ID in your configuration file: @@ -87,6 +96,18 @@ id = "G-MEASUREMENT_ID" To use this value in your own template, access the configured ID with `{{ site.Config.Services.GoogleAnalytics.ID }}`. +### Privacy {#privacy-google-analytics} + +Adjust the relevant privacy settings in your site configuration. + +{{< code-toggle config=privacy.googleAnalytics />}} + +disable +: (`bool`) Whether to disable the template. Default is `false`. + +respectDoNotTrack +: (`bool`) Whether to respect the brower's "do not track" setting. Default is `false`. + ## Open Graph {{% note %}} @@ -107,7 +128,7 @@ To include the embedded template: {{ template "_internal/opengraph.html" . }} ``` -### Configure Open Graph +### Configuration {#configuration-open-graph} Hugo's Open Graph template is configured using a mix of configuration settings and [front matter](/content-management/front-matter/) on individual pages. @@ -187,7 +208,7 @@ To include the embedded template: {{ template "_internal/twitter_cards.html" . }} ``` -### Configure X (Twitter) Cards +### Configuration {#configuration-x-cards} Hugo's X (Twitter) Card template is configured using a mix of configuration settings and [front-matter](/content-management/front-matter/) values on individual pages. From d1874c5f5904e64ae85791c2acce7e6274437ed8 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sat, 25 Jan 2025 17:23:42 -0800 Subject: [PATCH 10/68] Consistently use "edition" when referring to standard, extended, etc. --- content/en/contribute/development.md | 2 +- content/en/functions/css/Sass.md | 2 +- content/en/functions/hugo/IsExtended.md | 2 +- content/en/functions/resources/ToCSS.md | 2 +- content/en/getting-started/configuration-build.md | 10 +++++----- content/en/hugo-modules/configuration.md | 2 +- content/en/hugo-pipes/transpile-sass-to-css.md | 2 +- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/en/contribute/development.md b/content/en/contribute/development.md index 69d548d95..ef6fd9d37 100644 --- a/content/en/contribute/development.md +++ b/content/en/contribute/development.md @@ -161,7 +161,7 @@ Step 10 ## Building from source -You can build, install, and test Hugo at any point in its development history. The examples below build and install the extended version of Hugo. +You can build, install, and test Hugo at any point in its development history. The examples below build and install the extended edition of Hugo. To build and install the latest release: diff --git a/content/en/functions/css/Sass.md b/content/en/functions/css/Sass.md index 45f103e5d..80f828dd5 100644 --- a/content/en/functions/css/Sass.md +++ b/content/en/functions/css/Sass.md @@ -91,7 +91,7 @@ silenceDeprecations ## Dart Sass -The extended version of Hugo includes [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. +Hugo's extended and extended/deploy editions include [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. Use the latest features of the Sass language by installing Dart Sass in your development and production environments. diff --git a/content/en/functions/hugo/IsExtended.md b/content/en/functions/hugo/IsExtended.md index 84b68e6d3..9beac6e49 100644 --- a/content/en/functions/hugo/IsExtended.md +++ b/content/en/functions/hugo/IsExtended.md @@ -1,6 +1,6 @@ --- title: hugo.IsExtended -description: Reports whether the Hugo binary is the extended version. +description: Reports whether the Hugo binary is either the extended or extended/deploy edition. categories: [] keywords: [] action: diff --git a/content/en/functions/resources/ToCSS.md b/content/en/functions/resources/ToCSS.md index b944c72aa..0bd66455b 100644 --- a/content/en/functions/resources/ToCSS.md +++ b/content/en/functions/resources/ToCSS.md @@ -92,7 +92,7 @@ includePaths ## Dart Sass -The extended version of Hugo includes [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. +Hugo's extended and extended/deploy editions include [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. Use the latest features of the Sass language by installing Dart Sass in your development and production environments. diff --git a/content/en/getting-started/configuration-build.md b/content/en/getting-started/configuration-build.md index 637bfeb22..8ec88f61c 100644 --- a/content/en/getting-started/configuration-build.md +++ b/content/en/getting-started/configuration-build.md @@ -16,21 +16,21 @@ The `build` configuration section contains global build-related configuration op {{< code-toggle config=build />}} -#### buildStats +###### buildStats See [Configure buildStats](#configure-build-stats). -#### cachebusters +###### cachebusters See [Configure Cache Busters](#configure-cache-busters). -#### noJSConfigInAssets +###### noJSConfigInAssets (`bool`) If `true`, turns off writing a `jsconfig.json` into your `assets` directory with mapping of imports from running [js.Build](/hugo-pipes/js). This file is intended to help with intellisense/navigation inside code editors such as [VS Code](https://code.visualstudio.com/). Note that if you do not use `js.Build`, no file will be written. -#### useResourceCacheWhen +###### useResourceCacheWhen -(`string`) When to use the cached resources in `/resources/_gen` for PostCSS and ToCSS. Valid values are `never`, `always` and `fallback`. The last value means that the cache will be tried if PostCSS/extended version is not available. +(`string`) When to use the resource file cache, one of `never`, `fallback`, or `always`. Applicable when transpiling Sass to CSS. Default is `fallback`. ## Configure cache busters diff --git a/content/en/hugo-modules/configuration.md b/content/en/hugo-modules/configuration.md index 3fb1fbeec..13d160568 100644 --- a/content/en/hugo-modules/configuration.md +++ b/content/en/hugo-modules/configuration.md @@ -75,7 +75,7 @@ max : (`string`) The maximum Hugo version supported, e.g. `0.55.0` extended -: (`bool`) Whether the extended version of Hugo is required. +: (`bool`) Whether the extended edition of Hugo is required, satisfied by installing either the extended or extended/deploy edition. ## Module configuration: imports diff --git a/content/en/hugo-pipes/transpile-sass-to-css.md b/content/en/hugo-pipes/transpile-sass-to-css.md index a7f790c8a..18cfcb0ca 100644 --- a/content/en/hugo-pipes/transpile-sass-to-css.md +++ b/content/en/hugo-pipes/transpile-sass-to-css.md @@ -83,7 +83,7 @@ includePaths ## Dart Sass -The extended version of Hugo includes [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. +Hugo's extended and extended/deploy editions include [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. Use the latest features of the Sass language by installing Dart Sass in your development and production environments. From 86a4a50884cc795b78b64bbeffc30a6fc5482607 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 26 Jan 2025 17:49:29 -0800 Subject: [PATCH 11/68] Improve babel example and description of options --- content/en/functions/js/Babel.md | 61 +++++++++++++++---------- content/en/functions/js/Batch.md | 2 +- content/en/functions/js/Build.md | 3 +- content/en/functions/resources/Babel.md | 55 ++++++++++++++-------- 4 files changed, 77 insertions(+), 44 deletions(-) diff --git a/content/en/functions/js/Babel.md b/content/en/functions/js/Babel.md index 9485b4d05..f5b54a3b0 100644 --- a/content/en/functions/js/Babel.md +++ b/content/en/functions/js/Babel.md @@ -3,31 +3,34 @@ title: js.Babel description: Compiles the given JavaScript resource with Babel. categories: [] keywords: [] -weight: 100 action: - aliases: [babel,/hugo-pipes/babel/] + aliases: [babel] related: + - functions/js/Batch - functions/js/Build - functions/resources/Fingerprint - functions/resources/Minify returnType: resource.Resource signatures: ['js.Babel [OPTIONS] RESOURCE'] +weight: 30 toc: true --- -{{< new-in 0.128.0 >}} - ```go-html-template {{ with resources.Get "js/main.js" }} - {{ if hugo.IsDevelopment }} - {{ with . | babel }} + {{ $opts := dict + "minified" hugo.IsProduction + "noComments" hugo.IsProduction + "sourceMap" (cond hugo.IsProduction "none" "external") + }} + {{ with . | js.Babel $opts }} + {{ if hugo.IsProduction }} + {{ with . | fingerprint }} + + {{ end }} + {{ else }} {{ end }} - {{ else }} - {{ $opts := dict "minified" true }} - {{ with . | babel $opts | fingerprint }} - - {{ end }} {{ end }} {{ end }} ``` @@ -72,20 +75,32 @@ module.exports = { ## Options -config -: (`string`) Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` in your project. More information on these configuration files can be found here: [babel configuration](https://babeljs.io/docs/en/configuration). +###### compact -minified -: (`bool`) Save as many bytes as possible when printing +(`bool`) Whether to remove optional newlines and whitespace. Enabled when `minified` is `true`. Default is `false` -noComments -: (`bool`) Write comments to generated output (true by default) +###### config -compact -: (`bool`) Do not include superfluous whitespace characters and line terminators. Defaults to `auto` if not set. +(`string`) Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` file in the root of your project. See [details](https://babeljs.io/docs/en/configuration). -verbose -: (`bool`) Log everything +###### minified -sourceMap -: (`string`) Output `inline` or `external` sourcemap from the babel compile. External sourcemaps will be written to the target with the output file name + ".map". Input sourcemaps can be read from js.Build and node modules and combined into the output sourcemaps. +(`bool`) Whether to minify the compiled code. Enables the `compact` option. Default is `false`. + +###### noBabelrc + +(`string`) Whether to ignore `.babelrc` and `.babelignore` files. Default is `false`. + +###### noComments + +(`bool`) Whether to remove comments. Default is `false`. + +###### sourceMap + +(`string`) Whether to generate source maps, one of `external`, `inline`, or `none`. Default is `none`. + + + +###### verbose + +(`bool`) Whether to enable verbose logging. Default is `fasle` diff --git a/content/en/functions/js/Batch.md b/content/en/functions/js/Batch.md index fbc1c7e61..08913f61f 100644 --- a/content/en/functions/js/Batch.md +++ b/content/en/functions/js/Batch.md @@ -1,7 +1,6 @@ --- title: js.Batch description: Build JavaScript bundle groups with global code splitting and flexible hooks/runners setup. -weight: 50 categories: [] keywords: [] action: @@ -13,6 +12,7 @@ action: - functions/resources/Minify returnType: js.Batcher signatures: ['js.Batch [ID]'] +weight: 20 toc: true --- diff --git a/content/en/functions/js/Build.md b/content/en/functions/js/Build.md index 4829f3b83..56118213f 100644 --- a/content/en/functions/js/Build.md +++ b/content/en/functions/js/Build.md @@ -1,17 +1,18 @@ --- title: js.Build description: Bundles, transpiles, tree shakes, and minifies JavaScript resources. -weight: 30 categories: [] keywords: [] action: aliases: [] related: + - functions/js/Batch - functions/js/Babel - functions/resources/Fingerprint - functions/resources/Minify returnType: resource.Resource signatures: ['js.Build [OPTIONS] RESOURCE'] +weight: 10 toc: true --- diff --git a/content/en/functions/resources/Babel.md b/content/en/functions/resources/Babel.md index 3e98ba3fe..59c6e636c 100644 --- a/content/en/functions/resources/Babel.md +++ b/content/en/functions/resources/Babel.md @@ -5,6 +5,7 @@ categories: [] keywords: [] action: related: + - functions/js/Batch - functions/js/Build - functions/resources/Fingerprint - functions/resources/Minify @@ -22,15 +23,19 @@ Use [`js.Babel`] instead. ```go-html-template {{ with resources.Get "js/main.js" }} - {{ if hugo.IsDevelopment }} - {{ with . | babel }} + {{ $opts := dict + "minified" hugo.IsProduction + "noComments" hugo.IsProduction + "sourceMap" (cond hugo.IsProduction "none" "external") + }} + {{ with . | js.Babel $opts }} + {{ if hugo.IsProduction }} + {{ with . | fingerprint }} + + {{ end }} + {{ else }} {{ end }} - {{ else }} - {{ $opts := dict "minified" true }} - {{ with . | babel $opts | fingerprint }} - - {{ end }} {{ end }} {{ end }} ``` @@ -75,20 +80,32 @@ module.exports = { ## Options -config -: (`string`) Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` in your project. More information on these configuration files can be found here: [babel configuration](https://babeljs.io/docs/en/configuration). +###### compact -minified -: (`bool`) Save as many bytes as possible when printing +(`bool`) Whether to remove optional newlines and whitespace. Enabled when `minified` is `true`. Default is `false` -noComments -: (`bool`) Write comments to generated output (true by default) +###### config -compact -: (`bool`) Do not include superfluous whitespace characters and line terminators. Defaults to `auto` if not set. +(`string`) Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` file in the root of your project. See [details](https://babeljs.io/docs/en/configuration). -verbose -: (`bool`) Log everything +###### minified -sourceMap -: (`string`) Output `inline` or `external` sourcemap from the babel compile. External sourcemaps will be written to the target with the output file name + ".map". Input sourcemaps can be read from js.Build and node modules and combined into the output sourcemaps. +(`bool`) Whether to minify the compiled code. Enables the `compact` option. Default is `false`. + +###### noBabelrc + +(`string`) Whether to ignore `.babelrc` and `.babelignore` files. Default is `false`. + +###### noComments + +(`bool`) Whether to remove comments. Default is `false`. + +###### sourceMap + +(`string`) Whether to generate source maps, one of `external`, `inline`, or `none`. Default is `none`. + + + +###### verbose + +(`bool`) Whether to enable verbose logging. Default is `fasle` From b7ed108f907562960ed7bca8b4bfc1dd805fe306 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 26 Jan 2025 18:33:54 -0800 Subject: [PATCH 12/68] Improve js.Build example and presentation of options --- content/en/functions/js/Build.md | 32 +++++---- content/en/functions/js/_common/options.md | 75 ++++++++++++++-------- 2 files changed, 68 insertions(+), 39 deletions(-) diff --git a/content/en/functions/js/Build.md b/content/en/functions/js/Build.md index 56118213f..3e78e8e98 100644 --- a/content/en/functions/js/Build.md +++ b/content/en/functions/js/Build.md @@ -28,31 +28,37 @@ The `js.Build` function uses the [evanw/esbuild] package to: ```go-html-template {{ with resources.Get "js/main.js" }} - {{ if hugo.IsDevelopment }} - {{ with . | js.Build }} + {{ $opts := dict + "minify" hugo.IsProduction + "sourceMap" (cond hugo.IsProduction "" "external") + "targetPath" "js/main.js" + }} + {{ with . | js.Build $opts }} + {{ if hugo.IsProduction }} + {{ with . | fingerprint }} + + {{ end }} + {{ else }} {{ end }} - {{ else }} - {{ $opts := dict "minify" true }} - {{ with . | js.Build $opts | fingerprint }} - - {{ end }} {{ end }} {{ end }} ``` ## Options -targetPath -: (`string`) If not set, the source path will be used as the base target path. +###### targetPath + +(`string`) If not set, the source path will be used as the base target path. Note that the target path's extension may change if the target MIME type is different, e.g. when the source is TypeScript. -format -: (`string`) The output format. One of: `iife`, `cjs`, `esm`. Default is `iife`, a self-executing function, suitable for inclusion as a ` - {{ end }} - {{ else }} - - {{ end }} - {{ end }} -{{ end }} -``` - -## Setup - -Step 1 -: Install [Node.js](https://nodejs.org/en/download) - -Step 2 -: Install the required Node.js packages in the root of your project. - -```sh -npm install --save-dev @babel/core @babel/cli -``` - -Step 3 -: Add the babel executable to Hugo's `security.exec.allow` list in your site configuration: - -{{< code-toggle file=hugo >}} -[security.exec] - allow = ['^(dart-)?sass(-embedded)?$', '^go$', '^npx$', '^postcss$', '^babel$'] -{{< /code-toggle >}} - -## Configuration - -We add the main project's `node_modules` to `NODE_PATH` when running Babel and similar tools. There are some known [issues](https://github.com/babel/babel/issues/5618) with Babel in this area, so if you have a `babel.config.js` living in a Hugo Module (and not in the project itself), we recommend using `require` to load the presets/plugins, e.g.: - -```js -module.exports = { - presets: [ - [ - require("@babel/preset-env"), - { - useBuiltIns: "entry", - corejs: 3, - }, - ], - ], -}; -``` - -## Options - -###### compact - -(`bool`) Whether to remove optional newlines and whitespace. Enabled when `minified` is `true`. Default is `false` - -###### config - -(`string`) Path to the Babel configuration file. Hugo will, by default, look for a `babel.config.js` file in the root of your project. See [details](https://babeljs.io/docs/en/configuration). - -###### minified - -(`bool`) Whether to minify the compiled code. Enables the `compact` option. Default is `false`. - -###### noBabelrc - -(`string`) Whether to ignore `.babelrc` and `.babelignore` files. Default is `false`. - -###### noComments - -(`bool`) Whether to remove comments. Default is `false`. - -###### sourceMap - -(`string`) Whether to generate source maps, one of `external`, `inline`, or `none`. Default is `none`. - - - -###### verbose - -(`bool`) Whether to enable verbose logging. Default is `fasle` diff --git a/content/en/functions/resources/PostCSS.md b/content/en/functions/resources/PostCSS.md index 2389d2ff5..ed043b692 100644 --- a/content/en/functions/resources/PostCSS.md +++ b/content/en/functions/resources/PostCSS.md @@ -20,116 +20,3 @@ Use [`css.PostCSS`] instead. [`css.PostCSS`]: /functions/css/postcss/ {{% /deprecated-in %}} - -```go-html-template -{{ with resources.Get "css/main.css" | postCSS }} - -{{ end }} -``` - -## Setup - -Follow the steps below to transform CSS using any of the available [PostCSS plugins]. - -Step 1 -: Install [Node.js]. - -Step 2 -: Install the required Node.js packages in the root of your project. For example, to add vendor prefixes to your CSS rules: - -```sh -npm i -D postcss postcss-cli autoprefixer -``` - -Step 3 -: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or another [supported file name]. For example: - -```js -module.exports = { - plugins: [ - require('autoprefixer') - ] -}; -``` - -{{% note %}} -{{% include "functions/resources/_common/postcss-windows-warning.md" %}} -{{% /note %}} - -Step 4 -: Place your CSS file within the `assets/css` directory. - -Step 5 -: Process the resource with PostCSS: - -```go-html-template -{{ with resources.Get "css/main.css" | postCSS }} - -{{ end }} -``` - -## Options - -The `resources.PostCSS` method takes an optional map of options. - -config -: (`string`) The directory that contains the PostCSS configuration file. Default is the root of the project directory. - -noMap -: (`bool`) Default is `false`. If `true`, disables inline sourcemaps. - -inlineImports -: (`bool`) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored. Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file. Hugo will look for imports relative to the module mount and will respect theme overrides. - -skipInlineImportsNotFound -: (`bool`) Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. - -```go-html-template -{{ $opts := dict "config" "config-directory" "noMap" true }} -{{ with resources.Get "css/main.css" | postCSS $opts }} - -{{ end }} -``` - -## No configuration file - -To avoid using a PostCSS configuration file, you can specify a minimal configuration using the options map. - -use -: (`string`) A space-delimited list of PostCSS plugins to use. - -parser -: (`string`) A custom PostCSS parser. - -stringifier -: (`string`) A custom PostCSS stringifier. - -syntax -: (`string`) Custom postcss syntax. - -```go-html-template -{{ $opts := dict "use" "autoprefixer postcss-color-alpha" }} -{{ with resources.Get "css/main.css" | postCSS $opts }} - -{{ end }} -``` - -## Check environment - -The current Hugo environment name (set by `--environment` or in configuration or OS environment) is available in the Node context, which allows constructs like this: - -```js -const autoprefixer = require('autoprefixer'); -const purgecss = require('@fullhuman/postcss-purgecss'); -module.exports = { - plugins: [ - autoprefixer, - process.env.HUGO_ENVIRONMENT !== 'development' ? purgecss : null - ] -} -``` - -[node.js]: https://nodejs.org/en/download -[postcss plugins]: https://www.postcss.parts/ -[supported file name]: https://github.com/postcss/postcss-load-config#usage -[transpile to CSS]: /functions/css/sass/ diff --git a/content/en/functions/resources/ToCSS.md b/content/en/functions/resources/ToCSS.md index 1ce7d1081..39c02f06d 100644 --- a/content/en/functions/resources/ToCSS.md +++ b/content/en/functions/resources/ToCSS.md @@ -20,225 +20,3 @@ Use [`css.Sass`] instead. [`css.Sass`]: /functions/css/sass/ {{% /deprecated-in %}} - -```go-html-template -{{ with resources.Get "sass/main.scss" }} - {{ $opts := dict - "enableSourceMap" (not hugo.IsProduction) - "outputStyle" (cond hugo.IsProduction "compressed" "expanded") - "targetPath" "css/main.css" - "transpiler" "libsass" - }} - {{ with . | toCSS $opts }} - {{ if hugo.IsProduction }} - {{ with . | fingerprint }} - - {{ end }} - {{ else }} - - {{ end }} - {{ end }} -{{ end }} -``` - -Transpile Sass to CSS using the LibSass transpiler included in Hugo's extended and extended/deploy editions, or [install Dart Sass](#dart-sass) to use the latest features of the Sass language. - -Sass has two forms of syntax: [SCSS] and [indented]. Hugo supports both. - -[scss]: https://sass-lang.com/documentation/syntax#scss -[indented]: https://sass-lang.com/documentation/syntax#the-indented-syntax - -## Options - -transpiler -: (`string`) The transpiler to use, either `libsass` (default) or `dartsass`. Hugo's extended and extended/deploy editions include the LibSass transpiler. To use the Dart Sass transpiler, see the [installation instructions](#dart-sass) below. - -targetPath -: (`string`) If not set, the transformed resource's target path will be the original path of the asset file with its extension replaced by `.css`. - -vars -: (`map`) A map of key-value pairs that will be available in the `hugo:vars` namespace. Useful for [initializing Sass variables from Hugo templates](https://discourse.gohugo.io/t/42053/). - -```scss -// LibSass -@import "hugo:vars"; - -// Dart Sass -@use "hugo:vars" as v; -``` - -outputStyle -: (`string`) Output styles available to LibSass include `nested` (default), `expanded`, `compact`, and `compressed`. Output styles available to Dart Sass include `expanded` (default) and `compressed`. - -precision -: (`int`) Precision of floating point math. Not applicable to Dart Sass. - -enableSourceMap -: (`bool`) If `true`, generates a source map. - -sourceMapIncludeSources -: (`bool`) If `true`, embeds sources in the generated source map. Not applicable to LibSass. - -includePaths -: (`slice`) A slice of paths, relative to the project root, that the transpiler will use when resolving `@use` and `@import` statements. - -```go-html-template -{{ $opts := dict - "transpiler" "dartsass" - "targetPath" "css/style.css" - "vars" site.Params.styles - "enableSourceMap" (not hugo.IsProduction) - "includePaths" (slice "node_modules/bootstrap/scss") -}} -{{ with resources.Get "sass/main.scss" | toCSS $opts | minify | fingerprint }} - -{{ end }} -``` - -silenceDeprecations -: (`slice`) {{< new-in 0.139.0 >}} A slice of deprecation IDs to silence. The deprecation IDs are printed to in the warning message, e.g "import" in `WARN Dart Sass: DEPRECATED [import] ...`. This is for Dart Sass only. - -## Dart Sass - -Hugo's extended and extended/deploy editions include [LibSass] to transpile Sass to CSS. In 2020, the Sass team deprecated LibSass in favor of [Dart Sass]. - -Use the latest features of the Sass language by installing Dart Sass in your development and production environments. - -### Installation overview - -Dart Sass is compatible with Hugo v0.114.0 and later. - -If you have been using Embedded Dart Sass[^1] with Hugo v0.113.0 and earlier, uninstall Embedded Dart Sass, then install Dart Sass. If you have installed both, Hugo will use Dart Sass. - -If you install Hugo as a [Snap package] there is no need to install Dart Sass. The Hugo Snap package includes Dart Sass. - -[^1]: In 2023, the Sass team deprecated Embedded Dart Sass in favor of Dart Sass. - -### Installing in a development environment - -When you install Dart Sass somewhere in your PATH, Hugo will find it. - -OS|Package manager|Site|Installation -:--|:--|:--|:-- -Linux|Homebrew|[brew.sh]|`brew install sass/sass/sass` -Linux|Snap|[snapcraft.io]|`sudo snap install dart-sass` -macOS|Homebrew|[brew.sh]|`brew install sass/sass/sass` -Windows|Chocolatey|[chocolatey.org]|`choco install sass` -Windows|Scoop|[scoop.sh]|`scoop install sass` - -You may also install [prebuilt binaries] for Linux, macOS, and Windows. - -Run `hugo env` to list the active transpilers. - -### Installing in a production environment - -For [CI/CD] deployments (e.g., GitHub Pages, GitLab Pages, Netlify, etc.) you must edit the workflow to install Dart Sass before Hugo builds the site[^2]. Some providers allow you to use one of the package managers above, or you can download and extract one of the prebuilt binaries. - -[^2]: You do not have to do this if (a) you have not modified the assets cache location, and (b) you have not set `useResourceCacheWhen` to `never` in your [site configuration], and (c) you add and commit your `resources` directory to your repository. - -#### GitHub Pages - -To install Dart Sass for your builds on GitHub Pages, add this step to the GitHub Pages workflow file: - -```yaml -- name: Install Dart Sass - run: sudo snap install dart-sass -``` - -If you are using GitHub Pages for the first time with your repository, GitHub provides a [starter workflow] for Hugo that includes Dart Sass. This is the simplest way to get started. - -#### GitLab Pages - -To install Dart Sass for your builds on GitLab Pages, the `.gitlab-ci.yml` file should look something like this: - -```yaml -variables: - HUGO_VERSION: 0.141.0 - DART_SASS_VERSION: 1.83.4 - GIT_DEPTH: 0 - GIT_STRATEGY: clone - GIT_SUBMODULE_STRATEGY: recursive - TZ: America/Los_Angeles -image: - name: golang:1.20-buster -pages: - script: - # Install Dart Sass - - curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz - - tar -xf dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz - - cp -r dart-sass/* /usr/local/bin - - rm -rf dart-sass* - # Install Hugo - - curl -LJO https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb - - apt install -y ./hugo_extended_${HUGO_VERSION}_linux-amd64.deb - - rm hugo_extended_${HUGO_VERSION}_linux-amd64.deb - # Build - - hugo --gc --minify - artifacts: - paths: - - public - rules: - - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH -``` - -#### Netlify - -To install Dart Sass for your builds on Netlify, the `netlify.toml` file should look something like this: - -```toml -[build.environment] -HUGO_VERSION = "0.141.0" -DART_SASS_VERSION = "1.83.4" -NODE_VERSION = "22" -TZ = "America/Los_Angeles" - -[build] -publish = "public" -command = """\ - curl -LJO https://github.com/sass/dart-sass/releases/download/${DART_SASS_VERSION}/dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \ - tar -xf dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \ - rm dart-sass-${DART_SASS_VERSION}-linux-x64.tar.gz && \ - export PATH=/opt/build/repo/dart-sass:$PATH && \ - hugo --gc --minify \ - """ -``` - -### Example - -To transpile with Dart Sass, set `transpiler` to `dartsass` in the options map passed to `css.Sass`. For example: - -```go-html-template -{{ with resources.Get "sass/main.scss" }} - {{ $opts := dict - "enableSourceMap" (not hugo.IsProduction) - "outputStyle" (cond hugo.IsProduction "compressed" "expanded") - "targetPath" "css/main.css" - "transpiler" "dartsass" - }} - {{ with . | toCSS $opts }} - {{ if hugo.IsProduction }} - {{ with . | fingerprint }} - - {{ end }} - {{ else }} - - {{ end }} - {{ end }} -{{ end }} -``` - -### Miscellaneous - -If you build Hugo from source and run `mage test -v`, the test will fail if you install Dart Sass as a Snap package. This is due to the Snap package's strict confinement model. - -[brew.sh]: https://brew.sh/ -[chocolatey.org]: https://community.chocolatey.org/packages/sass -[ci/cd]: https://en.wikipedia.org/wiki/CI/CD -[dart sass]: https://sass-lang.com/dart-sass -[libsass]: https://sass-lang.com/libsass -[prebuilt binaries]: https://github.com/sass/dart-sass/releases/latest -[scoop.sh]: https://scoop.sh/#/apps?q=sass -[site configuration]: /getting-started/configuration/#configure-build -[snap package]: /installation/linux/#snap -[snapcraft.io]: https://snapcraft.io/dart-sass -[starter workflow]: https://github.com/actions/starter-workflows/blob/main/pages/hugo.yml diff --git a/content/en/methods/pager/PageSize.md b/content/en/methods/pager/PageSize.md index 148ad5907..aa2370fd0 100644 --- a/content/en/methods/pager/PageSize.md +++ b/content/en/methods/pager/PageSize.md @@ -16,21 +16,3 @@ Use [`PAGER.PagerSize`] instead. [`PAGER.PagerSize`]: /methods/pager/pagersize/ {{% /deprecated-in %}} - -The number of pages per pager is determined by the optional second argument passed to the [`Paginate`] method, falling back to the `pagerSize` as defined in your [site configuration]. - -[`Paginate`]: /methods/page/paginate/ -[site configuration]: /templates/pagination/#configuration - -```go-html-template -{{ $pages := where site.RegularPages "Type" "posts" }} -{{ $paginator := .Paginate $pages }} - -{{ range $paginator.Pages }} -

{{ .LinkTitle }}

-{{ end }} - -{{ with $paginator }} - {{ .PageSize }} -{{ end }} -``` diff --git a/content/en/methods/site/IsDevelopment.md b/content/en/methods/site/IsDevelopment.md index 6f443316b..0482df71b 100644 --- a/content/en/methods/site/IsDevelopment.md +++ b/content/en/methods/site/IsDevelopment.md @@ -15,7 +15,3 @@ Use [`hugo.IsDevelopment`] instead. [`hugo.IsDevelopment`]: /functions/hugo/isdevelopment/ {{% /deprecated-in %}} - -```go-html-template -{{ .Site.IsDevelopment }} → true/false -``` diff --git a/content/en/methods/site/IsMultiLingual.md b/content/en/methods/site/IsMultiLingual.md index 7ec938812..abeb04c66 100644 --- a/content/en/methods/site/IsMultiLingual.md +++ b/content/en/methods/site/IsMultiLingual.md @@ -15,27 +15,3 @@ Use [`hugo.IsMultilingual`] instead. [`hugo.IsMultilingual`]: /functions/hugo/ismultilingual/ {{% /deprecated-in %}} - -Site configuration: - -{{< code-toggle file=hugo >}} -defaultContentLanguage = 'de' -defaultContentLanguageInSubdir = true -[languages] - [languages.de] - languageCode = 'de-DE' - languageName = 'Deutsch' - title = 'Projekt Dokumentation' - weight = 1 - [languages.en] - languageCode = 'en-US' - languageName = 'English' - title = 'Project Documentation' - weight = 2 -{{< /code-toggle >}} - -Template: - -```go-html-template -{{ .Site.IsMultiLingual }} → true -``` diff --git a/content/en/methods/site/IsServer.md b/content/en/methods/site/IsServer.md index a688c553a..2d7f8a48e 100644 --- a/content/en/methods/site/IsServer.md +++ b/content/en/methods/site/IsServer.md @@ -15,7 +15,3 @@ Use [`hugo.IsServer`] instead. [`hugo.IsServer`]: /functions/hugo/isserver/ {{% /deprecated-in %}} - -```go-html-template -{{ .Site.IsServer }} → true/false -``` diff --git a/content/en/methods/site/LastChange.md b/content/en/methods/site/LastChange.md index 65925c0eb..42d8b0866 100644 --- a/content/en/methods/site/LastChange.md +++ b/content/en/methods/site/LastChange.md @@ -15,14 +15,3 @@ Use [`.Site.Lastmod`] instead. [`.Site.Lastmod`]: /methods/site/lastmod/ {{% /deprecated-in %}} - -The `LastChange` method on a `Site` object returns a [`time.Time`] value. Use this with time [functions] and [methods]. For example: - -```go-html-template -{{ .Site.LastChange | time.Format ":date_long" }} → January 31, 2024 - -``` - -[`time.Time`]: https://pkg.go.dev/time#Time -[functions]: /functions/time/ -[methods]: /methods/time/ From 81b91ef4e7c8c018d7230ccb33b53c0e5eaba5c9 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Tue, 28 Jan 2025 10:35:05 -0800 Subject: [PATCH 15/68] Remove related pages from pages for deprecated functions and methods --- content/en/functions/crypto/FNV32a.md | 7 +------ content/en/functions/data/GetCSV.md | 6 +----- content/en/functions/data/GetJSON.md | 6 +----- content/en/functions/resources/Babel.md | 6 +----- content/en/functions/resources/PostCSS.md | 6 +----- content/en/functions/resources/ToCSS.md | 6 +----- content/en/methods/page/Scratch.md | 4 +--- content/en/methods/pager/PageSize.md | 3 +-- content/en/methods/shortcode/Scratch.md | 3 +-- 9 files changed, 9 insertions(+), 38 deletions(-) diff --git a/content/en/functions/crypto/FNV32a.md b/content/en/functions/crypto/FNV32a.md index 6e1edb9b2..944daee3b 100644 --- a/content/en/functions/crypto/FNV32a.md +++ b/content/en/functions/crypto/FNV32a.md @@ -5,12 +5,7 @@ categories: [] keywords: [] action: aliases: [] - related: - - functions/hash/Xxhash - - functions/crypto/HMAC - - functions/crypto/MD5 - - functions/crypto/SHA1 - - functions/crypto/SHA256 + related: [] returnType: int signatures: [crypto.FNV32a STRING] expiryDate: 2025-07-31 # deprecated 2024-07-31 diff --git a/content/en/functions/data/GetCSV.md b/content/en/functions/data/GetCSV.md index f9e4cd758..737c4847d 100644 --- a/content/en/functions/data/GetCSV.md +++ b/content/en/functions/data/GetCSV.md @@ -5,11 +5,7 @@ categories: [] keywords: [] action: aliases: [getCSV] - related: - - functions/data/GetJSON - - functions/resources/Get - - functions/resources/GetRemote - - methods/page/Resources + related: [] returnType: '[][]string' signatures: ['data.GetCSV SEPARATOR INPUT... [OPTIONS]'] toc: true diff --git a/content/en/functions/data/GetJSON.md b/content/en/functions/data/GetJSON.md index 36fc056fe..71311bc6b 100644 --- a/content/en/functions/data/GetJSON.md +++ b/content/en/functions/data/GetJSON.md @@ -5,11 +5,7 @@ categories: [] keywords: [] action: aliases: [getJSON] - related: - - functions/data/GetCSV - - functions/resources/Get - - functions/resources/GetRemote - - methods/page/Resources + related: [] returnType: any signatures: ['data.GetJSON INPUT... [OPTIONS]'] toc: true diff --git a/content/en/functions/resources/Babel.md b/content/en/functions/resources/Babel.md index 3d487fdfe..3210f48dd 100644 --- a/content/en/functions/resources/Babel.md +++ b/content/en/functions/resources/Babel.md @@ -4,11 +4,7 @@ description: Compiles the given JavaScript resource with Babel. categories: [] keywords: [] action: - related: - - functions/js/Batch - - functions/js/Build - - functions/resources/Fingerprint - - functions/resources/Minify + related: [] returnType: resource.Resource signatures: ['resources.Babel [OPTIONS] RESOURCE'] toc: true diff --git a/content/en/functions/resources/PostCSS.md b/content/en/functions/resources/PostCSS.md index ed043b692..97d53314c 100644 --- a/content/en/functions/resources/PostCSS.md +++ b/content/en/functions/resources/PostCSS.md @@ -4,11 +4,7 @@ description: Processes the given resource with PostCSS using any PostCSS plugin. categories: [] keywords: [] action: - related: - - functions/resources/Fingerprint - - functions/resources/Minify - - functions/resources/PostProcess - - functions/css/Sass + related: [] returnType: resource.Resource signatures: ['resources.PostCSS [OPTIONS] RESOURCE'] toc: true diff --git a/content/en/functions/resources/ToCSS.md b/content/en/functions/resources/ToCSS.md index 39c02f06d..b75cb1113 100644 --- a/content/en/functions/resources/ToCSS.md +++ b/content/en/functions/resources/ToCSS.md @@ -4,11 +4,7 @@ description: Transpiles Sass to CSS. categories: [] keywords: [] action: - related: - - functions/resources/Fingerprint - - functions/resources/Minify - - functions/css/PostCSS - - functions/resources/PostProcess + related: [] returnType: resource.Resource signatures: ['resources.ToCSS [OPTIONS] RESOURCE'] toc: true diff --git a/content/en/methods/page/Scratch.md b/content/en/methods/page/Scratch.md index 13cd3dff8..4375e2b98 100644 --- a/content/en/methods/page/Scratch.md +++ b/content/en/methods/page/Scratch.md @@ -4,9 +4,7 @@ description: Returns a "scratch pad" on the given page to store and manipulate d categories: [] keywords: [] action: - related: - - methods/page/Store - - functions/collections/NewScratch + related: [] returnType: maps.Scratch signatures: [PAGE.Scratch] toc: true diff --git a/content/en/methods/pager/PageSize.md b/content/en/methods/pager/PageSize.md index aa2370fd0..29e755429 100644 --- a/content/en/methods/pager/PageSize.md +++ b/content/en/methods/pager/PageSize.md @@ -4,8 +4,7 @@ description: Returns the number of pages per pager. categories: [] keywords: [] action: - related: - - methods/page/Paginate + related: [] returnType: int signatures: [PAGER.PageSize] expiryDate: 2025-06-09 # deprecated 2024-06-09 diff --git a/content/en/methods/shortcode/Scratch.md b/content/en/methods/shortcode/Scratch.md index b044a66c8..475566234 100644 --- a/content/en/methods/shortcode/Scratch.md +++ b/content/en/methods/shortcode/Scratch.md @@ -4,8 +4,7 @@ description: Returns a "scratch pad" scoped to the shortcode to store and manipu categories: [] keywords: [] action: - related: - - functions/collections/NewScratch + related: [] returnType: maps.Scratch signatures: [SHORTCODE.Scratch] expiryDate: 2025-11-18 # deprecated 2024-11-18 From f7ef83e56c79dada952e7d283874c917f56a29d6 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Tue, 28 Jan 2025 11:11:41 -0800 Subject: [PATCH 16/68] Refer each Hugo Pipe page to the corresponding function --- content/en/functions/js/Babel.md | 2 +- content/en/functions/js/Build.md | 2 +- content/en/functions/resources/PostProcess.md | 2 +- .../en/getting-started/configuration-build.md | 2 +- content/en/hugo-pipes/bundling.md | 14 +- content/en/hugo-pipes/fingerprint.md | 20 +-- content/en/hugo-pipes/minification.md | 17 +-- content/en/hugo-pipes/postcss.md | 122 +----------------- content/en/hugo-pipes/postprocess.md | 95 +------------- content/en/hugo-pipes/resource-from-string.md | 24 +--- .../en/hugo-pipes/resource-from-template.md | 28 +--- 11 files changed, 17 insertions(+), 311 deletions(-) diff --git a/content/en/functions/js/Babel.md b/content/en/functions/js/Babel.md index f5b54a3b0..fddc5e296 100644 --- a/content/en/functions/js/Babel.md +++ b/content/en/functions/js/Babel.md @@ -1,6 +1,6 @@ --- title: js.Babel -description: Compiles the given JavaScript resource with Babel. +description: Compile the given JavaScript resource with Babel. categories: [] keywords: [] action: diff --git a/content/en/functions/js/Build.md b/content/en/functions/js/Build.md index 3e78e8e98..9bdc2454a 100644 --- a/content/en/functions/js/Build.md +++ b/content/en/functions/js/Build.md @@ -1,6 +1,6 @@ --- title: js.Build -description: Bundles, transpiles, tree shakes, and minifies JavaScript resources. +description: Bundle, transpile, tree shake, and minify JavaScript resources. categories: [] keywords: [] action: diff --git a/content/en/functions/resources/PostProcess.md b/content/en/functions/resources/PostProcess.md index 82f02c9e5..ed144740c 100644 --- a/content/en/functions/resources/PostProcess.md +++ b/content/en/functions/resources/PostProcess.md @@ -31,7 +31,7 @@ Call `resources.PostProcess` when one or more of the steps in the transformation A prime use case for this is purging unused CSS rules using the [PurgeCSS] plugin for the PostCSS Node.js package. -## CSS Purging +## CSS purging {{% note %}} There are several ways to set up CSS purging with PostCSS in Hugo. If you have a simple project, you should consider going the simpler route and drop the use of `resources.PostProcess` and just extract keywords from the templates. See the [Tailwind documentation](https://tailwindcss.com/docs/controlling-file-size/#app) for examples. diff --git a/content/en/getting-started/configuration-build.md b/content/en/getting-started/configuration-build.md index 8ec88f61c..654b1f7dc 100644 --- a/content/en/getting-started/configuration-build.md +++ b/content/en/getting-started/configuration-build.md @@ -70,7 +70,7 @@ target If `enable` is set to `true`, creates a `hugo_stats.json` file in the root of your project. This file contains arrays of the `class` attributes, `id` attributes, and tags of every HTML element within your published site. Use this file as data source when [removing unused CSS] from your site. This process is also known as pruning, purging, or tree shaking. -[removing unused CSS]: /hugo-pipes/postprocess/#css-purging-with-postcss +[removing unused CSS]: /functions/resources/postprocess/#css-purging Exclude `class` attributes, `id` attributes, or tags from `hugo_stats.json` with the `disableClasses`, `disableIDs`, and `disableTags` keys. diff --git a/content/en/hugo-pipes/bundling.md b/content/en/hugo-pipes/bundling.md index 7fc9fc9df..1e0908737 100755 --- a/content/en/hugo-pipes/bundling.md +++ b/content/en/hugo-pipes/bundling.md @@ -9,18 +9,6 @@ menu: parent: hugo-pipes weight: 90 weight: 90 -action: - aliases: [] - returnType: resource.Resource - signatures: ['resources.Concat TARGETPATH [RESOURCE...]'] --- -## Usage - -Asset files of the same MIME type can be bundled into one resource using `resources.Concat` which takes two arguments, the target path for the created resource bundle and a slice of resource objects to be concatenated. - -```go-html-template -{{ $plugins := resources.Get "js/plugins.js" }} -{{ $global := resources.Get "js/global.js" }} -{{ $js := slice $plugins $global | resources.Concat "js/bundle.js" }} -``` +See the [`resources.Concat`](/functions/resources/concat/) function. diff --git a/content/en/hugo-pipes/fingerprint.md b/content/en/hugo-pipes/fingerprint.md index 68e41acd1..78fb18081 100755 --- a/content/en/hugo-pipes/fingerprint.md +++ b/content/en/hugo-pipes/fingerprint.md @@ -1,7 +1,7 @@ --- title: Fingerprint linkTitle: Fingerprinting and SRI hashing -description: Process a given resource, adding a hash string of the resource's content. +description: Cryptographically hash the content of the given resource. categories: [asset management] keywords: [] menu: @@ -9,22 +9,6 @@ menu: parent: hugo-pipes weight: 100 weight: 100 -action: - aliases: [fingerprint] - returnType: resource.Resource - signatures: ['resources.Fingerprint [ALGORITHM] RESOURCE'] --- -## Usage - -Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and an optional [hash algorithm](https://en.wikipedia.org/wiki/Secure_Hash_Algorithms). - -The default hash algorithm is `sha256`. Other available algorithms are `sha384` and (as of Hugo `0.55`) `sha512` and `md5`. - -Any so processed asset will bear a `.Data.Integrity` property containing an integrity string, which is made up of the name of the hash algorithm, one hyphen and the base64-encoded hash sum. - -```go-html-template -{{ $js := resources.Get "js/global.js" }} -{{ $secureJS := $js | resources.Fingerprint "sha512" }} - -``` +See the [`resources.Fingerprint`](/functions/resources/fingerprint/) function. diff --git a/content/en/hugo-pipes/minification.md b/content/en/hugo-pipes/minification.md index a5d4724f9..3943d87d0 100755 --- a/content/en/hugo-pipes/minification.md +++ b/content/en/hugo-pipes/minification.md @@ -1,7 +1,7 @@ --- title: Minify linkTitle: Asset minification -description: Minifies a given resource. +description: Minify a given resource. categories: [asset management] keywords: [] menu: @@ -9,19 +9,6 @@ menu: parent: hugo-pipes weight: 80 weight: 80 -action: - aliases: [minify] - returnType: resource.Resource - signatures: [resources.Minify RESOURCE] --- -## Usage - -Any CSS, JS, JSON, HTML, SVG, or XML resource can be minified using `resources.Minify` which takes for argument the resource object. - -```go-html-template -{{ $css := resources.Get "css/main.css" }} -{{ $style := $css | resources.Minify }} -``` - -Note that you can also minify the final HTML output to `/public` by running `hugo --minify`. +See the [`resources.Minify`](/functions/resources/minify/) function. diff --git a/content/en/hugo-pipes/postcss.md b/content/en/hugo-pipes/postcss.md index 8ca983f7e..72a091c8f 100755 --- a/content/en/hugo-pipes/postcss.md +++ b/content/en/hugo-pipes/postcss.md @@ -1,6 +1,6 @@ --- title: PostCSS -description: Process CSS files with PostCSS, using any of the available plugins. +description: Process the given resource with PostCSS using any PostCSS plugin. categories: [asset management] keywords: [] menu: @@ -8,124 +8,6 @@ menu: parent: hugo-pipes weight: 40 weight: 40 -toc: true -action: - aliases: [postCSS] - returnType: resource.Resource - signatures: ['css.PostCSS [OPTIONS] RESOURCE'] --- -## Setup - -Follow the steps below to transform CSS using any of the [available PostCSS plugins](https://www.postcss.parts/). - -Step 1 -: Install [Node.js](https://nodejs.org/en/download). - -Step 2 -: Install the required Node.js packages in the root of your project. For example, to add vendor prefixes to CSS rules: - -```sh -npm i -D postcss postcss-cli autoprefixer -``` - -Step 3 -: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or one of the other [supported file names]. For example: - -[supported file names]: https://github.com/postcss/postcss-load-config#usage - -{{< code file=postcss.config.js >}} -module.exports = { - plugins: [ - require('autoprefixer') - ] -}; -{{< /code >}} - -{{% note %}} -If you are a Windows user, and the path to your project contains a space, you must place the PostCSS configuration within the package.json file. See [this example](https://github.com/postcss/postcss-load-config#packagejson) and issue [#7333](https://github.com/gohugoio/hugo/issues/7333). -{{% /note %}} - -Step 4 -: Place your CSS file within the `assets` directory. - -Step 5 -: Capture the CSS file as a resource and pipe it through `css.PostCSS` (alias `postCSS`): - -{{< code file=layouts/partials/css.html >}} -{{ with resources.Get "css/main.css" | postCSS }} - -{{ end }} -{{< /code >}} - -If starting with a Sass file within the `assets` directory: - -{{< code file=layouts/partials/css.html >}} -{{ with resources.Get "sass/main.scss" | toCSS | postCSS }} - -{{ end }} -{{< /code >}} - -## Options - -The `css.PostCSS` method takes an optional map of options. - -config -: (`string`) The directory that contains the PostCSS configuration file. Default is the root of the project directory. - -noMap -: (`bool`) Default is `false`. If `true`, disables inline sourcemaps. - -inlineImports -: (`bool`) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once. -URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored. -Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file. -Hugo will look for imports relative to the module mount and will respect theme overrides. - -skipInlineImportsNotFound -: (`bool`) Default is `false`. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true. - -{{< code file=layouts/partials/css.html >}} -{{ $opts := dict "config" "config-directory" "noMap" true }} -{{ with resources.Get "css/main.css" | postCSS $opts }} - -{{ end }} -{{< /code >}} - -## No configuration file - -To avoid using a PostCSS configuration file, you can specify a minimal configuration using the options map. - -use -: (`string`) A space-delimited list of PostCSS plugins to use. - -parser -: (`string`) A custom PostCSS parser. - -stringifier -: (`string`) A custom PostCSS stringifier. - -syntax -: (`string`) Custom postcss syntax. - -{{< code file=layouts/partials/css.html >}} -{{ $opts := dict "use" "autoprefixer postcss-color-alpha" }} -{{ with resources.Get "css/main.css" | postCSS $opts }} - -{{ end }} -{{< /code >}} - -## Check Hugo environment - -The current Hugo environment name (set by `--environment` or in configuration or OS environment) is available in the Node context, which allows constructs like this: - -{{< code file=postcss.config.js >}} -module.exports = { - plugins: [ - require('autoprefixer'), - ...process.env.HUGO_ENVIRONMENT === 'production' - ? [purgecss] - : [] - ] -} -{{< /code >}} +See the [`css.PostCSS`](/functions/css/postcss/) function. diff --git a/content/en/hugo-pipes/postprocess.md b/content/en/hugo-pipes/postprocess.md index 5a0a5797e..e916dfc4d 100755 --- a/content/en/hugo-pipes/postprocess.md +++ b/content/en/hugo-pipes/postprocess.md @@ -1,6 +1,6 @@ --- title: PostProcess -description: Allows delaying of resource transformations to after the build. +description: Process the given resource after the build. categories: [asset management] keywords: [] menu: @@ -8,97 +8,6 @@ menu: parent: hugo-pipes weight: 50 weight: 50 -action: - aliases: [] - returnType: postpub.PostPublishedResource - signatures: [resources.PostProcess RESOURCE] --- -## Usage - -Marking a resource with `resources.PostProcess` delays any transformations to after the build, typically because one or more of the steps in the transformation chain depends on the result of the build (e.g. files in `public`). - -A prime use case for this is [CSS purging with PostCSS](#css-purging-with-postcss). - -There are currently two limitations to this: - -1. This only works in `*.html` templates (i.e. templates that produces HTML files). -1. You cannot manipulate the values returned from the resource's methods. E.g. the `upper` in this example will not work as expected: - - ```go-html-template - {{ $css := resources.Get "css/main.css" }} - {{ $css = $css | css.PostCSS | minify | fingerprint | resources.PostProcess }} - {{ $css.RelPermalink | upper }} - ``` - -## CSS purging with PostCSS - -{{% note %}} -There are several ways to set up CSS purging with PostCSS in Hugo. If you have a simple project, you should consider going the simpler route and drop the use of `resources.PostProcess` and just extract keywords from the templates. See the [Tailwind documentation](https://tailwindcss.com/docs/controlling-file-size/#app) for some examples. -{{% /note %}} - -The below configuration will write a `hugo_stats.json` file to the project root as part of the build. If you're only using this for the production build, you should consider placing it below [`config/production`](/getting-started/configuration/#configuration-directory). - -{{< code-toggle file=hugo >}} -[build.buildStats] - enable = true -{{< /code-toggle >}} - -See the [configure build] documentation for details and options. - -[configure build]: /getting-started/configuration/#configure-build - -`postcss.config.js` - -```js -const purgecss = require('@fullhuman/postcss-purgecss')({ - content: [ './hugo_stats.json' ], - defaultExtractor: (content) => { - let els = JSON.parse(content).htmlElements; - return els.tags.concat(els.classes, els.ids); - } -}); - -module.exports = { - plugins: [ - ...(process.env.HUGO_ENVIRONMENT === 'production' ? [ purgecss ] : []) - ] - }; -``` - -Note that in the example above, the "CSS purge step" will only be applied to the production build. This means that you need to do something like this in your head template to build and include your CSS: - -```go-html-template -{{ $css := resources.Get "css/main.css" }} -{{ $css = $css | css.PostCSS }} -{{ if hugo.IsProduction }} -{{ $css = $css | minify | fingerprint | resources.PostProcess }} -{{ end }} - -``` - -## Hugo environment variables available in PostCSS - -These are the environment variables Hugo passes down to PostCSS (and Babel), which allows you do do `process.env.HUGO_ENVIRONMENT === 'production' ? [autoprefixer] : []` and similar: - -PWD -: The absolute path to the project working directory. - -HUGO_ENVIRONMENT -: The value e.g. set with `hugo -e production` (defaults to `production` for `hugo` and `development` for `hugo server`). - -HUGO_PUBLISHDIR -: The absolute path to the publish directory (the `public` directory). Note that the value will always point to a directory on disk even when running `hugo server` in memory mode. If you write to this directory from PostCSS when running the server, you could run the server with one of these flags: - -```sh -hugo server --renderToDisk -hugo server --renderStaticToDisk -``` - -Also, Hugo will add environment variables for all files mounted below `assets/_jsconfig`. A default mount will be set up with files in the project root matching this regexp: `(babel|postcss|tailwind)\.config\.js`. - -These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you to do this and similar: - -```js -let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js'; -``` +See the [`resources.PostProcess`](/functions/resources/postprocess/) function. diff --git a/content/en/hugo-pipes/resource-from-string.md b/content/en/hugo-pipes/resource-from-string.md index 53bcfff74..9c943591c 100755 --- a/content/en/hugo-pipes/resource-from-string.md +++ b/content/en/hugo-pipes/resource-from-string.md @@ -1,7 +1,7 @@ --- title: FromString linkTitle: Resource from string -description: Creates a resource from a string. +description: Create a resource from a string. categories: [asset management] keywords: [] menu: @@ -9,26 +9,6 @@ menu: parent: hugo-pipes weight: 110 weight: 110 -action: - aliases: [] - returnType: resource.Resource - signatures: [resources.FromString TARGETPATH STRING] --- -## Usage - -It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the target path for the created resource and the given content string. - -The result is cached using the target path as the cache key. - -The following example creates a resource file containing localized variables for every project's languages. - -```go-html-template -{{ $string := (printf "var rootURL = '%s'; var apiURL = '%s';" (absURL "/") (.Param "API_URL")) }} -{{ $targetPath := "js/vars.js" }} -{{ $vars := $string | resources.FromString $targetPath }} -{{ $global := resources.Get "js/global.js" | resources.Minify }} - - - -``` +See the [`resources.FromString`](/functions/resources/fromstring/) function. diff --git a/content/en/hugo-pipes/resource-from-template.md b/content/en/hugo-pipes/resource-from-template.md index 0c81f0c00..76303822d 100755 --- a/content/en/hugo-pipes/resource-from-template.md +++ b/content/en/hugo-pipes/resource-from-template.md @@ -1,7 +1,7 @@ --- title: ExecuteAsTemplate linkTitle: Resource from template -description: Creates a resource from a template +description: Create a resource from a Go template, parsed and executed with the given context. categories: [asset management] keywords: [] menu: @@ -9,30 +9,6 @@ menu: parent: hugo-pipes weight: 120 weight: 120 -action: - aliases: [] - returnType: resource.Resource - signatures: [resources.ExecuteAsTemplate TARGETPATH CONTEXT RESOURCE] --- -## Usage - -In order to use Hugo Pipes function on an asset file containing Go Template magic the function `resources.ExecuteAsTemplate` must be used. - -The function takes three arguments: the target path for the created resource, the template context, and the resource object. The target path is used to cache the result. - -```go-html-template -// assets/sass/template.scss -$backgroundColor: {{ .Param "backgroundColor" }}; -$textColor: {{ .Param "textColor" }}; -body{ - background-color:$backgroundColor; - color: $textColor; -} -// [...] -``` - -```go-html-template -{{ $sassTemplate := resources.Get "sass/template.scss" }} -{{ $style := $sassTemplate | resources.ExecuteAsTemplate "main.scss" . | css.Sass }} -``` +See the [`resources.ExecuteAsTemplate`](/functions/resources/executeastemplate/) function. From 23aeb5bd01dc4af6dc6e423f78746a682beb7720 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 29 Jan 2025 12:15:43 -0800 Subject: [PATCH 17/68] Update purgecss example --- content/en/functions/css/PostCSS.md | 19 ++-- content/en/functions/resources/PostProcess.md | 93 +++++++++---------- .../en/getting-started/configuration-build.md | 2 +- 3 files changed, 53 insertions(+), 61 deletions(-) diff --git a/content/en/functions/css/PostCSS.md b/content/en/functions/css/PostCSS.md index 8d4143575..ac911c39a 100644 --- a/content/en/functions/css/PostCSS.md +++ b/content/en/functions/css/PostCSS.md @@ -25,9 +25,13 @@ toc: true Follow the steps below to transform CSS using any of the available [PostCSS plugins]. +[postcss plugins]: https://postcss.org/docs/postcss-plugins + Step 1 : Install [Node.js]. +[node.js]: https://nodejs.org/en/download + Step 2 : Install the required Node.js packages in the root of your project. For example, to add vendor prefixes to your CSS rules: @@ -36,15 +40,15 @@ npm i -D postcss postcss-cli autoprefixer ``` Step 3 -: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or another [supported file name]. For example: +: Create a PostCSS configuration file in the root of your project. -```js +{{< code file=postcss.config.js >}} module.exports = { plugins: [ require('autoprefixer') ] }; -``` +{{< /code >}} {{% note %}} {{% include "functions/resources/_common/postcss-windows-warning.md" %}} @@ -114,16 +118,9 @@ The current Hugo environment name (set by `--environment` or in configuration or ```js const autoprefixer = require('autoprefixer'); -const purgecss = require('@fullhuman/postcss-purgecss'); module.exports = { plugins: [ - autoprefixer, - process.env.HUGO_ENVIRONMENT !== 'development' ? purgecss : null + process.env.HUGO_ENVIRONMENT !== 'development' ? autoprefixer : null ] } ``` - -[node.js]: https://nodejs.org/en/download -[postcss plugins]: https://postcss.org/docs/postcss-plugins -[supported file name]: https://github.com/postcss/postcss-load-config#usage -[transpile to CSS]: /functions/css/sass/ diff --git a/content/en/functions/resources/PostProcess.md b/content/en/functions/resources/PostProcess.md index ed144740c..5987749ca 100644 --- a/content/en/functions/resources/PostProcess.md +++ b/content/en/functions/resources/PostProcess.md @@ -13,33 +13,28 @@ action: toc: true --- -```go-html-template -{{ with resources.Get "css/main.css" }} - {{ if hugo.IsDevelopment }} - - {{ else }} - {{ with . | postCSS | minify | fingerprint | resources.PostProcess }} - - {{ end }} - {{ end }} -{{ end }} -``` +The `resources.PostProces`s function delays resource transformation steps until the build is complete, primarily for tasks like removing unused CSS rules. -Marking a resource with `resources.PostProcess` postpones transformations until the build has finished. +## Example -Call `resources.PostProcess` when one or more of the steps in the transformation chain depends on the result of the build. +In this example, after the build is complete, Hugo will: -A prime use case for this is purging unused CSS rules using the [PurgeCSS] plugin for the PostCSS Node.js package. +1. Purge unused CSS using the [PurgeCSS] plugin for [PostCSS] +2. Add vendor prefixes to CSS rules using the [Autoprefixer] plugin for PostCSS +3. [Minify] the CSS +4. [Fingerprint] the CSS -## CSS purging - -{{% note %}} -There are several ways to set up CSS purging with PostCSS in Hugo. If you have a simple project, you should consider going the simpler route and drop the use of `resources.PostProcess` and just extract keywords from the templates. See the [Tailwind documentation](https://tailwindcss.com/docs/controlling-file-size/#app) for examples. -{{% /note %}} +[autoprefixer]: https://github.com/postcss/autoprefixer +[fingerprint]: /functions/resources/fingerprint/ +[minify]: /functions/resources/minify/ +[postcss]: /functions/css/postcss/ +[purgecss]: https://purgecss.com/plugins/postcss.html Step 1 : Install [Node.js]. +[node.js]: https://nodejs.org/en/download + Step 2 : Install the required Node.js packages in the root of your project: @@ -48,11 +43,27 @@ npm i -D postcss postcss-cli autoprefixer @fullhuman/postcss-purgecss ``` Step 3 -: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or another [supported file name]. For example: +: Enable creation of the `hugo_stats.json` file when building the site. If you are only using this for the production build, consider placing it below [`config/production`]. -```js +[`config/production`]: /getting-started/configuration/#configuration-directory + +{{< code-toggle file=hugo >}} +[build.buildStats] +enable = true +{{< /code-toggle >}} + +See the [configure build] documentation for details and options. + +[configure build]: /getting-started/configuration/#configure-build + +Step 4 +: Create a PostCSS configuration file in the root of your project. + +{{< code file="postcss.config.js" copy=true >}} const autoprefixer = require('autoprefixer'); -const purgecss = require('@fullhuman/postcss-purgecss')({ +const purgeCSSPlugin = require('@fullhuman/postcss-purgecss').default; + +const purgecss = purgeCSSPlugin({ content: ['./hugo_stats.json'], defaultExtractor: content => { const els = JSON.parse(content).htmlElements; @@ -68,26 +79,16 @@ const purgecss = require('@fullhuman/postcss-purgecss')({ module.exports = { plugins: [ + process.env.HUGO_ENVIRONMENT !== 'development' ? purgecss : null, autoprefixer, - process.env.HUGO_ENVIRONMENT !== 'development' ? purgecss : null ] }; -``` +{{< /code >}} {{% note %}} {{% include "functions/resources/_common/postcss-windows-warning.md" %}} {{% /note %}} -Step 4 -: Enable creation of the `hugo_stats.json` file when building the site. If you are only using this for the production build, consider placing it below [`config/production`]. - -{{< code-toggle file=hugo >}} -[build.buildStats] -enable = true -{{< /code-toggle >}} - -See the [configure build] documentation for details and options. - Step 5 : Place your CSS file within the `assets/css` directory. @@ -108,10 +109,10 @@ Step 6 ## Environment variables -Hugo passes these environment variables to PostCSS, which allows you to do something like: +Hugo passes the environment variables below to PostCSS, allowing you to do something like: ```js -process.env.HUGO_ENVIRONMENT === 'production' ? [autoprefixer] : [] +process.env.HUGO_ENVIRONMENT !== 'development' ? purgecss : null, ``` PWD @@ -122,16 +123,16 @@ HUGO_ENVIRONMENT Default is `production` for `hugo` and `development` for `hugo server`. HUGO_PUBLISHDIR -: The absolute path to the publish directory (the `public` directory). Note that the value will always point to a directory on disk even when running `hugo server` in memory mode. If you write to this directory from PostCSS when running the server, you could run the server with one of these flags: +: The absolute path to the publish directory, typically `public`. This value points to a directory on disk, even when rendering to memory with the `--renderToMemory` command line flag. -```sh -hugo server --renderToDisk -hugo server --renderStaticToDisk -``` +HUGO_FILE_X +: Hugo automatically mounts the following files from your project's root directory under `assets/_jsconfig`: -Also, Hugo will add environment variables for all files mounted below `assets/_jsconfig`. A default mount will be set up with files in the project root matching this regexp: `(babel|postcss|tailwind)\.config\.js`. +- `babel.config.js` +- `postcss.config.js` +- `tailwind.config.js` -These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you to do something like: +For each file, Hugo creates a corresponding environment variable named `HUGO_FILE_:filename:`, where `:filename:` is the uppercase version of the filename with periods replaced by underscores. This allows you to access these files within your JavaScript, for example: ```js let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js'; @@ -150,9 +151,3 @@ You cannot manipulate the values returned from the resource’s methods. For exa {{ $css = $css | css.PostCSS | minify | fingerprint | resources.PostProcess }} {{ $css.RelPermalink | strings.ToUpper }} ``` - -[node.js]: https://nodejs.org/en/download -[supported file name]: https://github.com/postcss/postcss-load-config#usage -[`config/production`]: /getting-started/configuration/#configuration-directory -[configure build]: /getting-started/configuration/#configure-build -[purgecss]: https://github.com/FullHuman/purgecss#readme diff --git a/content/en/getting-started/configuration-build.md b/content/en/getting-started/configuration-build.md index 654b1f7dc..7ee7a1461 100644 --- a/content/en/getting-started/configuration-build.md +++ b/content/en/getting-started/configuration-build.md @@ -70,7 +70,7 @@ target If `enable` is set to `true`, creates a `hugo_stats.json` file in the root of your project. This file contains arrays of the `class` attributes, `id` attributes, and tags of every HTML element within your published site. Use this file as data source when [removing unused CSS] from your site. This process is also known as pruning, purging, or tree shaking. -[removing unused CSS]: /functions/resources/postprocess/#css-purging +[removing unused CSS]: /functions/resources/postprocess/ Exclude `class` attributes, `id` attributes, or tags from `hugo_stats.json` with the `disableClasses`, `disableIDs`, and `disableTags` keys. From fd4508645fd796785088e6d4ebc958d205795708 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 29 Jan 2025 12:58:33 -0800 Subject: [PATCH 18/68] Improve link render hook performance --- layouts/_default/_markup/render-link.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index a0ee6b190..8ccef3a91 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -116,7 +116,7 @@ either of these shortcodes in conjunction with this render hook. "renderHookName" $renderHookName "text" .Text }} - {{- $attrs = partial "inline/h-rh-l/get-glossary-link-attributes.html" $ctx }} + {{- $attrs = partialCached "inline/h-rh-l/get-glossary-link-attributes.html" $ctx }} {{- else if $u.IsAbs }} {{- /* Destination is a remote resource. */}} {{- $attrs = merge $attrs (dict "rel" "external") }} @@ -136,7 +136,7 @@ either of these shortcodes in conjunction with this render hook. "parsedURL" $u "renderHookName" $renderHookName }} - {{- partial "inline/h-rh-l/validate-fragment.html" $ctx }} + {{- partialCached "inline/h-rh-l/validate-fragment.html" $ctx }} {{- $href = printf "%s#%s" $href . }} {{- end }} {{- $attrs = dict "href" $href }} @@ -169,7 +169,7 @@ either of these shortcodes in conjunction with this render hook. "parsedURL" $u "renderHookName" $renderHookName }} - {{- partial "inline/h-rh-l/validate-fragment.html" $ctx }} + {{- partialCached "inline/h-rh-l/validate-fragment.html" $ctx }} {{- $attrs = dict "href" (printf "%s#%s" $.Page.RelPermalink .) }} {{- else }} {{- if eq $errorLevel "warning" }} From 0b6d0292c75d0556f47356af8a883a0e8a411a63 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 29 Jan 2025 19:55:29 -0800 Subject: [PATCH 19/68] Update KaTeX example to use latest version --- content/en/content-management/mathematics.md | 22 +++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/content/en/content-management/mathematics.md b/content/en/content-management/mathematics.md index f600fd89b..f6d91ca43 100644 --- a/content/en/content-management/mathematics.md +++ b/content/en/content-management/mathematics.md @@ -192,9 +192,25 @@ See the [inline delimiters](#inline-delimiters) section for details. To use KaTeX instead of MathJax, replace the partial template from [Step 2] with this: {{< code file=layouts/partials/math.html copy=true >}} - - - + + + {{< /code >}} From fe4c86ec426425e181da01cfce51317f30130141 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Wed, 29 Jan 2025 20:55:43 -0800 Subject: [PATCH 21/68] Reformat MathJax example --- content/en/content-management/mathematics.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/content/en/content-management/mathematics.md b/content/en/content-management/mathematics.md index 5adc6924d..96d51b563 100644 --- a/content/en/content-management/mathematics.md +++ b/content/en/content-management/mathematics.md @@ -106,7 +106,9 @@ Create a partial template to load MathJax or KaTeX. The example below loads Math displayMath: [['\\[', '\\]'], ['$$', '$$']], // block inlineMath: [['\\(', '\\)']] // inline }, - loader: {load: ['ui/safe']}, + loader:{ + load: ['ui/safe'] + }, }; {{< /code >}} From fa7643d1bee9d8f531b67becac0f274d6edb53e9 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 30 Jan 2025 01:42:46 -0800 Subject: [PATCH 22/68] Revert "Improve link render hook performance" --- layouts/_default/_markup/render-link.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index 8ccef3a91..a0ee6b190 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -116,7 +116,7 @@ either of these shortcodes in conjunction with this render hook. "renderHookName" $renderHookName "text" .Text }} - {{- $attrs = partialCached "inline/h-rh-l/get-glossary-link-attributes.html" $ctx }} + {{- $attrs = partial "inline/h-rh-l/get-glossary-link-attributes.html" $ctx }} {{- else if $u.IsAbs }} {{- /* Destination is a remote resource. */}} {{- $attrs = merge $attrs (dict "rel" "external") }} @@ -136,7 +136,7 @@ either of these shortcodes in conjunction with this render hook. "parsedURL" $u "renderHookName" $renderHookName }} - {{- partialCached "inline/h-rh-l/validate-fragment.html" $ctx }} + {{- partial "inline/h-rh-l/validate-fragment.html" $ctx }} {{- $href = printf "%s#%s" $href . }} {{- end }} {{- $attrs = dict "href" $href }} @@ -169,7 +169,7 @@ either of these shortcodes in conjunction with this render hook. "parsedURL" $u "renderHookName" $renderHookName }} - {{- partialCached "inline/h-rh-l/validate-fragment.html" $ctx }} + {{- partial "inline/h-rh-l/validate-fragment.html" $ctx }} {{- $attrs = dict "href" (printf "%s#%s" $.Page.RelPermalink .) }} {{- else }} {{- if eq $errorLevel "warning" }} From 6a7fd42ff739686d112ce9b13f9141952cdea556 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 30 Jan 2025 02:26:10 -0800 Subject: [PATCH 23/68] Update pages describing Store methods and functions --- content/en/_common/_index.md | 13 +++ content/en/_common/scratch-pad-scope.md | 21 ++++ content/en/_common/store-methods.md | 86 +++++++++++++++ content/en/contribute/documentation.md | 1 + .../en/functions/collections/NewScratch.md | 21 ++-- content/en/functions/hugo/Store.md | 22 ++-- content/en/functions/resources/Babel.md | 1 - content/en/functions/resources/Concat.md | 2 +- content/en/functions/resources/PostCSS.md | 1 - content/en/functions/resources/ToCSS.md | 1 - content/en/getting-started/glossary/scope.md | 5 + content/en/methods/page/Scratch.md | 29 ----- content/en/methods/page/Store.md | 101 ++---------------- .../methods/page/_common/scratch-methods.md | 86 --------------- content/en/methods/shortcode/Scratch.md | 11 -- content/en/methods/shortcode/Store.md | 13 ++- content/en/methods/shortcode/_index.md | 1 + content/en/methods/site/Store.md | 10 +- content/en/tools/search.md | 2 +- 19 files changed, 172 insertions(+), 255 deletions(-) create mode 100644 content/en/_common/_index.md create mode 100644 content/en/_common/scratch-pad-scope.md create mode 100644 content/en/_common/store-methods.md create mode 100644 content/en/getting-started/glossary/scope.md delete mode 100644 content/en/methods/page/_common/scratch-methods.md diff --git a/content/en/_common/_index.md b/content/en/_common/_index.md new file mode 100644 index 000000000..4328d4d14 --- /dev/null +++ b/content/en/_common/_index.md @@ -0,0 +1,13 @@ +--- +cascade: + _build: + list: never + publishResources: false + render: never +--- + + diff --git a/content/en/_common/scratch-pad-scope.md b/content/en/_common/scratch-pad-scope.md new file mode 100644 index 000000000..b659497d8 --- /dev/null +++ b/content/en/_common/scratch-pad-scope.md @@ -0,0 +1,21 @@ +--- +_comment: Do not remove front matter. +--- + +## Scope + +The method or function used to create a scratch pad determines its scope. For example, use the `Store` method on a `Page` object to create a scratch pad scoped to the page. + +Scope|Method or function +:--|:-- +page|[`PAGE.Store`] +site|[`SITE.Store`] +global|[`hugo.Store`] +local|[`collections.NewScratch`] +shortcode|[`SHORTCODE.Store`] + +[`page.store`]: /methods/page/store +[`site.store`]: /methods/site/store +[`hugo.store`]: /functions/hugo/store +[`collections.newscratch`]: functions/collections/newscratch +[`shortcode.store`]: /methods/shortcode/store diff --git a/content/en/_common/store-methods.md b/content/en/_common/store-methods.md new file mode 100644 index 000000000..074216f7b --- /dev/null +++ b/content/en/_common/store-methods.md @@ -0,0 +1,86 @@ +--- +# Do not remove front matter. +--- + +## Methods + +###### Set + +Sets the value of the given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} +``` + +###### Get + +Gets the value of the given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} +{{ .Store.Get "greeting" }} → Hello +``` + +###### Add + +Adds the given value to the existing value(s) of the given key. + +For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} +{{ .Store.Add "greeting" "Welcome" }} +{{ .Store.Get "greeting" }} → HelloWelcome +``` + +```go-html-template +{{ .Store.Set "total" 3 }} +{{ .Store.Add "total" 7 }} +{{ .Store.Get "total" }} → 10 +``` + +```go-html-template +{{ .Store.Set "greetings" (slice "Hello") }} +{{ .Store.Add "greetings" (slice "Welcome" "Cheers") }} +{{ .Store.Get "greetings" }} → [Hello Welcome Cheers] +``` + +###### SetInMap + +Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} +{{ .Store.Get "greetings" }} → map[english:Hello french:Bonjour] +``` + +###### DeleteInMap + +Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} +{{ .Store.DeleteInMap "greetings" "english" }} +{{ .Store.Get "greetings" }} → map[french:Bonjour] +``` + +###### GetSortedMapValues + +Returns an array of values from `key` sorted by `mapKey`. + +```go-html-template +{{ .Store.SetInMap "greetings" "english" "Hello" }} +{{ .Store.SetInMap "greetings" "french" "Bonjour" }} +{{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour] +``` + +###### Delete + +Removes the given key. + +```go-html-template +{{ .Store.Set "greeting" "Hello" }} +{{ .Store.Delete "greeting" }} +``` diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index 8f2326fab..d8a97bc35 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -79,6 +79,7 @@ Please link to the [glossary of terms] when necessary, and use the terms consist - The term "standalone" is one word, not hyphenated - Use the word "map" instead of "dictionary" - Use the word "flag" instead of "option" when referring to a command line flag +- Use "client side" as a noun, and "client-side" as an adjective - Capitalize the word "Markdown" - Hyphenate the term "open-source" when used an adjective. diff --git a/content/en/functions/collections/NewScratch.md b/content/en/functions/collections/NewScratch.md index f9bcac6bd..a76168961 100644 --- a/content/en/functions/collections/NewScratch.md +++ b/content/en/functions/collections/NewScratch.md @@ -6,23 +6,22 @@ keywords: [] action: aliases: [newScratch] related: - - methods/page/scratch - - methods/page/store - - methods/shortcode/scratch + - methods/page/Store + - methods/site/Store + - methods/shortcode/Store + - functions/hugo/Store returnType: maps.Scratch signatures: [collections.NewScratch ] +toc: true --- -The `collections.NewScratch` function creates a locally scoped [scratch pad](g) to store and manipulate data. To create a scratch pad that is attached to a `Page` object, use the [`Scratch`] or [`Store`] method. - -[`Scratch`]: /methods/page/scratch/ -[`Store`]: /methods/page/store/ +Use the `collections.NewScratch` function to create a locally scoped [scratch pad](g) to store and manipulate data. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. ## Methods ###### Set -Sets the value of a given key. +Sets the value of the given key. ```go-html-template {{ $s := newScratch }} @@ -31,7 +30,7 @@ Sets the value of a given key. ###### Get -Gets the value of a given key. +Gets the value of the given key. ```go-html-template {{ $s := newScratch }} @@ -41,7 +40,7 @@ Gets the value of a given key. ###### Add -Adds a given value to existing value(s) of the given key. +Adds the given value to existing value(s) of the given key. For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. @@ -121,3 +120,5 @@ Returns the raw backing map. Do not use with `Scratch` or `Store` methods on a ` {{ $map := $s.Values }} ``` + +{{% include "_common/scratch-pad-scope.md" %}} diff --git a/content/en/functions/hugo/Store.md b/content/en/functions/hugo/Store.md index 2ef0eefc0..f3c43df32 100644 --- a/content/en/functions/hugo/Store.md +++ b/content/en/functions/hugo/Store.md @@ -1,13 +1,14 @@ --- title: hugo.Store -description: Returns a global, persistent "scratch pad" to store and manipulate data. +description: Returns a globally scoped "scratch pad" to store and manipulate data. categories: [] keywords: [] action: related: - - methods/page/store - - methods/site/store - - functions/collections/NewScratch + - methods/page/Store + - methods/site/Store + - methods/shortcode/Store + - functions/collections/NewScratch returnType: maps.Scratch signatures: [hugo.Store] toc: true @@ -15,16 +16,13 @@ toc: true {{< new-in 0.139.0 >}} -The global `hugo.Store` function creates a persistent [scratch pad](g) to store and manipulate data. To create a locally scoped, use the [`newScratch`] function. - -[`Scratch`]: /functions/hugo/scratch/ -[`newScratch`]: /functions/collections/newscratch/ +Use the `hugo.Store` function to create a globally scoped [scratch pad](g) to store and manipulate data. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. ## Methods ###### Set -Sets the value of a given key. +Sets the value of the given key. ```go-html-template {{ hugo.Store.Set "greeting" "Hello" }} @@ -32,7 +30,7 @@ Sets the value of a given key. ###### Get -Gets the value of a given key. +Gets the value of the given key. ```go-html-template {{ hugo.Store.Set "greeting" "Hello" }} @@ -41,7 +39,7 @@ Gets the value of a given key. ###### Add -Adds a given value to existing value(s) of the given key. +Adds the given value to the existing value(s) of the given key. For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. @@ -103,6 +101,8 @@ Removes the given key. {{ hugo.Store.Delete "greeting" }} ``` +{{% include "_common/scratch-pad-scope.md" %}} + ## Determinate values The `Store` method is often used to set scratch pad values within a shortcode, a partial template called by a shortcode, or by a Markdown render hook. In all three cases, the scratch pad values are indeterminate until Hugo renders the page content. diff --git a/content/en/functions/resources/Babel.md b/content/en/functions/resources/Babel.md index 3210f48dd..29c88a91c 100644 --- a/content/en/functions/resources/Babel.md +++ b/content/en/functions/resources/Babel.md @@ -7,7 +7,6 @@ action: related: [] returnType: resource.Resource signatures: ['resources.Babel [OPTIONS] RESOURCE'] -toc: true expiryDate: 2025-06-24 # deprecated 2024-06-24 --- diff --git a/content/en/functions/resources/Concat.md b/content/en/functions/resources/Concat.md index 09bde82fe..6e81f3f44 100644 --- a/content/en/functions/resources/Concat.md +++ b/content/en/functions/resources/Concat.md @@ -12,7 +12,7 @@ action: The `resources.Concat` function returns a concatenated slice of resources, caching the result using the target path as its cache key. Each resource must have the same [media type]. -Hugo publishes the resource to the target path when you call its [`Publish`], [`Permalink`], or [`RelPermalink`] method. +Hugo publishes the resource to the target path when you call its [`Publish`], [`Permalink`], or [`RelPermalink`] method. [media type]: https://en.wikipedia.org/wiki/Media_type [`publish`]: /methods/resource/publish/ diff --git a/content/en/functions/resources/PostCSS.md b/content/en/functions/resources/PostCSS.md index 97d53314c..84bafaabd 100644 --- a/content/en/functions/resources/PostCSS.md +++ b/content/en/functions/resources/PostCSS.md @@ -7,7 +7,6 @@ action: related: [] returnType: resource.Resource signatures: ['resources.PostCSS [OPTIONS] RESOURCE'] -toc: true expiryDate: 2025-06-24 # deprecated 2024-06-24 --- diff --git a/content/en/functions/resources/ToCSS.md b/content/en/functions/resources/ToCSS.md index b75cb1113..ea133367a 100644 --- a/content/en/functions/resources/ToCSS.md +++ b/content/en/functions/resources/ToCSS.md @@ -7,7 +7,6 @@ action: related: [] returnType: resource.Resource signatures: ['resources.ToCSS [OPTIONS] RESOURCE'] -toc: true expiryDate: 2025-06-24 # deprecated 2024-06-24 --- diff --git a/content/en/getting-started/glossary/scope.md b/content/en/getting-started/glossary/scope.md new file mode 100644 index 000000000..36a59c14a --- /dev/null +++ b/content/en/getting-started/glossary/scope.md @@ -0,0 +1,5 @@ +--- +title: scope +--- + +The term _scope_ refers to the specific region of code where a [_variable_](g) or [_object_](g) is accessible. For example, a variable initialized in one template is not available within another. diff --git a/content/en/methods/page/Scratch.md b/content/en/methods/page/Scratch.md index 4375e2b98..aa607ff76 100644 --- a/content/en/methods/page/Scratch.md +++ b/content/en/methods/page/Scratch.md @@ -7,8 +7,6 @@ action: related: [] returnType: maps.Scratch signatures: [PAGE.Scratch] -toc: true -aliases: [/extras/scratch/,/doc/scratch/,/functions/scratch] expiryDate: 2025-11-18 # deprecated 2024-11-18 --- @@ -21,30 +19,3 @@ Beginning with v0.138.0 the `PAGE.Scratch` method is aliased to `PAGE.Store`. [`PAGE.Store`]: /methods/page/store/ {{% /deprecated-in %}} - -The `Scratch` method on a `Page` object creates a [scratch pad](g) to store and manipulate data. To create a scratch pad that is not reset on server rebuilds, use the [`Store`] method instead. - -To create a locally scoped scratch pad that is not attached to a `Page` object, use the [`newScratch`] function. - -[`Store`]: /methods/page/store/ -[`newScratch`]: /functions/collections/newscratch/ - -{{% include "methods/page/_common/scratch-methods.md" %}} - -## Determinate values - -The `Scratch` method is often used to set scratch pad values within a shortcode, a partial template called by a shortcode, or by a Markdown render hook. In all three cases, the scratch pad values are indeterminate until Hugo renders the page content. - -If you need to access a scratch pad value from a parent template, and the parent template has not yet rendered the page content, you can trigger content rendering by assigning the returned value to a [noop](g) variable: - -```go-html-template -{{ $noop := .Content }} -{{ .Store.Get "mykey" }} -``` - -You can also trigger content rendering with the `ContentWithoutSummary`, `FuzzyWordCount`, `Len`, `Plain`, `PlainWords`, `ReadingTime`, `Summary`, `Truncated`, and `WordCount` methods. For example: - -```go-html-template -{{ $noop := .WordCount }} -{{ .Store.Get "mykey" }} -``` diff --git a/content/en/methods/page/Store.md b/content/en/methods/page/Store.md index af0f78642..769a554f1 100644 --- a/content/en/methods/page/Store.md +++ b/content/en/methods/page/Store.md @@ -1,108 +1,25 @@ --- title: Store -linktitle: PAGE.Store -description: Returns a persistent "scratch pad" on the given page to store and manipulate data. +description: Returns a "scratch pad" to store and manipulate data, scoped to the current page. categories: [] keywords: [] action: related: - - methods/page/scratch - - methods/site/store - - functions/hugo/store - - functions/collections/NewScratch + - methods/site/Store + - methods/shortcode/Store + - functions/hugo/Store + - functions/collections/NewScratch returnType: maps.Scratch signatures: [PAGE.Store] toc: true -aliases: [/functions/store] +aliases: [/functions/store/,/extras/scratch/,/doc/scratch/,/functions/scratch] --- -The `Store` method on a `Page` object creates a persistent [scratch pad](g) to store and manipulate data. To create a locally scoped scratch pad that is not attached to a `Page` object, use the [`newScratch`] function. +Use the `Store` method on a `Page` object to create a [scratch pad](g) to store and manipulate data, scoped to the current page. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. -[`Scratch`]: /methods/page/scratch/ -[`newScratch`]: /functions/collections/newscratch/ +{{% include "_common/store-methods.md" %}} -## Methods - -###### Set - -Sets the value of a given key. - -```go-html-template -{{ .Store.Set "greeting" "Hello" }} -``` - -###### Get - -Gets the value of a given key. - -```go-html-template -{{ .Store.Set "greeting" "Hello" }} -{{ .Store.Get "greeting" }} → Hello -``` - -###### Add - -Adds a given value to existing value(s) of the given key. - -For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. - -```go-html-template -{{ .Store.Set "greeting" "Hello" }} -{{ .Store.Add "greeting" "Welcome" }} -{{ .Store.Get "greeting" }} → HelloWelcome -``` - -```go-html-template -{{ .Store.Set "total" 3 }} -{{ .Store.Add "total" 7 }} -{{ .Store.Get "total" }} → 10 -``` - -```go-html-template -{{ .Store.Set "greetings" (slice "Hello") }} -{{ .Store.Add "greetings" (slice "Welcome" "Cheers") }} -{{ .Store.Get "greetings" }} → [Hello Welcome Cheers] -``` - -###### SetInMap - -Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`. - -```go-html-template -{{ .Store.SetInMap "greetings" "english" "Hello" }} -{{ .Store.SetInMap "greetings" "french" "Bonjour" }} -{{ .Store.Get "greetings" }} → map[english:Hello french:Bonjour] -``` - -###### DeleteInMap - -Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`. - -```go-html-template -{{ .Store.SetInMap "greetings" "english" "Hello" }} -{{ .Store.SetInMap "greetings" "french" "Bonjour" }} -{{ .Store.DeleteInMap "greetings" "english" }} -{{ .Store.Get "greetings" }} → map[french:Bonjour] -``` - -###### GetSortedMapValues - -Returns an array of values from `key` sorted by `mapKey`. - -```go-html-template -{{ .Store.SetInMap "greetings" "english" "Hello" }} -{{ .Store.SetInMap "greetings" "french" "Bonjour" }} -{{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour] -``` - -###### Delete - -Removes the given key. - -```go-html-template -{{ .Store.Set "greeting" "Hello" }} -{{ .Store.Delete "greeting" }} -``` +{{% include "_common/scratch-pad-scope.md" %}} ## Determinate values diff --git a/content/en/methods/page/_common/scratch-methods.md b/content/en/methods/page/_common/scratch-methods.md deleted file mode 100644 index 92a97cdd5..000000000 --- a/content/en/methods/page/_common/scratch-methods.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -_comment: Do not remove front matter. ---- - -## Methods - -###### Set - -Sets the value of a given key. - -```go-html-template -{{ .Scratch.Set "greeting" "Hello" }} -``` - -###### Get - -Gets the value of a given key. - -```go-html-template -{{ .Scratch.Set "greeting" "Hello" }} -{{ .Scratch.Get "greeting" }} → Hello -``` - -###### Add - -Adds a given value to existing value(s) of the given key. - -For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list. - -```go-html-template -{{ .Scratch.Set "greeting" "Hello" }} -{{ .Scratch.Add "greeting" "Welcome" }} -{{ .Scratch.Get "greeting" }} → HelloWelcome -``` - -```go-html-template -{{ .Scratch.Set "total" 3 }} -{{ .Scratch.Add "total" 7 }} -{{ .Scratch.Get "total" }} → 10 -``` - -```go-html-template -{{ .Scratch.Set "greetings" (slice "Hello") }} -{{ .Scratch.Add "greetings" (slice "Welcome" "Cheers") }} -{{ .Scratch.Get "greetings" }} → [Hello Welcome Cheers] -``` - -###### SetInMap - -Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`. - -```go-html-template -{{ .Scratch.SetInMap "greetings" "english" "Hello" }} -{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }} -{{ .Scratch.Get "greetings" }} → map[english:Hello french:Bonjour] -``` - -###### DeleteInMap - -Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`. - -```go-html-template -{{ .Scratch.SetInMap "greetings" "english" "Hello" }} -{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }} -{{ .Scratch.DeleteInMap "greetings" "english" }} -{{ .Scratch.Get "greetings" }} → map[french:Bonjour] -``` - -###### GetSortedMapValues - -Returns an array of values from `key` sorted by `mapKey`. - -```go-html-template -{{ .Scratch.SetInMap "greetings" "english" "Hello" }} -{{ .Scratch.SetInMap "greetings" "french" "Bonjour" }} -{{ .Scratch.GetSortedMapValues "greetings" }} → [Hello Bonjour] -``` - -###### Delete - -Removes the given key. - -```go-html-template -{{ .Scratch.Set "greeting" "Hello" }} -{{ .Scratch.Delete "greeting" }} -``` diff --git a/content/en/methods/shortcode/Scratch.md b/content/en/methods/shortcode/Scratch.md index 475566234..992b94a1f 100644 --- a/content/en/methods/shortcode/Scratch.md +++ b/content/en/methods/shortcode/Scratch.md @@ -19,14 +19,3 @@ Beginning with v0.139.0 the `SHORTCODE.Scratch` method is aliased to `SHORTCODE. [`SHORTCODE.Store`]: /methods/shortcode/store/ {{% /deprecated-in %}} - -The `Scratch` method within a shortcode creates a [scratch pad](g) to store and manipulate data. The scratch pad is scoped to the shortcode. - -{{% note %}} -With the introduction of the [`newScratch`] function, and the ability to [assign values to template variables] after initialization, the `Scratch` method within a shortcode is obsolete. - -[assign values to template variables]: https://go.dev/doc/go1.11#text/template -[`newScratch`]: /functions/collections/newscratch/ -{{% /note %}} - -{{% include "methods/page/_common/scratch-methods.md" %}} diff --git a/content/en/methods/shortcode/Store.md b/content/en/methods/shortcode/Store.md index 2e6c467ce..3e350c01a 100644 --- a/content/en/methods/shortcode/Store.md +++ b/content/en/methods/shortcode/Store.md @@ -1,21 +1,22 @@ --- title: Store -description: Returns a "Store pad" scoped to the shortcode to store and manipulate data. +description: Returns a "scratch pad" to store and manipulate data, scoped to the current shortcode. categories: [] keywords: [] action: related: - - functions/collections/NewScratch - methods/page/Store - methods/site/Store - functions/hugo/Store - returnType: maps.Store + - functions/collections/NewScratch + returnType: maps.Scratch signatures: [SHORTCODE.Store] +toc: true --- {{< new-in 0.139.0 >}} -The `Store` method within a shortcode creates a [scratch pad](g) to store and manipulate data. The scratch pad is scoped to the shortcode. +Use the `Store` method to create a [scratch pad](g) to store and manipulate data, scoped to the current shortcode. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. {{% note %}} With the introduction of the [`newScratch`] function, and the ability to [assign values to template variables] after initialization, the `Store` method within a shortcode is mostly obsolete. @@ -24,4 +25,6 @@ With the introduction of the [`newScratch`] function, and the ability to [assign [`newScratch`]: /functions/collections/newScratch/ {{% /note %}} -{{% include "methods/page/_common/scratch-methods.md" %}} +{{% include "_common/store-methods.md" %}} + +{{% include "_common/scratch-pad-scope.md" %}} diff --git a/content/en/methods/shortcode/_index.md b/content/en/methods/shortcode/_index.md index d26366844..1c99adba7 100644 --- a/content/en/methods/shortcode/_index.md +++ b/content/en/methods/shortcode/_index.md @@ -7,6 +7,7 @@ keywords: [] menu: docs: parent: methods +aliases: [/variables/shortcodes] --- Use these methods in your shortcode templates. diff --git a/content/en/methods/site/Store.md b/content/en/methods/site/Store.md index 8a6c5b86e..92433c829 100644 --- a/content/en/methods/site/Store.md +++ b/content/en/methods/site/Store.md @@ -1,7 +1,6 @@ --- title: Store -linktitle: site.Store -description: Returns a persistent "scratch pad" on the given site to store and manipulate data. +description: Returns a "scratch pad" to store and manipulate data, scoped to the current site. categories: [] keywords: [] action: @@ -16,10 +15,7 @@ toc: true {{< new-in 0.139.0 >}} -The `Store` method on a `Site` object creates a persistent [scratch pad](g) to store and manipulate data. To create a locally scoped scratch pad that is not attached to a `Site` object, use the [`newScratch`] function. - -[`Scratch`]: /methods/site/scratch/ -[`newScratch`]: /functions/collections/newscratch/ +Use the `Store` method on a `Site` object to create a [scratch pad](g) to store and manipulate data, scoped to the current site. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. ## Methods @@ -104,6 +100,8 @@ Removes the given key. {{ site.Store.Delete "greeting" }} ``` +{{% include "_common/scratch-pad-scope.md" %}} + ## Determinate values The `Store` method is often used to set scratch pad values within a shortcode, a partial template called by a shortcode, or by a Markdown render hook. In all three cases, the scratch pad values are indeterminate until Hugo renders the page content. diff --git a/content/en/tools/search.md b/content/en/tools/search.md index 73aea7ce4..152774304 100644 --- a/content/en/tools/search.md +++ b/content/en/tools/search.md @@ -29,7 +29,7 @@ A static website with a dynamic search function? Yes, Hugo provides an alternati : 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](https://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! +: This gist demonstrates how to leverage Hugo's existing build time processing to generate a searchable JSON index used by [Fuse.js](https://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. From d847892aa5c0a203760e8ae1383dac0c1a063e71 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 30 Jan 2025 02:39:45 -0800 Subject: [PATCH 24/68] Improve glossary --- archetypes/glossary.md | 15 ++++-------- content/en/content-management/archetypes.md | 4 ++-- content/en/content-management/formats.md | 2 +- .../image-processing/index.md | 2 +- content/en/content-management/page-bundles.md | 8 +++---- .../en/content-management/page-resources.md | 2 +- content/en/content-management/sections.md | 4 ++-- content/en/contribute/documentation.md | 4 +++- content/en/getting-started/configuration.md | 8 +++---- .../en/getting-started/glossary/archetype.md | 3 ++- .../en/getting-started/glossary/argument.md | 2 +- content/en/getting-started/glossary/array.md | 2 +- .../en/getting-started/glossary/boolean.md | 2 +- .../getting-started/glossary/branch-bundle.md | 3 ++- content/en/getting-started/glossary/build.md | 2 +- content/en/getting-started/glossary/cjk.md | 2 +- .../glossary/content-adapter.md | 3 ++- .../glossary/content-format.md | 3 ++- .../getting-started/glossary/content-type.md | 3 ++- .../getting-started/glossary/content-view.md | 3 ++- .../en/getting-started/glossary/context.md | 3 ++- content/en/getting-started/glossary/flag.md | 3 ++- .../getting-started/glossary/front-matter.md | 3 ++- .../en/getting-started/glossary/function.md | 3 ++- .../glossary/interpreted-string-literal.md | 2 +- .../getting-started/glossary/leaf-bundle.md | 2 +- .../en/getting-started/glossary/pagination.md | 3 ++- .../en/getting-started/glossary/pipeline.md | 2 +- .../glossary/raw-string-literal.md | 2 +- .../getting-started/glossary/render-hook.md | 3 ++- .../en/getting-started/glossary/section.md | 2 +- .../en/getting-started/glossary/shortcode.md | 3 ++- .../glossary/taxonomic-weight.md | 3 ++- .../en/getting-started/glossary/taxonomy.md | 3 ++- .../en/installation/_common/01-editions.md | 2 +- content/en/methods/page/File.md | 2 +- content/en/methods/page/Pages.md | 2 +- content/en/methods/page/RegularPages.md | 2 +- content/en/methods/page/Sitemap.md | 4 ++-- content/en/methods/page/Title.md | 2 +- content/en/templates/404.md | 24 +++++++++---------- content/en/templates/home.md | 2 +- content/en/templates/sitemap.md | 4 ++-- content/en/troubleshooting/faq.md | 6 ++--- layouts/shortcodes/glossary.html | 5 ++++ 45 files changed, 92 insertions(+), 77 deletions(-) diff --git a/archetypes/glossary.md b/archetypes/glossary.md index b38ced64a..4fa4669ec 100644 --- a/archetypes/glossary.md +++ b/archetypes/glossary.md @@ -1,19 +1,12 @@ --- title: {{ replace .File.ContentBaseName "-" " " }} +reference: --- diff --git a/content/en/content-management/archetypes.md b/content/en/content-management/archetypes.md index 30747258c..966c847db 100644 --- a/content/en/content-management/archetypes.md +++ b/content/en/content-management/archetypes.md @@ -76,13 +76,13 @@ Date : (`string`) The current date and time, formatted in compliance with RFC3339. File -: (`hugolib.fileInfo`) Returns file information for the current page. See [details](/methods/page/file). +: (`hugolib.fileInfo`) Returns file information for the current page. See [details](/methods/page/file). Type : (`string`) The [content type](g) inferred from the top-level directory name, or as specified by the `--kind` flag passed to the `hugo new content` command. Site -: (`page.Site`) The current site object. See [details](/methods/site/). +: (`page.Site`) The current site object. See [details](/methods/site/). ## Date format diff --git a/content/en/content-management/formats.md b/content/en/content-management/formats.md index a02aa2545..a1f203f3c 100644 --- a/content/en/content-management/formats.md +++ b/content/en/content-management/formats.md @@ -74,7 +74,7 @@ Create your content in [HTML] preceded by front matter. The content is typically ### Emacs Org Mode -Create your content in the [Emacs Org Mode] format preceded by front matter. You can use Org Mode keywords for front matter. See [details]. +Create your content in the [Emacs Org Mode] format preceded by front matter. You can use Org Mode keywords for front matter. See [details]. [details]: /content-management/front-matter/#emacs-org-mode [Emacs Org Mode]: https://orgmode.org/ diff --git a/content/en/content-management/image-processing/index.md b/content/en/content-management/image-processing/index.md index 69ee30dc8..ca2462c24 100644 --- a/content/en/content-management/image-processing/index.md +++ b/content/en/content-management/image-processing/index.md @@ -17,7 +17,7 @@ To process an image you must access the file as a page resource, global resource ### Page resource -A page resource is a file within a [page bundle]. A page bundle is a directory with an `index.md` or `_index.md` file at its root. +A page resource is a file within a [page bundle]. A page bundle is a directory with an `index.md` or `_index.md` file at its root. ```text content/ diff --git a/content/en/content-management/page-bundles.md b/content/en/content-management/page-bundles.md index 3c5b3054b..b57e0a45d 100644 --- a/content/en/content-management/page-bundles.md +++ b/content/en/content-management/page-bundles.md @@ -30,10 +30,10 @@ The "about" page is a page bundle. It logically associates a resource with conte Page bundles are either _leaf bundles_ or _branch bundles_. leaf bundle -: A _leaf bundle_ is a directory that contains an `index.md` file and zero or more resources. Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. +: A _leaf bundle_ is a directory that contains an `index.md` file and zero or more resources. Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. branch bundle -: A _branch bundle_ is a directory that contains an `_index.md` file and zero or more resources. Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top level directories with or without `_index.md` files are also branch bundles. This includes the home page. +: A _branch bundle_ is a directory that contains an `_index.md` file and zero or more resources. Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top level directories with or without `_index.md` files are also branch bundles. This includes the home page. {{% note %}} In the definitions above and the examples below, the extension of the index file depends on the [content format](g). For example, use `index.md` for Markdown content, `index.html` for HTML content, `index.adoc` for AsciiDoc content, etc. @@ -63,7 +63,7 @@ Files with [resource type](g) `page` include content written in Markdown, HTML, ## Leaf bundles -A _leaf bundle_ is a directory that contains an `index.md` file and zero or more resources. Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. +A _leaf bundle_ is a directory that contains an `index.md` file and zero or more resources. Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. ```text content/ @@ -114,7 +114,7 @@ Create leaf bundles at any depth within the `content` directory, but a leaf bund ## Branch bundles -A _branch bundle_ is a directory that contains an `_index.md` file and zero or more resources. Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top level directories with or without `_index.md` files are also branch bundles. This includes the home page. +A _branch bundle_ is a directory that contains an `_index.md` file and zero or more resources. Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top level directories with or without `_index.md` files are also branch bundles. This includes the home page. ```text content/ diff --git a/content/en/content-management/page-resources.md b/content/en/content-management/page-resources.md index 4f902a67f..440398a48 100644 --- a/content/en/content-management/page-resources.md +++ b/content/en/content-management/page-resources.md @@ -12,7 +12,7 @@ toc: true --- Page resources are only accessible from [page bundles](/content-management/page-bundles), those directories with `index.md` or -`_index.md` files at their root. Page resources are only available to the +`_index.md` files at their root. Page resources are only available to the page with which they are bundled. In this example, `first-post` is a page bundle with access to 10 page resources including audio, data, documents, images, and video. Although `second-post` is also a page bundle, it has no page resources and is unable to directly access the page resources associated with `first-post`. diff --git a/content/en/content-management/sections.md b/content/en/content-management/sections.md index c7954aade..ce6916fd3 100644 --- a/content/en/content-management/sections.md +++ b/content/en/content-management/sections.md @@ -15,10 +15,10 @@ aliases: [/content/sections/] ## Overview -A section is a top-level content directory, or any content directory with an `_index.md` file. A content directory with an `_index.md` file is also known as a [branch bundle](g). Section templates receive one or more page [collections](g) in [context](g). +A section is a top-level content directory, or any content directory with an `_index.md` file. A content directory with an `_index.md` file is also known as a [branch bundle](g). Section templates receive one or more page [collections](g) in [context](g). {{% note %}} -Although top-level directories without `_index.md` files are sections, we recommend creating `_index.md` files in _all_ sections. +Although top-level directories without `_index.md` files are sections, we recommend creating `_index.md` files in _all_ sections. {{% /note %}} A typical site consists of one or more sections. For example: diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index d8a97bc35..23a9af7d1 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -43,7 +43,9 @@ Please follow these guidelines: ### Glossary of terms -Each term in the glossary has its own dedicated page located within the `content/en/getting-started/glossary` directory. While these individual glossary pages are not published as standalone web pages during the build process, their content is included in other pages as needed. +Glossary terms are maintained on individual pages. While not directly accessible to site visitors, these pages act as a central repository for term definitions. + +Definitions must be presented in complete sentences, with the first sentence always introducing the term being defined. To enhance readability and consistency, the first occurrence of the term and any other referenced glossary terms should be italicized. To link to a term definition on the glossary page, use this custom link syntax: diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index a0e3de1b1..1194121a3 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -228,13 +228,13 @@ See [Configure File Caches](#configure-file-caches). ###### canonifyURLs -(`bool`) See [details](/content-management/urls/#canonical-urls) before enabling this feature. Default is `false`. +(`bool`) See [details](/content-management/urls/#canonical-urls) before enabling this feature. Default is `false`. ###### capitalizeListTitles {{< new-in 0.123.3 >}} -(`bool`) Whether to capitalize automatic list titles. Applicable to section, taxonomy, and term pages. Default is `true`. You can change the capitalization style in your site configuration to one of `ap`, `chicago`, `go`, `firstupper`, or `none`. See [details]. +(`bool`) Whether to capitalize automatic list titles. Applicable to section, taxonomy, and term pages. Default is `true`. You can change the capitalization style in your site configuration to one of `ap`, `chicago`, `go`, `firstupper`, or `none`. See [details]. [details]: /getting-started/configuration/#configure-title-case @@ -460,7 +460,7 @@ See [Related Content](/content-management/related/#configure-related-content). ###### relativeURLs -(`bool`) See [details](/content-management/urls/#relative-urls) before enabling this feature. Default is `false`. +(`bool`) See [details](/content-management/urls/#relative-urls) before enabling this feature. Default is `false`. ###### removePathAccents @@ -541,7 +541,7 @@ See [module configuration](/hugo-modules/configuration/#module-configuration-imp ###### uglyURLs -(`bool` or `map`) Whether to generate uglyURLs. Default is `false`. See [details](/content-management/urls/#appearance). +(`bool` or `map`) Whether to generate uglyURLs. Default is `false`. See [details](/content-management/urls/#appearance). ###### watch diff --git a/content/en/getting-started/glossary/archetype.md b/content/en/getting-started/glossary/archetype.md index ae427409e..231089c56 100644 --- a/content/en/getting-started/glossary/archetype.md +++ b/content/en/getting-started/glossary/archetype.md @@ -1,5 +1,6 @@ --- title: archetype +details: /content-management/archetypes --- -An archetype is a template for new content. See [details](/content-management/archetypes/). +An _archetype_ is a template for new content. diff --git a/content/en/getting-started/glossary/argument.md b/content/en/getting-started/glossary/argument.md index 223f866a4..912951d2b 100644 --- a/content/en/getting-started/glossary/argument.md +++ b/content/en/getting-started/glossary/argument.md @@ -2,4 +2,4 @@ title: argument --- -A [scalar](g), [array](g), [slice](g), [map](g), or [object](g) passed to a [function](g), [method](g), or [shortcode](g). +An _argument_ is a [_scalar_](g), [_array_](g), [_slice_](g), [_map_](g), or [_object_](g) passed to a [_function_](g), [_method_](g), or [_shortcode_](g). diff --git a/content/en/getting-started/glossary/array.md b/content/en/getting-started/glossary/array.md index bcd1718bb..b75f5ca2e 100644 --- a/content/en/getting-started/glossary/array.md +++ b/content/en/getting-started/glossary/array.md @@ -2,4 +2,4 @@ title: array --- -A numbered sequence of [elements](g). Unlike Go's [slice](g) data type, an array has a fixed length. Elements within an array can be [scalars](g), slices, [maps](g), pages, or other arrays. See the [Go documentation](https://go.dev/ref/spec#Array_types) for details. +An _array_ is a numbered sequence of [_elements_](g). Unlike Go's [_slice_](g) data type, an array has a fixed length. Elements within an array can be [_scalars_](g), slices, [_maps_](g), pages, or other arrays. diff --git a/content/en/getting-started/glossary/boolean.md b/content/en/getting-started/glossary/boolean.md index d9b655396..e727c40b0 100644 --- a/content/en/getting-started/glossary/boolean.md +++ b/content/en/getting-started/glossary/boolean.md @@ -2,4 +2,4 @@ title: boolean --- -A data type with two possible values, either `true` or `false`. +A _boolean_ is a data type with two possible values, either `true` or `false`. diff --git a/content/en/getting-started/glossary/branch-bundle.md b/content/en/getting-started/glossary/branch-bundle.md index 1e1e85e4d..d5688ba0b 100644 --- a/content/en/getting-started/glossary/branch-bundle.md +++ b/content/en/getting-started/glossary/branch-bundle.md @@ -1,5 +1,6 @@ --- title: branch bundle +reference: /content-management/page-bundles --- -A directory that contains an `_index.md` file and zero or more [resources](g). Analogous to a physical branch, a branch bundle may have descendants including leaf bundles and other branch bundles. Top level directories with or without `_index.md` files are also branch bundles. This includes the home page. See [details](/content-management/page-bundles/). +A _branch bundle_ is a top-level content directory or any content directory containing an `_index.md` file. Analogous to a physical branch, a branch bundle may have descendants including [_leaf bundles_](g) and other branch bundles. A branch bundle may also contain [_page resources_](g) such as images. diff --git a/content/en/getting-started/glossary/build.md b/content/en/getting-started/glossary/build.md index b5eed6659..79b7ec74a 100644 --- a/content/en/getting-started/glossary/build.md +++ b/content/en/getting-started/glossary/build.md @@ -2,4 +2,4 @@ title: build --- -To generate a static site that includes HTML files and assets such as images, CSS, and JavaScript. The build process includes rendering and resource transformations. +To _build_ a site is to generate HTML files and assets such as images, CSS files, and JavaScript files. The build process includes rendering and resource transformations. diff --git a/content/en/getting-started/glossary/cjk.md b/content/en/getting-started/glossary/cjk.md index 1f9e14ed2..16bd226cb 100644 --- a/content/en/getting-started/glossary/cjk.md +++ b/content/en/getting-started/glossary/cjk.md @@ -2,4 +2,4 @@ title: CJK --- -A collective term for the Chinese, Japanese, and Korean languages. See [details](https://en.wikipedia.org/wiki/CJK_characters). +A collective term for the Chinese, Japanese, and Korean languages. diff --git a/content/en/getting-started/glossary/content-adapter.md b/content/en/getting-started/glossary/content-adapter.md index a54a36f22..88f51668b 100644 --- a/content/en/getting-started/glossary/content-adapter.md +++ b/content/en/getting-started/glossary/content-adapter.md @@ -1,5 +1,6 @@ --- title: content adapter +reference: /content-management/content-adapters --- -A template that dynamically creates pages when building a site. For example, use a content adapter to create pages from a remote data source such as JSON, TOML, YAML, or XML. See [details](/content-management/content-adapters/). +A template that dynamically creates pages when building a site. For example, use a content adapter to create pages from a remote data source such as JSON, TOML, YAML, or XML. diff --git a/content/en/getting-started/glossary/content-format.md b/content/en/getting-started/glossary/content-format.md index 5ed855b90..2d69acdba 100644 --- a/content/en/getting-started/glossary/content-format.md +++ b/content/en/getting-started/glossary/content-format.md @@ -1,5 +1,6 @@ --- title: content format +reference: /content-management/formats --- -A markup language for creating content. Typically Markdown, but may also be HTML, AsciiDoc, Org, Pandoc, or reStructuredText. See [details](/content-management/formats/). +A markup language for creating content. Typically Markdown, but may also be HTML, AsciiDoc, Org, Pandoc, or reStructuredText. diff --git a/content/en/getting-started/glossary/content-type.md b/content/en/getting-started/glossary/content-type.md index 9e8a720bf..6e29e7fa3 100644 --- a/content/en/getting-started/glossary/content-type.md +++ b/content/en/getting-started/glossary/content-type.md @@ -1,5 +1,6 @@ --- title: content type +reference: /content-management/types --- -A classification of content inferred from the top-level directory name or the `type` set in [front matter](g). Pages in the root of the `content` directory, including the home page, are of type "page". Accessed via `.Page.Type` in [templates](g). See [details](/content-management/types/) +A classification of content inferred from the top-level directory name or the `type` set in [front matter](g). Pages in the root of the `content` directory, including the home page, are of type "page". Accessed via `.Page.Type` in [templates](g). diff --git a/content/en/getting-started/glossary/content-view.md b/content/en/getting-started/glossary/content-view.md index a89c50b6e..20230f924 100644 --- a/content/en/getting-started/glossary/content-view.md +++ b/content/en/getting-started/glossary/content-view.md @@ -1,5 +1,6 @@ --- title: content view +reference: /templates/content-view --- -A template called with the `.Page.Render` method. See [details](/templates/content-view/). +A template called with the `.Page.Render` method. diff --git a/content/en/getting-started/glossary/context.md b/content/en/getting-started/glossary/context.md index 25faf478a..7589399f9 100644 --- a/content/en/getting-started/glossary/context.md +++ b/content/en/getting-started/glossary/context.md @@ -1,5 +1,6 @@ --- title: context +reference: /templates/introduction/#context --- -Represented by a dot "." within a [template action](g), context is the current location in a data structure. For example, while iterating over a [collection](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. See [details](/templates/introduction/#context). +Represented by a dot "." within a [template action](g), context is the current location in a data structure. For example, while iterating over a [collection](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. diff --git a/content/en/getting-started/glossary/flag.md b/content/en/getting-started/glossary/flag.md index df9fd21fb..d23936745 100644 --- a/content/en/getting-started/glossary/flag.md +++ b/content/en/getting-started/glossary/flag.md @@ -1,5 +1,6 @@ --- title: flag +reference: /commands/hugo --- -An option passed to a command-line program, beginning with one or two hyphens. See [details](/commands/hugo/). +An option passed to a command-line program, beginning with one or two hyphens. diff --git a/content/en/getting-started/glossary/front-matter.md b/content/en/getting-started/glossary/front-matter.md index d66e400b4..f7faab409 100644 --- a/content/en/getting-started/glossary/front-matter.md +++ b/content/en/getting-started/glossary/front-matter.md @@ -1,5 +1,6 @@ --- title: front matter +reference: /content-management/front-matter --- -Metadata at the beginning of each content page, separated from the content by format-specific delimiters. See [details](/content-management/front-matter/). +Metadata at the beginning of each content page, separated from the content by format-specific delimiters. diff --git a/content/en/getting-started/glossary/function.md b/content/en/getting-started/glossary/function.md index d07f4ae6b..8aaee0473 100644 --- a/content/en/getting-started/glossary/function.md +++ b/content/en/getting-started/glossary/function.md @@ -1,5 +1,6 @@ --- title: function +reference: /functions --- -Used within a [template action](g), a function takes one or more [arguments](g) and returns a value. Unlike [methods](g), functions are not associated with an [object](g). See [details](/functions/). +Used within a [template action](g), a function takes one or more [arguments](g) and returns a value. Unlike [methods](g), functions are not associated with an [object](g). diff --git a/content/en/getting-started/glossary/interpreted-string-literal.md b/content/en/getting-started/glossary/interpreted-string-literal.md index 97bd8ae67..714593dfa 100644 --- a/content/en/getting-started/glossary/interpreted-string-literal.md +++ b/content/en/getting-started/glossary/interpreted-string-literal.md @@ -2,4 +2,4 @@ title: interpreted string literal --- -Interpreted string literals are character sequences between double quotes, as in "foo". Within the quotes, any character may appear except a newline and an unescaped double quote. The text between the quotes forms the value of the literal, with backslash escapes interpreted. See [details](https://go.dev/ref/spec#String_literals). +An _interpreted string literal_ is a character sequences between double quotes, as in "foo". Within the quotes, any character may appear except a newline and an unescaped double quote. The text between the quotes forms the value of the literal, with backslash escapes interpreted. See [details](https://go.dev/ref/spec#String_literals). diff --git a/content/en/getting-started/glossary/leaf-bundle.md b/content/en/getting-started/glossary/leaf-bundle.md index 88d934cf5..664976296 100644 --- a/content/en/getting-started/glossary/leaf-bundle.md +++ b/content/en/getting-started/glossary/leaf-bundle.md @@ -2,4 +2,4 @@ title: leaf bundle --- -A directory that contains an index.md file and zero or more [resources](g). Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. See [details](/content-management/page-bundles/). +A directory that contains an `index.md` file and zero or more [resources](g). Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. See [details](/content-management/page-bundles/). diff --git a/content/en/getting-started/glossary/pagination.md b/content/en/getting-started/glossary/pagination.md index a41f88162..4cde7dd77 100644 --- a/content/en/getting-started/glossary/pagination.md +++ b/content/en/getting-started/glossary/pagination.md @@ -1,5 +1,6 @@ --- title: pagination +reference: /templates/pagination --- -The process of [paginating](g) a list page. See [details](/templates/pagination/). +The process of [paginating](g) a list page. diff --git a/content/en/getting-started/glossary/pipeline.md b/content/en/getting-started/glossary/pipeline.md index 17ca8344c..dc62af363 100644 --- a/content/en/getting-started/glossary/pipeline.md +++ b/content/en/getting-started/glossary/pipeline.md @@ -4,4 +4,4 @@ title: pipeline Within a [template action](g), a pipeline is a possibly chained sequence of values, [function](g) calls, or [method](g) calls. Functions and methods in the pipeline may take multiple [arguments](g). -A pipeline may be *chained* by separating a sequence of commands with pipeline characters "|". In a chained pipeline, the result of each command is passed as the last argument to the following command. The output of the final command in the pipeline is the value of the pipeline. See the [Go documentation](https://pkg.go.dev/text/template#hdr-Pipelines) for details. +A pipeline may be *chained* by separating a sequence of commands with pipeline characters "|". In a chained pipeline, the result of each command is passed as the last argument to the following command. The output of the final command in the pipeline is the value of the pipeline. diff --git a/content/en/getting-started/glossary/raw-string-literal.md b/content/en/getting-started/glossary/raw-string-literal.md index add8a0cae..76e0d418c 100644 --- a/content/en/getting-started/glossary/raw-string-literal.md +++ b/content/en/getting-started/glossary/raw-string-literal.md @@ -2,4 +2,4 @@ title: raw string literal --- -Raw string literals are character sequences between backticks, as in \`bar\`. Within the backticks, any character may appear except a backtick. Backslashes have no special meaning and the string may contain newlines. Carriage return characters (`\r`) inside raw string literals are discarded from the raw string value. See [details](https://go.dev/ref/spec#String_literals). +A _raw string literal_ is a character sequences between backticks, as in \`bar\`. Within the backticks, any character may appear except a backtick. Backslashes have no special meaning and the string may contain newlines. Carriage return characters (`\r`) inside raw string literals are discarded from the raw string value. diff --git a/content/en/getting-started/glossary/render-hook.md b/content/en/getting-started/glossary/render-hook.md index bed571972..28985754b 100644 --- a/content/en/getting-started/glossary/render-hook.md +++ b/content/en/getting-started/glossary/render-hook.md @@ -1,5 +1,6 @@ --- title: render hook +reference: /render-hooks --- -A [template](g) that overrides standard Markdown rendering. See [details](/render-hooks). +A [template](g) that overrides standard Markdown rendering. diff --git a/content/en/getting-started/glossary/section.md b/content/en/getting-started/glossary/section.md index 4e615b112..4ab7c976e 100644 --- a/content/en/getting-started/glossary/section.md +++ b/content/en/getting-started/glossary/section.md @@ -2,4 +2,4 @@ title: section --- -A section is a top-level content directory, or any content directory with an `_index.md` file. A content directory with an `_index.md` file is also known as a [branch bundle](g). Section templates receive one or more page [collections](g) in [context](g). See [details](/content-management/sections/). +A _section_ is a top-level content directory or any content directory containing an `_index.md` file. A section is also known as a [_branch bundle_](g). diff --git a/content/en/getting-started/glossary/shortcode.md b/content/en/getting-started/glossary/shortcode.md index 3bd6f1979..c3269c222 100644 --- a/content/en/getting-started/glossary/shortcode.md +++ b/content/en/getting-started/glossary/shortcode.md @@ -1,5 +1,6 @@ --- title: shortcode +reference: /content-management/shortcodes --- -A [template](g) called from within Markdown, taking zero or more [arguments](g). See [details](/content-management/shortcodes/). +A [template](g) called from within Markdown, taking zero or more [arguments](g). diff --git a/content/en/getting-started/glossary/taxonomic-weight.md b/content/en/getting-started/glossary/taxonomic-weight.md index 7dcb8080d..c828c7fd3 100644 --- a/content/en/getting-started/glossary/taxonomic-weight.md +++ b/content/en/getting-started/glossary/taxonomic-weight.md @@ -1,5 +1,6 @@ --- title: taxonomic weight +reference: content-management/taxonomies/#order-taxonomies --- -Defined in front matter and unique to each taxonomy, this [weight](g) determines the sort order of page collections contained within a [`Taxonomy`](g) object. See [details](/content-management/taxonomies/#order-taxonomies). +Defined in front matter and unique to each taxonomy, this [weight](g) determines the sort order of page collections contained within a [`Taxonomy`](g) object. diff --git a/content/en/getting-started/glossary/taxonomy.md b/content/en/getting-started/glossary/taxonomy.md index f7d38351d..4037b4b29 100644 --- a/content/en/getting-started/glossary/taxonomy.md +++ b/content/en/getting-started/glossary/taxonomy.md @@ -1,5 +1,6 @@ --- title: taxonomy +reference: /content-management/taxonomies --- -A group of related [terms](g) used to classify content. For example, a "colors" taxonomy might include the terms "red", "green", and "blue". See [details](/content-management/taxonomies/). +A group of related [terms](g) used to classify content. For example, a "colors" taxonomy might include the terms "red", "green", and "blue". diff --git a/content/en/installation/_common/01-editions.md b/content/en/installation/_common/01-editions.md index 3df52638e..11e7e9080 100644 --- a/content/en/installation/_common/01-editions.md +++ b/content/en/installation/_common/01-editions.md @@ -8,7 +8,7 @@ Feature|extended edition|extended/deploy edition :--|:-:|:-: Encode to the WebP format when [processing images]. You can decode WebP images with any edition.|:heavy_check_mark:|:heavy_check_mark: [Transpile Sass to CSS] using the embedded LibSass transpiler. You can use the [Dart Sass] transpiler with any edition.|:heavy_check_mark:|:heavy_check_mark: -Deploy your site directly to a Google Cloud Storage bucket, an AWS S3 bucket, or an Azure Storage container. See [details].|:x:|:heavy_check_mark: +Deploy your site directly to a Google Cloud Storage bucket, an AWS S3 bucket, or an Azure Storage container. See [details].|:x:|:heavy_check_mark: [dart sass]: /functions/css/sass/#dart-sass [processing images]: /content-management/image-processing/ diff --git a/content/en/methods/page/File.md b/content/en/methods/page/File.md index a5b30ddb0..3b136f918 100644 --- a/content/en/methods/page/File.md +++ b/content/en/methods/page/File.md @@ -12,7 +12,7 @@ toc: true By default, not all pages are backed by a file, including top level [section pages](g), [taxonomy pages](g), and [term pages](g). By definition, you cannot retrieve file information when the file does not exist. -To back one of the pages above with a file, create an `_index.md` file in the corresponding directory. For example: +To back one of the pages above with a file, create an `_index.md` file in the corresponding directory. For example: ```text content/ diff --git a/content/en/methods/page/Pages.md b/content/en/methods/page/Pages.md index c376bc3b5..8efcde287 100644 --- a/content/en/methods/page/Pages.md +++ b/content/en/methods/page/Pages.md @@ -70,7 +70,7 @@ When rendering lesson-2, the `Pages` method returns: lessons/lesson-2/resources/task-list.md lessons/lesson-2/resources/worksheet.md -In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an `_index.md` file. Its contents are part of the lesson-2 section. +In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an `_index.md` file. Its contents are part of the lesson-2 section. {{% note %}} When used with a `Site` object, the `Pages` method recursively returns all pages within the site. See [details]. diff --git a/content/en/methods/page/RegularPages.md b/content/en/methods/page/RegularPages.md index 29a66b48f..08198fca4 100644 --- a/content/en/methods/page/RegularPages.md +++ b/content/en/methods/page/RegularPages.md @@ -67,7 +67,7 @@ When rendering lesson-2, the `RegularPages` method returns: lessons/lesson-2/resources/task-list.md lessons/lesson-2/resources/worksheet.md -In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an _index.md file. Its contents are part of the lesson-2 section. +In the last example, the collection includes pages in the resources subdirectory. That directory is not a [section](g)---it does not contain an `_index.md` file. Its contents are part of the lesson-2 section. {{% note %}} When used with the `Site` object, the `RegularPages` method recursively returns all regular pages within the site. See [details]. diff --git a/content/en/methods/page/Sitemap.md b/content/en/methods/page/Sitemap.md index 3277520fb..0472b26a6 100644 --- a/content/en/methods/page/Sitemap.md +++ b/content/en/methods/page/Sitemap.md @@ -15,7 +15,7 @@ Access to the `Sitemap` method on a `Page` object is restricted to [sitemap temp ## Methods changefreq -: (`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef). +: (`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef). ```go-html-template {{ .Sitemap.ChangeFreq }} @@ -29,7 +29,7 @@ disable {{< new-in 0.125.0 >}} ``` priority -: (`float`) The priority of a page relative to any other page on the site. Valid values range from 0.0 to 1.0. With the default value of `-1` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#priority). +: (`float`) The priority of a page relative to any other page on the site. Valid values range from 0.0 to 1.0. With the default value of `-1` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#priority). ```go-html-template {{ .Sitemap.Priority }} diff --git a/content/en/methods/page/Title.md b/content/en/methods/page/Title.md index 5c2c98d6b..08fc9f9eb 100644 --- a/content/en/methods/page/Title.md +++ b/content/en/methods/page/Title.md @@ -33,7 +33,7 @@ You can change the capitalization style in your site configuration to one of `ap titleCaseStyle = "firstupper" {{< /code-toggle >}} - See [details]. + See [details]. [`capitalizeListTitles`]: /getting-started/configuration/#capitalizelisttitles [`pluralizeListTitles`]: /getting-started/configuration/#pluralizelisttitles diff --git a/content/en/templates/404.md b/content/en/templates/404.md index 39df75c3d..ae18428fb 100644 --- a/content/en/templates/404.md +++ b/content/en/templates/404.md @@ -38,16 +38,16 @@ Your production server redirects the browser to the 404 page when a page is not Host|Capabilities and configuration :--|:-- -Amazon CloudFront|See [details](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html). -Amazon S3|See [details](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CustomErrorDocSupport.html). -Apache|See [details](https://httpd.apache.org/docs/2.4/custom-error.html). -Azure Static Web Apps|See [details](https://learn.microsoft.com/en-us/azure/static-web-apps/configuration#response-overrides). -Azure Storage|See [details](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website#setting-up-a-static-website). -Caddy|See [details](https://caddyserver.com/docs/caddyfile/directives/handle_errors). -Cloudflare Pages|See [details](https://developers.cloudflare.com/pages/configuration/serving-pages/#not-found-behavior). -DigitalOcean App Platform|See [details](https://docs.digitalocean.com/products/app-platform/how-to/manage-static-sites/#configure-a-static-site). -Firebase|See [details](https://firebase.google.com/docs/hosting/full-config#404). +Amazon CloudFront|See [details](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GeneratingCustomErrorResponses.html). +Amazon S3|See [details](https://docs.aws.amazon.com/AmazonS3/latest/userguide/CustomErrorDocSupport.html). +Apache|See [details](https://httpd.apache.org/docs/2.4/custom-error.html). +Azure Static Web Apps|See [details](https://learn.microsoft.com/en-us/azure/static-web-apps/configuration#response-overrides). +Azure Storage|See [details](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-static-website#setting-up-a-static-website). +Caddy|See [details](https://caddyserver.com/docs/caddyfile/directives/handle_errors). +Cloudflare Pages|See [details](https://developers.cloudflare.com/pages/configuration/serving-pages/#not-found-behavior). +DigitalOcean App Platform|See [details](https://docs.digitalocean.com/products/app-platform/how-to/manage-static-sites/#configure-a-static-site). +Firebase|See [details](https://firebase.google.com/docs/hosting/full-config#404). GitHub Pages|Redirection to is automatic and not configurable. -GitLab Pages|See [details](https://docs.gitlab.com/ee/user/project/pages/introduction.html#custom-error-codes-pages). -NGINX|See [details](https://nginx.org/en/docs/http/ngx_http_core_module.html#error_page). -Netlify|See [details](https://docs.netlify.com/routing/redirects/redirect-options/). +GitLab Pages|See [details](https://docs.gitlab.com/ee/user/project/pages/introduction.html#custom-error-codes-pages). +NGINX|See [details](https://nginx.org/en/docs/http/ngx_http_core_module.html#error_page). +Netlify|See [details](https://docs.netlify.com/routing/redirects/redirect-options/). diff --git a/content/en/templates/home.md b/content/en/templates/home.md index 088f40f26..9ac22c0a7 100644 --- a/content/en/templates/home.md +++ b/content/en/templates/home.md @@ -22,7 +22,7 @@ See [Template Lookup](/templates/lookup-order/). ## Add content and front matter to the home page -The home page accepts content and front matter from an `_index.md` file. This file should live at the root of your `content` directory (i.e., `content/_index.md`). You can then add body copy and metadata to your home page the way you would any other content file. +The home page accepts content and front matter from an `_index.md` file. This file should live at the root of your `content` directory (i.e., `content/_index.md`). You can then add body copy and metadata to your home page the way you would any other content file. See the home template below or [Content Organization][contentorg] for more information on the role of `_index.md` in adding content and front matter to list pages. diff --git a/content/en/templates/sitemap.md b/content/en/templates/sitemap.md index 166f54933..8ef00269d 100644 --- a/content/en/templates/sitemap.md +++ b/content/en/templates/sitemap.md @@ -33,7 +33,7 @@ These are the default sitemap configuration values. They apply to all pages unle {{< code-toggle config=sitemap />}} changefreq -: (`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef). +: (`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef). disable {{< new-in 0.125.0 >}} : (`bool`) Whether to disable page inclusion. Default is `false`. Set to `true` in front matter to exclude the page. @@ -42,7 +42,7 @@ filename : (`string`) The name of the generated file. Default is `sitemap.xml`. priority -: (`float`) The priority of a page relative to any other page on the site. Valid values range from 0.0 to 1.0. With the default value of `-1` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#priority). +: (`float`) The priority of a page relative to any other page on the site. Valid values range from 0.0 to 1.0. With the default value of `-1` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#priority). ## Override default values diff --git a/content/en/troubleshooting/faq.md b/content/en/troubleshooting/faq.md index 4891c566b..2edb309be 100644 --- a/content/en/troubleshooting/faq.md +++ b/content/en/troubleshooting/faq.md @@ -51,11 +51,11 @@ If the answer to any of these questions is yes, either change the field values, ###### Why can't I see any of a page's descendants? -You may have an `index.md` file instead of an `_index.md` file. See [details](/content-management/page-bundles/). +You may have an `index.md` file instead of an `_index.md` file. See [details](/content-management/page-bundles/). -###### What is the difference between an index.md file and an _index.md file? +###### What is the difference between an `index.md` file and an `_index.md` file? -A directory with an `index.md file` is a [leaf bundle](g). A directory with an `_index.md` file is a [branch bundle](g). See [details](/content-management/page-bundles/). +A directory with an `index.md file` is a [leaf bundle](g). A directory with an `_index.md` file is a [branch bundle](g). See [details](/content-management/page-bundles/). ###### Why is my partial template not rendered as expected? diff --git a/layouts/shortcodes/glossary.html b/layouts/shortcodes/glossary.html index 3273efd8c..2767612ab 100644 --- a/layouts/shortcodes/glossary.html +++ b/layouts/shortcodes/glossary.html @@ -35,6 +35,11 @@ shortcode. {{- range $p }} ###### {{ .Title }}{{/* Do not indent. */}} {{ .RenderShortcodes }}{{/* Do not indent. */}} + {{- with .Params.reference }} + {{- with site.GetPage . -}} + See [details]({{ .RelPermalink }}).{{/* Do not indent. */}} + {{- end }} + {{- end }} {{- end }} {{- end }} From 1a7413a16689e42a6431e357c3ae7cc9e7ab0d7e Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 30 Jan 2025 18:12:19 -0800 Subject: [PATCH 25/68] Clean up shortcode documentation --- content/en/content-management/shortcodes.md | 242 ++++++-- .../en/getting-started/glossary/shortcode.md | 2 +- content/en/methods/page/Scratch.md | 2 +- content/en/methods/shortcode/Scratch.md | 2 +- content/en/templates/home.md | 78 +-- content/en/templates/section.md | 2 +- content/en/templates/shortcode.md | 551 ++++++++---------- content/en/templates/types/index.md | 16 +- 8 files changed, 495 insertions(+), 400 deletions(-) diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md index cd1f2cb43..6e49fc86f 100644 --- a/content/en/content-management/shortcodes.md +++ b/content/en/content-management/shortcodes.md @@ -1,91 +1,241 @@ --- title: Shortcodes -description: Shortcodes are simple snippets inside your content files calling built-in or custom templates. +description: Use embedded, custom, or inline shortcodes to insert elements such as videos, images, and social media embeds into your content. categories: [content management] -keywords: [markdown,content,shortcodes] +keywords: [] menu: docs: parent: content-management weight: 100 weight: 100 -toc: true aliases: [/extras/shortcodes/] -testparam: "Hugo Rocks!" +toc: true --- -## What a shortcode is +## Introduction -Hugo loves Markdown because of its simple content format, but there are times when Markdown falls short. Often, content authors are forced to add raw HTML (e.g., video ` - +{{< code file=layouts/shortcodes/image.html >}} +{{- with .Page.Resources.Get (.Get "path") }} + {{- with .Process (printf "resize %dx wepb" ($.Get "width")) }} + {{ $.Get + {{- end }} +{{- end -}} {{< /code >}} -{{< code file=youtube-embed.html >}} -
- -
+Then call the shortcode from within your markup: + +{{< code file=content/example/index.md >}} +{{}} {{< /code >}} -### Single named example: `image` +The example above uses: -Let's say you want to create your own `img` shortcode rather than use Hugo's built-in [`figure` shortcode][figure]. Your goal is to be able to call the shortcode as follows in your content files: +- The [`with`] statement to rebind the [context](g) after each successful operation +- The [`Get`] method to retrieve arguments by name +- The `$` to access the template context -{{< code file=content-image.md >}} -{{}} +[`get`]: /methods/shortcode/get/ +[`with`]: /functions/go-template/with/ + +{{% note %}} +Make sure that you thoroughly understand the concept of context. The most common templating errors made by new users relate to context. + +Read more about context in the [introduction to templating]. + +[introduction to templating]: /templates/introduction/ +{{% /note %}} + +### Insert image with error handling + +The previous example, while functional, silently fails if the image is missing, and does not gracefully exit if a required argument is missing. We'll add error handling to address these issues: + +{{< code file=layouts/shortcodes/image.html >}} +{{ with .Get "path" }} + {{- with $r := $.Page.Resources.Get ($.Get "path") }} + {{- with $.Get "width" }} + {{- with $r.Process (printf "resize %dx wepb" ($.Get "width" )) }} + {{- $alt := or ($.Get "alt") "" }} + {{ $alt }} + {{- end }} + {{- else }} + {{- errorf "The %q shortcode requires a 'width' argument: see %s" $.Name $.Position }} + {{- end }} + {{- else }} + {{ warnf "The %q shortcode was unable to find %s: see %s" $.Name ($.Get "path") $.Position }} + {{- end }} +{{- else }} + {{ errorf "The %q shortcode requires a 'path' argument: see %s" .Name .Position }} +{{- end -}} {{< /code >}} -You have created the shortcode at `/layouts/shortcodes/img.html`, which loads the following shortcode template: +This template throws an error and gracefully fails the build if the author neglected to provide a `path` or `width` argument, and it emits a warning if it cannot find the image at the specified path. If the author does not provide an `alt` argument, the `alt` attribute is set to an empty string. -{{< code file=layouts/shortcodes/img.html >}} - -
- {{ with .Get "link" }}{{ end }} - - {{ if .Get "link" }}{{ end }} - {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr") }} -
{{ if isset .Params "title" }} -

{{ .Get "title" }}

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

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

{{ end }} -
- {{ end }} -
- -{{< /code >}} +The [`Name`] and [`Position`] methods provide helpful context for errors and warnings. For example, a missing `width` argument causes the shortcode to throw this error: -Would be rendered as: +[`name`]: /methods/shortcode/name/ +[`position`]: /methods/shortcode/position/ -{{< code file=img-output.html >}} -
- -
-

Steve Francia

-
-
-{{< /code >}} - -### Single flexible example: `vimeo` - -```go-html-template -{{}} -{{}} +```text +ERROR The "image" shortcode requires a 'width' argument: see "/home/user/project/content/example/index.md:7:1" ``` -Would load the template found at `/layouts/shortcodes/vimeo.html`: +### Positional arguments -{{< code file=layouts/shortcodes/vimeo.html >}} -{{ if .IsNamedParams }} -
- -
-{{ else }} -
- -
-{{ end }} +Shortcode arguments can be [named or positional]. We used named arguments previously; let's explore positional arguments. Here's the named argument version of our example: + +[named or positional]: /content-management/shortcodes/#arguments + +{{< code file=content/example/index.md >}} +{{}} {{< /code >}} -Would be rendered as: +Here's how to call it with positional arguments: -{{< code file=vimeo-iframes.html >}} -
- -
-
- +{{< code file=content/example/index.md >}} +{{}} +{{< /code >}} + +Using the `Get` method with zero-indexed keys, we'll initialize variables with descriptive names in our template: + +{{< code file=layouts/shortcodes/image.html >}} +{{- $path := .Get 0 }} +{{- $width := .Get 1 }} +{{- $alt := .Get 2 }} +{{< /code >}} + +{{% note %}} +Positional arguments work well for frequently used shortcodes with one or two arguments. Since you'll use them often, the argument order will be easy to remember. For less frequently used shortcodes, or those with more than two arguments, named arguments improve readability and reduce the chance of errors. +{{% /note %}} + +### Named and positional arguments + +You can create a shortcode that will accept both named and positional arguments, but not at the same time. Use the [`IsNamedParams`] method to determine whether the shortcode call used named or positional arguments: + +{{< code file=layouts/shortcodes/image.html >}} +{{- $path := cond (.IsNamedParams) (.Get "path") (.Get 0) }} +{{- $width := cond (.IsNamedParams) (.Get "width") (.Get 1) }} +{{- $alt := cond (.IsNamedParams) (.Get "alt") (.Get 2) }} +{{< /code >}} + +This example uses the `cond` alias for the [`compare.Conditional`] function to get the argument by name if `IsNamedParams` returns `true`, otherwise get the argument by position. + +[`compare.Conditional`]: /functions/compare/conditional/ +[`IsNamedParams`]: /methods/shortcode/isnamedparams/ + +### Argument collection + +Use the [`Params`] method to access the arguments as a collection. + +[`Params`]: /methods/shortcode/params/ + +When using named arguments, the `Params` method returns a map: + +{{< code file=content/example/index.md >}} +{{}} +{{< /code >}} + +{{< code file=layouts/shortcodes/image.html >}} +{{- .Params.path }} → a.jpg +{{- .Params.width }} → 300 +{{- .Params.alt }} → A white kitten +{{< /code >}} + + When using positional arguments, the `Params` method returns a slice: + +{{< code file=content/example/index.md >}} +{{}} +{{< /code >}} + +{{< code file=layouts/shortcodes/image.html >}} +{{- index .Params 0 }} → a.jpg +{{- index .Params 1 }} → 300 +{{- index .Params 1 }} → A white kitten +{{< /code >}} + +Combine the `Params` method with the [`collections.IsSet`] function to determine if a parameter is set, even if its value is falsy. + +[`collections.IsSet`]: /functions/collections/isset/ + +### Inner content + +Extract the content enclosed within shortcode tags using the [`Inner`] method. This example demonstrates how to pass both content and a title to a shortcode. The shortcode then generates a `div` element containing an `h2` element (displaying the title) and the provided content. + +[`Inner`]: /methods/shortcode/inner/ + +{{< code file=content/example.md >}} +{{}} +This is a **bold** word, and this is an _emphasized_ word. +{{}} +{{< /code >}} + +{{< code file=layouts/shortcodes/contrived.html >}} +
+

{{ .Get "title" }}

+ {{ .Inner | .Page.RenderString }}
{{< /code >}} -### Paired example: `highlight` +The preceding example called the shortcode using [standard notation], requiring us to process the inner content with the [`RenderString`] method to convert the Markdown to HTML. This conversion is unnecessary when calling a shortcode using [Markdown notation]. -The following is taken from `highlight`, which is a [built-in shortcode] that ships with Hugo. +[`RenderString`]: /methods/page/renderstring/ +[markdown notation]: /content-management/shortcodes/#markdown-notation +[standard notation]: /content-management/shortcodes/#standard-notation -{{< code file=highlight-example.md >}} -{{}} - - This HTML - -{{}} -{{< /code >}} +### Nesting -The template for the `highlight` shortcode uses the following code, which is already included in Hugo: +The [`Parent`] method provides access to the parent shortcode context when the shortcode in question is called within the context of a parent shortcode. This provides an inheritance model. -```go-html-template -{{ .Get 0 | highlight .Inner }} -``` - -The rendered output of the HTML example code block will be as follows: - -{{< code file=syntax-highlighted.html >}} -
<html>
-    <body> This HTML </body>
-</html>
-
-{{< /code >}} - -### Nested shortcode: image gallery - -Hugo's [`.Parent`] shortcode method provides access to the parent shortcode context when the shortcode in question is called within the context of a parent shortcode. This provides an inheritance model. +[`Parent`]: /methods/shortcode/parent/ The following example is contrived but demonstrates the concept. Assume you have a `gallery` shortcode that expects one named `class` argument: @@ -333,23 +303,24 @@ The following example is contrived but demonstrates the concept. Assume you have You also have an `img` shortcode with a single named `src` argument that you want to call inside of `gallery` and other shortcodes, so that the parent defines the context of each `img`: {{< code file=layouts/shortcodes/img.html >}} -{{- $src := .Get "src" -}} -{{- with .Parent -}} +{{ $src := .Get "src" }} +{{ with .Parent }} -{{- else -}} +{{ else }} -{{- end -}} +{{ end }} {{< /code >}} You can then call your shortcode in your content as follows: -```go-html-template +{{< code file=content/example.md >}} {{}} {{}} {{}} {{}} {{}} -``` +{{< /code >}} + This will output the following HTML. Note how the first two `img` shortcodes inherit the `class` value of `content-gallery` set with the call to the parent `gallery`, whereas the third `img` only uses `src`: @@ -361,62 +332,30 @@ This will output the following HTML. Note how the first two `img` shortcodes inh ``` -## Error handling in shortcodes +### Other examples -Use the [`errorf`] template function with the [`Name`] and [`Position`] shortcode methods to generate useful error messages: +For guidance, consider examining Hugo's embedded shortcodes. The source code, available on [GitHub], can provide a useful model. -{{< code file=layouts/shortcodes/greeting.html >}} -{{ with .Get "name" }} -

Hello, my name is {{ . }}.

-{{ else }} - {{ errorf "The %q shortcode requires a 'name' argument. See %s" .Name .Position }} -{{ end }} +[GitHub]: https://github.com/gohugoio/hugo/tree/master/tpl/tplimpl/embedded/templates/shortcodes + +## Detection + +The [`HasShortcode`] method allows you to check if a specific shortcode has been called on a page. For example, consider a custom audio shortcode: + +{{< code file=content/example.md >}} +{{}} {{< /code >}} -When the above fails, you will see an `ERROR` message such as: +You can use the `HasShortcode` method in your base template to conditionally load CSS if the audio shortcode was used on the page: -```sh -ERROR The "greeting" shortcode requires a 'name' argument. See "/home/user/project/content/_index.md:12:1" -``` +{{< code file=layouts/_default/baseof.html >}} + + ... + {{ if .HasShortcode "audio" }} + + {{ end }} + ... + +{{< /code >}} -## Inline shortcodes - -You can also implement your shortcodes inline -- e.g. where you use them in the content file. This can be useful for scripting that you only need in one place. - -This feature is disabled by default, but can be enabled in your site configuration: - -{{< code-toggle file=hugo >}} -[security] -enableInlineShortcodes = true -{{< /code-toggle >}} - -It is disabled by default for security reasons. The security model used by Hugo's template handling assumes that template authors are trusted, but that the content files are not, so the templates are injection-safe from malformed input data. But in most situations you have full control over the content, too, and then `enableInlineShortcodes = true` would be considered safe. But it's something to be aware of: It allows ad-hoc [Go Text templates](https://golang.org/pkg/text/template/) to be executed from the content files. - -And once enabled, you can do this in your content files: - - ```go-html-template - {{}}{{ now }}{{}} - ``` - -The above will print the current date and time. - -Note that an inline shortcode's inner content is parsed and executed as a Go text template with the same context as a regular shortcode template. - -This means that the current page can be accessed via `.Page.Title` etc. This also means that there are no concept of "nested inline shortcodes". - -The same inline shortcode can be reused later in the same content file, with different arguments if needed, using the self-closing syntax: - - ```go-html-template -{{}} -``` - -[`.Parent`]: /methods/shortcode/parent/ -[`errorf`]: /functions/fmt/errorf/ -[`Name`]: /methods/shortcode/name/ -[`Position`]: /methods/shortcode/position/ -[built-in shortcode]: /content-management/shortcodes/ -[figure]: /shortcodes/figure/ -[lookup order]: /templates/lookup-order/ -[source organization]: /getting-started/directory-structure/ -[vimeoexample]: #single-flexible-example-vimeo -[youtubeshortcode]: /shortcodes/youtube/ +[`HasShortcode`]: /methods/page/hasshortcode/ diff --git a/content/en/templates/types/index.md b/content/en/templates/types/index.md index 0bd72ccc4..8369917bf 100644 --- a/content/en/templates/types/index.md +++ b/content/en/templates/types/index.md @@ -48,9 +48,7 @@ Hugo's [template lookup order] determines the template path, allowing you to cre [template lookup order]: /templates/lookup-order/ {{% note %}} -You must have thorough understanding of the [template lookup order] when creating templates. Template selection is based on template type, page kind, content type, section, language, and output format. - -[template lookup order]: /templates/lookup-order/ +You must have thorough understanding of the template lookup order when creating templates. Template selection is based on template type, page kind, content type, section, language, and output format. {{% /note %}} The purpose of each template type is described below. @@ -88,9 +86,7 @@ Learn more about [base templates](/templates/base/). ## Home -A home template renders your site's home page. For a single page site this is the only required template. - -For example, the home template below inherits the site's shell from the base template, and renders the home page content with a list of pages. +A home page template is used to render your site's home page, and is the only template required for a single-page website. For example, the home page template below inherits the site's shell from the base template and renders the home page content, such as a list of other pages. {{< code file=layouts/_default/home.html >}} {{ define "main" }} @@ -103,7 +99,7 @@ For example, the home template below inherits the site's shell from the base tem {{% include "templates/_common/filter-sort-group.md" %}} -Learn more about [home templates](/templates/home/). +Learn more about [home page templates](/templates/home/). ## Single @@ -241,7 +237,7 @@ For example, the render hook template below adds a `rel` attribute to external l {{- with .Title }} title="{{ . }}"{{ end -}} {{- if $u.IsAbs }} rel="external"{{ end -}} > - {{- with .Text | safeHTML }}{{ . }}{{ end -}} + {{- with .Text }}{{ . }}{{ end -}} {{- /* chomp trailing newline */ -}} {{< /code >}} @@ -260,10 +256,10 @@ For example, the shortcode template below renders an audio element from a [globa {{ end }} {{< /code >}} -Call the shortcode from your content page: +Then call the shortcode from within markup: {{< code file=content/example.md >}} -{{}} +{{}} {{< /code >}} Learn more about [shortcode templates](/templates/shortcode/). From 367d3a7ab8b11a5228b4eb317f11002dbc48f77d Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Fri, 31 Jan 2025 20:05:57 -0800 Subject: [PATCH 26/68] Improve new-in shortcode --- .../en/content-management/content-adapters.md | 2 +- content/en/content-management/front-matter.md | 4 +- .../image-processing/index.md | 2 +- content/en/content-management/mathematics.md | 2 +- .../en/content-management/page-resources.md | 2 +- content/en/content-management/urls.md | 4 +- content/en/contribute/documentation.md | 2 +- .../functions/_common/highlighting-options.md | 2 +- content/en/functions/collections/Where.md | 4 +- content/en/functions/css/PostCSS.md | 2 +- content/en/functions/css/Sass.md | 4 +- content/en/functions/css/TailwindCSS.md | 2 +- content/en/functions/debug/Timer.md | 2 +- content/en/functions/fmt/Warnidf.md | 2 +- content/en/functions/go-template/try.md | 2 +- content/en/functions/hugo/IsDevelopment.md | 2 +- content/en/functions/hugo/IsMultihost.md | 2 +- content/en/functions/hugo/IsMultilingual.md | 2 +- content/en/functions/hugo/IsServer.md | 2 +- content/en/functions/hugo/Store.md | 2 +- content/en/functions/images/AutoOrient.md | 2 +- content/en/functions/images/Dither.md | 2 +- content/en/functions/images/Mask.md | 2 +- content/en/functions/images/Opacity.md | 2 +- content/en/functions/images/Padding.md | 2 +- content/en/functions/images/Process.md | 2 +- content/en/functions/images/QR.md | 2 +- content/en/functions/images/Text.md | 2 +- content/en/functions/js/_common/options.md | 10 ++-- content/en/functions/math/Acos.md | 2 +- content/en/functions/math/Asin.md | 2 +- content/en/functions/math/Atan.md | 2 +- content/en/functions/math/Atan2.md | 2 +- content/en/functions/math/Cos.md | 2 +- content/en/functions/math/Pi.md | 2 +- content/en/functions/math/Product.md | 2 +- content/en/functions/math/Rand.md | 2 +- content/en/functions/math/Sin.md | 2 +- content/en/functions/math/Sum.md | 2 +- content/en/functions/math/Tan.md | 2 +- content/en/functions/math/ToDegrees.md | 2 +- content/en/functions/math/ToRadians.md | 2 +- content/en/functions/resources/GetRemote.md | 9 ++++ content/en/functions/strings/Diff/index.md | 2 +- content/en/functions/strings/TrimSpace.md | 2 +- content/en/functions/templates/Defer.md | 2 +- content/en/functions/transform/ToMath.md | 2 +- content/en/functions/transform/Unmarshal.md | 2 +- content/en/functions/transform/XMLEscape.md | 2 +- .../en/getting-started/configuration-build.md | 4 +- .../getting-started/configuration-markup.md | 10 ++-- content/en/getting-started/configuration.md | 16 +++--- .../getting-started/glossary/logical-path.md | 2 +- content/en/getting-started/usage.md | 2 +- content/en/hugo-modules/configuration.md | 2 +- .../en/methods/page/ContentWithoutSummary.md | 2 +- content/en/methods/page/File.md | 2 +- content/en/methods/page/Path.md | 2 +- content/en/methods/page/RenderShortcodes.md | 2 +- content/en/methods/page/Resources.md | 2 +- content/en/methods/page/Sitemap.md | 2 +- content/en/methods/pager/PagerSize.md | 2 +- content/en/methods/resource/Colors.md | 4 +- content/en/methods/shortcode/Store.md | 2 +- content/en/methods/site/Lastmod.md | 2 +- content/en/methods/site/Store.md | 2 +- content/en/methods/taxonomy/Page.md | 2 +- content/en/render-hooks/_common/pageinner.md | 2 +- content/en/render-hooks/blockquotes.md | 6 +-- content/en/render-hooks/code-blocks.md | 2 +- content/en/render-hooks/headings.md | 2 +- content/en/render-hooks/images.md | 4 +- content/en/render-hooks/links.md | 4 +- content/en/render-hooks/passthrough.md | 2 +- content/en/render-hooks/tables.md | 2 +- content/en/shortcodes/comment.md | 2 +- content/en/shortcodes/details.md | 2 +- content/en/shortcodes/qr.md | 2 +- content/en/shortcodes/x.md | 2 +- content/en/shortcodes/youtube.md | 16 +++--- content/en/templates/sitemap.md | 2 +- layouts/shortcodes/new-in.html | 51 +++++++++++++++++++ 82 files changed, 172 insertions(+), 112 deletions(-) create mode 100644 layouts/shortcodes/new-in.html diff --git a/content/en/content-management/content-adapters.md b/content/en/content-management/content-adapters.md index 369e91a12..420d49d9d 100644 --- a/content/en/content-management/content-adapters.md +++ b/content/en/content-management/content-adapters.md @@ -11,7 +11,7 @@ weight: 290 toc: true --- -{{< new-in 0.126.0 >}} +{{< new-in 0.126.0 />}} ## Overview diff --git a/content/en/content-management/front-matter.md b/content/en/content-management/front-matter.md index dba77f1d1..9f5fc9e11 100644 --- a/content/en/content-management/front-matter.md +++ b/content/en/content-management/front-matter.md @@ -179,7 +179,7 @@ path ###### params -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} (`map`) A map of custom [page parameters]. @@ -258,7 +258,7 @@ Alias to [expirydate](#expirydate). ## Parameters -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} Specify custom page parameters under the `params` key in front matter: diff --git a/content/en/content-management/image-processing/index.md b/content/en/content-management/image-processing/index.md index ca2462c24..50e4b1e72 100644 --- a/content/en/content-management/image-processing/index.md +++ b/content/en/content-management/image-processing/index.md @@ -110,7 +110,7 @@ Metadata (EXIF, IPTC, XMP, etc.) is not preserved during image transformation. U ### Process -{{< new-in 0.119.0 >}} +{{< new-in 0.119.0 />}} {{% note %}} The `Process` method is also available as a filter, which is more effective if you need to apply multiple filters to an image. See [Process filter](/functions/images/process). diff --git a/content/en/content-management/mathematics.md b/content/en/content-management/mathematics.md index 96d51b563..aa398d334 100644 --- a/content/en/content-management/mathematics.md +++ b/content/en/content-management/mathematics.md @@ -13,7 +13,7 @@ toc: true math: true --- -{{< new-in 0.122.0 >}} +{{< new-in 0.122.0 />}} ## Overview diff --git a/content/en/content-management/page-resources.md b/content/en/content-management/page-resources.md index 440398a48..84c3309cd 100644 --- a/content/en/content-management/page-resources.md +++ b/content/en/content-management/page-resources.md @@ -206,7 +206,7 @@ the `Name` and `Title` will be assigned to the resource files as follows: ## Multilingual -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} By default, with a multilingual single-host site, Hugo does not duplicate shared page resources when building the site. diff --git a/content/en/content-management/urls.md b/content/en/content-management/urls.md index b8cd9a01a..ab0c7148a 100644 --- a/content/en/content-management/urls.md +++ b/content/en/content-management/urls.md @@ -56,7 +56,7 @@ If you set both `slug` and `url` in front matter, the `url` value takes preceden #### Include a colon -{{< new-in 0.136.0 >}} +{{< new-in 0.136.0 />}} If you need to include a colon in the `url` front matter field, escape it with backslash characters. Use one backslash if you wrap the string within single quotes, or use two backslashes if you wrap the string within double quotes. With YAML front matter, use a single backslash if you omit quotation marks. @@ -118,7 +118,7 @@ multilingual|`about`|`https://example.org/de/about/` #### Permalinks tokens in front matter -{{< new-in "0.131.0" >}} +{{< new-in 0.131.0 />}} You can also use [tokens](#tokens) when setting the `url` value. This is typically used in `cascade` sections: diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index 23a9af7d1..16d06dee1 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -365,7 +365,7 @@ Use the `new-in` shortcode to indicate a new feature: {{}} ``` -{{< new-in 0.127.0 >}} +{{< new-in 0.127.0 />}} ### note diff --git a/content/en/functions/_common/highlighting-options.md b/content/en/functions/_common/highlighting-options.md index 363bbe6f8..2d07ccccc 100644 --- a/content/en/functions/_common/highlighting-options.md +++ b/content/en/functions/_common/highlighting-options.md @@ -45,7 +45,7 @@ tabWidth : (`int`) Substitute this number of spaces for each tab character in your highlighted code. Irrelevant if `noClasses` is `false`. Default is `4`. wrapperClass -{{< new-in 0.140.2 >}} +{{< new-in 0.140.2 />}} : (`string`) The class or classes to use for the outermost element of the highlighted code. Default is `highlight`. {{% note %}} diff --git a/content/en/functions/collections/Where.md b/content/en/functions/collections/Where.md index 381fc7cb0..014a063a1 100644 --- a/content/en/functions/collections/Where.md +++ b/content/en/functions/collections/Where.md @@ -87,7 +87,7 @@ Use any of the following logical operators: `intersect` : (`bool`) Reports whether the given field value (a slice) contains one or more elements in common with `VALUE`. See [details](/functions/collections/intersect). -`like` {{< new-in 0.116.0 >}} +`like` {{< new-in 0.116.0 />}} : (`bool`) Reports whether the given field value matches the regular expression specified in `VALUE`. Use the `like` operator to compare `string` values. The `like` operator returns `false` when comparing other data types to the regular expression. {{% note %}} @@ -168,7 +168,7 @@ For example, to return a collection of pages where any of the terms in the "genr ## Regular expression comparison -{{< new-in 0.116.0 >}} +{{< new-in 0.116.0 />}} To return a collection of pages where the "author" page parameter begins with either "victor" or "Victor": diff --git a/content/en/functions/css/PostCSS.md b/content/en/functions/css/PostCSS.md index ac911c39a..1a1a792ec 100644 --- a/content/en/functions/css/PostCSS.md +++ b/content/en/functions/css/PostCSS.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.128.0 >}} +{{< new-in 0.128.0 />}} ```go-html-template {{ with resources.Get "css/main.css" | postCSS }} diff --git a/content/en/functions/css/Sass.md b/content/en/functions/css/Sass.md index 0d5f98f8b..73f7af1ea 100644 --- a/content/en/functions/css/Sass.md +++ b/content/en/functions/css/Sass.md @@ -15,7 +15,7 @@ action: toc: true --- -{{< new-in 0.128.0 >}} +{{< new-in 0.128.0 />}} ```go-html-template {{ with resources.Get "sass/main.scss" }} @@ -92,7 +92,7 @@ includePaths ``` silenceDeprecations -: (`slice`) {{< new-in 0.139.0 >}} A slice of deprecation IDs to silence. The deprecation IDs are printed to in the warning message, e.g "import" in `WARN Dart Sass: DEPRECATED [import] ...`. This is for Dart Sass only. +: (`slice`) {{< new-in 0.139.0 />}} A slice of deprecation IDs to silence. The deprecation IDs are printed to in the warning message, e.g "import" in `WARN Dart Sass: DEPRECATED [import] ...`. This is for Dart Sass only. ## Dart Sass diff --git a/content/en/functions/css/TailwindCSS.md b/content/en/functions/css/TailwindCSS.md index 3fd727dfb..5dbab6e02 100644 --- a/content/en/functions/css/TailwindCSS.md +++ b/content/en/functions/css/TailwindCSS.md @@ -14,7 +14,7 @@ action: toc: true --- -{{< new-in 0.128.0 >}} +{{< new-in 0.128.0 />}} ## Prerequisites diff --git a/content/en/functions/debug/Timer.md b/content/en/functions/debug/Timer.md index a0704dc01..519c195c1 100644 --- a/content/en/functions/debug/Timer.md +++ b/content/en/functions/debug/Timer.md @@ -10,7 +10,7 @@ action: signatures: [debug.Timer NAME] --- -{{< new-in 0.120.0 >}} +{{< new-in 0.120.0 />}} Use the `debug.Timer` function to determine execution time for a block of code, useful for finding performance bottlenecks in templates. diff --git a/content/en/functions/fmt/Warnidf.md b/content/en/functions/fmt/Warnidf.md index cbe75816e..70c109b5b 100644 --- a/content/en/functions/fmt/Warnidf.md +++ b/content/en/functions/fmt/Warnidf.md @@ -14,7 +14,7 @@ action: aliases: [/functions/warnidf] --- -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} {{% include "functions/fmt/_common/fmt-layout.md" %}} diff --git a/content/en/functions/go-template/try.md b/content/en/functions/go-template/try.md index a78be1610..f3385a04c 100644 --- a/content/en/functions/go-template/try.md +++ b/content/en/functions/go-template/try.md @@ -11,7 +11,7 @@ action: toc: true --- -{{< new-in 0.141.0 >}} +{{< new-in 0.141.0 />}} The `try` statement is a non-standard extension to Go's [text/template] package. It introduces a mechanism for handling errors within templates, mimicking the `try-catch` constructs found in other programming languages. diff --git a/content/en/functions/hugo/IsDevelopment.md b/content/en/functions/hugo/IsDevelopment.md index 9926b67c9..bfbc0eaa1 100644 --- a/content/en/functions/hugo/IsDevelopment.md +++ b/content/en/functions/hugo/IsDevelopment.md @@ -12,7 +12,7 @@ action: signatures: [hugo.IsDevelopment] --- -{{< new-in 0.120.0 >}} +{{< new-in 0.120.0 />}} ```go-html-template {{ hugo.IsDevelopment }} → true/false diff --git a/content/en/functions/hugo/IsMultihost.md b/content/en/functions/hugo/IsMultihost.md index 2b582636b..5c1cb9f83 100644 --- a/content/en/functions/hugo/IsMultihost.md +++ b/content/en/functions/hugo/IsMultihost.md @@ -11,7 +11,7 @@ action: signatures: [hugo.IsMultihost] --- -{{< new-in v0.124.0 >}} +{{< new-in 0.124.0 />}} Site configuration: diff --git a/content/en/functions/hugo/IsMultilingual.md b/content/en/functions/hugo/IsMultilingual.md index e436ab160..91beb0d52 100644 --- a/content/en/functions/hugo/IsMultilingual.md +++ b/content/en/functions/hugo/IsMultilingual.md @@ -10,7 +10,7 @@ action: signatures: [hugo.IsMultilingual] --- -{{< new-in v0.124.0 >}} +{{< new-in 0.124.0 />}} Site configuration: diff --git a/content/en/functions/hugo/IsServer.md b/content/en/functions/hugo/IsServer.md index 942261007..0fa42fc15 100644 --- a/content/en/functions/hugo/IsServer.md +++ b/content/en/functions/hugo/IsServer.md @@ -10,7 +10,7 @@ action: signatures: [hugo.IsServer] --- -{{< new-in 0.120.0 >}} +{{< new-in 0.120.0 />}} ```go-html-template {{ hugo.IsServer }} → true/false diff --git a/content/en/functions/hugo/Store.md b/content/en/functions/hugo/Store.md index f3c43df32..4f3250954 100644 --- a/content/en/functions/hugo/Store.md +++ b/content/en/functions/hugo/Store.md @@ -14,7 +14,7 @@ action: toc: true --- -{{< new-in 0.139.0 >}} +{{< new-in 0.139.0 />}} Use the `hugo.Store` function to create a globally scoped [scratch pad](g) to store and manipulate data. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. diff --git a/content/en/functions/images/AutoOrient.md b/content/en/functions/images/AutoOrient.md index 8f27a95d8..8e3708eea 100644 --- a/content/en/functions/images/AutoOrient.md +++ b/content/en/functions/images/AutoOrient.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.121.2 >}} +{{< new-in 0.121.2 />}} ## Usage diff --git a/content/en/functions/images/Dither.md b/content/en/functions/images/Dither.md index fd0a8368b..d6ae603a8 100644 --- a/content/en/functions/images/Dither.md +++ b/content/en/functions/images/Dither.md @@ -15,7 +15,7 @@ action: toc: true --- -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} ## Options diff --git a/content/en/functions/images/Mask.md b/content/en/functions/images/Mask.md index 4b1afcf20..8116e8946 100644 --- a/content/en/functions/images/Mask.md +++ b/content/en/functions/images/Mask.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.141.0 >}} +{{< new-in 0.141.0 />}} The `images.Mask` filter applies a mask to an image. Black pixels in the mask make the corresponding areas of the base image transparent, while white pixels keep them opaque. Color images are converted to grayscale for masking purposes. The mask is automatically resized to match the dimensions of the base image. diff --git a/content/en/functions/images/Opacity.md b/content/en/functions/images/Opacity.md index 6a74fd081..32b1bd23c 100644 --- a/content/en/functions/images/Opacity.md +++ b/content/en/functions/images/Opacity.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.119.0 >}} +{{< new-in 0.119.0 />}} The opacity value must be in the range [0, 1]. A value of `0` produces a transparent image, and a value of `1` produces an opaque image (no transparency). diff --git a/content/en/functions/images/Padding.md b/content/en/functions/images/Padding.md index 90cb6a74d..e2c2695a1 100644 --- a/content/en/functions/images/Padding.md +++ b/content/en/functions/images/Padding.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.120.0 >}} +{{< new-in 0.120.0 />}} The last argument is the canvas color, expressed as an RGB or RGBA [hexadecimal color]. The default value is `ffffffff` (opaque white). The preceding arguments are the padding values, in pixels, using the CSS [shorthand property] syntax. Negative padding values will crop the image. diff --git a/content/en/functions/images/Process.md b/content/en/functions/images/Process.md index f095a6699..959770c65 100644 --- a/content/en/functions/images/Process.md +++ b/content/en/functions/images/Process.md @@ -14,7 +14,7 @@ action: toc: true --- -{{< new-in 0.119.0 >}} +{{< new-in 0.119.0 />}} This filter has the same options as the [`Process`] method on a `Resource` object, but using it as a filter may be more effective if you need to apply multiple filters to an image. diff --git a/content/en/functions/images/QR.md b/content/en/functions/images/QR.md index 8b372e948..70a0cd5e2 100644 --- a/content/en/functions/images/QR.md +++ b/content/en/functions/images/QR.md @@ -11,7 +11,7 @@ toc: true math: true --- -{{< new-in 0.141.0 >}} +{{< new-in 0.141.0 />}} The `images.QR` function encodes the given text into a [QR code] using the specified options, returning an image resource. The size of the generated image depends on three factors: diff --git a/content/en/functions/images/Text.md b/content/en/functions/images/Text.md index 70702f841..c8d23565c 100644 --- a/content/en/functions/images/Text.md +++ b/content/en/functions/images/Text.md @@ -18,7 +18,7 @@ toc: true Although none of the options are required, at a minimum you will want to set the `size` to be some reasonable percentage of the image height. alignx - {{< new-in 0.141.0 >}} + {{< new-in 0.141.0 />}} : (`string`) The horizontal alignment of the text relative to the horizontal offset, one of `left`, `center`, or `right`. Default is `left`. color diff --git a/content/en/functions/js/_common/options.md b/content/en/functions/js/_common/options.md index 54fe7fca4..e2b6566ad 100644 --- a/content/en/functions/js/_common/options.md +++ b/content/en/functions/js/_common/options.md @@ -23,7 +23,7 @@ Note that this is meant for small data sets, e.g. configuration settings. For la ###### loaders -{{< new-in "0.140.0" >}} +{{< new-in 0.140.0 />}} (`map`) Configuring a loader for a given file type lets you load that file type with an import statement or a require call. For example configuring the .png file extension to use the data URL loader means importing a .png file gives you a data URLcontaining the contents of that image. Loaders available are `none`, `base64`, `binary`, `copy`, `css`, `dataurl`, `default`, `empty`, `file`, `global-css`, `js`, `json`, `jsx`, `local-css`, `text`, `ts`, `tsx`. See https://esbuild.github.io/api/#loader. @@ -65,7 +65,7 @@ import * as ReactDOM from 'react-dom/client'; ###### platform -{{< new-in 0.140.0 >}} +{{< new-in 0.140.0 />}} (`string`) One of `browser`, `node`, `neutral`. Default is `browser`. See https://esbuild.github.io/api/#platform. @@ -87,19 +87,19 @@ import * as ReactDOM from 'react-dom/client'; ###### sourcesContent -{{< new-in 0.140.0 >}} +{{< new-in 0.140.0 />}} (`bool`) Whether to include the content of the source files in the source map. By default, this is `true`. ###### JSX -{{< new-in 0.124.0 >}} +{{< new-in 0.124.0 />}} (`string`) How to handle/transform JSX syntax. One of: `transform`, `preserve`, `automatic`. Default is `transform`. Notably, the `automatic` transform was introduced in React 17+ and will cause the necessary JSX helper functions to be imported automatically. See https://esbuild.github.io/api/#jsx. ###### JSXImportSource -{{< new-in 0.124.0 >}} +{{< new-in 0.124.0 />}} (`string`) Which library to use to automatically import its JSX helper functions from. This only works if `JSX` is set to `automatic`. The specified library needs to be installed through npm and expose certain exports. See https://esbuild.github.io/api/#jsx-import-source. diff --git a/content/en/functions/math/Acos.md b/content/en/functions/math/Acos.md index 3ece567c8..abdae4f74 100644 --- a/content/en/functions/math/Acos.md +++ b/content/en/functions/math/Acos.md @@ -17,7 +17,7 @@ action: signatures: [math.Acos VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Acos 1 }} → 0 diff --git a/content/en/functions/math/Asin.md b/content/en/functions/math/Asin.md index d90761ae7..0496a1b45 100644 --- a/content/en/functions/math/Asin.md +++ b/content/en/functions/math/Asin.md @@ -17,7 +17,7 @@ action: signatures: [math.Asin VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Asin 1 }} → 1.5707963267948966 diff --git a/content/en/functions/math/Atan.md b/content/en/functions/math/Atan.md index dbc57d211..942b3d2f2 100644 --- a/content/en/functions/math/Atan.md +++ b/content/en/functions/math/Atan.md @@ -17,7 +17,7 @@ action: signatures: [math.Atan VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Atan 1 }} → 0.7853981633974483 diff --git a/content/en/functions/math/Atan2.md b/content/en/functions/math/Atan2.md index b78435561..efa13b166 100644 --- a/content/en/functions/math/Atan2.md +++ b/content/en/functions/math/Atan2.md @@ -17,7 +17,7 @@ action: signatures: [math.Atan2 VALUE VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Atan2 1 2 }} → 0.4636476090008061 diff --git a/content/en/functions/math/Cos.md b/content/en/functions/math/Cos.md index 847aed13a..3291b24f8 100644 --- a/content/en/functions/math/Cos.md +++ b/content/en/functions/math/Cos.md @@ -17,7 +17,7 @@ action: signatures: [math.Cos VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Cos 1 }} → 0.5403023058681398 diff --git a/content/en/functions/math/Pi.md b/content/en/functions/math/Pi.md index c5d5a01cc..f2cf92c7a 100644 --- a/content/en/functions/math/Pi.md +++ b/content/en/functions/math/Pi.md @@ -17,7 +17,7 @@ action: signatures: [math.Pi] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Pi }} → 3.141592653589793 diff --git a/content/en/functions/math/Product.md b/content/en/functions/math/Product.md index d94df4f1b..1809c560d 100644 --- a/content/en/functions/math/Product.md +++ b/content/en/functions/math/Product.md @@ -15,7 +15,7 @@ action: signatures: [math.Product VALUE...] --- -{{< new-in 0.114.0 >}} +{{< new-in 0.114.0 />}} ```go-html-template {{ math.Product 1 (slice 2 3) 4 }} → 24 diff --git a/content/en/functions/math/Rand.md b/content/en/functions/math/Rand.md index 00fcae300..cae6455c0 100644 --- a/content/en/functions/math/Rand.md +++ b/content/en/functions/math/Rand.md @@ -10,7 +10,7 @@ action: signatures: [math.Rand] --- -{{< new-in 0.121.2 >}} +{{< new-in 0.121.2 />}} The `math.Rand` function returns a pseudo-random number in the half-open [interval](g) [0.0, 1.0). diff --git a/content/en/functions/math/Sin.md b/content/en/functions/math/Sin.md index e78a5432a..37936d714 100644 --- a/content/en/functions/math/Sin.md +++ b/content/en/functions/math/Sin.md @@ -17,7 +17,7 @@ action: signatures: [math.Sin VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Sin 1 }} → 0.8414709848078965 diff --git a/content/en/functions/math/Sum.md b/content/en/functions/math/Sum.md index eba03f72d..5cf882bee 100644 --- a/content/en/functions/math/Sum.md +++ b/content/en/functions/math/Sum.md @@ -14,7 +14,7 @@ action: signatures: [math.Sum VALUE...] --- -{{< new-in 0.114.0 >}} +{{< new-in 0.114.0 />}} ```go-html-template {{ math.Sum 1 (slice 2 3) 4 }} → 10 diff --git a/content/en/functions/math/Tan.md b/content/en/functions/math/Tan.md index 3ccfa9d4e..a8691fbca 100644 --- a/content/en/functions/math/Tan.md +++ b/content/en/functions/math/Tan.md @@ -17,7 +17,7 @@ action: signatures: [math.Tan VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.Tan 1 }} → 1.557407724654902 diff --git a/content/en/functions/math/ToDegrees.md b/content/en/functions/math/ToDegrees.md index 89a7510b9..54473be72 100644 --- a/content/en/functions/math/ToDegrees.md +++ b/content/en/functions/math/ToDegrees.md @@ -12,7 +12,7 @@ action: signatures: [math.ToDegrees VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.ToDegrees 1.5707963267948966 }} → 90 diff --git a/content/en/functions/math/ToRadians.md b/content/en/functions/math/ToRadians.md index 26def5da0..c587c023c 100644 --- a/content/en/functions/math/ToRadians.md +++ b/content/en/functions/math/ToRadians.md @@ -12,7 +12,7 @@ action: signatures: [math.ToRadians VALUE] --- -{{< new-in 0.130.0 >}} +{{< new-in 0.130.0 />}} ```go-html-template {{ math.ToRadians 90 }} → 1.5707963267948966 diff --git a/content/en/functions/resources/GetRemote.md b/content/en/functions/resources/GetRemote.md index 982529077..19581c19a 100644 --- a/content/en/functions/resources/GetRemote.md +++ b/content/en/functions/resources/GetRemote.md @@ -18,6 +18,15 @@ action: toc: true --- +{{< new-in 0.141.0 >}} +The `Err` method on the returned resource was removed in v0.141.0. + +Use the [`try`] statement instead, as shown in the [error handling] example below. + +[`try`]: /functions/go-template/try +[error handling]: #error-handling +{{< /new-in >}} + ```go-html-template {{ $url := "https://example.org/images/a.jpg" }} {{ with try (resources.GetRemote $url) }} diff --git a/content/en/functions/strings/Diff/index.md b/content/en/functions/strings/Diff/index.md index da172bbeb..281b76763 100644 --- a/content/en/functions/strings/Diff/index.md +++ b/content/en/functions/strings/Diff/index.md @@ -9,7 +9,7 @@ action: signatures: [strings.Diff OLDNAME OLD NEWNAME NEW] --- -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} Use `strings.Diff` to compare two strings and render a highlighted diff: diff --git a/content/en/functions/strings/TrimSpace.md b/content/en/functions/strings/TrimSpace.md index eef4e8121..7cb293674 100644 --- a/content/en/functions/strings/TrimSpace.md +++ b/content/en/functions/strings/TrimSpace.md @@ -15,7 +15,7 @@ action: signatures: [strings.TrimSpace INPUT] --- -{{< new-in 0.136.3 >}} +{{< new-in 0.136.3 />}} Whitespace characters include `\t`, `\n`, `\v`, `\f`, `\r`, and characters in the [Unicode Space Separator] category. diff --git a/content/en/functions/templates/Defer.md b/content/en/functions/templates/Defer.md index 1d538db4a..c43ef43bf 100644 --- a/content/en/functions/templates/Defer.md +++ b/content/en/functions/templates/Defer.md @@ -12,7 +12,7 @@ action: aliases: [/functions/templates.defer] --- -{{< new-in "0.128.0" >}} +{{< new-in 0.128.0 />}} In some rare use cases, you may need to defer the execution of a template until after all sites and output formats have been rendered. One such example could be [TailwindCSS](/functions/css/tailwindcss/) using the output of [hugo_stats.json](/getting-started/configuration/#configure-build) to determine which classes and other HTML identifiers are being used in the final output: diff --git a/content/en/functions/transform/ToMath.md b/content/en/functions/transform/ToMath.md index 62d1360ce..10cd256c5 100644 --- a/content/en/functions/transform/ToMath.md +++ b/content/en/functions/transform/ToMath.md @@ -13,7 +13,7 @@ aliases: [/functions/tomath] toc: true --- -{{< new-in "0.132.0" >}} +{{< new-in 0.132.0 />}} Hugo uses an embedded instance of the [KaTeX] display engine to render mathematical markup to HTML. You do not need to install the KaTeX display engine. diff --git a/content/en/functions/transform/Unmarshal.md b/content/en/functions/transform/Unmarshal.md index 959f20223..e50fc0ee0 100644 --- a/content/en/functions/transform/Unmarshal.md +++ b/content/en/functions/transform/Unmarshal.md @@ -132,7 +132,7 @@ delimiter comment : (`string`) The comment character used in the CSV. If set, lines beginning with the comment character without preceding whitespace are ignored. -lazyQuotes {{< new-in 0.122.0 >}} +lazyQuotes {{< new-in 0.122.0 />}} : (`bool`) If true, a quote may appear in an unquoted field and a non-doubled quote may appear in a quoted field. Default is `false`. ```go-html-template diff --git a/content/en/functions/transform/XMLEscape.md b/content/en/functions/transform/XMLEscape.md index d0aafc4bd..291f0f622 100644 --- a/content/en/functions/transform/XMLEscape.md +++ b/content/en/functions/transform/XMLEscape.md @@ -10,7 +10,7 @@ action: signatures: [transform.XMLEscape INPUT] --- -{{< new-in 0.121.0 >}} +{{< new-in 0.121.0 />}} The `transform.XMLEscape` function removes [disallowed characters] as defined in the XML specification, then escapes the result by replacing the following characters with [HTML entities]: diff --git a/content/en/getting-started/configuration-build.md b/content/en/getting-started/configuration-build.md index 7ee7a1461..791d4bb99 100644 --- a/content/en/getting-started/configuration-build.md +++ b/content/en/getting-started/configuration-build.md @@ -54,7 +54,7 @@ The `build.cachebusters` configuration option was added to support development u target = "$1" {{< /code-toggle >}} -When `buildStats` {{< new-in 0.115.1 >}} is enabled, Hugo writes a `hugo_stats.json` file on each build with HTML classes etc. that's used in the rendered output. Changes to this file will trigger a rebuild of the `styles.css` file. You also need to add `hugo_stats.json` to Hugo's server watcher. See [Hugo Starter Tailwind Basic](https://github.com/bep/hugo-starter-tailwind-basic) for a running example. +When `buildStats` {{< new-in 0.115.1 />}} is enabled, Hugo writes a `hugo_stats.json` file on each build with HTML classes etc. that's used in the rendered output. Changes to this file will trigger a rebuild of the `styles.css` file. You also need to add `hugo_stats.json` to Hugo's server watcher. See [Hugo Starter Tailwind Basic](https://github.com/bep/hugo-starter-tailwind-basic) for a running example. source : A regexp matching file(s) relative to one of the virtual component directories in Hugo, typically `assets/...`. @@ -66,7 +66,7 @@ target {{< code-toggle config=build.buildStats />}} -{{< new-in 0.115.1 >}} +{{< new-in 0.115.1 />}} If `enable` is set to `true`, creates a `hugo_stats.json` file in the root of your project. This file contains arrays of the `class` attributes, `id` attributes, and tags of every HTML element within your published site. Use this file as data source when [removing unused CSS] from your site. This process is also known as pruning, purging, or tree shaking. diff --git a/content/en/getting-started/configuration-markup.md b/content/en/getting-started/configuration-markup.md index f01d0dddd..ef885e44b 100644 --- a/content/en/getting-started/configuration-markup.md +++ b/content/en/getting-started/configuration-markup.md @@ -86,7 +86,7 @@ typographer|[Goldmark Extensions: Typographer]|:heavy_check_mark: #### Extras -{{< new-in 0.126.0 >}} +{{< new-in 0.126.0 />}} Enable [deleted text], [inserted text], [mark text], [subscript], and [superscript] elements in Markdown. @@ -124,7 +124,7 @@ enable = true #### Passthrough -{{< new-in 0.122.0 >}} +{{< new-in 0.122.0 />}} Enable the passthrough extension to include mathematical equations and expressions in Markdown using LaTeX markup. See [mathematics in Markdown] for details. @@ -153,7 +153,7 @@ Most of the Goldmark settings above are self-explanatory, but some require expla ###### duplicateResourceFiles -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} (`bool`) If `true`, shared page resources on multilingual single-host sites will be duplicated for each language. See [multilingual page resources] for details. Default is `false`. @@ -194,7 +194,7 @@ This is also the strategy used by the [anchorize](/functions/urls/anchorize) tem ###### renderHooks.image.enableDefault -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} (`bool`) If `true`, enables Hugo's [embedded image render hook]. Default is `false`. @@ -208,7 +208,7 @@ The embedded image render hook is automatically enabled for multilingual single- ###### renderHooks.link.enableDefault -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} (`bool`) If `true`, enables Hugo's [embedded link render hook]. Default is `false`. diff --git a/content/en/getting-started/configuration.md b/content/en/getting-started/configuration.md index 1194121a3..23376f68f 100644 --- a/content/en/getting-started/configuration.md +++ b/content/en/getting-started/configuration.md @@ -232,7 +232,7 @@ See [Configure File Caches](#configure-file-caches). ###### capitalizeListTitles -{{< new-in 0.123.3 >}} +{{< new-in 0.123.3 />}} (`bool`) Whether to capitalize automatic list titles. Applicable to section, taxonomy, and term pages. Default is `true`. You can change the capitalization style in your site configuration to one of `ap`, `chicago`, `go`, `firstupper`, or `none`. See [details]. @@ -281,7 +281,7 @@ To remain consistent and prevent unexpected behavior, do not mix these strategie ###### disableDefaultLanguageRedirect -{{< new-in 0.140.0 >}} +{{< new-in 0.140.0 />}} (`bool`) Disables generation of redirect to the default language when DefaultContentLanguageInSubdir is `true`. Default is `false`. @@ -472,7 +472,7 @@ content/post/hügó.md → https://example.org/post/hugo/ ###### renderSegments -{{< new-in 0.124.0 >}} +{{< new-in 0.124.0 />}} (`[]string`) A list of segments to render. If not set, everything will be rendered. This is more commonly set in a CLI flag, e.g. `hugo --renderSegments segment1,segment2`. The segment names must match the names in the [segments](#configure-segments) configuration. @@ -563,7 +563,7 @@ enableemoji: true ## Configure page -{{< new-in 0.133.0 >}} +{{< new-in 0.133.0 />}} These methods on a `Page` object navigate to the next or previous page within a page collection, relative to the current page: @@ -734,7 +734,7 @@ HUGO_ENVIRONMENT HUGO_FILE_LOG_FORMAT : (`string`) A format string for the file path, line number, and column number displayed when reporting errors, or when calling the `Position` method from a shortcode or Markdown render hook. Valid tokens are `:file`, `:line`, and `:col`. Default is `:file::line::col`. -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} HUGO_MEMORYLIMIT : (`int`) The maximum amount of system memory, in gigabytes, that Hugo can use while rendering your site. Default is 25% of total system memory. @@ -876,7 +876,7 @@ This can be set using the `cacheDir` config option or via the OS environment var If this is not set, Hugo will use, in order of preference: 1. If running on Netlify: `/opt/build/cache/hugo_cache/`. This means that if you run your builds on Netlify, all caches configured with `:cacheDir` will be saved and restored on the next build. For other CI vendors, please read their documentation. For an CircleCI example, see [this configuration](https://github.com/bep/hugo-sass-test/blob/6c3960a8f4b90e8938228688bc49bdcdd6b2d99e/.circleci/config.yml). -1. In a `hugo_cache` directory below the OS user cache directory as defined by Go's [os.UserCacheDir](https://pkg.go.dev/os#UserCacheDir). On Unix systems, this is `$XDG_CACHE_HOME` as specified by [basedir-spec-latest](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) if non-empty, else `$HOME/.cache`. On MacOS, this is `$HOME/Library/Caches`. On Windows, this is`%LocalAppData%`. On Plan 9, this is `$home/lib/cache`. {{< new-in 0.116.0 >}} +1. In a `hugo_cache` directory below the OS user cache directory as defined by Go's [os.UserCacheDir](https://pkg.go.dev/os#UserCacheDir). On Unix systems, this is `$XDG_CACHE_HOME` as specified by [basedir-spec-latest](https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html) if non-empty, else `$HOME/.cache`. On MacOS, this is `$HOME/Library/Caches`. On Windows, this is`%LocalAppData%`. On Plan 9, this is `$home/lib/cache`. {{< new-in 0.116.0 />}} 1. In a `hugo_cache_$USER` directory below the OS temp dir. If you want to know the current value of `cacheDir`, you can run `hugo config`, e.g: `hugo config | grep cachedir`. @@ -890,7 +890,7 @@ If you want to know the current value of `cacheDir`, you can run `hugo config`, ## Configure HTTP cache -{{< new-in 0.127.0 >}} +{{< new-in 0.127.0 />}} Note that this configuration is currently only relevant when using the [resources.GetRemote] function. @@ -936,7 +936,7 @@ polling ## Configure segments -{{< new-in 0.124.0 >}} +{{< new-in 0.124.0 />}} {{% note %}} The `segments` configuration is currently only used to configure partitioned rendering. diff --git a/content/en/getting-started/glossary/logical-path.md b/content/en/getting-started/glossary/logical-path.md index 3a2c96f18..e5b732cde 100644 --- a/content/en/getting-started/glossary/logical-path.md +++ b/content/en/getting-started/glossary/logical-path.md @@ -2,6 +2,6 @@ title: logical path --- -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} A page or page resource identifier derived from the file path, excluding its extension and language identifier. This value is neither a file path nor a URL. Starting with a file path relative to the `content` directory, Hugo determines the logical path by stripping the file extension and language identifier, converting to lower case, then replacing spaces with hyphens. See [examples](/methods/page/path/#examples). diff --git a/content/en/getting-started/usage.md b/content/en/getting-started/usage.md index 2e67ecb7e..3380b0ff2 100644 --- a/content/en/getting-started/usage.md +++ b/content/en/getting-started/usage.md @@ -65,7 +65,7 @@ Hugo allows you to set `draft`, `date`, `publishDate`, and `expiryDate` in the [ - The `publishDate` is in the future - The `expiryDate` is in the past -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} {{% note %}} Hugo publishes descendants of draft, future, and expired [node](g) pages. To prevent publication of these descendants, use the [`cascade`] front matter field to cascade [build options] to the descendant pages. diff --git a/content/en/hugo-modules/configuration.md b/content/en/hugo-modules/configuration.md index 13d160568..0bc1b47d8 100644 --- a/content/en/hugo-modules/configuration.md +++ b/content/en/hugo-modules/configuration.md @@ -154,7 +154,7 @@ target : (`string`) Where it should be mounted into Hugo's virtual filesystem. It must start with one of Hugo's component directories: `static`, `content`, `layouts`, `data`, `assets`, `i18n`, or `archetypes`. E.g. `content/blog`. disableWatch -{{< new-in 0.128.0 >}} +{{< new-in 0.128.0 />}} : (`bool`) Whether to disable watching in watch mode for this mount. Default is `false`. lang diff --git a/content/en/methods/page/ContentWithoutSummary.md b/content/en/methods/page/ContentWithoutSummary.md index 44d660cef..527f5d962 100644 --- a/content/en/methods/page/ContentWithoutSummary.md +++ b/content/en/methods/page/ContentWithoutSummary.md @@ -15,7 +15,7 @@ action: signatures: [PAGE.ContentWithoutSummary] --- -{{< new-in 0.134.0 >}} +{{< new-in 0.134.0 />}} Applicable when using manual or automatic [content summaries], the `ContentWithoutSummary` method on a `Page` object renders Markdown and shortcodes to HTML, excluding the content summary from the result. diff --git a/content/en/methods/page/File.md b/content/en/methods/page/File.md index 3b136f918..359c1ad2e 100644 --- a/content/en/methods/page/File.md +++ b/content/en/methods/page/File.md @@ -84,7 +84,7 @@ The path separators (slash or backslash) in `Path`, `Dir`, and `Filename` depend ###### IsContentAdapter -{{< new-in 0.126.0 >}} +{{< new-in 0.126.0 />}} (`bool`) Reports whether the file is a [content adapter]. diff --git a/content/en/methods/page/Path.md b/content/en/methods/page/Path.md index 657410112..83ad01b94 100644 --- a/content/en/methods/page/Path.md +++ b/content/en/methods/page/Path.md @@ -12,7 +12,7 @@ action: toc: true --- -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} The `Path` method on a `Page` object returns the [logical path](g) of the given page, regardless of whether the page is backed by a file. diff --git a/content/en/methods/page/RenderShortcodes.md b/content/en/methods/page/RenderShortcodes.md index 319edea69..3346f0ba1 100644 --- a/content/en/methods/page/RenderShortcodes.md +++ b/content/en/methods/page/RenderShortcodes.md @@ -17,7 +17,7 @@ action: toc: true --- -{{< new-in 0.117.0 >}} +{{< new-in 0.117.0 />}} Use this method in shortcode templates to compose a page from multiple content files, while preserving a global context for footnotes and the table of contents. diff --git a/content/en/methods/page/Resources.md b/content/en/methods/page/Resources.md index 2495ca8df..6c79f58ee 100644 --- a/content/en/methods/page/Resources.md +++ b/content/en/methods/page/Resources.md @@ -71,7 +71,7 @@ When working with global resources instead of page resources, use the [`resource ###### Mount -{{< new-in "0.140.0" >}} +{{< new-in 0.140.0 />}} (`ResourceGetter`) Mounts the given resources from the two arguments base (`string`) to the given target path (`string`) and returns an object that implements [Get](#get). Note that leading slashes in target marks an absolute path. Relative target paths allows you to mount resources relative to another set, e.g. a [Page bundle](/content-management/page-bundles/): diff --git a/content/en/methods/page/Sitemap.md b/content/en/methods/page/Sitemap.md index 0472b26a6..065c07c35 100644 --- a/content/en/methods/page/Sitemap.md +++ b/content/en/methods/page/Sitemap.md @@ -21,7 +21,7 @@ changefreq {{ .Sitemap.ChangeFreq }} ``` -disable {{< new-in 0.125.0 >}} +disable {{< new-in 0.125.0 />}} : (`bool`) Whether to disable page inclusion. Default is `false`. Set to `true` in front matter to exclude the page. ```go-html-template diff --git a/content/en/methods/pager/PagerSize.md b/content/en/methods/pager/PagerSize.md index 623548398..5f5f7d3a8 100644 --- a/content/en/methods/pager/PagerSize.md +++ b/content/en/methods/pager/PagerSize.md @@ -10,7 +10,7 @@ action: signatures: [PAGER.PagerSize] --- -{{< new-in 0.128.0 >}} +{{< new-in 0.128.0 />}} The number of pages per pager is determined by the optional second argument passed to the [`Paginate`] method, falling back to the `pagerSize` as defined in your [site configuration]. diff --git a/content/en/methods/resource/Colors.md b/content/en/methods/resource/Colors.md index 73fe1e7ae..08f63ae3f 100644 --- a/content/en/methods/resource/Colors.md +++ b/content/en/methods/resource/Colors.md @@ -20,11 +20,11 @@ The `Resources.Colors` method returns a slice of the most dominant colors in an Each color is an object with the following methods: ColorHex -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`string`) Returns the [hexadecimal color] value, prefixed with a hash sign. Luminance -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`float64`) Returns the [relative luminance] of the color in the sRGB colorspace in the range [0, 1]. A value of `0` represents the darkest black, while a value of `1` represents the lightest white. {{% note %}} diff --git a/content/en/methods/shortcode/Store.md b/content/en/methods/shortcode/Store.md index 3e350c01a..8d9a8596b 100644 --- a/content/en/methods/shortcode/Store.md +++ b/content/en/methods/shortcode/Store.md @@ -14,7 +14,7 @@ action: toc: true --- -{{< new-in 0.139.0 >}} +{{< new-in 0.139.0 />}} Use the `Store` method to create a [scratch pad](g) to store and manipulate data, scoped to the current shortcode. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. diff --git a/content/en/methods/site/Lastmod.md b/content/en/methods/site/Lastmod.md index 081481956..f1663db49 100644 --- a/content/en/methods/site/Lastmod.md +++ b/content/en/methods/site/Lastmod.md @@ -9,7 +9,7 @@ action: signatures: [SITE.Lastmod] --- -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} The `Lastmod` method on a `Site` object returns a [`time.Time`] value. Use this with time [functions] and [methods]. For example: diff --git a/content/en/methods/site/Store.md b/content/en/methods/site/Store.md index 92433c829..dcc3a0bed 100644 --- a/content/en/methods/site/Store.md +++ b/content/en/methods/site/Store.md @@ -13,7 +13,7 @@ action: toc: true --- -{{< new-in 0.139.0 >}} +{{< new-in 0.139.0 />}} Use the `Store` method on a `Site` object to create a [scratch pad](g) to store and manipulate data, scoped to the current site. To create a scratch pad with a different [scope](g), refer to the [scope](#scope) section below. diff --git a/content/en/methods/taxonomy/Page.md b/content/en/methods/taxonomy/Page.md index e148ac5c7..039719b93 100644 --- a/content/en/methods/taxonomy/Page.md +++ b/content/en/methods/taxonomy/Page.md @@ -9,7 +9,7 @@ action: signatures: [TAXONOMY.Page] --- -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} This `TAXONOMY` method returns nil if the taxonomy has no terms, so you must code defensively: diff --git a/content/en/render-hooks/_common/pageinner.md b/content/en/render-hooks/_common/pageinner.md index 92bd63c56..6f2622880 100644 --- a/content/en/render-hooks/_common/pageinner.md +++ b/content/en/render-hooks/_common/pageinner.md @@ -4,7 +4,7 @@ _comment: Do not remove front matter. ## PageInner details -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} The primary use case for `PageInner` is to resolve links and [page resources](g) relative to an included `Page`. For example, create an "include" shortcode to compose a page from multiple content files, while preserving a global context for footnotes and the table of contents: diff --git a/content/en/render-hooks/blockquotes.md b/content/en/render-hooks/blockquotes.md index b0fee7239..bdeb06af9 100755 --- a/content/en/render-hooks/blockquotes.md +++ b/content/en/render-hooks/blockquotes.md @@ -12,7 +12,7 @@ weight: 30 toc: true --- -{{< new-in 0.132.0 >}} +{{< new-in 0.132.0 />}} ## Context @@ -24,13 +24,13 @@ Blockquote render hook templates receive the following [context](g): ###### AlertTitle -{{< new-in 0.134.0 >}} +{{< new-in 0.134.0 />}} (`template.HTML`) Applicable when [`Type`](#type) is `alert`, this is the alert title. See the [alerts](#alerts) section below. ###### AlertSign -{{< new-in 0.134.0 >}} +{{< new-in 0.134.0 />}} (`string`) Applicable when [`Type`](#type) is `alert`, this is the alert sign. Typically used to indicate whether an alert is graphically foldable, this is one of `+`, `-`, or an empty string. See the [alerts](#alerts) section below. diff --git a/content/en/render-hooks/code-blocks.md b/content/en/render-hooks/code-blocks.md index 5022fd3ae..7999dbeb8 100755 --- a/content/en/render-hooks/code-blocks.md +++ b/content/en/render-hooks/code-blocks.md @@ -78,7 +78,7 @@ Code block render hook templates receive the following [context](g): ###### PageInner -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). diff --git a/content/en/render-hooks/headings.md b/content/en/render-hooks/headings.md index 2b32797cc..7c9d6b6fe 100755 --- a/content/en/render-hooks/headings.md +++ b/content/en/render-hooks/headings.md @@ -41,7 +41,7 @@ title = true ###### PageInner -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). diff --git a/content/en/render-hooks/images.md b/content/en/render-hooks/images.md index 900df3c2f..63f294081 100755 --- a/content/en/render-hooks/images.md +++ b/content/en/render-hooks/images.md @@ -59,7 +59,7 @@ block = true ###### PageInner -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). @@ -122,7 +122,7 @@ wrapStandAloneImageWithinParagraph = false ## Default -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} Hugo includes an [embedded image render hook] to resolve Markdown image destinations. Disabled by default, you can enable it in your site configuration: diff --git a/content/en/render-hooks/links.md b/content/en/render-hooks/links.md index 7700a540e..89044c662 100755 --- a/content/en/render-hooks/links.md +++ b/content/en/render-hooks/links.md @@ -38,7 +38,7 @@ Link render hook templates receive the following context: ###### PageInner -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} (`page`) A reference to a page nested via the [`RenderShortcodes`] method. [See details](#pageinner-details). @@ -90,7 +90,7 @@ To include a `rel` attribute set to `external` for external links: ## Default -{{< new-in 0.123.0 >}} +{{< new-in 0.123.0 />}} Hugo includes an [embedded link render hook] to resolve Markdown link destinations. Disabled by default, you can enable it in your site configuration: diff --git a/content/en/render-hooks/passthrough.md b/content/en/render-hooks/passthrough.md index 95bc54d88..798225061 100755 --- a/content/en/render-hooks/passthrough.md +++ b/content/en/render-hooks/passthrough.md @@ -12,7 +12,7 @@ weight: 80 toc: true --- -{{< new-in 0.132.0 >}} +{{< new-in 0.132.0 />}} ## Overview diff --git a/content/en/render-hooks/tables.md b/content/en/render-hooks/tables.md index 4252d6de0..d131664fc 100755 --- a/content/en/render-hooks/tables.md +++ b/content/en/render-hooks/tables.md @@ -12,7 +12,7 @@ weight: 90 toc: true --- -{{< new-in 0.134.0 >}} +{{< new-in 0.134.0 />}} ## Context diff --git a/content/en/shortcodes/comment.md b/content/en/shortcodes/comment.md index 208277bf5..ed810efd0 100755 --- a/content/en/shortcodes/comment.md +++ b/content/en/shortcodes/comment.md @@ -18,7 +18,7 @@ To override Hugo's embedded `comment` shortcode, copy the [source code] to a fil [source code]: {{% eturl comment %}} {{% /note %}} -{{< new-in "0.137.1" >}} +{{< new-in 0.137.1 />}} Use the `comment` shortcode to include comments in your content. Hugo will ignore the text within these comments when rendering your site. diff --git a/content/en/shortcodes/details.md b/content/en/shortcodes/details.md index f6e5ae691..f30f81d75 100755 --- a/content/en/shortcodes/details.md +++ b/content/en/shortcodes/details.md @@ -11,7 +11,7 @@ weight: toc: true --- -{{< new-in 0.140.0 >}} +{{< new-in 0.140.0 />}} {{% note %}} To override Hugo's embedded `details` shortcode, copy the [source code] to a file with the same name in the `layouts/shortcodes` directory. diff --git a/content/en/shortcodes/qr.md b/content/en/shortcodes/qr.md index 15e06cbc3..6208c6998 100755 --- a/content/en/shortcodes/qr.md +++ b/content/en/shortcodes/qr.md @@ -11,7 +11,7 @@ weight: toc: true --- -{{< new-in 0.141.0 >}} +{{< new-in 0.141.0 />}} {{% note %}} To override Hugo's embedded `qr` shortcode, copy the [source code] to a file with the same name in the `layouts/shortcodes` directory. diff --git a/content/en/shortcodes/x.md b/content/en/shortcodes/x.md index 6995d727f..e27bc996a 100755 --- a/content/en/shortcodes/x.md +++ b/content/en/shortcodes/x.md @@ -11,7 +11,7 @@ weight: toc: true --- -{{< new-in 0.141.0 >}} +{{< new-in 0.141.0 />}} {{% note %}} To override Hugo's embedded `x` shortcode, copy the [source code] to a file with the same name in the `layouts/shortcodes` directory. diff --git a/content/en/shortcodes/youtube.md b/content/en/shortcodes/youtube.md index 51e47a0c9..546529500 100755 --- a/content/en/shortcodes/youtube.md +++ b/content/en/shortcodes/youtube.md @@ -41,38 +41,38 @@ id : (`string`) The video `id`. Optional if the `id` is provided as a positional argument as shown in the example above. allowFullScreen -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`bool`) Whether the `iframe` element can activate full screen mode. Default is `true`. autoplay - {{< new-in 0.125.0 >}} + {{< new-in 0.125.0 />}} : (`bool`) Whether to automatically play the video. Forces `mute` to `true`. Default is `false`. class : (`string`) The `class` attribute of the wrapping `div` element. When specified, removes the `style` attributes from the `iframe` element and its wrapping `div` element. controls -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`bool`) Whether to display the video controls. Default is `true`. end -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`int`) The time, measured in seconds from the start of the video, when the player should stop playing the video. loading -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`string`) The loading attribute of the `iframe` element, either `eager` or `lazy`. Default is `eager`. loop -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`bool`) Whether to indefinitely repeat the video. Ignores the `start` and `end` arguments after the first play. Default is `false`. mute -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`bool`) Whether to mute the video. Always `true` when `autoplay` is `true`. Default is `false`. start -{{< new-in 0.125.0 >}} +{{< new-in 0.125.0 />}} : (`int`) The time, measured in seconds from the start of the video, when the player should start playing the video. title diff --git a/content/en/templates/sitemap.md b/content/en/templates/sitemap.md index 8ef00269d..b21372040 100644 --- a/content/en/templates/sitemap.md +++ b/content/en/templates/sitemap.md @@ -35,7 +35,7 @@ These are the default sitemap configuration values. They apply to all pages unle changefreq : (`string`) How frequently a page is likely to change. Valid values are `always`, `hourly`, `daily`, `weekly`, `monthly`, `yearly`, and `never`. With the default value of `""` Hugo will omit this field from the sitemap. See [details](https://www.sitemaps.org/protocol.html#changefreqdef). -disable {{< new-in 0.125.0 >}} +disable {{< new-in 0.125.0 />}} : (`bool`) Whether to disable page inclusion. Default is `false`. Set to `true` in front matter to exclude the page. filename diff --git a/layouts/shortcodes/new-in.html b/layouts/shortcodes/new-in.html new file mode 100644 index 000000000..c725ae14b --- /dev/null +++ b/layouts/shortcodes/new-in.html @@ -0,0 +1,51 @@ +{{- /* +Renders a "new in" button indicating the version in which a feature was added. + +When comparing the current version to the specified version, the "new in" +button will be hidden if any of the following conditions is true: + +- The major version difference exceeds the majorVersionDiffThreshold +- The minor version difference exceeds the minorVersionDiffThreshold + +@param {string} version The semantic version string, with or without a leading v. +@returns {template.HTML} + +@examples {{< new-in 0.100.0 />}} + + {{< new-in 0.100.0 >}} + Some descriptive text here. + {{< /new-in >}} +*/}} + + +{{ $_hugo_config := `{ "version": 1 }` }} + +{{- /* Set defaults. */}} +{{- $majorVersionDiffThreshold := 0 }} +{{- $minorVersionDiffThreshold := 30 }} +{{- $displayExpirationWarning := true }} + +{{- /* Render. */}} +{{- with $version := .Get 0 | strings.TrimPrefix "v" }} + {{- $majorVersionDiff := sub (index (split hugo.Version ".") 0 | int) (index (split $version ".") 0 | int) }} + {{- $minorVersionDiff := sub (index (split hugo.Version ".") 1 | int) (index (split $version ".") 1 | int) }} + {{- if or (gt $majorVersionDiff $majorVersionDiffThreshold) (gt $minorVersionDiff $minorVersionDiffThreshold) }} + {{- if $displayExpirationWarning }} + {{- warnf "This call to the %q shortcode should be removed: %s. The button is now hidden because the specified version (%s) is older than the display threshold." $.Name $.Position $version }} + {{- end }} + {{- else }} + {{- $href := printf "https://github.com/gohugoio/hugo/releases/tag/v%s" $version }} + {{- with $.Inner }} + + {{- else }} + New in v{{ $version }} + {{- end }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter (version). See %s" .Name .Position }} +{{- end -}} From c2d3e2c252169137a8186867af0b8063edb008ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 1 Feb 2025 17:11:10 +0100 Subject: [PATCH 27/68] netlify: Bump to 0.143.0 --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 52699de3a..ff01b4131 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ command = "hugo --gc --minify" [build.environment] - HUGO_VERSION = "0.142.0" + HUGO_VERSION = "0.143.0" [context.production.environment] HUGO_ENV = "production" From da7c12aaa515cd13818186de0366e5aa0c5bec9a Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 10:28:17 -0800 Subject: [PATCH 28/68] Deprecate gist shortcode --- content/en/shortcodes/comment.md | 2 +- content/en/shortcodes/gist.md | 20 ++++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/content/en/shortcodes/comment.md b/content/en/shortcodes/comment.md index ed810efd0..d91fa8289 100755 --- a/content/en/shortcodes/comment.md +++ b/content/en/shortcodes/comment.md @@ -9,7 +9,7 @@ menu: parent: shortcodes weight: weight: -expiryDate: 2025-01-22 # with v0.142.0 and later use HTML comments instead +expiryDate: 2025-01-22 # Deprecated in v0.143.0. Use HTML comments instead --- {{% note %}} diff --git a/content/en/shortcodes/gist.md b/content/en/shortcodes/gist.md index dc85f282c..7958a8f73 100755 --- a/content/en/shortcodes/gist.md +++ b/content/en/shortcodes/gist.md @@ -8,13 +8,19 @@ menu: parent: shortcodes weight: weight: +expiryDate: 2027-01-31 # Deprecated in v0.143.0. Keep this around for a couple of years because it contains instructions for creating a replacement. --- -{{% note %}} -To override Hugo's embedded `gist` shortcode, copy the [source code] to a file with the same name in the `layouts/shortcodes` directory. +{{% deprecated-in 0.143.0 %}} +The `gist` shortcode was deprecated in version 0.143.0 and will be removed in a future release. To continue embedding GitHub Gists in your content, you'll need to create a custom shortcode: -[source code]: {{% eturl gist %}} -{{% /note %}} +1. Create a new file: Create a file named `gist.html` within the `layouts/shortcodes` directory. +2. Copy the source code: Paste the [original source code] of the gist shortcode into the newly created `gist.html` file. + +This will allow you to maintain the functionality of embedding GitHub Gists in your content after the deprecation of the original shortcode. + +[original source code]: {{% eturl gist %}} +{{% /deprecated-in %}} To display a GitHub gist with this URL: @@ -28,14 +34,8 @@ Include this in your Markdown: {{}} ``` -This will display all files in the gist alphabetically by file name. - -{{< gist jmooring 23932424365401ffa5e9d9810102a477 >}} - To display a specific file within the gist: ```text {{}} ``` - -{{< gist jmooring 23932424365401ffa5e9d9810102a477 list.html >}} From e95d06592ee2741eb76dd6af5e5202799534490b Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Thu, 23 Jan 2025 09:40:12 -0800 Subject: [PATCH 29/68] Document the responseHeaders option for resources.GetRemote --- content/en/functions/resources/GetRemote.md | 95 +++++++++++++-------- content/en/methods/resource/Data.md | 33 ++++--- 2 files changed, 81 insertions(+), 47 deletions(-) diff --git a/content/en/functions/resources/GetRemote.md b/content/en/functions/resources/GetRemote.md index 19581c19a..4c729eced 100644 --- a/content/en/functions/resources/GetRemote.md +++ b/content/en/functions/resources/GetRemote.md @@ -44,6 +44,39 @@ Use the [`try`] statement instead, as shown in the [error handling] example belo The `resources.GetRemote` function takes an optional map of options. +###### body + +(`string`) The data you want to transmit to the server. + +###### headers + +(`map[string][]string`) The collection of key-value pairs that provide additional information about the request. + +###### key + +(`string`) The cache key. Hugo derives the default value from the URL and options map. See [caching](#caching). + +###### method + +(`string`) The action to perform on the requested resource, typically one of `GET`, `POST`, or `HEAD`. + +###### responseHeaders +{{< new-in 0.143.0 >}} + +(`[]string`) The headers to extract from the server's response, accessible through the resource's [`Data.Headers`] method. Header name matching is case-insensitive. + +[`Data.Headers`]: /methods/resource/data/#headers + +## Options examples + +{{% note %}} +For brevity, the examples below do not include [error handling]. + +[error handling]: #error-handling +{{% /note %}} + +To include a header: + ```go-html-template {{ $url := "https://example.org/api" }} {{ $opts := dict @@ -52,7 +85,7 @@ The `resources.GetRemote` function takes an optional map of options. {{ $resource := resources.GetRemote $url $opts }} ``` -If you need multiple values for the same header key, use a slice: +To specify more than one value for the same header key, use a slice: ```go-html-template {{ $url := "https://example.org/api" }} @@ -62,7 +95,7 @@ If you need multiple values for the same header key, use a slice: {{ $resource := resources.GetRemote $url $opts }} ``` -You can also change the request method and set the request body: +To post data: ```go-html-template {{ $url := "https://example.org/api" }} @@ -74,6 +107,27 @@ You can also change the request method and set the request body: {{ $resource := resources.GetRemote $url $opts }} ``` +To override the default cache key: + +```go-html-template +{{ $url := "https://example.org/images/a.jpg" }} +{{ $opts := dict + "key" (print $url (now.Format "2006-01-02")) +}} +{{ $resource := resources.GetRemote $url $opts }} +``` + +To extract specific headers from the server's response: + +```go-html-template +{{ $url := "https://example.org/images/a.jpg" }} +{{ $opts := dict + "method" "HEAD" + "responseHeaders" (slice "X-Frame-Options" "Server") +}} +{{ $resource := resources.GetRemote $url $opts }} +``` + ## Remote data When retrieving remote data, use the [`transform.Unmarshal`] function to [unmarshal](g) the response. @@ -148,40 +202,6 @@ The [`Data`] method on a resource returned by the `resources.GetRemote` function [`Data`]: /methods/resource/data/ -```go-html-template -{{ $url := "https://example.org/images/a.jpg" }} -{{ with try (resources.GetRemote $url) }} - {{ with .Err }} - {{ errorf "%s" . }} - {{ else with .Value }} - {{ with .Data }} - {{ .ContentLength }} → 42764 - {{ .ContentType }} → image/jpeg - {{ .Status }} → 200 OK - {{ .StatusCode }} → 200 - {{ .TransferEncoding }} → [] - {{ end }} - {{ else }} - {{ errorf "Unable to get remote resource %q" $url }} - {{ end }} -{{ end }} -``` - -ContentLength -: (`int`) The content length in bytes. - -ContentType -: (`string`) The content type. - -Status -: (`string`) The HTTP status text. - -StatusCode -: (`int`) The HTTP status code. - -TransferEncoding -: (`string`) The transfer encoding. - ## Caching Resources returned from `resources.GetRemote` are cached to disk. See [configure file caches] for details. @@ -193,7 +213,8 @@ Override the cache key by setting a `key` in the options map. Use this approach ```go-html-template {{ $url := "https://example.org/images/a.jpg" }} {{ $cacheKey := print $url (now.Format "2006-01-02") }} -{{ $resource := resources.GetRemote $url (dict "key" $cacheKey) }} +{{ $opts := dict "key" $cacheKey }} +{{ $resource := resources.GetRemote $url $opts }} ``` [configure file caches]: /getting-started/configuration/#configure-file-caches diff --git a/content/en/methods/resource/Data.md b/content/en/methods/resource/Data.md index f62de34d2..b6744d1be 100644 --- a/content/en/methods/resource/Data.md +++ b/content/en/methods/resource/Data.md @@ -17,6 +17,7 @@ The `Data` method on a resource returned by the [`resources.GetRemote`] function ```go-html-template {{ $url := "https://example.org/images/a.jpg" }} +{{ $opts := dict "responseHeaders" (slice "Server") }} {{ with try (resources.GetRemote $url) }} {{ with .Err }} {{ errorf "%s" . }} @@ -24,6 +25,7 @@ The `Data` method on a resource returned by the [`resources.GetRemote`] function {{ with .Data }} {{ .ContentLength }} → 42764 {{ .ContentType }} → image/jpeg + {{ .Headers }} → map[Server:[Netlify]] {{ .Status }} → 200 OK {{ .StatusCode }} → 200 {{ .TransferEncoding }} → [] @@ -34,19 +36,30 @@ The `Data` method on a resource returned by the [`resources.GetRemote`] function {{ end }} ``` -ContentLength -: (`int`) The content length in bytes. +###### ContentLength -ContentType -: (`string`) The content type. +(`int`) The content length in bytes. -Status -: (`string`) The HTTP status text. +###### ContentType -StatusCode -: (`int`) The HTTP status code. +(`string`) The content type. -TransferEncoding -: (`string`) The transfer encoding. +###### Headers + +(`map[string][]string`) A map of response headers matching those requested in the [`responseHeaders`] option passed to the `resources.GetRemote` function. The header name matching is case-insensitive. In most cases there will be one value per header key. + +[`responseHeaders`]: /functions/resources/getremote/#responseheaders + +###### Status + +(`string`) The HTTP status text. + +###### StatusCode + +(`int`) The HTTP status code. + +###### TransferEncoding + +(`string`) The transfer encoding. [`resources.GetRemote`]: /functions/resources/getremote/ From 71c5fe9519d4ad2ad3406df7dbc8b111369162b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 1 Feb 2025 17:16:30 +0100 Subject: [PATCH 30/68] Close shortcode --- content/en/functions/resources/GetRemote.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/functions/resources/GetRemote.md b/content/en/functions/resources/GetRemote.md index 4c729eced..3b294e5a1 100644 --- a/content/en/functions/resources/GetRemote.md +++ b/content/en/functions/resources/GetRemote.md @@ -61,7 +61,7 @@ The `resources.GetRemote` function takes an optional map of options. (`string`) The action to perform on the requested resource, typically one of `GET`, `POST`, or `HEAD`. ###### responseHeaders -{{< new-in 0.143.0 >}} +{{< new-in 0.143.0 />}} (`[]string`) The headers to extract from the server's response, accessible through the resource's [`Data.Headers`] method. Header name matching is case-insensitive. From 2ea56bef3e9f382f83ba7caf422f109365a5f1da Mon Sep 17 00:00:00 2001 From: Oleksandr Redko Date: Sun, 2 Feb 2025 16:20:17 +0200 Subject: [PATCH 31/68] Fix typos found with codespell Co-authored-by: Joe Mooring --- .codespellrc | 13 +++++++++++++ .github/workflows/spellcheck.yml | 5 +++++ content/en/content-management/shortcodes.md | 2 +- content/en/functions/js/Babel.md | 2 +- content/en/functions/resources/PostProcess.md | 2 +- content/en/shortcodes/vimeo.md | 2 +- content/en/templates/embedded.md | 2 +- layouts/_default/_markup/render-link.html | 2 +- 8 files changed, 24 insertions(+), 6 deletions(-) create mode 100644 .codespellrc diff --git a/.codespellrc b/.codespellrc new file mode 100644 index 000000000..00b34a498 --- /dev/null +++ b/.codespellrc @@ -0,0 +1,13 @@ +# Config file for codespell. +# https://github.com/codespell-project/codespell#using-a-config-file + +[codespell] + +# Comma separated list of dirs to be skipped. +skip = _vendor,.cspell.json + +# Comma separated list of words to be ignored. Words must be lowercased. +ignore-words-list = abl,edn,te,ue,trys,januar,womens,crossreferences + +# Check file names as well. +check-filenames = true diff --git a/.github/workflows/spellcheck.yml b/.github/workflows/spellcheck.yml index 86f8f53a5..e01ab1764 100644 --- a/.github/workflows/spellcheck.yml +++ b/.github/workflows/spellcheck.yml @@ -20,3 +20,8 @@ jobs: incremental_files_only: true inline: warning strict: false + - uses: codespell-project/actions-codespell@v2 + with: + check_filenames: true + check_hidden: true + # by default, codespell uses configuration from the .codespellrc diff --git a/content/en/content-management/shortcodes.md b/content/en/content-management/shortcodes.md index 6e49fc86f..1c5e2c99c 100644 --- a/content/en/content-management/shortcodes.md +++ b/content/en/content-management/shortcodes.md @@ -236,6 +236,6 @@ Shortcodes (excluding [inline](#inline) shortcodes) can be nested, creating pare {{}} {{< /code >}} -The [shortcode templates][nesting] section provides a detailed explantion and examples. +The [shortcode templates][nesting] section provides a detailed explanation and examples. [nesting]: /templates/shortcode/#nesting diff --git a/content/en/functions/js/Babel.md b/content/en/functions/js/Babel.md index fddc5e296..08bce47e5 100644 --- a/content/en/functions/js/Babel.md +++ b/content/en/functions/js/Babel.md @@ -103,4 +103,4 @@ module.exports = { ###### verbose -(`bool`) Whether to enable verbose logging. Default is `fasle` +(`bool`) Whether to enable verbose logging. Default is `false` diff --git a/content/en/functions/resources/PostProcess.md b/content/en/functions/resources/PostProcess.md index 5987749ca..b157d5fd9 100644 --- a/content/en/functions/resources/PostProcess.md +++ b/content/en/functions/resources/PostProcess.md @@ -13,7 +13,7 @@ action: toc: true --- -The `resources.PostProces`s function delays resource transformation steps until the build is complete, primarily for tasks like removing unused CSS rules. +The `resources.PostProcess` function delays resource transformation steps until the build is complete, primarily for tasks like removing unused CSS rules. ## Example diff --git a/content/en/shortcodes/vimeo.md b/content/en/shortcodes/vimeo.md index b82ad86d4..5ecdf5d02 100755 --- a/content/en/shortcodes/vimeo.md +++ b/content/en/shortcodes/vimeo.md @@ -46,7 +46,7 @@ id title : (`string`) The `title` attribute of the `iframe` element. -If you proivde a `class` or `title` you must use a named parameter for the `id`. +If you provide a `class` or `title` you must use a named parameter for the `id`. ```text {{}} diff --git a/content/en/templates/embedded.md b/content/en/templates/embedded.md index c96d2a436..2e571256e 100644 --- a/content/en/templates/embedded.md +++ b/content/en/templates/embedded.md @@ -106,7 +106,7 @@ disable : (`bool`) Whether to disable the template. Default is `false`. respectDoNotTrack -: (`bool`) Whether to respect the brower's "do not track" setting. Default is `false`. +: (`bool`) Whether to respect the browser's "do not track" setting. Default is `false`. ## Open Graph diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index a0ee6b190..ea5ef1891 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -282,7 +282,7 @@ either of these shortcodes in conjunction with this render hook. {{- errorf "The %q render hook was unable to find %s: see %s" $renderHookName $glossaryPath $contentPath }} {{- end }} - {{- /* Theres a better way to handle this, but it works for now. */}} + {{- /* There's a better way to handle this, but it works for now. */}} {{- $cheating := dict "chaining" "chain" "localize" "localization" From 2d94905befda80db42b9b68973ff73b25de62ff2 Mon Sep 17 00:00:00 2001 From: Carlos Abade <11891767+carloseabade@users.noreply.github.com> Date: Sun, 2 Feb 2025 13:53:29 -0300 Subject: [PATCH 32/68] Improve branch bundle admonition --- content/en/content-management/page-bundles.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/content-management/page-bundles.md b/content/en/content-management/page-bundles.md index b57e0a45d..3638f2fb5 100644 --- a/content/en/content-management/page-bundles.md +++ b/content/en/content-management/page-bundles.md @@ -143,7 +143,7 @@ branch-bundle-2 : This branch bundle contains an index file and a leaf bundle. {{% note %}} -Create branch bundles at any depth within the `content` directory, but a leaf bundle may not contain another bundle. Leaf bundles do not have descendants. +Create branch bundles at any depth within the `content` directory. Branch bundles may have descendants. {{% /note %}} ## Headless bundles From 6f14084c1385a6af1d34f0ef44de5c64cde19845 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 2 Feb 2025 11:15:51 -0800 Subject: [PATCH 33/68] Move glossary to quick reference section --- content/en/contribute/documentation.md | 16 ++++--------- content/en/getting-started/glossary/cache.md | 5 ---- .../en/getting-started/glossary/element.md | 5 ---- content/en/getting-started/glossary/field.md | 5 ---- .../glossary/global-resource.md | 10 -------- .../glossary/_index.md | 11 +++++---- .../glossary/action.md | 0 .../glossary/archetype.md | 0 .../glossary/argument.md | 0 .../glossary/array.md | 0 .../glossary/asset-pipeline.md | 5 ++++ .../glossary/bool.md | 0 .../glossary/boolean.md | 0 .../glossary/branch-bundle.md | 0 .../glossary/build.md | 0 .../glossary/bundle.md | 0 content/en/quick-reference/glossary/cache.md | 5 ++++ .../glossary/chain.md | 0 .../glossary/cjk.md | 0 .../glossary/cli.md | 0 .../glossary/collection.md | 0 .../glossary/content-adapter.md | 0 .../glossary/content-format.md | 0 .../glossary/content-type.md | 0 .../glossary/content-view.md | 0 .../glossary/context.md | 0 .../glossary/default-sort-order.md | 0 .../en/quick-reference/glossary/duration.md | 5 ++++ .../en/quick-reference/glossary/element.md | 5 ++++ .../glossary/embedded-template.md | 0 .../glossary/environment.md | 0 content/en/quick-reference/glossary/field.md | 5 ++++ .../glossary/flag.md | 0 .../glossary/float.md | 0 .../glossary/floating-point.md | 0 .../glossary/fragment.md | 0 .../glossary/front-matter.md | 0 .../glossary/function.md | 0 content/en/quick-reference/glossary/glob.md | 6 +++++ .../glossary/global-resource.md | 10 ++++++++ .../glossary/headless-bundle.md | 0 .../glossary/identifier.md | 0 .../glossary/int.md | 0 .../glossary/integer.md | 0 .../glossary/internationalization.md | 0 .../glossary/interpreted-string-literal.md | 0 .../glossary/interval.md | 0 .../glossary/kind.md | 0 .../glossary/layout.md | 0 .../glossary/leaf-bundle.md | 0 .../glossary/lexer.md | 0 .../glossary/list-page.md | 0 .../glossary/list-template.md | 0 .../glossary/localization.md | 0 .../glossary/logical-path.md | 0 .../glossary/map.md | 0 .../glossary/markdown-attribute.md | 3 ++- .../glossary/marshal.md | 0 .../glossary/method.md | 0 .../glossary/module.md | 0 .../glossary/node.md | 0 .../glossary/noop.md | 0 .../glossary/object.md | 0 .../glossary/ordered-taxonomy.md | 0 .../glossary/output-format.md | 0 .../glossary/page-bundle.md | 0 .../glossary/page-collection.md | 0 .../glossary/page-kind.md | 0 .../glossary/page-resource.md | 0 .../glossary/pager.md | 0 .../glossary/paginate.md | 0 .../glossary/pagination.md | 0 .../glossary/paginator.md | 0 .../glossary/parameter.md | 0 .../glossary/partial.md | 0 .../glossary/permalink.md | 0 .../glossary/pipe.md | 0 .../glossary/pipeline.md | 0 .../en/quick-reference/glossary/pretty-url.md | 5 ++++ .../glossary/publish.md | 0 .../glossary/raw-string-literal.md | 0 .../glossary/regular-page.md | 0 .../glossary/relative-permalink.md | 0 .../glossary/remote-resource.md | 0 .../glossary/render-hook.md | 0 .../glossary/resource-type.md | 0 .../glossary/resource.md | 0 .../glossary/scalar.md | 0 .../glossary/scope.md | 0 .../glossary/scratch-pad.md | 0 .../glossary/section-page.md | 0 .../glossary/section.md | 0 .../en/quick-reference/glossary/segment.md | 5 ++++ .../glossary/shortcode.md | 0 .../glossary/slice.md | 0 .../glossary/string.md | 0 .../glossary/taxonomic-weight.md | 0 .../glossary/taxonomy-object.md | 0 .../glossary/taxonomy-page.md | 0 .../glossary/taxonomy.md | 0 .../glossary/template-action.md | 0 .../glossary/template.md | 0 .../glossary/term-page.md | 0 .../glossary/term.md | 0 .../glossary/theme.md | 0 .../glossary/token.md | 0 .../glossary/type.md | 0 .../en/quick-reference/glossary/ugly-url.md | 5 ++++ .../glossary/unmarshal.md | 0 .../glossary/variable.md | 0 .../glossary/walk.md | 0 .../glossary/weight.md | 0 .../glossary/weighted-page.md | 0 .../glossary/zero-time.md | 0 content/en/quick-reference/methods.md | 4 ++-- .../en/quick-reference/page-collections.md | 4 ++-- layouts/_default/_markup/render-link.html | 2 +- layouts/shortcodes/glossary-term.html | 6 ++--- layouts/shortcodes/glossary.html | 24 ++++++++++++------- 119 files changed, 93 insertions(+), 58 deletions(-) delete mode 100644 content/en/getting-started/glossary/cache.md delete mode 100644 content/en/getting-started/glossary/element.md delete mode 100644 content/en/getting-started/glossary/field.md delete mode 100644 content/en/getting-started/glossary/global-resource.md rename content/en/{getting-started => quick-reference}/glossary/_index.md (62%) rename content/en/{getting-started => quick-reference}/glossary/action.md (100%) rename content/en/{getting-started => quick-reference}/glossary/archetype.md (100%) rename content/en/{getting-started => quick-reference}/glossary/argument.md (100%) rename content/en/{getting-started => quick-reference}/glossary/array.md (100%) create mode 100644 content/en/quick-reference/glossary/asset-pipeline.md rename content/en/{getting-started => quick-reference}/glossary/bool.md (100%) rename content/en/{getting-started => quick-reference}/glossary/boolean.md (100%) rename content/en/{getting-started => quick-reference}/glossary/branch-bundle.md (100%) rename content/en/{getting-started => quick-reference}/glossary/build.md (100%) rename content/en/{getting-started => quick-reference}/glossary/bundle.md (100%) create mode 100644 content/en/quick-reference/glossary/cache.md rename content/en/{getting-started => quick-reference}/glossary/chain.md (100%) rename content/en/{getting-started => quick-reference}/glossary/cjk.md (100%) rename content/en/{getting-started => quick-reference}/glossary/cli.md (100%) rename content/en/{getting-started => quick-reference}/glossary/collection.md (100%) rename content/en/{getting-started => quick-reference}/glossary/content-adapter.md (100%) rename content/en/{getting-started => quick-reference}/glossary/content-format.md (100%) rename content/en/{getting-started => quick-reference}/glossary/content-type.md (100%) rename content/en/{getting-started => quick-reference}/glossary/content-view.md (100%) rename content/en/{getting-started => quick-reference}/glossary/context.md (100%) rename content/en/{getting-started => quick-reference}/glossary/default-sort-order.md (100%) create mode 100644 content/en/quick-reference/glossary/duration.md create mode 100644 content/en/quick-reference/glossary/element.md rename content/en/{getting-started => quick-reference}/glossary/embedded-template.md (100%) rename content/en/{getting-started => quick-reference}/glossary/environment.md (100%) create mode 100644 content/en/quick-reference/glossary/field.md rename content/en/{getting-started => quick-reference}/glossary/flag.md (100%) rename content/en/{getting-started => quick-reference}/glossary/float.md (100%) rename content/en/{getting-started => quick-reference}/glossary/floating-point.md (100%) rename content/en/{getting-started => quick-reference}/glossary/fragment.md (100%) rename content/en/{getting-started => quick-reference}/glossary/front-matter.md (100%) rename content/en/{getting-started => quick-reference}/glossary/function.md (100%) create mode 100644 content/en/quick-reference/glossary/glob.md create mode 100644 content/en/quick-reference/glossary/global-resource.md rename content/en/{getting-started => quick-reference}/glossary/headless-bundle.md (100%) rename content/en/{getting-started => quick-reference}/glossary/identifier.md (100%) rename content/en/{getting-started => quick-reference}/glossary/int.md (100%) rename content/en/{getting-started => quick-reference}/glossary/integer.md (100%) rename content/en/{getting-started => quick-reference}/glossary/internationalization.md (100%) rename content/en/{getting-started => quick-reference}/glossary/interpreted-string-literal.md (100%) rename content/en/{getting-started => quick-reference}/glossary/interval.md (100%) rename content/en/{getting-started => quick-reference}/glossary/kind.md (100%) rename content/en/{getting-started => quick-reference}/glossary/layout.md (100%) rename content/en/{getting-started => quick-reference}/glossary/leaf-bundle.md (100%) rename content/en/{getting-started => quick-reference}/glossary/lexer.md (100%) rename content/en/{getting-started => quick-reference}/glossary/list-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/list-template.md (100%) rename content/en/{getting-started => quick-reference}/glossary/localization.md (100%) rename content/en/{getting-started => quick-reference}/glossary/logical-path.md (100%) rename content/en/{getting-started => quick-reference}/glossary/map.md (100%) rename content/en/{getting-started => quick-reference}/glossary/markdown-attribute.md (75%) rename content/en/{getting-started => quick-reference}/glossary/marshal.md (100%) rename content/en/{getting-started => quick-reference}/glossary/method.md (100%) rename content/en/{getting-started => quick-reference}/glossary/module.md (100%) rename content/en/{getting-started => quick-reference}/glossary/node.md (100%) rename content/en/{getting-started => quick-reference}/glossary/noop.md (100%) rename content/en/{getting-started => quick-reference}/glossary/object.md (100%) rename content/en/{getting-started => quick-reference}/glossary/ordered-taxonomy.md (100%) rename content/en/{getting-started => quick-reference}/glossary/output-format.md (100%) rename content/en/{getting-started => quick-reference}/glossary/page-bundle.md (100%) rename content/en/{getting-started => quick-reference}/glossary/page-collection.md (100%) rename content/en/{getting-started => quick-reference}/glossary/page-kind.md (100%) rename content/en/{getting-started => quick-reference}/glossary/page-resource.md (100%) rename content/en/{getting-started => quick-reference}/glossary/pager.md (100%) rename content/en/{getting-started => quick-reference}/glossary/paginate.md (100%) rename content/en/{getting-started => quick-reference}/glossary/pagination.md (100%) rename content/en/{getting-started => quick-reference}/glossary/paginator.md (100%) rename content/en/{getting-started => quick-reference}/glossary/parameter.md (100%) rename content/en/{getting-started => quick-reference}/glossary/partial.md (100%) rename content/en/{getting-started => quick-reference}/glossary/permalink.md (100%) rename content/en/{getting-started => quick-reference}/glossary/pipe.md (100%) rename content/en/{getting-started => quick-reference}/glossary/pipeline.md (100%) create mode 100644 content/en/quick-reference/glossary/pretty-url.md rename content/en/{getting-started => quick-reference}/glossary/publish.md (100%) rename content/en/{getting-started => quick-reference}/glossary/raw-string-literal.md (100%) rename content/en/{getting-started => quick-reference}/glossary/regular-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/relative-permalink.md (100%) rename content/en/{getting-started => quick-reference}/glossary/remote-resource.md (100%) rename content/en/{getting-started => quick-reference}/glossary/render-hook.md (100%) rename content/en/{getting-started => quick-reference}/glossary/resource-type.md (100%) rename content/en/{getting-started => quick-reference}/glossary/resource.md (100%) rename content/en/{getting-started => quick-reference}/glossary/scalar.md (100%) rename content/en/{getting-started => quick-reference}/glossary/scope.md (100%) rename content/en/{getting-started => quick-reference}/glossary/scratch-pad.md (100%) rename content/en/{getting-started => quick-reference}/glossary/section-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/section.md (100%) create mode 100644 content/en/quick-reference/glossary/segment.md rename content/en/{getting-started => quick-reference}/glossary/shortcode.md (100%) rename content/en/{getting-started => quick-reference}/glossary/slice.md (100%) rename content/en/{getting-started => quick-reference}/glossary/string.md (100%) rename content/en/{getting-started => quick-reference}/glossary/taxonomic-weight.md (100%) rename content/en/{getting-started => quick-reference}/glossary/taxonomy-object.md (100%) rename content/en/{getting-started => quick-reference}/glossary/taxonomy-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/taxonomy.md (100%) rename content/en/{getting-started => quick-reference}/glossary/template-action.md (100%) rename content/en/{getting-started => quick-reference}/glossary/template.md (100%) rename content/en/{getting-started => quick-reference}/glossary/term-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/term.md (100%) rename content/en/{getting-started => quick-reference}/glossary/theme.md (100%) rename content/en/{getting-started => quick-reference}/glossary/token.md (100%) rename content/en/{getting-started => quick-reference}/glossary/type.md (100%) create mode 100644 content/en/quick-reference/glossary/ugly-url.md rename content/en/{getting-started => quick-reference}/glossary/unmarshal.md (100%) rename content/en/{getting-started => quick-reference}/glossary/variable.md (100%) rename content/en/{getting-started => quick-reference}/glossary/walk.md (100%) rename content/en/{getting-started => quick-reference}/glossary/weight.md (100%) rename content/en/{getting-started => quick-reference}/glossary/weighted-page.md (100%) rename content/en/{getting-started => quick-reference}/glossary/zero-time.md (100%) diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index 16d06dee1..9316378d2 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -41,7 +41,7 @@ Please follow these guidelines: - Remove consecutive blank lines (maximum of two) - Remove trailing spaces -### Glossary of terms +### Glossary Glossary terms are maintained on individual pages. While not directly accessible to site visitors, these pages act as a central repository for term definitions. @@ -53,7 +53,7 @@ To link to a term definition on the glossary page, use this custom link syntax: [term](g) ``` -Lookups are case-insensitive, ignore formatting, and support both singular and plural forms. For example, all of these variations will link to the same glossary entry: +Lookups are case-insensitive, ignore formatting, and support both singular and plural forms. For example, all of these variations will link to the same glossary term: ```text [global resource](g) @@ -68,12 +68,9 @@ To insert a term definition, use the [`glossary-term`] shortcode: {{%/* glossary-term "global resource" */%}} ``` -[glossary of terms]: /getting-started/glossary/ -[`glossary-term`]: #glossary-term - ### Terminology -Please link to the [glossary of terms] when necessary, and use the terms consistently throughout the documentation. Of special note: +Please link to the glossary (see above) when necessary, and use the terms consistently throughout the documentation. Of special note: - The term "front matter" is two words unless you are referring to the configuration key - The term "home page" is two words @@ -85,8 +82,6 @@ Please link to the [glossary of terms] when necessary, and use the terms consist - Capitalize the word "Markdown" - Hyphenate the term "open-source" when used an adjective. -Use the [glossary link] (`gl`) shortcode to insert a link to the glossary entry for the given term, and use the [glossary term] (`gt`) shortcode to insert the definition of the given term. - ### Page titles and headings Please follow these guidelines for page titles and headings: @@ -124,8 +119,6 @@ Yes → Hugo is fast. Level 6 headings are styled as `dt` elements. This was implemented to support a [glossary] with linkable terms. -[glossary]: /getting-started/glossary/ - ### Function and method descriptions When adding a page to the [functions] or [methods] section, begin the description with the word "Returns". With functions and methods that return a boolean value, begin the description with the phrase "Reports whether". @@ -472,13 +465,14 @@ Step 9 [ATX]: https://spec.commonmark.org/0.30/#atx-headings [Microsoft Writing Style Guide]: https://learn.microsoft.com/en-us/style-guide/welcome/ +[`glossary-term`]: #glossary-term [basic english]: https://simple.wikipedia.org/wiki/Basic_English [code examples]: #code-examples [code shortcode]: #code [code-toggle shortcode]: #code-toggle [documentation repository]: https://github.com/gohugoio/hugoDocs/ [fenced code blocks]: https://spec.commonmark.org/0.30/#fenced-code-blocks -[glossary of terms]: /getting-started/glossary/ +[glossary]: /quick-reference/glossary/ [indented code blocks]: https://spec.commonmark.org/0.30/#indented-code-blocks [issues]: https://github.com/gohugoio/hugoDocs/issues [list items]: https://spec.commonmark.org/0.30/#list-items diff --git a/content/en/getting-started/glossary/cache.md b/content/en/getting-started/glossary/cache.md deleted file mode 100644 index 139ce9033..000000000 --- a/content/en/getting-started/glossary/cache.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: cache ---- - -A software component that stores data so that future requests for the same data are faster. diff --git a/content/en/getting-started/glossary/element.md b/content/en/getting-started/glossary/element.md deleted file mode 100644 index 5c33c55ad..000000000 --- a/content/en/getting-started/glossary/element.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: element ---- - -A member of a slice or array. diff --git a/content/en/getting-started/glossary/field.md b/content/en/getting-started/glossary/field.md deleted file mode 100644 index f49e65c79..000000000 --- a/content/en/getting-started/glossary/field.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: field ---- - -A predefined key-value pair in front matter such as `date` or `title`. See also [parameter](g). diff --git a/content/en/getting-started/glossary/global-resource.md b/content/en/getting-started/glossary/global-resource.md deleted file mode 100644 index e51e68363..000000000 --- a/content/en/getting-started/glossary/global-resource.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: global resource ---- - -A file within the `assets` directory, or within any directory [mounted](/hugo-modules/configuration/#module-configuration-mounts) to the `assets` directory. Capture one or more global resources using the [`resources.Get`], [`resources.GetMatch`], [`resources.Match`], or [`resources.ByType`] functions. - -[`resources.Get`]: /functions/resources/get/ -[`resources.GetMatch`]: /functions/resources/getmatch/ -[`resources.Match`]: /functions/resources/match/ -[`resources.ByType`]: /functions/resources/byType/ diff --git a/content/en/getting-started/glossary/_index.md b/content/en/quick-reference/glossary/_index.md similarity index 62% rename from content/en/getting-started/glossary/_index.md rename to content/en/quick-reference/glossary/_index.md index 001d80fe0..0ed74be8e 100644 --- a/content/en/getting-started/glossary/_index.md +++ b/content/en/quick-reference/glossary/_index.md @@ -1,13 +1,14 @@ --- -title: Glossary of terms +title: Glossary description: Terms commonly used throughout the documentation. -categories: [getting started] +categories: [quick-reference] keywords: [glossary] menu: docs: - parent: getting-started - weight: 80 -weight: 80 + parent: quick-reference + weight: 40 +aliases: [/getting-started/glossary/] +weight: 40 layout: single build: render: always diff --git a/content/en/getting-started/glossary/action.md b/content/en/quick-reference/glossary/action.md similarity index 100% rename from content/en/getting-started/glossary/action.md rename to content/en/quick-reference/glossary/action.md diff --git a/content/en/getting-started/glossary/archetype.md b/content/en/quick-reference/glossary/archetype.md similarity index 100% rename from content/en/getting-started/glossary/archetype.md rename to content/en/quick-reference/glossary/archetype.md diff --git a/content/en/getting-started/glossary/argument.md b/content/en/quick-reference/glossary/argument.md similarity index 100% rename from content/en/getting-started/glossary/argument.md rename to content/en/quick-reference/glossary/argument.md diff --git a/content/en/getting-started/glossary/array.md b/content/en/quick-reference/glossary/array.md similarity index 100% rename from content/en/getting-started/glossary/array.md rename to content/en/quick-reference/glossary/array.md diff --git a/content/en/quick-reference/glossary/asset-pipeline.md b/content/en/quick-reference/glossary/asset-pipeline.md new file mode 100644 index 000000000..5f3264a6e --- /dev/null +++ b/content/en/quick-reference/glossary/asset-pipeline.md @@ -0,0 +1,5 @@ +--- +title: asset pipeline +--- + +An _asset pipeline_ is a system that automates and optimizes the handling of static assets like images, stylesheets, and JavaScript files. diff --git a/content/en/getting-started/glossary/bool.md b/content/en/quick-reference/glossary/bool.md similarity index 100% rename from content/en/getting-started/glossary/bool.md rename to content/en/quick-reference/glossary/bool.md diff --git a/content/en/getting-started/glossary/boolean.md b/content/en/quick-reference/glossary/boolean.md similarity index 100% rename from content/en/getting-started/glossary/boolean.md rename to content/en/quick-reference/glossary/boolean.md diff --git a/content/en/getting-started/glossary/branch-bundle.md b/content/en/quick-reference/glossary/branch-bundle.md similarity index 100% rename from content/en/getting-started/glossary/branch-bundle.md rename to content/en/quick-reference/glossary/branch-bundle.md diff --git a/content/en/getting-started/glossary/build.md b/content/en/quick-reference/glossary/build.md similarity index 100% rename from content/en/getting-started/glossary/build.md rename to content/en/quick-reference/glossary/build.md diff --git a/content/en/getting-started/glossary/bundle.md b/content/en/quick-reference/glossary/bundle.md similarity index 100% rename from content/en/getting-started/glossary/bundle.md rename to content/en/quick-reference/glossary/bundle.md diff --git a/content/en/quick-reference/glossary/cache.md b/content/en/quick-reference/glossary/cache.md new file mode 100644 index 000000000..a86068e4a --- /dev/null +++ b/content/en/quick-reference/glossary/cache.md @@ -0,0 +1,5 @@ +--- +title: cache +--- + +A _cache_ is a software component that stores data so that future requests for the same data are faster. diff --git a/content/en/getting-started/glossary/chain.md b/content/en/quick-reference/glossary/chain.md similarity index 100% rename from content/en/getting-started/glossary/chain.md rename to content/en/quick-reference/glossary/chain.md diff --git a/content/en/getting-started/glossary/cjk.md b/content/en/quick-reference/glossary/cjk.md similarity index 100% rename from content/en/getting-started/glossary/cjk.md rename to content/en/quick-reference/glossary/cjk.md diff --git a/content/en/getting-started/glossary/cli.md b/content/en/quick-reference/glossary/cli.md similarity index 100% rename from content/en/getting-started/glossary/cli.md rename to content/en/quick-reference/glossary/cli.md diff --git a/content/en/getting-started/glossary/collection.md b/content/en/quick-reference/glossary/collection.md similarity index 100% rename from content/en/getting-started/glossary/collection.md rename to content/en/quick-reference/glossary/collection.md diff --git a/content/en/getting-started/glossary/content-adapter.md b/content/en/quick-reference/glossary/content-adapter.md similarity index 100% rename from content/en/getting-started/glossary/content-adapter.md rename to content/en/quick-reference/glossary/content-adapter.md diff --git a/content/en/getting-started/glossary/content-format.md b/content/en/quick-reference/glossary/content-format.md similarity index 100% rename from content/en/getting-started/glossary/content-format.md rename to content/en/quick-reference/glossary/content-format.md diff --git a/content/en/getting-started/glossary/content-type.md b/content/en/quick-reference/glossary/content-type.md similarity index 100% rename from content/en/getting-started/glossary/content-type.md rename to content/en/quick-reference/glossary/content-type.md diff --git a/content/en/getting-started/glossary/content-view.md b/content/en/quick-reference/glossary/content-view.md similarity index 100% rename from content/en/getting-started/glossary/content-view.md rename to content/en/quick-reference/glossary/content-view.md diff --git a/content/en/getting-started/glossary/context.md b/content/en/quick-reference/glossary/context.md similarity index 100% rename from content/en/getting-started/glossary/context.md rename to content/en/quick-reference/glossary/context.md diff --git a/content/en/getting-started/glossary/default-sort-order.md b/content/en/quick-reference/glossary/default-sort-order.md similarity index 100% rename from content/en/getting-started/glossary/default-sort-order.md rename to content/en/quick-reference/glossary/default-sort-order.md diff --git a/content/en/quick-reference/glossary/duration.md b/content/en/quick-reference/glossary/duration.md new file mode 100644 index 000000000..21fd3c832 --- /dev/null +++ b/content/en/quick-reference/glossary/duration.md @@ -0,0 +1,5 @@ +--- +title: duration +--- + +A _duration_ is a data type that represent a length of time, expressed using units such as seconds (represented by `s`), minutes (represented by `m`), and hours (represented by `h`). For example, `42s` means 42 seconds, `6m7s` means 6 minutes and 7 seconds, and `6h7m42s` means 6 hours, 7 minutes, and 42 seconds. diff --git a/content/en/quick-reference/glossary/element.md b/content/en/quick-reference/glossary/element.md new file mode 100644 index 000000000..39f5df656 --- /dev/null +++ b/content/en/quick-reference/glossary/element.md @@ -0,0 +1,5 @@ +--- +title: element +--- + +An _element_ is a member of a [_slice_](g) or [_array_](g). diff --git a/content/en/getting-started/glossary/embedded-template.md b/content/en/quick-reference/glossary/embedded-template.md similarity index 100% rename from content/en/getting-started/glossary/embedded-template.md rename to content/en/quick-reference/glossary/embedded-template.md diff --git a/content/en/getting-started/glossary/environment.md b/content/en/quick-reference/glossary/environment.md similarity index 100% rename from content/en/getting-started/glossary/environment.md rename to content/en/quick-reference/glossary/environment.md diff --git a/content/en/quick-reference/glossary/field.md b/content/en/quick-reference/glossary/field.md new file mode 100644 index 000000000..a32eb3a6b --- /dev/null +++ b/content/en/quick-reference/glossary/field.md @@ -0,0 +1,5 @@ +--- +title: field +--- + +A _field_ is a predefined key-value pair in front matter such as `date` or `title`. diff --git a/content/en/getting-started/glossary/flag.md b/content/en/quick-reference/glossary/flag.md similarity index 100% rename from content/en/getting-started/glossary/flag.md rename to content/en/quick-reference/glossary/flag.md diff --git a/content/en/getting-started/glossary/float.md b/content/en/quick-reference/glossary/float.md similarity index 100% rename from content/en/getting-started/glossary/float.md rename to content/en/quick-reference/glossary/float.md diff --git a/content/en/getting-started/glossary/floating-point.md b/content/en/quick-reference/glossary/floating-point.md similarity index 100% rename from content/en/getting-started/glossary/floating-point.md rename to content/en/quick-reference/glossary/floating-point.md diff --git a/content/en/getting-started/glossary/fragment.md b/content/en/quick-reference/glossary/fragment.md similarity index 100% rename from content/en/getting-started/glossary/fragment.md rename to content/en/quick-reference/glossary/fragment.md diff --git a/content/en/getting-started/glossary/front-matter.md b/content/en/quick-reference/glossary/front-matter.md similarity index 100% rename from content/en/getting-started/glossary/front-matter.md rename to content/en/quick-reference/glossary/front-matter.md diff --git a/content/en/getting-started/glossary/function.md b/content/en/quick-reference/glossary/function.md similarity index 100% rename from content/en/getting-started/glossary/function.md rename to content/en/quick-reference/glossary/function.md diff --git a/content/en/quick-reference/glossary/glob.md b/content/en/quick-reference/glossary/glob.md new file mode 100644 index 000000000..5243d1ef9 --- /dev/null +++ b/content/en/quick-reference/glossary/glob.md @@ -0,0 +1,6 @@ +--- +title: glob +reference: https://github.com/gobwas/glob?tab=readme-ov-file#example +--- + +A _glob_ is a pattern used to match filenames and paths. It's a shorthand for specifying a set of files, making it easier to work with multiple files at once. diff --git a/content/en/quick-reference/glossary/global-resource.md b/content/en/quick-reference/glossary/global-resource.md new file mode 100644 index 000000000..1ca42a6ec --- /dev/null +++ b/content/en/quick-reference/glossary/global-resource.md @@ -0,0 +1,10 @@ +--- +title: global resource +--- + +A file within the `assets` directory, or within any directory mounted to the `assets` directory. Capture one or more global resources using the [`resources.Get`], [`resources.GetMatch`], [`resources.Match`], or [`resources.ByType`] functions. + +[`resources.Get`]: /functions/resources/get/ +[`resources.GetMatch`]: /functions/resources/getmatch/ +[`resources.Match`]: /functions/resources/match/ +[`resources.ByType`]: /functions/resources/byType/ diff --git a/content/en/getting-started/glossary/headless-bundle.md b/content/en/quick-reference/glossary/headless-bundle.md similarity index 100% rename from content/en/getting-started/glossary/headless-bundle.md rename to content/en/quick-reference/glossary/headless-bundle.md diff --git a/content/en/getting-started/glossary/identifier.md b/content/en/quick-reference/glossary/identifier.md similarity index 100% rename from content/en/getting-started/glossary/identifier.md rename to content/en/quick-reference/glossary/identifier.md diff --git a/content/en/getting-started/glossary/int.md b/content/en/quick-reference/glossary/int.md similarity index 100% rename from content/en/getting-started/glossary/int.md rename to content/en/quick-reference/glossary/int.md diff --git a/content/en/getting-started/glossary/integer.md b/content/en/quick-reference/glossary/integer.md similarity index 100% rename from content/en/getting-started/glossary/integer.md rename to content/en/quick-reference/glossary/integer.md diff --git a/content/en/getting-started/glossary/internationalization.md b/content/en/quick-reference/glossary/internationalization.md similarity index 100% rename from content/en/getting-started/glossary/internationalization.md rename to content/en/quick-reference/glossary/internationalization.md diff --git a/content/en/getting-started/glossary/interpreted-string-literal.md b/content/en/quick-reference/glossary/interpreted-string-literal.md similarity index 100% rename from content/en/getting-started/glossary/interpreted-string-literal.md rename to content/en/quick-reference/glossary/interpreted-string-literal.md diff --git a/content/en/getting-started/glossary/interval.md b/content/en/quick-reference/glossary/interval.md similarity index 100% rename from content/en/getting-started/glossary/interval.md rename to content/en/quick-reference/glossary/interval.md diff --git a/content/en/getting-started/glossary/kind.md b/content/en/quick-reference/glossary/kind.md similarity index 100% rename from content/en/getting-started/glossary/kind.md rename to content/en/quick-reference/glossary/kind.md diff --git a/content/en/getting-started/glossary/layout.md b/content/en/quick-reference/glossary/layout.md similarity index 100% rename from content/en/getting-started/glossary/layout.md rename to content/en/quick-reference/glossary/layout.md diff --git a/content/en/getting-started/glossary/leaf-bundle.md b/content/en/quick-reference/glossary/leaf-bundle.md similarity index 100% rename from content/en/getting-started/glossary/leaf-bundle.md rename to content/en/quick-reference/glossary/leaf-bundle.md diff --git a/content/en/getting-started/glossary/lexer.md b/content/en/quick-reference/glossary/lexer.md similarity index 100% rename from content/en/getting-started/glossary/lexer.md rename to content/en/quick-reference/glossary/lexer.md diff --git a/content/en/getting-started/glossary/list-page.md b/content/en/quick-reference/glossary/list-page.md similarity index 100% rename from content/en/getting-started/glossary/list-page.md rename to content/en/quick-reference/glossary/list-page.md diff --git a/content/en/getting-started/glossary/list-template.md b/content/en/quick-reference/glossary/list-template.md similarity index 100% rename from content/en/getting-started/glossary/list-template.md rename to content/en/quick-reference/glossary/list-template.md diff --git a/content/en/getting-started/glossary/localization.md b/content/en/quick-reference/glossary/localization.md similarity index 100% rename from content/en/getting-started/glossary/localization.md rename to content/en/quick-reference/glossary/localization.md diff --git a/content/en/getting-started/glossary/logical-path.md b/content/en/quick-reference/glossary/logical-path.md similarity index 100% rename from content/en/getting-started/glossary/logical-path.md rename to content/en/quick-reference/glossary/logical-path.md diff --git a/content/en/getting-started/glossary/map.md b/content/en/quick-reference/glossary/map.md similarity index 100% rename from content/en/getting-started/glossary/map.md rename to content/en/quick-reference/glossary/map.md diff --git a/content/en/getting-started/glossary/markdown-attribute.md b/content/en/quick-reference/glossary/markdown-attribute.md similarity index 75% rename from content/en/getting-started/glossary/markdown-attribute.md rename to content/en/quick-reference/glossary/markdown-attribute.md index ab9a984f5..2e355999e 100644 --- a/content/en/getting-started/glossary/markdown-attribute.md +++ b/content/en/quick-reference/glossary/markdown-attribute.md @@ -1,5 +1,6 @@ --- title: Markdown attribute +reference: /content-management/markdown-attributes/ --- -A list of attributes, containing one or more key-value pairs, separated by spaces or commas, and wrapped by braces. Apply Markdown attributes to images and block-level elements including blockquotes, fenced code blocks, headings, horizontal rules, lists, paragraphs, and tables. See [details](/getting-started/configuration-markup/#goldmark). +A list of attributes, containing one or more key-value pairs, separated by spaces or commas, and wrapped by braces. Apply Markdown attributes to images and block-level elements including blockquotes, fenced code blocks, headings, horizontal rules, lists, paragraphs, and tables. diff --git a/content/en/getting-started/glossary/marshal.md b/content/en/quick-reference/glossary/marshal.md similarity index 100% rename from content/en/getting-started/glossary/marshal.md rename to content/en/quick-reference/glossary/marshal.md diff --git a/content/en/getting-started/glossary/method.md b/content/en/quick-reference/glossary/method.md similarity index 100% rename from content/en/getting-started/glossary/method.md rename to content/en/quick-reference/glossary/method.md diff --git a/content/en/getting-started/glossary/module.md b/content/en/quick-reference/glossary/module.md similarity index 100% rename from content/en/getting-started/glossary/module.md rename to content/en/quick-reference/glossary/module.md diff --git a/content/en/getting-started/glossary/node.md b/content/en/quick-reference/glossary/node.md similarity index 100% rename from content/en/getting-started/glossary/node.md rename to content/en/quick-reference/glossary/node.md diff --git a/content/en/getting-started/glossary/noop.md b/content/en/quick-reference/glossary/noop.md similarity index 100% rename from content/en/getting-started/glossary/noop.md rename to content/en/quick-reference/glossary/noop.md diff --git a/content/en/getting-started/glossary/object.md b/content/en/quick-reference/glossary/object.md similarity index 100% rename from content/en/getting-started/glossary/object.md rename to content/en/quick-reference/glossary/object.md diff --git a/content/en/getting-started/glossary/ordered-taxonomy.md b/content/en/quick-reference/glossary/ordered-taxonomy.md similarity index 100% rename from content/en/getting-started/glossary/ordered-taxonomy.md rename to content/en/quick-reference/glossary/ordered-taxonomy.md diff --git a/content/en/getting-started/glossary/output-format.md b/content/en/quick-reference/glossary/output-format.md similarity index 100% rename from content/en/getting-started/glossary/output-format.md rename to content/en/quick-reference/glossary/output-format.md diff --git a/content/en/getting-started/glossary/page-bundle.md b/content/en/quick-reference/glossary/page-bundle.md similarity index 100% rename from content/en/getting-started/glossary/page-bundle.md rename to content/en/quick-reference/glossary/page-bundle.md diff --git a/content/en/getting-started/glossary/page-collection.md b/content/en/quick-reference/glossary/page-collection.md similarity index 100% rename from content/en/getting-started/glossary/page-collection.md rename to content/en/quick-reference/glossary/page-collection.md diff --git a/content/en/getting-started/glossary/page-kind.md b/content/en/quick-reference/glossary/page-kind.md similarity index 100% rename from content/en/getting-started/glossary/page-kind.md rename to content/en/quick-reference/glossary/page-kind.md diff --git a/content/en/getting-started/glossary/page-resource.md b/content/en/quick-reference/glossary/page-resource.md similarity index 100% rename from content/en/getting-started/glossary/page-resource.md rename to content/en/quick-reference/glossary/page-resource.md diff --git a/content/en/getting-started/glossary/pager.md b/content/en/quick-reference/glossary/pager.md similarity index 100% rename from content/en/getting-started/glossary/pager.md rename to content/en/quick-reference/glossary/pager.md diff --git a/content/en/getting-started/glossary/paginate.md b/content/en/quick-reference/glossary/paginate.md similarity index 100% rename from content/en/getting-started/glossary/paginate.md rename to content/en/quick-reference/glossary/paginate.md diff --git a/content/en/getting-started/glossary/pagination.md b/content/en/quick-reference/glossary/pagination.md similarity index 100% rename from content/en/getting-started/glossary/pagination.md rename to content/en/quick-reference/glossary/pagination.md diff --git a/content/en/getting-started/glossary/paginator.md b/content/en/quick-reference/glossary/paginator.md similarity index 100% rename from content/en/getting-started/glossary/paginator.md rename to content/en/quick-reference/glossary/paginator.md diff --git a/content/en/getting-started/glossary/parameter.md b/content/en/quick-reference/glossary/parameter.md similarity index 100% rename from content/en/getting-started/glossary/parameter.md rename to content/en/quick-reference/glossary/parameter.md diff --git a/content/en/getting-started/glossary/partial.md b/content/en/quick-reference/glossary/partial.md similarity index 100% rename from content/en/getting-started/glossary/partial.md rename to content/en/quick-reference/glossary/partial.md diff --git a/content/en/getting-started/glossary/permalink.md b/content/en/quick-reference/glossary/permalink.md similarity index 100% rename from content/en/getting-started/glossary/permalink.md rename to content/en/quick-reference/glossary/permalink.md diff --git a/content/en/getting-started/glossary/pipe.md b/content/en/quick-reference/glossary/pipe.md similarity index 100% rename from content/en/getting-started/glossary/pipe.md rename to content/en/quick-reference/glossary/pipe.md diff --git a/content/en/getting-started/glossary/pipeline.md b/content/en/quick-reference/glossary/pipeline.md similarity index 100% rename from content/en/getting-started/glossary/pipeline.md rename to content/en/quick-reference/glossary/pipeline.md diff --git a/content/en/quick-reference/glossary/pretty-url.md b/content/en/quick-reference/glossary/pretty-url.md new file mode 100644 index 000000000..b15ef9f0f --- /dev/null +++ b/content/en/quick-reference/glossary/pretty-url.md @@ -0,0 +1,5 @@ +--- +title: pretty URL +--- + +A _pretty URL_ is a URL that does not include a file extension. diff --git a/content/en/getting-started/glossary/publish.md b/content/en/quick-reference/glossary/publish.md similarity index 100% rename from content/en/getting-started/glossary/publish.md rename to content/en/quick-reference/glossary/publish.md diff --git a/content/en/getting-started/glossary/raw-string-literal.md b/content/en/quick-reference/glossary/raw-string-literal.md similarity index 100% rename from content/en/getting-started/glossary/raw-string-literal.md rename to content/en/quick-reference/glossary/raw-string-literal.md diff --git a/content/en/getting-started/glossary/regular-page.md b/content/en/quick-reference/glossary/regular-page.md similarity index 100% rename from content/en/getting-started/glossary/regular-page.md rename to content/en/quick-reference/glossary/regular-page.md diff --git a/content/en/getting-started/glossary/relative-permalink.md b/content/en/quick-reference/glossary/relative-permalink.md similarity index 100% rename from content/en/getting-started/glossary/relative-permalink.md rename to content/en/quick-reference/glossary/relative-permalink.md diff --git a/content/en/getting-started/glossary/remote-resource.md b/content/en/quick-reference/glossary/remote-resource.md similarity index 100% rename from content/en/getting-started/glossary/remote-resource.md rename to content/en/quick-reference/glossary/remote-resource.md diff --git a/content/en/getting-started/glossary/render-hook.md b/content/en/quick-reference/glossary/render-hook.md similarity index 100% rename from content/en/getting-started/glossary/render-hook.md rename to content/en/quick-reference/glossary/render-hook.md diff --git a/content/en/getting-started/glossary/resource-type.md b/content/en/quick-reference/glossary/resource-type.md similarity index 100% rename from content/en/getting-started/glossary/resource-type.md rename to content/en/quick-reference/glossary/resource-type.md diff --git a/content/en/getting-started/glossary/resource.md b/content/en/quick-reference/glossary/resource.md similarity index 100% rename from content/en/getting-started/glossary/resource.md rename to content/en/quick-reference/glossary/resource.md diff --git a/content/en/getting-started/glossary/scalar.md b/content/en/quick-reference/glossary/scalar.md similarity index 100% rename from content/en/getting-started/glossary/scalar.md rename to content/en/quick-reference/glossary/scalar.md diff --git a/content/en/getting-started/glossary/scope.md b/content/en/quick-reference/glossary/scope.md similarity index 100% rename from content/en/getting-started/glossary/scope.md rename to content/en/quick-reference/glossary/scope.md diff --git a/content/en/getting-started/glossary/scratch-pad.md b/content/en/quick-reference/glossary/scratch-pad.md similarity index 100% rename from content/en/getting-started/glossary/scratch-pad.md rename to content/en/quick-reference/glossary/scratch-pad.md diff --git a/content/en/getting-started/glossary/section-page.md b/content/en/quick-reference/glossary/section-page.md similarity index 100% rename from content/en/getting-started/glossary/section-page.md rename to content/en/quick-reference/glossary/section-page.md diff --git a/content/en/getting-started/glossary/section.md b/content/en/quick-reference/glossary/section.md similarity index 100% rename from content/en/getting-started/glossary/section.md rename to content/en/quick-reference/glossary/section.md diff --git a/content/en/quick-reference/glossary/segment.md b/content/en/quick-reference/glossary/segment.md new file mode 100644 index 000000000..745e196de --- /dev/null +++ b/content/en/quick-reference/glossary/segment.md @@ -0,0 +1,5 @@ +--- +title: segment +--- + +A _segment_ is a subset of a site, filtered by [_logical path_](g), language, [_page kind_](g), and [_output format_](g). diff --git a/content/en/getting-started/glossary/shortcode.md b/content/en/quick-reference/glossary/shortcode.md similarity index 100% rename from content/en/getting-started/glossary/shortcode.md rename to content/en/quick-reference/glossary/shortcode.md diff --git a/content/en/getting-started/glossary/slice.md b/content/en/quick-reference/glossary/slice.md similarity index 100% rename from content/en/getting-started/glossary/slice.md rename to content/en/quick-reference/glossary/slice.md diff --git a/content/en/getting-started/glossary/string.md b/content/en/quick-reference/glossary/string.md similarity index 100% rename from content/en/getting-started/glossary/string.md rename to content/en/quick-reference/glossary/string.md diff --git a/content/en/getting-started/glossary/taxonomic-weight.md b/content/en/quick-reference/glossary/taxonomic-weight.md similarity index 100% rename from content/en/getting-started/glossary/taxonomic-weight.md rename to content/en/quick-reference/glossary/taxonomic-weight.md diff --git a/content/en/getting-started/glossary/taxonomy-object.md b/content/en/quick-reference/glossary/taxonomy-object.md similarity index 100% rename from content/en/getting-started/glossary/taxonomy-object.md rename to content/en/quick-reference/glossary/taxonomy-object.md diff --git a/content/en/getting-started/glossary/taxonomy-page.md b/content/en/quick-reference/glossary/taxonomy-page.md similarity index 100% rename from content/en/getting-started/glossary/taxonomy-page.md rename to content/en/quick-reference/glossary/taxonomy-page.md diff --git a/content/en/getting-started/glossary/taxonomy.md b/content/en/quick-reference/glossary/taxonomy.md similarity index 100% rename from content/en/getting-started/glossary/taxonomy.md rename to content/en/quick-reference/glossary/taxonomy.md diff --git a/content/en/getting-started/glossary/template-action.md b/content/en/quick-reference/glossary/template-action.md similarity index 100% rename from content/en/getting-started/glossary/template-action.md rename to content/en/quick-reference/glossary/template-action.md diff --git a/content/en/getting-started/glossary/template.md b/content/en/quick-reference/glossary/template.md similarity index 100% rename from content/en/getting-started/glossary/template.md rename to content/en/quick-reference/glossary/template.md diff --git a/content/en/getting-started/glossary/term-page.md b/content/en/quick-reference/glossary/term-page.md similarity index 100% rename from content/en/getting-started/glossary/term-page.md rename to content/en/quick-reference/glossary/term-page.md diff --git a/content/en/getting-started/glossary/term.md b/content/en/quick-reference/glossary/term.md similarity index 100% rename from content/en/getting-started/glossary/term.md rename to content/en/quick-reference/glossary/term.md diff --git a/content/en/getting-started/glossary/theme.md b/content/en/quick-reference/glossary/theme.md similarity index 100% rename from content/en/getting-started/glossary/theme.md rename to content/en/quick-reference/glossary/theme.md diff --git a/content/en/getting-started/glossary/token.md b/content/en/quick-reference/glossary/token.md similarity index 100% rename from content/en/getting-started/glossary/token.md rename to content/en/quick-reference/glossary/token.md diff --git a/content/en/getting-started/glossary/type.md b/content/en/quick-reference/glossary/type.md similarity index 100% rename from content/en/getting-started/glossary/type.md rename to content/en/quick-reference/glossary/type.md diff --git a/content/en/quick-reference/glossary/ugly-url.md b/content/en/quick-reference/glossary/ugly-url.md new file mode 100644 index 000000000..4083f9378 --- /dev/null +++ b/content/en/quick-reference/glossary/ugly-url.md @@ -0,0 +1,5 @@ +--- +title: ugly URL +--- + +An _ugly URL_ is a URL that includes a file extension. diff --git a/content/en/getting-started/glossary/unmarshal.md b/content/en/quick-reference/glossary/unmarshal.md similarity index 100% rename from content/en/getting-started/glossary/unmarshal.md rename to content/en/quick-reference/glossary/unmarshal.md diff --git a/content/en/getting-started/glossary/variable.md b/content/en/quick-reference/glossary/variable.md similarity index 100% rename from content/en/getting-started/glossary/variable.md rename to content/en/quick-reference/glossary/variable.md diff --git a/content/en/getting-started/glossary/walk.md b/content/en/quick-reference/glossary/walk.md similarity index 100% rename from content/en/getting-started/glossary/walk.md rename to content/en/quick-reference/glossary/walk.md diff --git a/content/en/getting-started/glossary/weight.md b/content/en/quick-reference/glossary/weight.md similarity index 100% rename from content/en/getting-started/glossary/weight.md rename to content/en/quick-reference/glossary/weight.md diff --git a/content/en/getting-started/glossary/weighted-page.md b/content/en/quick-reference/glossary/weighted-page.md similarity index 100% rename from content/en/getting-started/glossary/weighted-page.md rename to content/en/quick-reference/glossary/weighted-page.md diff --git a/content/en/getting-started/glossary/zero-time.md b/content/en/quick-reference/glossary/zero-time.md similarity index 100% rename from content/en/getting-started/glossary/zero-time.md rename to content/en/quick-reference/glossary/zero-time.md diff --git a/content/en/quick-reference/methods.md b/content/en/quick-reference/methods.md index abd1db709..5b4797f3a 100644 --- a/content/en/quick-reference/methods.md +++ b/content/en/quick-reference/methods.md @@ -6,8 +6,8 @@ keywords: [] menu: docs: parent: quick-reference - weight: 40 -weight: 40 + weight: 50 +weight: 50 toc: true --- diff --git a/content/en/quick-reference/page-collections.md b/content/en/quick-reference/page-collections.md index c86929b5b..836af3ea2 100644 --- a/content/en/quick-reference/page-collections.md +++ b/content/en/quick-reference/page-collections.md @@ -6,8 +6,8 @@ keywords: [] menu: docs: parent: quick-reference - weight: 50 -weight: 50 + weight: 60 +weight: 60 toc: true --- diff --git a/layouts/_default/_markup/render-link.html b/layouts/_default/_markup/render-link.html index ea5ef1891..dac7da33d 100644 --- a/layouts/_default/_markup/render-link.html +++ b/layouts/_default/_markup/render-link.html @@ -271,7 +271,7 @@ either of these shortcodes in conjunction with this render hook. {{- $text := .text | transform.Plainify | strings.ToLower }} {{- /* Initialize. */}} - {{- $glossaryPath := "/getting-started/glossary" }} + {{- $glossaryPath := "/quick-reference/glossary" }} {{- $termGiven := $text }} {{- $termActual := "" }} {{- $termSingular := inflect.Singularize $termGiven }} diff --git a/layouts/shortcodes/glossary-term.html b/layouts/shortcodes/glossary-term.html index 92ad93340..7aace730e 100644 --- a/layouts/shortcodes/glossary-term.html +++ b/layouts/shortcodes/glossary-term.html @@ -9,12 +9,12 @@ Renders the definition of the given glossary term. */}} {{- with .Get 0 }} - {{- $path := printf "/getting-started/glossary/%s" (urlize .) }} + {{- $path := printf "/quick-reference/glossary/%s" (urlize .) }} {{- with site.GetPage $path }} -{{ .RenderShortcodes }}{{/* Do not indent. */}} +{{ .RenderShortcodes }} {{/* Do not indent. Do not remove non-breaking space. */}} {{- else }} {{- errorf "The glossary term (%s) shortcode was unable to find %s: see %s" $.Name $path $.Position }} {{- end }} {{- else }} {{- errorf "The glossary term (%s) shortcode requires one positional parameter: see %s" $.Name $.Position }} -{{- end }} +{{- end -}} diff --git a/layouts/shortcodes/glossary.html b/layouts/shortcodes/glossary.html index 2767612ab..e91be32ce 100644 --- a/layouts/shortcodes/glossary.html +++ b/layouts/shortcodes/glossary.html @@ -13,13 +13,12 @@ shortcode. @example {{% glossary %}} */}} -{{- $path := "/getting-started/glossary" }} +{{- $path := "/quick-reference/glossary" }} {{- with site.GetPage $path }} - {{- with $p := .Pages.ByTitle }} {{- /* Build and render alphabetical index. */}} {{- $m := dict }} - {{- range $p }} + {{- range $p := .Pages.ByTitle }} {{- $k := substr .Title 0 1 | strings.ToUpper }} {{- if index $m $k }} {{- continue }} @@ -32,17 +31,26 @@ shortcode. {{- end }} {{- /* Render glossary terms. */}} - {{- range $p }} + {{- range $p := .Pages.ByTitle }} ###### {{ .Title }}{{/* Do not indent. */}} {{ .RenderShortcodes }}{{/* Do not indent. */}} {{- with .Params.reference }} - {{- with site.GetPage . -}} - See [details]({{ .RelPermalink }}).{{/* Do not indent. */}} - {{- end }} + {{- $destination := "" }} + {{- with $u := urls.Parse . }} + {{- if $u.IsAbs }} + {{- $destination = $u.String }} + {{- else }} + {{- with site.GetPage $u.Path -}} + {{- $destination = .RelPermalink }} + {{- else }} + {{- errorf "The %q shortcode was unable to find the reference link %s: see %s" $.Name . $p.String }} + {{- end }} + {{- end }} + {{- end -}} + See [details]({{ $destination }}).{{/* Do not indent. */}} {{- end }} {{- end }} - {{- end }} {{- else }} {{- errorf "The %q shortcode was unable to get %s: see %s" .Name $path .Position}} {{- end }} From 1f0c54e6080c30a8b1c5526bd4001622ac959aa7 Mon Sep 17 00:00:00 2001 From: Carlos Abade <11891767+carloseabade@users.noreply.github.com> Date: Sun, 2 Feb 2025 18:05:28 -0300 Subject: [PATCH 34/68] Fit typo --- content/en/content-management/cross-references.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/content-management/cross-references.md b/content/en/content-management/cross-references.md index 56f4c39e1..66a77924f 100644 --- a/content/en/content-management/cross-references.md +++ b/content/en/content-management/cross-references.md @@ -142,7 +142,7 @@ produces this HTML: The behavior can be configured in `hugo.toml`: refLinksErrorLevel ("ERROR") -: When using `ref` or `relref` to resolve page links and a link cannot resolved, it will be logged with this log level. Valid values are `ERROR` (default) or `WARNING`. Any `ERROR` will fail the build (`exit -1`). +: When using `ref` or `relref` to resolve page links and a link cannot be resolved, it will be logged with this log level. Valid values are `ERROR` (default) or `WARNING`. Any `ERROR` will fail the build (`exit -1`). refLinksNotFoundURL : URL to be used as a placeholder when a page reference cannot be found in `ref` or `relref`. Is used as-is. From 612b8528f9cd9dd81f0373134f6f073c5a9edcab Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 2 Feb 2025 14:09:19 -0800 Subject: [PATCH 35/68] glossary: More edits --- .cspell.json | 5 +++++ content/en/quick-reference/glossary/action.md | 2 +- content/en/quick-reference/glossary/array.md | 1 + content/en/quick-reference/glossary/bool.md | 2 +- content/en/quick-reference/glossary/chain.md | 2 +- content/en/quick-reference/glossary/cjk.md | 2 +- content/en/quick-reference/glossary/cli.md | 2 +- content/en/quick-reference/glossary/collection.md | 2 +- content/en/quick-reference/glossary/content-adapter.md | 2 +- content/en/quick-reference/glossary/content-format.md | 2 +- content/en/quick-reference/glossary/content-type.md | 2 +- content/en/quick-reference/glossary/content-view.md | 2 +- content/en/quick-reference/glossary/context.md | 2 +- content/en/quick-reference/glossary/default-sort-order.md | 2 +- content/en/quick-reference/glossary/embedded-template.md | 2 +- content/en/quick-reference/glossary/environment.md | 2 +- content/en/quick-reference/glossary/flag.md | 2 +- content/en/quick-reference/glossary/floating-point.md | 2 +- content/en/quick-reference/glossary/fragment.md | 2 +- content/en/quick-reference/glossary/front-matter.md | 2 +- content/en/quick-reference/glossary/function.md | 2 +- content/en/quick-reference/glossary/global-resource.md | 7 +------ content/en/quick-reference/glossary/headless-bundle.md | 3 ++- content/en/quick-reference/glossary/i18n.md | 5 +++++ content/en/quick-reference/glossary/identifier.md | 2 +- content/en/quick-reference/glossary/int.md | 2 +- content/en/quick-reference/glossary/integer.md | 2 +- .../en/quick-reference/glossary/internationalization.md | 2 +- .../glossary/interpreted-string-literal.md | 3 ++- content/en/quick-reference/glossary/interval.md | 8 ++++---- content/en/quick-reference/glossary/kind.md | 2 +- content/en/quick-reference/glossary/l10n.md | 5 +++++ content/en/quick-reference/glossary/layout.md | 2 +- content/en/quick-reference/glossary/leaf-bundle.md | 3 ++- content/en/quick-reference/glossary/lexer.md | 2 +- content/en/quick-reference/glossary/list-page.md | 2 +- content/en/quick-reference/glossary/list-template.md | 2 +- content/en/quick-reference/glossary/localization.md | 3 ++- content/en/quick-reference/glossary/logical-path.md | 3 ++- content/en/quick-reference/glossary/map.md | 3 ++- content/en/quick-reference/glossary/markdown-attribute.md | 2 +- content/en/quick-reference/glossary/marshal.md | 3 ++- content/en/quick-reference/glossary/method.md | 2 +- content/en/quick-reference/glossary/module.md | 3 ++- content/en/quick-reference/glossary/node.md | 2 +- content/en/quick-reference/glossary/object.md | 2 +- content/en/quick-reference/glossary/ordered-taxonomy.md | 2 +- content/en/quick-reference/glossary/output-format.md | 5 ++--- content/en/quick-reference/glossary/page-bundle.md | 3 ++- content/en/quick-reference/glossary/page-collection.md | 2 +- content/en/quick-reference/glossary/page-kind.md | 5 ++--- content/en/quick-reference/glossary/page-resource.md | 4 +--- content/en/quick-reference/glossary/pager.md | 2 +- content/en/quick-reference/glossary/paginate.md | 2 +- content/en/quick-reference/glossary/pagination.md | 2 +- content/en/quick-reference/glossary/paginator.md | 2 +- content/en/quick-reference/glossary/parameter.md | 2 +- content/en/quick-reference/glossary/partial.md | 2 +- content/en/quick-reference/glossary/permalink.md | 2 +- content/en/quick-reference/glossary/pipe.md | 2 +- content/en/quick-reference/glossary/pipeline.md | 4 ++-- content/en/quick-reference/glossary/publish.md | 2 +- content/en/quick-reference/glossary/raw-string-literal.md | 1 + content/en/quick-reference/glossary/regular-page.md | 2 +- content/en/quick-reference/glossary/relative-permalink.md | 2 +- content/en/quick-reference/glossary/remote-resource.md | 2 +- content/en/quick-reference/glossary/render-hook.md | 2 +- content/en/quick-reference/glossary/resource-type.md | 2 +- content/en/quick-reference/glossary/resource.md | 4 ++-- content/en/quick-reference/glossary/scalar.md | 2 +- content/en/quick-reference/glossary/scope.md | 2 +- content/en/quick-reference/glossary/scratch-pad.md | 2 +- content/en/quick-reference/glossary/section-page.md | 2 +- content/en/quick-reference/glossary/segment.md | 2 +- content/en/quick-reference/glossary/slice.md | 3 ++- content/en/quick-reference/glossary/string.md | 2 +- content/en/quick-reference/glossary/taxonomic-weight.md | 2 +- content/en/quick-reference/glossary/taxonomy-object.md | 2 +- content/en/quick-reference/glossary/taxonomy-page.md | 2 +- content/en/quick-reference/glossary/taxonomy.md | 3 +-- content/en/quick-reference/glossary/template-action.md | 3 ++- content/en/quick-reference/glossary/template.md | 3 ++- content/en/quick-reference/glossary/term-page.md | 2 +- content/en/quick-reference/glossary/term.md | 3 ++- content/en/quick-reference/glossary/theme.md | 2 +- content/en/quick-reference/glossary/token.md | 2 +- content/en/quick-reference/glossary/unmarshal.md | 3 ++- content/en/quick-reference/glossary/variable.md | 2 +- content/en/quick-reference/glossary/walk.md | 2 +- content/en/quick-reference/glossary/weight.md | 2 +- content/en/quick-reference/glossary/weighted-page.md | 2 +- 91 files changed, 124 insertions(+), 103 deletions(-) create mode 100644 content/en/quick-reference/glossary/i18n.md create mode 100644 content/en/quick-reference/glossary/l10n.md diff --git a/.cspell.json b/.cspell.json index 6596a160c..8d51085ab 100644 --- a/.cspell.json +++ b/.cspell.json @@ -68,6 +68,7 @@ "# ----------------------------------------------------------------------", "# cspell: ignore hugo terminology", "# ----------------------------------------------------------------------", + "alignx", "attrlink", "canonify", "codeowners", @@ -85,6 +86,7 @@ "stringifier", "struct", "toclevels", + "unmarshal", "unpublishdate", "zgotmplz", "# ----------------------------------------------------------------------", @@ -158,6 +160,8 @@ "# cspell: ignore miscellaneous", "# ----------------------------------------------------------------------", "achristie", + "ccpa", + "crpa", "ddmaurier", "dring", "fleqn", @@ -171,6 +175,7 @@ "rsmith", "tdewolff", "tjones", + "vcard", "wcag", "xfeff" ] diff --git a/content/en/quick-reference/glossary/action.md b/content/en/quick-reference/glossary/action.md index b38df744f..ced877327 100644 --- a/content/en/quick-reference/glossary/action.md +++ b/content/en/quick-reference/glossary/action.md @@ -2,4 +2,4 @@ title: action --- -See [template action](g). +See [_template action_](g). diff --git a/content/en/quick-reference/glossary/array.md b/content/en/quick-reference/glossary/array.md index b75f5ca2e..0df45f212 100644 --- a/content/en/quick-reference/glossary/array.md +++ b/content/en/quick-reference/glossary/array.md @@ -1,5 +1,6 @@ --- title: array +reference: https://go.dev/ref/spec#Array_types --- An _array_ is a numbered sequence of [_elements_](g). Unlike Go's [_slice_](g) data type, an array has a fixed length. Elements within an array can be [_scalars_](g), slices, [_maps_](g), pages, or other arrays. diff --git a/content/en/quick-reference/glossary/bool.md b/content/en/quick-reference/glossary/bool.md index 7fd7628ca..a4f33b5b9 100644 --- a/content/en/quick-reference/glossary/bool.md +++ b/content/en/quick-reference/glossary/bool.md @@ -2,4 +2,4 @@ title: bool --- -See [boolean](g). +See [_boolean_](g). diff --git a/content/en/quick-reference/glossary/chain.md b/content/en/quick-reference/glossary/chain.md index b54c09315..bbbc14f49 100644 --- a/content/en/quick-reference/glossary/chain.md +++ b/content/en/quick-reference/glossary/chain.md @@ -2,4 +2,4 @@ title: chain --- -Within a template, to connect one or more [identifiers](g) with a dot. An identifier can represent a method, object, or field. For example, `.Site.Params.author.name` or `.Date.UTC.Hour`. +To _chain_ is to connect one or more [_identifiers_](g) with a dot. An identifier can represent a [_method_](g), [_object_](g), or [_field_](g). For example, `.Site.Params.author.name` or `.Date.UTC.Hour`. diff --git a/content/en/quick-reference/glossary/cjk.md b/content/en/quick-reference/glossary/cjk.md index 16bd226cb..05a294d44 100644 --- a/content/en/quick-reference/glossary/cjk.md +++ b/content/en/quick-reference/glossary/cjk.md @@ -2,4 +2,4 @@ title: CJK --- -A collective term for the Chinese, Japanese, and Korean languages. +_CJK_ is a collective term for the Chinese, Japanese, and Korean languages. diff --git a/content/en/quick-reference/glossary/cli.md b/content/en/quick-reference/glossary/cli.md index 11602f7e3..61269dc8e 100644 --- a/content/en/quick-reference/glossary/cli.md +++ b/content/en/quick-reference/glossary/cli.md @@ -2,4 +2,4 @@ title: CLI --- -Command line interface. +_CLI_ is an abbreviation of Command Line Interface. diff --git a/content/en/quick-reference/glossary/collection.md b/content/en/quick-reference/glossary/collection.md index 8ff962447..30e1ef805 100644 --- a/content/en/quick-reference/glossary/collection.md +++ b/content/en/quick-reference/glossary/collection.md @@ -2,4 +2,4 @@ title: collection --- -An [array](g), [slice](g), or [map](g). +A _collection_ is an [_array_](g), [_slice_](g), or [_map_](g). diff --git a/content/en/quick-reference/glossary/content-adapter.md b/content/en/quick-reference/glossary/content-adapter.md index 88f51668b..974e61dca 100644 --- a/content/en/quick-reference/glossary/content-adapter.md +++ b/content/en/quick-reference/glossary/content-adapter.md @@ -3,4 +3,4 @@ title: content adapter reference: /content-management/content-adapters --- -A template that dynamically creates pages when building a site. For example, use a content adapter to create pages from a remote data source such as JSON, TOML, YAML, or XML. +A _content adapter_ is a template that dynamically creates pages when building a site. For example, use a content adapter to create pages from a remote data source such as JSON, TOML, YAML, or XML. diff --git a/content/en/quick-reference/glossary/content-format.md b/content/en/quick-reference/glossary/content-format.md index 2d69acdba..ea459deb7 100644 --- a/content/en/quick-reference/glossary/content-format.md +++ b/content/en/quick-reference/glossary/content-format.md @@ -3,4 +3,4 @@ title: content format reference: /content-management/formats --- -A markup language for creating content. Typically Markdown, but may also be HTML, AsciiDoc, Org, Pandoc, or reStructuredText. +A _content format_ is a markup language for creating content. Typically Markdown, but may also be HTML, AsciiDoc, Org, Pandoc, or reStructuredText. diff --git a/content/en/quick-reference/glossary/content-type.md b/content/en/quick-reference/glossary/content-type.md index 6e29e7fa3..b7ebc5be4 100644 --- a/content/en/quick-reference/glossary/content-type.md +++ b/content/en/quick-reference/glossary/content-type.md @@ -3,4 +3,4 @@ title: content type reference: /content-management/types --- -A classification of content inferred from the top-level directory name or the `type` set in [front matter](g). Pages in the root of the `content` directory, including the home page, are of type "page". Accessed via `.Page.Type` in [templates](g). +A _content type_ is a classification of content inferred from the top-level directory name or the `type` set in [front matter](g). Pages in the root of the `content` directory, including the home page, are of type "page". Accessed via `.Page.Type` in [_templates_](g). diff --git a/content/en/quick-reference/glossary/content-view.md b/content/en/quick-reference/glossary/content-view.md index 20230f924..009981cb5 100644 --- a/content/en/quick-reference/glossary/content-view.md +++ b/content/en/quick-reference/glossary/content-view.md @@ -3,4 +3,4 @@ title: content view reference: /templates/content-view --- -A template called with the `.Page.Render` method. +A _content view_ is a template called with the [`Render`](/methods/page/render/) method on a `Page` object. diff --git a/content/en/quick-reference/glossary/context.md b/content/en/quick-reference/glossary/context.md index 7589399f9..ec39216c4 100644 --- a/content/en/quick-reference/glossary/context.md +++ b/content/en/quick-reference/glossary/context.md @@ -3,4 +3,4 @@ title: context reference: /templates/introduction/#context --- -Represented by a dot "." within a [template action](g), context is the current location in a data structure. For example, while iterating over a [collection](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. +Represented by a dot "." within a [_template action_](g), _context_ is the current location in a data structure. For example, while iterating over a [_collection_](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. diff --git a/content/en/quick-reference/glossary/default-sort-order.md b/content/en/quick-reference/glossary/default-sort-order.md index c0f55fbf6..2b5588d56 100644 --- a/content/en/quick-reference/glossary/default-sort-order.md +++ b/content/en/quick-reference/glossary/default-sort-order.md @@ -2,4 +2,4 @@ title: default sort order --- -The default sort order for page collections. Hugo sorts by [weight](g), then by date (descending), then by link title, and then by file path. +The _default sort order_ is the default order in which Hugo sorts page collections: by [_weight_](g), then by date (descending), then by link title, and then by file path. diff --git a/content/en/quick-reference/glossary/embedded-template.md b/content/en/quick-reference/glossary/embedded-template.md index b514040d3..3a0871690 100644 --- a/content/en/quick-reference/glossary/embedded-template.md +++ b/content/en/quick-reference/glossary/embedded-template.md @@ -2,4 +2,4 @@ title: embedded template --- -An _embedded template_ is a built-in component within the Hugo application. This includes features like [partials](g), [shortcodes](g), and [render hooks](g) that provide pre-defined structures or functionalities for creating website content. +An _embedded template_ is a built-in component within the Hugo application. This includes features like [_partials_](g), [_shortcodes_](g), and [_render hooks_](g) that provide pre-defined structures or functionalities for creating website content. diff --git a/content/en/quick-reference/glossary/environment.md b/content/en/quick-reference/glossary/environment.md index 9479605cd..6605c2263 100644 --- a/content/en/quick-reference/glossary/environment.md +++ b/content/en/quick-reference/glossary/environment.md @@ -2,7 +2,7 @@ title: environment --- -Typically one of `development`, `staging`, or `production`, each environment may exhibit different behavior depending on configuration and template logic. For example, in a production environment you might minify and fingerprint CSS, but that probably doesn't make sense in a development environment. +Typically one of `development`, `staging`, or `production`, each _environment_ may exhibit different behavior depending on configuration and template logic. For example, in a production environment you might minify and fingerprint CSS, but that probably doesn't make sense in a development environment. When running the built-in development server with the `hugo server` command, the environment is set to `development`. When building your site with the `hugo` command, the environment is set to `production`. To override the environment value, use the `--environment` command line flag or the `HUGO_ENVIRONMENT` environment variable. diff --git a/content/en/quick-reference/glossary/flag.md b/content/en/quick-reference/glossary/flag.md index d23936745..e7b6c5746 100644 --- a/content/en/quick-reference/glossary/flag.md +++ b/content/en/quick-reference/glossary/flag.md @@ -3,4 +3,4 @@ title: flag reference: /commands/hugo --- -An option passed to a command-line program, beginning with one or two hyphens. +A _flag_ is an option passed to a command-line program, beginning with one or two hyphens. diff --git a/content/en/quick-reference/glossary/floating-point.md b/content/en/quick-reference/glossary/floating-point.md index cdf5a2294..38ba9f012 100644 --- a/content/en/quick-reference/glossary/floating-point.md +++ b/content/en/quick-reference/glossary/floating-point.md @@ -2,4 +2,4 @@ title: floating point --- -A numeric data type with a fractional component. For example, `3.14159`. +The term _floating point_ refers to a numeric data type with a fractional component. For example, `3.14159`. diff --git a/content/en/quick-reference/glossary/fragment.md b/content/en/quick-reference/glossary/fragment.md index b1e3fd7eb..57ef1b4ef 100644 --- a/content/en/quick-reference/glossary/fragment.md +++ b/content/en/quick-reference/glossary/fragment.md @@ -2,4 +2,4 @@ title: fragment --- -The final segment of a URL, beginning with a hash (`#`) mark, that references an `id` attribute of an HTML element on the page. +A _fragment_ is the final segment of a URL, beginning with a hash (`#`) mark, that references an `id` attribute of an HTML element on the page. diff --git a/content/en/quick-reference/glossary/front-matter.md b/content/en/quick-reference/glossary/front-matter.md index f7faab409..5a3cd3040 100644 --- a/content/en/quick-reference/glossary/front-matter.md +++ b/content/en/quick-reference/glossary/front-matter.md @@ -3,4 +3,4 @@ title: front matter reference: /content-management/front-matter --- -Metadata at the beginning of each content page, separated from the content by format-specific delimiters. +The term _front matter_ refers to the metadata at the beginning of each content page, separated from the content by format-specific delimiters. diff --git a/content/en/quick-reference/glossary/function.md b/content/en/quick-reference/glossary/function.md index 8aaee0473..a7da52cd2 100644 --- a/content/en/quick-reference/glossary/function.md +++ b/content/en/quick-reference/glossary/function.md @@ -3,4 +3,4 @@ title: function reference: /functions --- -Used within a [template action](g), a function takes one or more [arguments](g) and returns a value. Unlike [methods](g), functions are not associated with an [object](g). +Used within a [_template action_](g), a _function_ takes one or more [_arguments_](g) and returns a value. Unlike [_methods_](g), functions are not associated with an [_object_](g). diff --git a/content/en/quick-reference/glossary/global-resource.md b/content/en/quick-reference/glossary/global-resource.md index 1ca42a6ec..a4df65f67 100644 --- a/content/en/quick-reference/glossary/global-resource.md +++ b/content/en/quick-reference/glossary/global-resource.md @@ -2,9 +2,4 @@ title: global resource --- -A file within the `assets` directory, or within any directory mounted to the `assets` directory. Capture one or more global resources using the [`resources.Get`], [`resources.GetMatch`], [`resources.Match`], or [`resources.ByType`] functions. - -[`resources.Get`]: /functions/resources/get/ -[`resources.GetMatch`]: /functions/resources/getmatch/ -[`resources.Match`]: /functions/resources/match/ -[`resources.ByType`]: /functions/resources/byType/ +A _global resource_ is file within the `assets` directory, or within any directory mounted to the `assets` directory. diff --git a/content/en/quick-reference/glossary/headless-bundle.md b/content/en/quick-reference/glossary/headless-bundle.md index 60da816af..229d30894 100644 --- a/content/en/quick-reference/glossary/headless-bundle.md +++ b/content/en/quick-reference/glossary/headless-bundle.md @@ -1,5 +1,6 @@ --- title: headless bundle +reference: /content-management/build-options/ --- -An unpublished leaf or branch bundle whose content and resources you can include in other pages. See [build options](/content-management/build-options/). +A _headless bundle_ is an unpublished leaf or branch bundle whose content and resources you can include in other pages. diff --git a/content/en/quick-reference/glossary/i18n.md b/content/en/quick-reference/glossary/i18n.md new file mode 100644 index 000000000..168828aa8 --- /dev/null +++ b/content/en/quick-reference/glossary/i18n.md @@ -0,0 +1,5 @@ +--- +title: i18n +--- + +See [_internationalization_](g). diff --git a/content/en/quick-reference/glossary/identifier.md b/content/en/quick-reference/glossary/identifier.md index eeb17dbf5..f53472fa7 100644 --- a/content/en/quick-reference/glossary/identifier.md +++ b/content/en/quick-reference/glossary/identifier.md @@ -2,4 +2,4 @@ title: identifier --- -A string that represents a variable, method, object, or field. It must conform to Go's [language specification](https://go.dev/ref/spec#Identifiers), beginning with a letter or underscore, followed by zero or more letters, digits, or underscores. +An _identifier_ is a string that represents a variable, method, object, or field. It must conform to Go's [language specification](https://go.dev/ref/spec#Identifiers), beginning with a letter or underscore, followed by zero or more letters, digits, or underscores. diff --git a/content/en/quick-reference/glossary/int.md b/content/en/quick-reference/glossary/int.md index 1077ee5e0..0896f1ce7 100644 --- a/content/en/quick-reference/glossary/int.md +++ b/content/en/quick-reference/glossary/int.md @@ -2,4 +2,4 @@ title: int --- -See [integer](g). +See [_integer_](g). diff --git a/content/en/quick-reference/glossary/integer.md b/content/en/quick-reference/glossary/integer.md index aa61f248f..0af821300 100644 --- a/content/en/quick-reference/glossary/integer.md +++ b/content/en/quick-reference/glossary/integer.md @@ -2,4 +2,4 @@ title: integer --- -A numeric data type without a fractional component. For example, `42`. +An _integer_ is a numeric data type without a fractional component. For example, `42`. diff --git a/content/en/quick-reference/glossary/internationalization.md b/content/en/quick-reference/glossary/internationalization.md index aa65f8ffb..4e8b0199c 100644 --- a/content/en/quick-reference/glossary/internationalization.md +++ b/content/en/quick-reference/glossary/internationalization.md @@ -2,4 +2,4 @@ title: internationalization --- -Software design and development efforts that enable [localization](g). See the [W3C definition](https://www.w3.org/International/questions/qa-i18n). Abbreviated i18n. +The term _internationalization_ refers to software design and development efforts that enable [_localization_](g). diff --git a/content/en/quick-reference/glossary/interpreted-string-literal.md b/content/en/quick-reference/glossary/interpreted-string-literal.md index 714593dfa..a5d2cd326 100644 --- a/content/en/quick-reference/glossary/interpreted-string-literal.md +++ b/content/en/quick-reference/glossary/interpreted-string-literal.md @@ -1,5 +1,6 @@ --- title: interpreted string literal +reference: https://go.dev/ref/spec#String_literals --- -An _interpreted string literal_ is a character sequences between double quotes, as in "foo". Within the quotes, any character may appear except a newline and an unescaped double quote. The text between the quotes forms the value of the literal, with backslash escapes interpreted. See [details](https://go.dev/ref/spec#String_literals). +An _interpreted string literal_ is a character sequences between double quotes, as in "foo". Within the quotes, any character may appear except a newline and an unescaped double quote. The text between the quotes forms the value of the literal, with backslash escapes interpreted. diff --git a/content/en/quick-reference/glossary/interval.md b/content/en/quick-reference/glossary/interval.md index ad19a402e..f1ce7bc93 100644 --- a/content/en/quick-reference/glossary/interval.md +++ b/content/en/quick-reference/glossary/interval.md @@ -2,10 +2,10 @@ title: interval --- -An [interval](https://en.wikipedia.org/wiki/Interval_(mathematics)) is a range of numbers between two endpoints: closed, open, or half-open. +An [_interval_](https://en.wikipedia.org/wiki/Interval_(mathematics)) is a range of numbers between two endpoints: closed, open, or half-open. -- A _closed_ interval, denoted by brackets, includes its endpoints. For example, [0, 1] is the interval where `0 <= x <= 1`. +- A _closed interval_, denoted by brackets, includes its endpoints. For example, [0, 1] is the interval where `0 <= x <= 1`. -- An _open_ interval, denoted by parentheses, excludes its endpoints. For example, (0, 1) is the interval where `0 < x < 1`. +- An _open interval_, denoted by parentheses, excludes its endpoints. For example, (0, 1) is the interval where `0 < x < 1`. -- A _half-open_ interval includes only one of its endpoints. For example, (0, 1] is the _left-open_ interval where `0 < x <= 1`, while [0, 1) is the _right-open_ interval where `0 <= x < 1`. +- A _half-open interval_ includes only one of its endpoints. For example, (0, 1] is the _left-open_ interval where `0 < x <= 1`, while [0, 1) is the _right-open_ interval where `0 <= x < 1`. diff --git a/content/en/quick-reference/glossary/kind.md b/content/en/quick-reference/glossary/kind.md index 1434e55c5..a214dfbf1 100644 --- a/content/en/quick-reference/glossary/kind.md +++ b/content/en/quick-reference/glossary/kind.md @@ -2,4 +2,4 @@ title: kind --- -See [page kind](g). +See [_page kind_](g). diff --git a/content/en/quick-reference/glossary/l10n.md b/content/en/quick-reference/glossary/l10n.md new file mode 100644 index 000000000..013d0ab55 --- /dev/null +++ b/content/en/quick-reference/glossary/l10n.md @@ -0,0 +1,5 @@ +--- +title: l10n +--- + +See [_localization_](g). diff --git a/content/en/quick-reference/glossary/layout.md b/content/en/quick-reference/glossary/layout.md index 706e9439d..a4e6b33f1 100644 --- a/content/en/quick-reference/glossary/layout.md +++ b/content/en/quick-reference/glossary/layout.md @@ -2,4 +2,4 @@ title: layout --- -See [template](g). +See [_template_](g). diff --git a/content/en/quick-reference/glossary/leaf-bundle.md b/content/en/quick-reference/glossary/leaf-bundle.md index 664976296..a8eb03433 100644 --- a/content/en/quick-reference/glossary/leaf-bundle.md +++ b/content/en/quick-reference/glossary/leaf-bundle.md @@ -1,5 +1,6 @@ --- title: leaf bundle +reference: /content-management/page-bundles/ --- -A directory that contains an `index.md` file and zero or more [resources](g). Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. See [details](/content-management/page-bundles/). +A _leaf bundle_ is a directory that contains an `index.md` file and zero or more [_resources_](g). Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. diff --git a/content/en/quick-reference/glossary/lexer.md b/content/en/quick-reference/glossary/lexer.md index 93d2ed6c5..a46223148 100644 --- a/content/en/quick-reference/glossary/lexer.md +++ b/content/en/quick-reference/glossary/lexer.md @@ -2,4 +2,4 @@ title: lexer --- -A software component that identifies keywords, identifiers, operators, numbers, and other basic building blocks of a programming language within the input text. +A _lexer_ is a software component that identifies keywords, identifiers, operators, numbers, and other basic building blocks of a programming language within the input text. diff --git a/content/en/quick-reference/glossary/list-page.md b/content/en/quick-reference/glossary/list-page.md index f17e0ac69..b58ee4a35 100644 --- a/content/en/quick-reference/glossary/list-page.md +++ b/content/en/quick-reference/glossary/list-page.md @@ -2,4 +2,4 @@ title: list page --- -Any [page kind](g) that receives a page [collection](g) in [context](g). This includes the home page, [section pages](g), [taxonomy pages](g), and [term pages](g). +A list page is any [_page kind_](g) that receives a page [_collection_](g) in [_context_](g). This includes the home page, [section pages](g), [taxonomy pages](g), and [term pages](g). diff --git a/content/en/quick-reference/glossary/list-template.md b/content/en/quick-reference/glossary/list-template.md index e3283ff71..9a12a275f 100644 --- a/content/en/quick-reference/glossary/list-template.md +++ b/content/en/quick-reference/glossary/list-template.md @@ -2,4 +2,4 @@ title: list template --- -Any template that renders a [list page](g). This includes [home](/templates/types/#home), [section](/templates/types/#section), [taxonomy](/templates/types/#taxonomy), and [term](/templates/types/#term) templates. +A _list template_ is any [_template_](g) that renders a [_list page_](g). This includes home, [_section_](g), [_taxonomy_](g), and [_term_](g) templates. diff --git a/content/en/quick-reference/glossary/localization.md b/content/en/quick-reference/glossary/localization.md index d03dedd9e..01f450635 100644 --- a/content/en/quick-reference/glossary/localization.md +++ b/content/en/quick-reference/glossary/localization.md @@ -1,5 +1,6 @@ --- title: localization +reference: /content-management/multilingual/ --- -Adaptation of a site to meet language and regional requirements. This includes translations, language-specific media, date and currency formats, etc. See [details](/content-management/multilingual/) and the [W3C definition](https://www.w3.org/International/questions/qa-i18n). Abbreviated l10n. +The term _localization_ refers to the process of adapting a site to meet language and regional requirements. This includes translations, date formats, number formats, currency formats, and collation order. diff --git a/content/en/quick-reference/glossary/logical-path.md b/content/en/quick-reference/glossary/logical-path.md index e5b732cde..aa5ce9374 100644 --- a/content/en/quick-reference/glossary/logical-path.md +++ b/content/en/quick-reference/glossary/logical-path.md @@ -1,7 +1,8 @@ --- title: logical path +reference: /methods/page/path/#examples --- {{< new-in 0.123.0 />}} -A page or page resource identifier derived from the file path, excluding its extension and language identifier. This value is neither a file path nor a URL. Starting with a file path relative to the `content` directory, Hugo determines the logical path by stripping the file extension and language identifier, converting to lower case, then replacing spaces with hyphens. See [examples](/methods/page/path/#examples). +A _logical path_ is a page or page resource identifier derived from the file path, excluding its extension and language identifier. This value is neither a file path nor a URL. Starting with a file path relative to the `content` directory, Hugo determines the logical path by stripping the file extension and language identifier, converting to lower case, then replacing spaces with hyphens. diff --git a/content/en/quick-reference/glossary/map.md b/content/en/quick-reference/glossary/map.md index aa80357d9..b4605d20b 100644 --- a/content/en/quick-reference/glossary/map.md +++ b/content/en/quick-reference/glossary/map.md @@ -1,5 +1,6 @@ --- title: map +reference: https://go.dev/ref/spec#Map_types --- -An unordered group of elements, each indexed by a unique key. See the [Go documentation](https://go.dev/ref/spec#Map_types) for details. +A _map_ is an unordered group of elements, each indexed by a unique key. diff --git a/content/en/quick-reference/glossary/markdown-attribute.md b/content/en/quick-reference/glossary/markdown-attribute.md index 2e355999e..ccbcefd66 100644 --- a/content/en/quick-reference/glossary/markdown-attribute.md +++ b/content/en/quick-reference/glossary/markdown-attribute.md @@ -3,4 +3,4 @@ title: Markdown attribute reference: /content-management/markdown-attributes/ --- -A list of attributes, containing one or more key-value pairs, separated by spaces or commas, and wrapped by braces. Apply Markdown attributes to images and block-level elements including blockquotes, fenced code blocks, headings, horizontal rules, lists, paragraphs, and tables. +A _Markdown attribute_ is a key-value pair attached to a Markdown element. These attributes are commonly used to add HTML attributes, like `class` and `id`, to the element when it's rendered into HTML. They provide a way to extend the basic Markdown syntax and add more semantic meaning or styling hooks to your content. diff --git a/content/en/quick-reference/glossary/marshal.md b/content/en/quick-reference/glossary/marshal.md index 73c59e8b7..3bb1623f5 100644 --- a/content/en/quick-reference/glossary/marshal.md +++ b/content/en/quick-reference/glossary/marshal.md @@ -1,5 +1,6 @@ --- title: marshal +reference: /functions/transform/remarshal/ --- -To transform a data structure into a serialized object. For example, transforming a [map](g) into a JSON string. See [unmarshal](g). +To _marshal_ is to transform a data structure into a serialized object. For example, transforming a [_map_](g) into a JSON string. diff --git a/content/en/quick-reference/glossary/method.md b/content/en/quick-reference/glossary/method.md index 960488b4e..b7618bbf9 100644 --- a/content/en/quick-reference/glossary/method.md +++ b/content/en/quick-reference/glossary/method.md @@ -2,4 +2,4 @@ title: method --- -Used within a [template action](g) and associated with an [object](g), a method takes zero or more [arguments](g) and either returns a value or performs an action. For example, `.IsHome` is a method on the `.Page` object which returns `true` if the current page is the home page. See also [function](g). +Used within a [_template action_](g) and associated with an [_object_](g), a _method_ takes zero or more [_arguments_](g) and either returns a value or performs an action. For example, `.IsHome` is a method on the `.Page` object which returns `true` if the current page is the home page. See also [_function_](g). diff --git a/content/en/quick-reference/glossary/module.md b/content/en/quick-reference/glossary/module.md index 13a3945ab..90c8ff80b 100644 --- a/content/en/quick-reference/glossary/module.md +++ b/content/en/quick-reference/glossary/module.md @@ -1,5 +1,6 @@ --- title: module +reference: /hugo-modules/ --- -Like a [theme](g), a module is a packaged combination of [archetypes](g), assets, content, data, [templates](g), translation tables, static files, or configuration settings. A module may serve as the basis for a new site, or to augment an existing site. See [details](/hugo-modules/). +A _module_ is a packaged combination of [_archetypes_](g), assets, content, data, [_templates_](g), translation tables, static files, or configuration settings. A module may serve as the basis for a new site, or to augment an existing site. diff --git a/content/en/quick-reference/glossary/node.md b/content/en/quick-reference/glossary/node.md index 2cd1e7b1f..b722e07c8 100644 --- a/content/en/quick-reference/glossary/node.md +++ b/content/en/quick-reference/glossary/node.md @@ -2,4 +2,4 @@ title: node --- -A class of [page kinds](g) including `home`, `section`, `taxonomy`, and `term`. +A _node_ is a class of [_page kinds_](g) including `home`, `section`, `taxonomy`, and `term`. diff --git a/content/en/quick-reference/glossary/object.md b/content/en/quick-reference/glossary/object.md index ea19987c7..216609d0d 100644 --- a/content/en/quick-reference/glossary/object.md +++ b/content/en/quick-reference/glossary/object.md @@ -2,4 +2,4 @@ title: object --- -A data structure with or without associated [methods](g). +An _object_ is a data structure with or without associated [_methods_](g). diff --git a/content/en/quick-reference/glossary/ordered-taxonomy.md b/content/en/quick-reference/glossary/ordered-taxonomy.md index 7df5ebfe1..7e0e2763d 100644 --- a/content/en/quick-reference/glossary/ordered-taxonomy.md +++ b/content/en/quick-reference/glossary/ordered-taxonomy.md @@ -2,7 +2,7 @@ title: ordered taxonomy --- -Created by invoking the [`Alphabetical`] or [`ByCount`] method on a [`Taxonomy`](g) object, which is a [map](g), an _ordered taxonomy_ is a [slice](g), where each element is an object that contains the [term](g) and a slice of its [weighted pages](g). +Created by invoking the [`Alphabetical`] or [`ByCount`] method on a [`Taxonomy`](g) object, which is a [_map_](g), an _ordered taxonomy_ is a [_slice_](g), where each element is an object that contains the [_term_](g) and a slice of its [weighted pages](g). [`Alphabetical`]: /methods/taxonomy/alphabetical/ [`ByCount`]: /methods/taxonomy/bycount/ diff --git a/content/en/quick-reference/glossary/output-format.md b/content/en/quick-reference/glossary/output-format.md index b4bab9ce7..9004dc223 100644 --- a/content/en/quick-reference/glossary/output-format.md +++ b/content/en/quick-reference/glossary/output-format.md @@ -1,7 +1,6 @@ --- title: output format +reference: /templates/output-formats/ --- -Hugo generates one or more files per page when building a site. For example, when rendering home, [section](g), [taxonomy](g), and [term](g) pages, Hugo generates an HTML file and an RSS file. Both HTML and RSS are built-in _output formats_. Create multiple output formats, and control generation based on [page kind](g), or by enabling one or more output formats for one or more pages. See [details]. - -[details]: /templates/output-formats/ +An _output format_ is a collection of settings that defines how Hugo renders a file when building a site. For example, `html`, `rss`, and `json` are built-in output formats. You can create multiple output formats and control their generation based on [page kind](g), or by enabling one or more output formats for specific pages. diff --git a/content/en/quick-reference/glossary/page-bundle.md b/content/en/quick-reference/glossary/page-bundle.md index a82a3d257..af76da2aa 100644 --- a/content/en/quick-reference/glossary/page-bundle.md +++ b/content/en/quick-reference/glossary/page-bundle.md @@ -1,5 +1,6 @@ --- title: page bundle +reference: /content-management/page-bundles/ --- -A directory that encapsulates both content and associated [resources](g). There are two types of page bundles: [leaf bundles](g) and [branch bundles](g). See [details](/content-management/page-bundles/). +A _page bundle_ is a directory that encapsulates both content and associated [_resources_](g). There are two types of page bundles: [_leaf bundles_](g) and [_branch bundles_](g). diff --git a/content/en/quick-reference/glossary/page-collection.md b/content/en/quick-reference/glossary/page-collection.md index 13f9eb990..f078ecf27 100644 --- a/content/en/quick-reference/glossary/page-collection.md +++ b/content/en/quick-reference/glossary/page-collection.md @@ -2,4 +2,4 @@ title: page collection --- -A slice of `Page` objects. +A _page collection_ is a slice of `Page` objects. diff --git a/content/en/quick-reference/glossary/page-kind.md b/content/en/quick-reference/glossary/page-kind.md index a71dbd6b2..ee47fe010 100644 --- a/content/en/quick-reference/glossary/page-kind.md +++ b/content/en/quick-reference/glossary/page-kind.md @@ -1,7 +1,6 @@ --- title: page kind +reference: /methods/page/kind/ --- -A classification of pages, one of `home`, `page`, `section`, `taxonomy`, or `term`. See [details](/methods/page/kind/). - -Note that there are also `RSS`, `sitemap`, `robotsTXT`, and `404` page kinds, but these are only available during the rendering of each of these respective page's kind and therefore *not* available in any of the `Pages` collections. +A _page kind_ is a classification of pages, one of `home`, `page`, `section`, `taxonomy`, or `term`. diff --git a/content/en/quick-reference/glossary/page-resource.md b/content/en/quick-reference/glossary/page-resource.md index 324f09470..dab119eb4 100644 --- a/content/en/quick-reference/glossary/page-resource.md +++ b/content/en/quick-reference/glossary/page-resource.md @@ -2,6 +2,4 @@ title: page resource --- -A file within a [page bundle](g). Capture one or more page resources using any of the [`Resources`] methods on a `Page` object. - -[`Resources`]: /methods/page/resources/#methods +A _page resource_ is a file within a [_page bundle_](g). diff --git a/content/en/quick-reference/glossary/pager.md b/content/en/quick-reference/glossary/pager.md index 206f81204..f58874e4a 100644 --- a/content/en/quick-reference/glossary/pager.md +++ b/content/en/quick-reference/glossary/pager.md @@ -2,4 +2,4 @@ title: pager --- -Created during [pagination](g), a pager contains a subset of a list page and navigation links to other pagers. +Created during [_pagination_](g), a _pager_ contains a subset of a list page and navigation links to other pagers. diff --git a/content/en/quick-reference/glossary/paginate.md b/content/en/quick-reference/glossary/paginate.md index 1a0b54f1e..d2467e098 100644 --- a/content/en/quick-reference/glossary/paginate.md +++ b/content/en/quick-reference/glossary/paginate.md @@ -2,4 +2,4 @@ title: paginate --- -To split a list page into two or more subsets. +To _paginate_ is to split a list page into two or more subsets. diff --git a/content/en/quick-reference/glossary/pagination.md b/content/en/quick-reference/glossary/pagination.md index 4cde7dd77..136341dbf 100644 --- a/content/en/quick-reference/glossary/pagination.md +++ b/content/en/quick-reference/glossary/pagination.md @@ -3,4 +3,4 @@ title: pagination reference: /templates/pagination --- -The process of [paginating](g) a list page. +The term _pagination_ refers to the process of [_paginating_](g) a list page. diff --git a/content/en/quick-reference/glossary/paginator.md b/content/en/quick-reference/glossary/paginator.md index 0358a5ab7..4d197348d 100644 --- a/content/en/quick-reference/glossary/paginator.md +++ b/content/en/quick-reference/glossary/paginator.md @@ -2,4 +2,4 @@ title: paginator --- -A collection of [pagers](g). +A _paginator_ is a collection of [_pagers_](g). diff --git a/content/en/quick-reference/glossary/parameter.md b/content/en/quick-reference/glossary/parameter.md index 24adcd60e..f1a45ea34 100644 --- a/content/en/quick-reference/glossary/parameter.md +++ b/content/en/quick-reference/glossary/parameter.md @@ -2,4 +2,4 @@ title: parameter --- -Typically, a user-defined key-value pair at the site or page level, but may also refer to a configuration setting or an [argument](g). See also [field](g). +A _parameter_ is typically a user-defined key-value pair at the site or page level, but may also refer to a configuration setting or an [_argument_](g). diff --git a/content/en/quick-reference/glossary/partial.md b/content/en/quick-reference/glossary/partial.md index e4405d9d9..a5dd5e51a 100644 --- a/content/en/quick-reference/glossary/partial.md +++ b/content/en/quick-reference/glossary/partial.md @@ -2,4 +2,4 @@ title: partial --- -A [template](g) called from any other template including [shortcodes](g), [render hooks](g), and other partials. A partial either renders something or returns something. A partial can also call itself, for example, to [walk](g) a data structure. +A _partial_ is a [_template_](g) called from any other template including [_shortcodes_](g), [render hooks](g), and other partials. A partial either renders something or returns something. A partial can also call itself, for example, to [_walk_](g) a data structure. diff --git a/content/en/quick-reference/glossary/permalink.md b/content/en/quick-reference/glossary/permalink.md index ac3601b26..45651de83 100644 --- a/content/en/quick-reference/glossary/permalink.md +++ b/content/en/quick-reference/glossary/permalink.md @@ -2,4 +2,4 @@ title: permalink --- -The absolute URL of a published resource or a rendered page, including scheme and host. +A _permalink_ is the absolute URL of a published resource or a rendered page, including scheme and host. diff --git a/content/en/quick-reference/glossary/pipe.md b/content/en/quick-reference/glossary/pipe.md index 4daab1999..f587eeccf 100644 --- a/content/en/quick-reference/glossary/pipe.md +++ b/content/en/quick-reference/glossary/pipe.md @@ -2,4 +2,4 @@ title: pipe --- -See [pipeline](g). +See [_pipeline_](g). diff --git a/content/en/quick-reference/glossary/pipeline.md b/content/en/quick-reference/glossary/pipeline.md index dc62af363..2bb3fa3b7 100644 --- a/content/en/quick-reference/glossary/pipeline.md +++ b/content/en/quick-reference/glossary/pipeline.md @@ -2,6 +2,6 @@ title: pipeline --- -Within a [template action](g), a pipeline is a possibly chained sequence of values, [function](g) calls, or [method](g) calls. Functions and methods in the pipeline may take multiple [arguments](g). +Within a [_template action_](g), a _pipeline_ is a possibly chained sequence of values, [_function_](g) calls, or [_method_](g) calls. Functions and methods in the pipeline may take multiple [_arguments_](g). -A pipeline may be *chained* by separating a sequence of commands with pipeline characters "|". In a chained pipeline, the result of each command is passed as the last argument to the following command. The output of the final command in the pipeline is the value of the pipeline. +A pipeline may be *chained* by separating a sequence of commands with pipeline characters (`|`). In a chained pipeline, the result of each command is passed as the last argument to the following command. The output of the final command in the pipeline is the value of the pipeline. diff --git a/content/en/quick-reference/glossary/publish.md b/content/en/quick-reference/glossary/publish.md index 1a7a491af..743e87a3e 100644 --- a/content/en/quick-reference/glossary/publish.md +++ b/content/en/quick-reference/glossary/publish.md @@ -2,4 +2,4 @@ title: publish --- -See [build](g). +See [_build_](g). diff --git a/content/en/quick-reference/glossary/raw-string-literal.md b/content/en/quick-reference/glossary/raw-string-literal.md index 76e0d418c..7465c6837 100644 --- a/content/en/quick-reference/glossary/raw-string-literal.md +++ b/content/en/quick-reference/glossary/raw-string-literal.md @@ -1,5 +1,6 @@ --- title: raw string literal +reference: https://go.dev/ref/spec#String_literals --- A _raw string literal_ is a character sequences between backticks, as in \`bar\`. Within the backticks, any character may appear except a backtick. Backslashes have no special meaning and the string may contain newlines. Carriage return characters (`\r`) inside raw string literals are discarded from the raw string value. diff --git a/content/en/quick-reference/glossary/regular-page.md b/content/en/quick-reference/glossary/regular-page.md index 265a9cbc0..084408e57 100644 --- a/content/en/quick-reference/glossary/regular-page.md +++ b/content/en/quick-reference/glossary/regular-page.md @@ -2,4 +2,4 @@ title: regular page --- -Content with the "page" [page kind](g). See also [section page](g). +A _regular page_ is a page with the "page" [_page kind_](g). See also [_section page_](g). diff --git a/content/en/quick-reference/glossary/relative-permalink.md b/content/en/quick-reference/glossary/relative-permalink.md index 73d676f1b..a272133a3 100644 --- a/content/en/quick-reference/glossary/relative-permalink.md +++ b/content/en/quick-reference/glossary/relative-permalink.md @@ -2,4 +2,4 @@ title: relative permalink --- -The host-relative URL of a published resource or a rendered page. +A _relative permalink_ is the host-relative URL of a published resource or a rendered page. diff --git a/content/en/quick-reference/glossary/remote-resource.md b/content/en/quick-reference/glossary/remote-resource.md index d0d00eae5..163749763 100644 --- a/content/en/quick-reference/glossary/remote-resource.md +++ b/content/en/quick-reference/glossary/remote-resource.md @@ -2,4 +2,4 @@ title: remote resource --- -A file on a remote server, accessible via HTTP or HTTPS with the [`resources.GetRemote`](/functions/resources/getremote) function. +A _remote resource_ is a file on a remote server, accessible via HTTP or HTTPS. diff --git a/content/en/quick-reference/glossary/render-hook.md b/content/en/quick-reference/glossary/render-hook.md index 28985754b..2cdb98e05 100644 --- a/content/en/quick-reference/glossary/render-hook.md +++ b/content/en/quick-reference/glossary/render-hook.md @@ -3,4 +3,4 @@ title: render hook reference: /render-hooks --- -A [template](g) that overrides standard Markdown rendering. +A _render hook_ is a [_template_](g) that overrides standard Markdown rendering. diff --git a/content/en/quick-reference/glossary/resource-type.md b/content/en/quick-reference/glossary/resource-type.md index d2543dd04..64d9c27ab 100644 --- a/content/en/quick-reference/glossary/resource-type.md +++ b/content/en/quick-reference/glossary/resource-type.md @@ -2,7 +2,7 @@ title: resource type --- -The main type of a resource's [media type]. Content files such as Markdown, HTML, AsciiDoc, Pandoc, reStructuredText, and Emacs Org Mode have resource type `page`. Other resource types include `image`, `video`, etc. Retrieve the resource type using the [`ResourceType`] method on a `Resource` object. +A _resource type_ is the main type of a resource's [media type]. Content files such as Markdown, HTML, AsciiDoc, Pandoc, reStructuredText, and Emacs Org Mode have resource type `page`. Other resource types include `image`, `video`, etc. Retrieve the resource type using the [`ResourceType`] method on a `Resource` object. [media type]: /methods/resource/mediatype/ [`ResourceType`]: /methods/resource/resourcetype/ diff --git a/content/en/quick-reference/glossary/resource.md b/content/en/quick-reference/glossary/resource.md index 6de626a4e..bd3a9d10d 100644 --- a/content/en/quick-reference/glossary/resource.md +++ b/content/en/quick-reference/glossary/resource.md @@ -2,6 +2,6 @@ title: resource --- -Any file consumed by the build process to augment or generate content, structure, behavior, or presentation. For example: images, videos, content snippets, CSS, Sass, JavaScript, and data. +A _resource_ is any file consumed by the build process to augment or generate content, structure, behavior, or presentation. For example: images, videos, content snippets, CSS, Sass, JavaScript, and data. -Hugo supports three types of resources: [global resources](g), [page resources](g), and [remote resources](g). +Hugo supports three types of resources: [_global resources_](g), [_page resources_](g), and [_remote resources_](g). diff --git a/content/en/quick-reference/glossary/scalar.md b/content/en/quick-reference/glossary/scalar.md index d1e3cd26c..63ae27d3f 100644 --- a/content/en/quick-reference/glossary/scalar.md +++ b/content/en/quick-reference/glossary/scalar.md @@ -2,4 +2,4 @@ title: scalar --- -A _scalar_ is a single value, one of [string](g), [integer](g), [floating point](g), or [boolean](g). +A _scalar_ is a single value, one of [_string_](g), [_integer_](g), [floating point](g), or [_boolean_](g). diff --git a/content/en/quick-reference/glossary/scope.md b/content/en/quick-reference/glossary/scope.md index 36a59c14a..5a13312a6 100644 --- a/content/en/quick-reference/glossary/scope.md +++ b/content/en/quick-reference/glossary/scope.md @@ -2,4 +2,4 @@ title: scope --- -The term _scope_ refers to the specific region of code where a [_variable_](g) or [_object_](g) is accessible. For example, a variable initialized in one template is not available within another. +The term _scope_ refers to the specific region of code where a [_variable_](g) or [_object_](g) is accessible. For example, a variable initialized in one [template](g) is not available within another. diff --git a/content/en/quick-reference/glossary/scratch-pad.md b/content/en/quick-reference/glossary/scratch-pad.md index fe1fc65a9..f94d4fd5b 100644 --- a/content/en/quick-reference/glossary/scratch-pad.md +++ b/content/en/quick-reference/glossary/scratch-pad.md @@ -2,7 +2,7 @@ title: scratch pad --- -Conceptually, a [map](g) with [methods](g) to set, get, update, and delete values. Attach the data structure to a `Page` or `Site` object using the [`Store`] method, or create a locally scoped scratch pad using the [`newScratch`] function. +Conceptually, a _scratch pad_ is a [_map_](g) with [_methods_](g) to set, get, update, and delete values. Attach the data structure to a `Page` or `Site` object using the [`Store`] method, or create a locally scoped scratch pad using the [`newScratch`] function. [`Store`]: /methods/page/store/ [`newScratch`]: /functions/collections/newscratch/ diff --git a/content/en/quick-reference/glossary/section-page.md b/content/en/quick-reference/glossary/section-page.md index 060527015..fd84ed5f2 100644 --- a/content/en/quick-reference/glossary/section-page.md +++ b/content/en/quick-reference/glossary/section-page.md @@ -2,4 +2,4 @@ title: section page --- -Content with the "section" [page kind](g). Typically a listing of [regular pages](g) and/or other section pages within the current [section](g). +A _section page_ is a page with the "section" [_page kind_](g). Typically a listing of [_regular pages_](g) and/or other section pages within the current [_section_](g). diff --git a/content/en/quick-reference/glossary/segment.md b/content/en/quick-reference/glossary/segment.md index 745e196de..5851a8825 100644 --- a/content/en/quick-reference/glossary/segment.md +++ b/content/en/quick-reference/glossary/segment.md @@ -2,4 +2,4 @@ title: segment --- -A _segment_ is a subset of a site, filtered by [_logical path_](g), language, [_page kind_](g), and [_output format_](g). +A _segment_ is a subset of a site, filtered by [_logical path_](g), language, [_page kind_](g), or [_output format_](g). diff --git a/content/en/quick-reference/glossary/slice.md b/content/en/quick-reference/glossary/slice.md index fa6bc3cc0..5d83bed6b 100644 --- a/content/en/quick-reference/glossary/slice.md +++ b/content/en/quick-reference/glossary/slice.md @@ -1,5 +1,6 @@ --- title: slice +reference: https://go.dev/ref/spec#Slice_types --- -A numbered sequence of elements. Unlike Go's [array](g) data type, slices are dynamically sized. [Elements](g) within a slice can be [scalars](g), [arrays](g), [maps](g), pages, or other slices. See the [Go documentation](https://go.dev/ref/spec#Slice_types) for details. +A _slice_ is a numbered sequence of elements. Unlike Go's [_array_](g) data type, slices are dynamically sized. [_Elements_](g) within a slice can be [_scalars_](g), [_arrays_](g), [_maps_](g), pages, or other slices. diff --git a/content/en/quick-reference/glossary/string.md b/content/en/quick-reference/glossary/string.md index daa3a4d9d..54ed4c1d1 100644 --- a/content/en/quick-reference/glossary/string.md +++ b/content/en/quick-reference/glossary/string.md @@ -2,4 +2,4 @@ title: string --- -A sequence of bytes. For example, `"What is 6 times 7?"`. +A _string_ is a sequence of bytes. For example, `"What is 6 times 7?"`. diff --git a/content/en/quick-reference/glossary/taxonomic-weight.md b/content/en/quick-reference/glossary/taxonomic-weight.md index c828c7fd3..682bc056c 100644 --- a/content/en/quick-reference/glossary/taxonomic-weight.md +++ b/content/en/quick-reference/glossary/taxonomic-weight.md @@ -3,4 +3,4 @@ title: taxonomic weight reference: content-management/taxonomies/#order-taxonomies --- -Defined in front matter and unique to each taxonomy, this [weight](g) determines the sort order of page collections contained within a [`Taxonomy`](g) object. +Defined in front matter and unique to each taxonomy, a _taxonomic weight_ is a [_weight_](g) that determines the sort order of page collections contained within a [`Taxonomy`](g) object. diff --git a/content/en/quick-reference/glossary/taxonomy-object.md b/content/en/quick-reference/glossary/taxonomy-object.md index 31315b988..590490377 100644 --- a/content/en/quick-reference/glossary/taxonomy-object.md +++ b/content/en/quick-reference/glossary/taxonomy-object.md @@ -2,4 +2,4 @@ title: taxonomy object --- -A [map](g) of [terms](g) and the [weighted pages](g) associated with each term. +A _taxonomy object_ is a [_map_](g) of [_terms_](g) and the [weighted pages](g) associated with each term. diff --git a/content/en/quick-reference/glossary/taxonomy-page.md b/content/en/quick-reference/glossary/taxonomy-page.md index bf1b4aafb..6b62f0912 100644 --- a/content/en/quick-reference/glossary/taxonomy-page.md +++ b/content/en/quick-reference/glossary/taxonomy-page.md @@ -2,4 +2,4 @@ title: taxonomy page --- -Content with the "taxonomy" [page kind](g). Typically a listing of [terms](g) within a given [taxonomy](g). +A _taxonomy page_ is a page with the "taxonomy" [_page kind_](g). Typically a listing of [_terms_](g) within a given [_taxonomy_](g). diff --git a/content/en/quick-reference/glossary/taxonomy.md b/content/en/quick-reference/glossary/taxonomy.md index 4037b4b29..ce35a634c 100644 --- a/content/en/quick-reference/glossary/taxonomy.md +++ b/content/en/quick-reference/glossary/taxonomy.md @@ -2,5 +2,4 @@ title: taxonomy reference: /content-management/taxonomies --- - -A group of related [terms](g) used to classify content. For example, a "colors" taxonomy might include the terms "red", "green", and "blue". +A _taxonomy_ is a group of related [_terms_](g) used to classify content. For example, a "colors" taxonomy might include the terms "red", "green", and "blue". diff --git a/content/en/quick-reference/glossary/template-action.md b/content/en/quick-reference/glossary/template-action.md index ac5fad85e..d9a6c635c 100644 --- a/content/en/quick-reference/glossary/template-action.md +++ b/content/en/quick-reference/glossary/template-action.md @@ -1,5 +1,6 @@ --- title: template action +reference: https://pkg.go.dev/text/template#hdr-Actions --- -A data evaluation or control structure within a [template](g), delimited by "{{" and "}}". See the [Go documentation](https://pkg.go.dev/text/template#hdr-Actions) for details. +A data evaluation or control structure within a [_template_](g), delimited by "{{" and "}}". diff --git a/content/en/quick-reference/glossary/template.md b/content/en/quick-reference/glossary/template.md index b8b046092..d442c0a22 100644 --- a/content/en/quick-reference/glossary/template.md +++ b/content/en/quick-reference/glossary/template.md @@ -1,5 +1,6 @@ --- title: template +reference: /templates --- -A file with [template actions](g), located within the `layouts` directory of a project, theme, or module. See [details](/templates/). +A _template_ is a file with [_template actions_](g), located within the `layouts` directory of a project, theme, or module. diff --git a/content/en/quick-reference/glossary/term-page.md b/content/en/quick-reference/glossary/term-page.md index ed9bfec0d..78eabc11f 100644 --- a/content/en/quick-reference/glossary/term-page.md +++ b/content/en/quick-reference/glossary/term-page.md @@ -2,4 +2,4 @@ title: term page --- -Content with the "term" [page kind](g). Typically a listing of [regular pages](g) and [section pages](g) with a given [term](g). +A _term page_ is a page with the "term" [_page kind_](g). Typically a listing of [_regular pages_](g) and [_section pages_](g) with a given [_term_](g). diff --git a/content/en/quick-reference/glossary/term.md b/content/en/quick-reference/glossary/term.md index d04f58b80..cafd92585 100644 --- a/content/en/quick-reference/glossary/term.md +++ b/content/en/quick-reference/glossary/term.md @@ -1,5 +1,6 @@ --- title: term +reference: /content-management/taxonomies --- -A member of a [taxonomy](g), used to classify content. See [details](/content-management/taxonomies/). +A _term_ is a member of a [_taxonomy_](g), used to classify content. diff --git a/content/en/quick-reference/glossary/theme.md b/content/en/quick-reference/glossary/theme.md index e5c6ee951..84b9c684a 100644 --- a/content/en/quick-reference/glossary/theme.md +++ b/content/en/quick-reference/glossary/theme.md @@ -2,4 +2,4 @@ title: theme --- -A packaged combination of [archetypes](g), assets, content, data, [templates](g), translation tables, static files, or configuration settings. A theme may serve as the basis for a new site, or to augment an existing site. See also [module](g). +A _theme_ is a packaged combination of [_archetypes_](g), assets, content, data, [_templates_](g), translation tables, static files, or configuration settings. A theme may serve as the basis for a new site, or to augment an existing site. diff --git a/content/en/quick-reference/glossary/token.md b/content/en/quick-reference/glossary/token.md index 0a5ac22f6..f8c12d570 100644 --- a/content/en/quick-reference/glossary/token.md +++ b/content/en/quick-reference/glossary/token.md @@ -2,4 +2,4 @@ title: token --- -An identifier within a format string, beginning with a colon and replaced with a value when rendered. For example, use tokens in format strings for both [permalinks](/content-management/urls/#permalinks) and [dates](/functions/time/format/#localization). +A _token_ is an identifier within a format string, beginning with a colon and replaced with a value when rendered. For example, use tokens in format strings for both [permalinks](/content-management/urls/#permalinks) and [dates](/functions/time/format/#localization). diff --git a/content/en/quick-reference/glossary/unmarshal.md b/content/en/quick-reference/glossary/unmarshal.md index 15db995f0..0ed548a21 100644 --- a/content/en/quick-reference/glossary/unmarshal.md +++ b/content/en/quick-reference/glossary/unmarshal.md @@ -1,5 +1,6 @@ --- title: unmarshal +reference: /functions/transform/unmarshal/ --- -To transform a serialized object into a data structure. For example, transforming a JSON file into a [map](g) that you can access within a template. See [marshal](g). +To _unmarshal_ is to transform a serialized object into a data structure. For example, transforming a JSON file into a [_map_](g) that you can access within a template. diff --git a/content/en/quick-reference/glossary/variable.md b/content/en/quick-reference/glossary/variable.md index 5a80f4e0a..f8139a41f 100644 --- a/content/en/quick-reference/glossary/variable.md +++ b/content/en/quick-reference/glossary/variable.md @@ -2,4 +2,4 @@ title: variable --- -A user-defined [identifier](g) prepended with a `$` symbol, representing a value of any data type, initialized or assigned within a [template action](g). For example, `$foo` and `$bar` are variables. +A _variable_ is a user-defined [_identifier_](g) prepended with a `$` symbol, representing a value of any data type, initialized or assigned within a [_template action_](g). For example, `$foo` and `$bar` are variables. diff --git a/content/en/quick-reference/glossary/walk.md b/content/en/quick-reference/glossary/walk.md index 811495187..09f9ecb20 100644 --- a/content/en/quick-reference/glossary/walk.md +++ b/content/en/quick-reference/glossary/walk.md @@ -2,4 +2,4 @@ title: walk --- -To recursively traverse a nested data structure. For example, rendering a multilevel menu. +To _walk_ is to recursively traverse a nested data structure. For example, rendering a multilevel menu. diff --git a/content/en/quick-reference/glossary/weight.md b/content/en/quick-reference/glossary/weight.md index 5c04e6ef7..deb9e6dc0 100644 --- a/content/en/quick-reference/glossary/weight.md +++ b/content/en/quick-reference/glossary/weight.md @@ -2,4 +2,4 @@ title: weight --- -Used to position an element within a collection sorted by weight. Assign weights using non-zero integers. Lighter items float to the top, while heavier items sink to the bottom. Unweighted or zero-weighted elements are placed at the end of the collection. Weights are typically assigned to pages, menu entries, languages, and output formats. +A _weight_ is a numeric value used to position an element within a sorted [collection](g). Assign weights using non-zero integers. Lighter items float to the top, while heavier items sink to the bottom. Unweighted or zero-weighted elements are placed at the end of the collection. Weights are typically assigned to pages, menu entries, languages, and output formats. diff --git a/content/en/quick-reference/glossary/weighted-page.md b/content/en/quick-reference/glossary/weighted-page.md index 88ec816da..e6cf8d6db 100644 --- a/content/en/quick-reference/glossary/weighted-page.md +++ b/content/en/quick-reference/glossary/weighted-page.md @@ -2,4 +2,4 @@ title: weighted page --- -Contained within a [`Taxonomy`](g) object, a weighted page is a [map](g) with two elements: a `Page` object, and its [taxonomic weight](g) as defined in front matter. Access the elements using the `Page` and `Weight` keys. +Contained within a [_taxonomy object_](g), a _weighted page_ is a [_map_](g) with two [_elements_](g): a `Page` object, and its [_taxonomic weight_](g) as defined in front matter. Access the elements using the `Page` and `Weight` keys. From 4591058f5753b83bc38cb55a6a635e7cf98f9efe Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 2 Feb 2025 16:03:53 -0800 Subject: [PATCH 36/68] Miscellaneous edits Co-authored-by: Salim B --- content/en/hugo-modules/use-modules.md | 2 +- content/en/methods/page/Ancestors.md | 2 +- content/en/methods/page/CurrentSection.md | 2 +- content/en/methods/page/FirstSection.md | 2 +- content/en/methods/page/InSection.md | 2 +- content/en/methods/page/IsAncestor.md | 2 +- content/en/methods/page/IsDescendant.md | 2 +- content/en/methods/page/Parent.md | 2 +- content/en/methods/page/Sections.md | 2 +- content/en/methods/page/_common/definition-of-section.md | 5 ----- content/en/quick-reference/glossary/context.md | 2 +- content/en/quick-reference/glossary/headless-bundle.md | 2 +- content/en/quick-reference/glossary/leaf-bundle.md | 2 +- content/en/quick-reference/glossary/section.md | 2 +- 14 files changed, 13 insertions(+), 18 deletions(-) delete mode 100644 content/en/methods/page/_common/definition-of-section.md diff --git a/content/en/hugo-modules/use-modules.md b/content/en/hugo-modules/use-modules.md index 6af96c992..f29d4b198 100644 --- a/content/en/hugo-modules/use-modules.md +++ b/content/en/hugo-modules/use-modules.md @@ -148,7 +148,7 @@ use . use ../gohugoioTheme ``` -Using the `use` directive, list all the modules you want to work on, pointing to its relative location. As in the example above, it's recommended to always include the main project (the ".") in the list. +Using the `use` directive, list all the modules you want to work on, pointing to its relative location. As in the example above, it's recommended to always include the main project (the `.`) in the list. With that you can start the Hugo server with that workspace enabled: diff --git a/content/en/methods/page/Ancestors.md b/content/en/methods/page/Ancestors.md index da5cf2ca3..4fb00fc06 100644 --- a/content/en/methods/page/Ancestors.md +++ b/content/en/methods/page/Ancestors.md @@ -16,7 +16,7 @@ action: signatures: [PAGE.Ancestors] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} With this content structure: diff --git a/content/en/methods/page/CurrentSection.md b/content/en/methods/page/CurrentSection.md index 17ec652c1..1684ee483 100644 --- a/content/en/methods/page/CurrentSection.md +++ b/content/en/methods/page/CurrentSection.md @@ -16,7 +16,7 @@ action: signatures: [PAGE.CurrentSection] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} {{% note %}} The current section of a [section page](g), [taxonomy page](g), [term page](g), or the home page, is itself. diff --git a/content/en/methods/page/FirstSection.md b/content/en/methods/page/FirstSection.md index b3ae4c04a..29fbdc841 100644 --- a/content/en/methods/page/FirstSection.md +++ b/content/en/methods/page/FirstSection.md @@ -16,7 +16,7 @@ action: signatures: [PAGE.FirstSection] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} {{% note %}} When called on the home page, the `FirstSection` method returns the `Page` object of the home page itself. diff --git a/content/en/methods/page/InSection.md b/content/en/methods/page/InSection.md index 75ceb2239..904f6ce75 100644 --- a/content/en/methods/page/InSection.md +++ b/content/en/methods/page/InSection.md @@ -19,7 +19,7 @@ toc: true The `InSection` method on a `Page` object reports whether the given page is in the given section. Note that the method returns `true` when comparing a page to a sibling. -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} With this content structure: diff --git a/content/en/methods/page/IsAncestor.md b/content/en/methods/page/IsAncestor.md index 17764fbe7..2613a2875 100644 --- a/content/en/methods/page/IsAncestor.md +++ b/content/en/methods/page/IsAncestor.md @@ -17,7 +17,7 @@ action: toc: true --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} With this content structure: diff --git a/content/en/methods/page/IsDescendant.md b/content/en/methods/page/IsDescendant.md index f2fc7e339..4ef7c6598 100644 --- a/content/en/methods/page/IsDescendant.md +++ b/content/en/methods/page/IsDescendant.md @@ -16,7 +16,7 @@ action: signatures: [PAGE1.IsDescendant PAGE2] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} With this content structure: diff --git a/content/en/methods/page/Parent.md b/content/en/methods/page/Parent.md index db01eb589..4c182f8e1 100644 --- a/content/en/methods/page/Parent.md +++ b/content/en/methods/page/Parent.md @@ -16,7 +16,7 @@ action: signatures: [PAGE.Parent] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} {{% note %}} The parent section of a regular page is the [current section]. diff --git a/content/en/methods/page/Sections.md b/content/en/methods/page/Sections.md index 4cce1a4fb..921e4eb4e 100644 --- a/content/en/methods/page/Sections.md +++ b/content/en/methods/page/Sections.md @@ -16,7 +16,7 @@ action: signatures: [PAGE.Sections] --- -{{% include "methods/page/_common/definition-of-section.md" %}} +{{% glossary-term section %}} With this content structure: diff --git a/content/en/methods/page/_common/definition-of-section.md b/content/en/methods/page/_common/definition-of-section.md deleted file mode 100644 index 4a2e36ff3..000000000 --- a/content/en/methods/page/_common/definition-of-section.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -_comment: Do not remove front matter. ---- - -A _section_ is a top-level content directory, or any content directory with an `_index.md` file. diff --git a/content/en/quick-reference/glossary/context.md b/content/en/quick-reference/glossary/context.md index ec39216c4..75afc709d 100644 --- a/content/en/quick-reference/glossary/context.md +++ b/content/en/quick-reference/glossary/context.md @@ -3,4 +3,4 @@ title: context reference: /templates/introduction/#context --- -Represented by a dot "." within a [_template action_](g), _context_ is the current location in a data structure. For example, while iterating over a [_collection_](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. +Represented by a dot (`.`) within a [_template action_](g), _context_ is the current location in a data structure. For example, while iterating over a [_collection_](g) of pages, the context within each iteration is the page's data structure. The context received by each template depends on template type and/or how it was called. diff --git a/content/en/quick-reference/glossary/headless-bundle.md b/content/en/quick-reference/glossary/headless-bundle.md index 229d30894..ac7bf79c8 100644 --- a/content/en/quick-reference/glossary/headless-bundle.md +++ b/content/en/quick-reference/glossary/headless-bundle.md @@ -3,4 +3,4 @@ title: headless bundle reference: /content-management/build-options/ --- -A _headless bundle_ is an unpublished leaf or branch bundle whose content and resources you can include in other pages. +A _headless bundle_ is an unpublished [_leaf bundle_](g) or an unpublished [_branch bundle_](g) whose content and resources you can include in other pages. diff --git a/content/en/quick-reference/glossary/leaf-bundle.md b/content/en/quick-reference/glossary/leaf-bundle.md index a8eb03433..aa41384ee 100644 --- a/content/en/quick-reference/glossary/leaf-bundle.md +++ b/content/en/quick-reference/glossary/leaf-bundle.md @@ -3,4 +3,4 @@ title: leaf bundle reference: /content-management/page-bundles/ --- -A _leaf bundle_ is a directory that contains an `index.md` file and zero or more [_resources_](g). Analogous to a physical leaf, a leaf bundle is at the end of a branch. It has no descendants. +A _leaf bundle_ is a directory that contains an `index.md` file and zero or more [_resources_](g). Analogous to a physical leaf, a leaf bundle is at the end of a [_branch bundle_](g). It has no descendants. diff --git a/content/en/quick-reference/glossary/section.md b/content/en/quick-reference/glossary/section.md index 4ab7c976e..45d1203e0 100644 --- a/content/en/quick-reference/glossary/section.md +++ b/content/en/quick-reference/glossary/section.md @@ -2,4 +2,4 @@ title: section --- -A _section_ is a top-level content directory or any content directory containing an `_index.md` file. A section is also known as a [_branch bundle_](g). +A _section_ is a top-level content directory or any content directory containing an `_index.md` file. From 9e4d73e871a9f419da97bc7e0d9e52afa3127386 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Sun, 2 Feb 2025 19:38:42 -0800 Subject: [PATCH 37/68] Include sections in quick-reference page collection --- content/en/quick-reference/_index.md | 4 ++-- layouts/partials/pagelayout.html | 36 ++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 layouts/partials/pagelayout.html diff --git a/content/en/quick-reference/_index.md b/content/en/quick-reference/_index.md index b5f434e2d..83adb4029 100644 --- a/content/en/quick-reference/_index.md +++ b/content/en/quick-reference/_index.md @@ -1,7 +1,7 @@ --- title: Quick reference guides linkTitle: In this section -description: Quick reference guides to Hugo's features, functions, and methods. +description: Use these quick reference guides for quick access to key information. categories: [] keywords: [] menu: @@ -13,4 +13,4 @@ weight: 10 showSectionMenu: false --- -Quick reference guides to Hugo's features, functions, and methods. +{{% param description %}} diff --git a/layouts/partials/pagelayout.html b/layouts/partials/pagelayout.html new file mode 100644 index 000000000..6ff7df0ab --- /dev/null +++ b/layouts/partials/pagelayout.html @@ -0,0 +1,36 @@ +{{ $section_to_display := .section_to_display }} +
+ +
+
+ {{ partial "nav-links-docs.html" .context }} +
+ +
+ + +
+ {{ $interior_classes := .context.Site.Params.flex_box_interior_classes }} +
+ {{ $pages := $section_to_display }} + {{ if in (slice "functions" "methods" "quick-reference") $.context.Type }} + {{ $pages = $.context.Pages }} + {{ end }} + {{ range $pages }} + {{ partial "boxes-section-summaries.html" (dict "context" . "classes" $interior_classes "fullcontent" true) }} + {{ end }} +
+
+ +
+ +
+ +
From a0012fccef9ffadfe0aba6bdef8e675f79fa2c36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Tue, 4 Feb 2025 10:17:16 +0100 Subject: [PATCH 38/68] netlify: Hugo 0.143.1 --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index ff01b4131..d9225229b 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ command = "hugo --gc --minify" [build.environment] - HUGO_VERSION = "0.143.0" + HUGO_VERSION = "0.143.1" [context.production.environment] HUGO_ENV = "production" From c3290b876531fbb2cad5ebc6af9aba7a7d0636f6 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Tue, 4 Feb 2025 07:13:22 -0800 Subject: [PATCH 39/68] Changes related to release of v0.144.0 --- content/en/troubleshooting/deprecation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/en/troubleshooting/deprecation.md b/content/en/troubleshooting/deprecation.md index 81f2724a3..9a0c7ce9e 100644 --- a/content/en/troubleshooting/deprecation.md +++ b/content/en/troubleshooting/deprecation.md @@ -29,8 +29,8 @@ Common [reasons for deprecation]: After the project team deprecates something in code, Hugo will: -1. Log an INFO message for 6 minor releases[^1] -1. Log a WARN message for another 6 minor releases +1. Log an INFO message for 3 minor releases[^1] +1. Log a WARN message for another 12 minor releases 1. Log an ERROR message and fail the build thereafter To see the INFO messages, you must use the `--logLevel` command line flag: From aedcb444c3ab8c11bf346aeeda3ef09f0f3045be Mon Sep 17 00:00:00 2001 From: Nicholas Christoffersen Date: Fri, 7 Feb 2025 14:03:56 -0700 Subject: [PATCH 40/68] Fix typo --- content/en/content-management/multilingual.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/en/content-management/multilingual.md b/content/en/content-management/multilingual.md index b37fbf94a..8233185d5 100644 --- a/content/en/content-management/multilingual.md +++ b/content/en/content-management/multilingual.md @@ -140,7 +140,7 @@ When building the English site: {{ site.Params.subtitle }} --> Reference, Tutorials, and Explanations ``` -When building the English site: +When building the German site: ```go-html-template {{ site.Params.color }} --> blue From 1c46f1864442c99d1d83d67543da7a5cf4299314 Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 10 Feb 2025 11:28:51 -0800 Subject: [PATCH 41/68] Update deprecation notes --- content/en/contribute/documentation.md | 6 +++--- content/en/functions/crypto/FNV32a.md | 2 +- content/en/functions/data/GetCSV.md | 2 +- content/en/functions/data/GetJSON.md | 2 +- content/en/functions/resources/Babel.md | 2 +- content/en/functions/resources/PostCSS.md | 2 +- content/en/functions/resources/ToCSS.md | 2 +- content/en/methods/page/Scratch.md | 2 +- content/en/methods/pager/PageSize.md | 2 +- content/en/methods/resource/Err.md | 2 +- content/en/methods/shortcode/Scratch.md | 2 +- content/en/methods/site/DisqusShortname.md | 2 +- content/en/methods/site/GoogleAnalytics.md | 2 +- content/en/methods/site/IsDevelopment.md | 2 +- content/en/methods/site/IsMultiLingual.md | 2 +- content/en/methods/site/IsServer.md | 2 +- content/en/methods/site/LastChange.md | 2 +- content/en/shortcodes/comment.md | 2 +- content/en/shortcodes/gist.md | 2 +- content/en/troubleshooting/deprecation.md | 6 ++++++ 20 files changed, 27 insertions(+), 21 deletions(-) diff --git a/content/en/contribute/documentation.md b/content/en/contribute/documentation.md index 9316378d2..285985b3d 100644 --- a/content/en/contribute/documentation.md +++ b/content/en/contribute/documentation.md @@ -400,13 +400,13 @@ Use [`hugo.IsServer`] instead. {{%/* /deprecated-in */%}} {{< /code >}} -When deprecating a function or method, add this to front matter: +When deprecating a function or method, add something like this to front matter: {{< code-toggle file=content/something/foo.md fm=true >}} -expiryDate: 2024-10-30 +expiryDate: 2024-10-30 # deprecated 2022-10-30 in v0.123.0 {{< /code-toggle >}} -Set the `expiryDate` to one year from the date of deprecation, and add a brief front matter comment to explain the setting. +Set the `expiryDate` to two years from the date of deprecation, and add a brief front matter comment to explain the setting. ## GitHub workflow diff --git a/content/en/functions/crypto/FNV32a.md b/content/en/functions/crypto/FNV32a.md index 944daee3b..0255349a3 100644 --- a/content/en/functions/crypto/FNV32a.md +++ b/content/en/functions/crypto/FNV32a.md @@ -8,7 +8,7 @@ action: related: [] returnType: int signatures: [crypto.FNV32a STRING] -expiryDate: 2025-07-31 # deprecated 2024-07-31 +expiryDate: 2026-07-31 # deprecated 2024-07-31 in v0.129.0 --- {{% deprecated-in 0.129.0 %}} diff --git a/content/en/functions/data/GetCSV.md b/content/en/functions/data/GetCSV.md index 737c4847d..be848bce5 100644 --- a/content/en/functions/data/GetCSV.md +++ b/content/en/functions/data/GetCSV.md @@ -9,7 +9,7 @@ action: returnType: '[][]string' signatures: ['data.GetCSV SEPARATOR INPUT... [OPTIONS]'] toc: true -expiryDate: 2025-02-19 # deprecated 2024-02-19 +expiryDate: 2026-02-19 # deprecated 2024-02-19 in v0.123.0 --- {{% deprecated-in 0.123.0 %}} diff --git a/content/en/functions/data/GetJSON.md b/content/en/functions/data/GetJSON.md index 71311bc6b..1b42cbf16 100644 --- a/content/en/functions/data/GetJSON.md +++ b/content/en/functions/data/GetJSON.md @@ -9,7 +9,7 @@ action: returnType: any signatures: ['data.GetJSON INPUT... [OPTIONS]'] toc: true -expiryDate: 2025-02-19 # deprecated 2024-02-19 +expiryDate: 2026-02-19 # deprecated 2024-02-19 in v0.123.0 --- {{% deprecated-in 0.123.0 %}} diff --git a/content/en/functions/resources/Babel.md b/content/en/functions/resources/Babel.md index 29c88a91c..757aff780 100644 --- a/content/en/functions/resources/Babel.md +++ b/content/en/functions/resources/Babel.md @@ -7,7 +7,7 @@ action: related: [] returnType: resource.Resource signatures: ['resources.Babel [OPTIONS] RESOURCE'] -expiryDate: 2025-06-24 # deprecated 2024-06-24 +expiryDate: 2026-06-24 # deprecated 2024-06-24 in v0.128.0 --- {{% deprecated-in 0.128.0 %}} diff --git a/content/en/functions/resources/PostCSS.md b/content/en/functions/resources/PostCSS.md index 84bafaabd..5d3f85a30 100644 --- a/content/en/functions/resources/PostCSS.md +++ b/content/en/functions/resources/PostCSS.md @@ -7,7 +7,7 @@ action: related: [] returnType: resource.Resource signatures: ['resources.PostCSS [OPTIONS] RESOURCE'] -expiryDate: 2025-06-24 # deprecated 2024-06-24 +expiryDate: 2026-06-24 # deprecated 2024-06-24 in v0.128.0 --- {{% deprecated-in 0.128.0 %}} diff --git a/content/en/functions/resources/ToCSS.md b/content/en/functions/resources/ToCSS.md index ea133367a..54c34a6b0 100644 --- a/content/en/functions/resources/ToCSS.md +++ b/content/en/functions/resources/ToCSS.md @@ -7,7 +7,7 @@ action: related: [] returnType: resource.Resource signatures: ['resources.ToCSS [OPTIONS] RESOURCE'] -expiryDate: 2025-06-24 # deprecated 2024-06-24 +expiryDate: 2026-06-24 # deprecated 2024-06-24 in v0.128.0 --- {{% deprecated-in 0.128.0 %}} diff --git a/content/en/methods/page/Scratch.md b/content/en/methods/page/Scratch.md index da6faa25a..436005a94 100644 --- a/content/en/methods/page/Scratch.md +++ b/content/en/methods/page/Scratch.md @@ -7,7 +7,7 @@ action: related: [] returnType: maps.Scratch signatures: [PAGE.Scratch] -expiryDate: 2025-11-18 # deprecated 2024-11-18 +expiryDate: 2026-11-18 # deprecated 2024-11-18 (soft) --- {{% deprecated-in 0.138.0 %}} diff --git a/content/en/methods/pager/PageSize.md b/content/en/methods/pager/PageSize.md index 29e755429..d69c31207 100644 --- a/content/en/methods/pager/PageSize.md +++ b/content/en/methods/pager/PageSize.md @@ -7,7 +7,7 @@ action: related: [] returnType: int signatures: [PAGER.PageSize] -expiryDate: 2025-06-09 # deprecated 2024-06-09 +expiryDate: 2026-06-09 # deprecated 2024-06-09 in v0.128.0 --- {{% deprecated-in 0.128.0 %}} diff --git a/content/en/methods/resource/Err.md b/content/en/methods/resource/Err.md index 776127caf..34ba6f9bc 100644 --- a/content/en/methods/resource/Err.md +++ b/content/en/methods/resource/Err.md @@ -9,7 +9,7 @@ action: - methods/resource/Data returnType: resource.resourceError signatures: [RESOURCE.Err] -expiryDate: 2026-01-16 # deprecated 2025-01-16 +expiryDate: 2027-01-16 # deprecated 2025-01-16 in v0.141.0 --- {{% deprecated-in 0.141.0 %}} diff --git a/content/en/methods/shortcode/Scratch.md b/content/en/methods/shortcode/Scratch.md index 008a13cd1..6dd882e24 100644 --- a/content/en/methods/shortcode/Scratch.md +++ b/content/en/methods/shortcode/Scratch.md @@ -7,7 +7,7 @@ action: related: [] returnType: maps.Scratch signatures: [SHORTCODE.Scratch] -expiryDate: 2025-11-18 # deprecated 2024-11-18 +expiryDate: 2026-11-18 # deprecated 2024-11-18 (soft) --- {{% deprecated-in 0.139.0 %}} diff --git a/content/en/methods/site/DisqusShortname.md b/content/en/methods/site/DisqusShortname.md index 0e900ac4e..f6fedf4e9 100644 --- a/content/en/methods/site/DisqusShortname.md +++ b/content/en/methods/site/DisqusShortname.md @@ -7,7 +7,7 @@ action: related: [] returnType: string signatures: [SITE.DisqusShortname] -expiryDate: 2024-10-30 # deprecated 2023-10-30 +expiryDate: 2025-10-30 # deprecated 2023-10-30 in v0.120.0 --- {{% deprecated-in 0.120.0 %}} diff --git a/content/en/methods/site/GoogleAnalytics.md b/content/en/methods/site/GoogleAnalytics.md index c58974452..f87e1787e 100644 --- a/content/en/methods/site/GoogleAnalytics.md +++ b/content/en/methods/site/GoogleAnalytics.md @@ -7,7 +7,7 @@ action: related: [] returnType: string signatures: [SITE.GoogleAnalytics] -expiryDate: 2024-10-30 # deprecated 2023-10-30 +expiryDate: 2025-10-30 # deprecated 2023-10-30 in v0.120.0 --- {{% deprecated-in 0.120.0 %}} diff --git a/content/en/methods/site/IsDevelopment.md b/content/en/methods/site/IsDevelopment.md index 0482df71b..51783efb9 100644 --- a/content/en/methods/site/IsDevelopment.md +++ b/content/en/methods/site/IsDevelopment.md @@ -7,7 +7,7 @@ action: related: [] returnType: bool signatures: [SITE.IsDevelopment] -expiryDate: 2024-10-30 # deprecated 2023-10-30 +expiryDate: 2025-10-30 # deprecated 2023-10-30 in v0.120.0 --- {{% deprecated-in 0.120.0 %}} diff --git a/content/en/methods/site/IsMultiLingual.md b/content/en/methods/site/IsMultiLingual.md index abeb04c66..10968f14d 100644 --- a/content/en/methods/site/IsMultiLingual.md +++ b/content/en/methods/site/IsMultiLingual.md @@ -7,7 +7,7 @@ action: related: [] returnType: bool signatures: [SITE.IsMultiLingual] -expiryDate: 2025-03-16 # deprecated 2024-03-16 +expiryDate: 2026-03-16 # deprecated 2024-03-16 in 0.124.0 --- {{% deprecated-in 0.124.0 %}} diff --git a/content/en/methods/site/IsServer.md b/content/en/methods/site/IsServer.md index 2d7f8a48e..8fb5b7bf6 100644 --- a/content/en/methods/site/IsServer.md +++ b/content/en/methods/site/IsServer.md @@ -7,7 +7,7 @@ action: related: [] returnType: bool signatures: [SITE.IsServer] -expiryDate: 2024-10-30 # deprecated 2023-10-30 +expiryDate: 2025-10-30 # deprecated 2023-10-30 in v0.120.0 --- {{% deprecated-in 0.120.0 %}} diff --git a/content/en/methods/site/LastChange.md b/content/en/methods/site/LastChange.md index 42d8b0866..f6017df04 100644 --- a/content/en/methods/site/LastChange.md +++ b/content/en/methods/site/LastChange.md @@ -7,7 +7,7 @@ action: related: [] returnType: time.Time signatures: [SITE.LastChange] -expiryDate: 2025-02-19 # deprecated 2024-02-19 +expiryDate: 2026-02-19 # deprecated 2024-02-19 in v0.123.0 --- {{% deprecated-in 0.123.0 %}} diff --git a/content/en/shortcodes/comment.md b/content/en/shortcodes/comment.md index d91fa8289..1600c09d3 100755 --- a/content/en/shortcodes/comment.md +++ b/content/en/shortcodes/comment.md @@ -9,7 +9,7 @@ menu: parent: shortcodes weight: weight: -expiryDate: 2025-01-22 # Deprecated in v0.143.0. Use HTML comments instead +expiryDate: 2025-01-22 # deprecated 2025-02-01 in v0.143.0 and immediately removed from the documentation --- {{% note %}} diff --git a/content/en/shortcodes/gist.md b/content/en/shortcodes/gist.md index 7958a8f73..1c740bccb 100755 --- a/content/en/shortcodes/gist.md +++ b/content/en/shortcodes/gist.md @@ -8,7 +8,7 @@ menu: parent: shortcodes weight: weight: -expiryDate: 2027-01-31 # Deprecated in v0.143.0. Keep this around for a couple of years because it contains instructions for creating a replacement. +expiryDate: 2027-02-01 # deprecated 2025-02-01 in v0.143.0 --- {{% deprecated-in 0.143.0 %}} diff --git a/content/en/troubleshooting/deprecation.md b/content/en/troubleshooting/deprecation.md index 9a0c7ce9e..5dd9f3fa6 100644 --- a/content/en/troubleshooting/deprecation.md +++ b/content/en/troubleshooting/deprecation.md @@ -33,6 +33,12 @@ After the project team deprecates something in code, Hugo will: 1. Log a WARN message for another 12 minor releases 1. Log an ERROR message and fail the build thereafter +The project team will: + +1. On the deprecation date, update the documentation with a note describing the deprecation and any relevant alternatives. +1. Remove the code six or more minor releases after Hugo begins logging ERROR messages and failing the build. At that point, Hugo will throw an error, but the error message will no longer mention the deprecation. +1. Remove the corresponding documentation two years after the deprecation date. + To see the INFO messages, you must use the `--logLevel` command line flag: ```text From a04e96e5592ca2bfcbb05081ed7c7e29689ac2da Mon Sep 17 00:00:00 2001 From: Joe Mooring Date: Mon, 10 Feb 2025 11:35:02 -0800 Subject: [PATCH 42/68] Rewrite the css.TailwindCSS page --- content/en/functions/css/TailwindCSS.md | 133 +++++++++++++++++------- 1 file changed, 94 insertions(+), 39 deletions(-) diff --git a/content/en/functions/css/TailwindCSS.md b/content/en/functions/css/TailwindCSS.md index 5dbab6e02..752100ba5 100644 --- a/content/en/functions/css/TailwindCSS.md +++ b/content/en/functions/css/TailwindCSS.md @@ -16,16 +16,106 @@ toc: true {{< new-in 0.128.0 />}} -## Prerequisites +Use the `css.TailwindCSS` function to process your Tailwind CSS files. This function uses the Tailwind CSS CLI to: -To use this function you must install the Tailwind CSS CLI v4.0 or later. You may install the CLI as an npm package or as a standalone executable. See the [Tailwind CSS documentation] for details. +1. Scan your templates for Tailwind CSS utility class usage. +1. Compile those utility classes into standard CSS. +1. Generate an optimized CSS output file. +## Setup -```text +Step 1 +: Install the Tailwind CSS CLI v4.0 or later: + +```sh npm install --save-dev tailwindcss @tailwindcss/cli ``` -[Tailwind CSS documentation]: https://tailwindcss.com/docs/installation +The TailwindCSS CLI is also available as a [standalone executable] if you want to use it without installing Node.js. + +[standalone executable]: https://github.com/tailwindlabs/tailwindcss/releases/latest + +Step 2 +: Add this to your site configuration: + +{{< code-toggle file=hugo copy=true >}} +[[module.mounts]] +source = "assets" +target = "assets" +[[module.mounts]] +source = "hugo_stats.json" +target = "assets/notwatching/hugo_stats.json" +disableWatch = true +[build.buildStats] +enable = true +[[build.cachebusters]] +source = "assets/notwatching/hugo_stats\\.json" +target = "css" +[[build.cachebusters]] +source = "(postcss|tailwind)\\.config\\.js" +target = "css" +{{< /code-toggle >}} + + +Step 3 +: Create a CSS entry file: + +{{< code file=assets/css/main.css >}} +@import "tailwindcss"; +@source "hugo_stats.json"; +{{< /code >}} + +Tailwind CSS respects `.gitignore` files. This means that if `hugo_stats.json` is listed in your `.gitignore` file, Tailwind CSS will ignore it. To make `hugo_stats.json` available to Tailwind CSS you must explicitly source it as shown in the example above. + +Step 4 +: Create a partial template to process the CSS with the Tailwind CSS CLI: + +{{< code file=layouts/partials/css.html copy=true >}} +{{ with resources.Get "css/main.css" }} + {{ $opts := dict + "minify" hugo.IsProduction + "inlineImports" true + }} + {{ with . | css.TailwindCSS $opts }} + {{ if hugo.IsProduction }} + {{ with . | fingerprint }} + + {{ end }} + {{ else }} + + {{ end }} + {{ end }} +{{ end }} +{{< /code >}} + +Step 5 +: Call the partial template from your base template: + +{{< code file=layouts/default/baseof.html >}} + + ... + {{ partialCached "css.html" . }} + ... + +{{< /code >}} + +Step 6 +: Optionally create a `tailwind.config.js` file in the root of your project as shown below. This is necessary if you use the [Tailwind CSS IntelliSense +extension] for Visual Studio Code. + +[Tailwind CSS IntelliSense +extension]: https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss + +{{< code file=tailwind.config.js copy=true >}} +/* +This file is present to satisfy a requirement of the Tailwind CSS IntelliSense +extension for Visual Studio Code. + +https://marketplace.visualstudio.com/items?itemName=bradlc.vscode-tailwindcss + +The rest of this file is intentionally empty. +*/ +{{< /code >}} ## Options @@ -40,38 +130,3 @@ inlineImports skipInlineImportsNotFound : (`bool`) When `inlineImports` is enabled, we fail the build if an import cannot be resolved. Enable this option to allow the build to continue and leave the import statement in place. Note that the inline importer does not process URL location or imports with media queries, so those will be left as-is even without enabling this option. Default is `false`. - -## Example - -Define a [cache buster] in your site configuration: - -[cache buster]: /getting-started/configuration-build/#configure-cache-busters - -{{< code-toggle file=hugo >}} -[[build.cachebusters]] -source = 'layouts/.*' -target = 'css' -{{< /code-toggle >}} - -Process the resource: - -```go-html-template -{{ with resources.Get "css/main.css" }} - {{ $opts := dict "minify" true }} - {{ with . | css.TailwindCSS $opts }} - {{ if hugo.IsDevelopment }} - - {{ else }} - {{ with . | fingerprint }} - - {{ end }} - {{ end }} - {{ end }} -{{ end }} -``` - -The example above publishes the minified CSS file to `public/css/main.css`. - -See [this repository] for more information about the integration with Tailwind CSS v4.0. - -[this repository]: https://github.com/bep/hugo-testing-tailwindcss-v4 From b19d68ee55f2130eca79b79204b4c486053a1c77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 8 Feb 2025 16:01:09 +0100 Subject: [PATCH 43/68] Remove old theme --- .../gohugoioTheme/assets/css/_algolia.css | 11 - .../gohugoioTheme/assets/css/_animation.css | 21 - .../gohugoioTheme/assets/css/_carousel.css | 25 - .../gohugoioTheme/assets/css/_chroma.css | 65 - .../gohugoioTheme/assets/css/_code.css | 89 - .../assets/css/_color-scheme.css | 38 - .../gohugoioTheme/assets/css/_columns.css | 11 - .../assets/css/_content-tables.css | 28 - .../gohugoioTheme/assets/css/_content.css | 53 - .../assets/css/_definition-lists.css | 9 - .../assets/css/_documentation-styles.css | 54 - .../gohugoioTheme/assets/css/_fluid-type.css | 10 - .../gohugoioTheme/assets/css/_font-family.css | 74 - .../gohugoioTheme/assets/css/_header-link.css | 15 - .../css/_hugo-internal-template-styling.css | 52 - .../gohugoioTheme/assets/css/_no-js.css | 7 - .../gohugoioTheme/assets/css/_print.css | 7 - .../assets/css/_right-sidebar.css | 11 - .../gohugoioTheme/assets/css/_shame.css | 25 - .../assets/css/_social-icons.css | 52 - .../assets/css/_stickyheader.css | 15 - .../gohugoioTheme/assets/css/_svg.css | 1 - .../gohugoioTheme/assets/css/_tabs.css | 34 - .../gohugoioTheme/assets/css/_tachyons.css | 94 - .../gohugoioTheme/assets/css/_variables.css | 16 - .../gohugoioTheme/assets/css/main.css | 39 - .../sponsors/Route4MeLogoBlueOnWhite.svg | 15 - .../assets/images/sponsors/bep-consulting.svg | 4 - .../assets/images/sponsors/butter-dark.svg | 1 - .../assets/images/sponsors/butter-light.svg | 1 - .../images/sponsors/cloudcannon-blue.svg | 6 - .../images/sponsors/cloudcannon-white.svg | 6 - .../assets/images/sponsors/esolia-logo.svg | 67 - .../assets/images/sponsors/goland.svg | 20 - .../assets/images/sponsors/graitykit-dark.svg | 3 - .../assets/images/sponsors/linode-logo.svg | 1 - .../linode-logo_standard_light_medium.png | Bin 11972 -> 0 bytes .../images/sponsors/your-company-dark.svg | 4 - .../assets/images/sponsors/your-company.svg | 4 - .../gohugoio/gohugoioTheme/assets/index.js | 10 - .../gohugoioTheme/assets/js/clipboardjs.js | 30 - .../gohugoioTheme/assets/js/docsearch.js | 8 - .../gohugoioTheme/assets/js/filesaver.js | 0 .../gohugoioTheme/assets/js/lazysizes.js | 3 - .../gohugoio/gohugoioTheme/assets/js/main.js | 22 - .../gohugoioTheme/assets/js/menutoggle.js | 31 - .../gohugoio/gohugoioTheme/assets/js/nojs.js | 1 - .../gohugoioTheme/assets/js/scrolldir.js | 1 - .../gohugoioTheme/assets/js/smoothscroll.js | 80 - .../gohugoio/gohugoioTheme/assets/js/tabs.js | 43 - .../assets/opengraph/gohugoio-card-base-1.png | Bin 242906 -> 0 bytes .../assets/opengraph/mulish-black.ttf | Bin 105920 -> 0 bytes .../gohugoioTheme/assets/output/css/app.css | 5349 ----------------- .../gohugoioTheme/assets/output/js/app.js | 17 - .../gohugoio/gohugoioTheme/config.toml | 4 - .../gohugoio/gohugoioTheme/data/sponsors.toml | 22 - .../gohugoio/gohugoioTheme/layouts/404.html | 10 - .../_markup/render-codeblock-mermaid.html | 4 - .../_default/_markup/render-heading.html | 5 - .../layouts/_default/_markup/render-link.html | 245 - .../layouts/_default/baseof.html | 122 - .../layouts/_default/documentation-home.html | 4 - .../gohugoioTheme/layouts/_default/list.html | 5 - .../gohugoioTheme/layouts/_default/page.html | 48 - .../layouts/_default/single.html | 29 - .../layouts/_default/taxonomy.html | 4 - .../gohugoioTheme/layouts/_default/terms.html | 48 - .../gohugoioTheme/layouts/index.headers | 5 - .../gohugoio/gohugoioTheme/layouts/index.html | 27 - .../gohugoioTheme/layouts/index.redir | 6 - .../gohugoioTheme/layouts/index.rss.xml | 68 - .../layouts/maintenance/list.html | 78 - .../gohugoioTheme/layouts/news/list.html | 64 - .../gohugoioTheme/layouts/news/list.xml | 75 - .../gohugoioTheme/layouts/news/single.html | 85 - .../partials/boxes-section-summaries.html | 46 - .../layouts/partials/boxes-small-news.html | 1 - .../components/author-github-data-card.html | 43 - .../components/author-github-data.html | 36 - .../partials/docs/functions-aliases.html | 12 - .../partials/docs/functions-return-type.html | 6 - .../partials/docs/functions-signatures.html | 12 - .../layouts/partials/docs/page-meta-data.html | 3 - .../layouts/partials/entry-summary.html | 13 - .../gohugoioTheme/layouts/partials/gtag.html | 25 - .../layouts/partials/head-additions.html | 1 - .../gohugoioTheme/layouts/partials/hero.html | 18 - .../home-page-sections/features-icons.html | 34 - .../home-page-sections/features-single.html | 32 - .../home-page-sections/installation.html | 38 - .../open-source-involvement.html | 59 - .../partials/home-page-sections/showcase.html | 44 - .../partials/home-page-sections/sponsors.html | 60 - .../partials/home-page-sections/tweets.html | 27 - .../partials/hooks/after-body-start.html | 1 - .../partials/hooks/before-body-end.html | 7 - .../layouts/partials/icon-link.html | 1 - .../partials/maintenance-pages-table.html | 24 - .../gohugoioTheme/layouts/partials/math.html | 9 - .../partials/nav-links-docs-mobile.html | 11 - .../layouts/partials/nav-links-docs.html | 23 - .../partials/nav-links-global-mobile.html | 11 - .../layouts/partials/nav-links.html | 37 - .../layouts/partials/nav-mobile.html | 12 - .../layouts/partials/nav-top.html | 16 - .../opengraph/get-featured-image.html | 24 - .../layouts/partials/opengraph/opengraph.html | 42 - .../partials/opengraph/twitter_cards.html | 22 - .../layouts/partials/page-edit.html | 3 - .../layouts/partials/page-header.html | 20 - .../layouts/partials/pagelayout.html | 36 - ...ious-next-links-in-section-with-title.html | 14 - .../previous-next-links-in-section.html | 16 - .../layouts/partials/previous-next-links.html | 25 - .../layouts/partials/related.html | 22 - .../layouts/partials/right-sidebar.html | 29 - .../layouts/partials/site-footer.html | 48 - .../layouts/partials/site-manifest.html | 7 - .../layouts/partials/site-nav.html | 38 - .../layouts/partials/site-scripts.html | 17 - .../layouts/partials/site-search.html | 6 - .../layouts/partials/social-follow.html | 15 - .../layouts/partials/summary.html | 13 - .../partials/svg/Twitter_Logo_Blue.svg | 1 - .../layouts/partials/svg/apple.svg | 1 - .../layouts/partials/svg/clipboard.svg | 3 - .../layouts/partials/svg/clippy.svg | 3 - .../layouts/partials/svg/cloud.svg | 13 - .../layouts/partials/svg/content.svg | 18 - .../layouts/partials/svg/design.svg | 5 - .../layouts/partials/svg/exclamation.svg | 0 .../layouts/partials/svg/facebook.svg | 1 - .../layouts/partials/svg/focus.svg | 11 - .../layouts/partials/svg/freebsd.svg | 3 - .../layouts/partials/svg/functions.svg | 14 - .../layouts/partials/svg/github-corner.svg | 1 - .../layouts/partials/svg/github-squared.svg | 3 - .../layouts/partials/svg/gitter.svg | 57 - .../layouts/partials/svg/gme.svg | 1 - .../layouts/partials/svg/godoc-icon.html | 35 - .../layouts/partials/svg/gopher-2.svg | 27 - .../layouts/partials/svg/gopher-front.svg | 33 - .../layouts/partials/svg/gopher-homepage.svg | 58 - .../layouts/partials/svg/gopher-side_path.svg | 42 - .../layouts/partials/svg/gopher-small.svg | 50 - .../layouts/partials/svg/gopher.svg | 65 - .../layouts/partials/svg/hugo-h-only.svg | 9 - .../layouts/partials/svg/hugo.svg | 10 - .../partials/svg/ic_arrow_drop_down.svg | 4 - .../layouts/partials/svg/ic_arrow_drop_up.svg | 4 - .../svg/ic_chevron_left_black_24px.svg | 4 - .../svg/ic_chevron_right_black_24px.svg | 4 - .../layouts/partials/svg/idea.svg | 61 - .../layouts/partials/svg/instagram.svg | 1 - .../layouts/partials/svg/javascript.svg | 24 - .../layouts/partials/svg/json.svg | 7 - .../layouts/partials/svg/link-ext.svg | 3 - .../layouts/partials/svg/link-permalink.svg | 1 - .../gohugoioTheme/layouts/partials/svg/md.svg | 4 - .../layouts/partials/svg/mdsolid.svg | 7 - .../layouts/partials/svg/newlogo.svg | 35 - .../layouts/partials/svg/sass.svg | 3 - .../layouts/partials/svg/search.svg | 1 - .../layouts/partials/svg/twitter.svg | 1 - .../layouts/partials/svg/website.svg | 5 - .../layouts/partials/svg/windows.svg | 1 - .../layouts/partials/svg/yaml.svg | 1 - .../gohugoioTheme/layouts/partials/tags.html | 37 - .../partials/utilities/get-remote-data.html | 23 - .../gohugoio/gohugoioTheme/layouts/robots.txt | 8 - .../layouts/shortcodes/articlelist.html | 18 - .../layouts/shortcodes/chroma-lexers.html | 6 - .../layouts/shortcodes/code-toggle.html | 101 - .../layouts/shortcodes/code.html | 35 - .../shortcodes/datatable-filtered.html | 39 - .../layouts/shortcodes/datatable.html | 33 - .../layouts/shortcodes/deprecated-in.html | 14 - .../layouts/shortcodes/eturl.html | 36 - .../layouts/shortcodes/funcsig.html | 4 - .../layouts/shortcodes/gomodules-info.html | 18 - .../gohugoioTheme/layouts/shortcodes/hl.html | 11 - .../gohugoioTheme/layouts/shortcodes/img.html | 391 -- .../layouts/shortcodes/imgproc.html | 37 - .../layouts/shortcodes/include.html | 20 - .../shortcodes/list-pages-in-section.html | 96 - .../shortcodes/module-mounts-note.html | 1 - .../layouts/shortcodes/new-in.html | 34 - .../layouts/shortcodes/note.html | 7 - .../layouts/shortcodes/quick-reference.html | 39 - .../layouts/shortcodes/readfile.html | 29 - .../layouts/shortcodes/todo.html | 1 - .../gohugoioTheme/layouts/showcase/list.html | 46 - .../layouts/showcase/single.html | 106 - .../layouts/template-func/page.html | 55 - .../gohugoio/gohugoioTheme/package.json | 34 - .../static/android-chrome-144x144.png | Bin 7612 -> 0 bytes .../static/android-chrome-192x192.png | Bin 10264 -> 0 bytes .../static/android-chrome-256x256.png | Bin 15088 -> 0 bytes .../static/android-chrome-36x36.png | Bin 1592 -> 0 bytes .../static/android-chrome-48x48.png | Bin 2038 -> 0 bytes .../static/android-chrome-72x72.png | Bin 3467 -> 0 bytes .../static/android-chrome-96x96.png | Bin 4747 -> 0 bytes .../gohugoioTheme/static/apple-touch-icon.png | Bin 6238 -> 0 bytes .../gohugoioTheme/static/browserconfig.xml | 10 - .../gohugoioTheme/static/dist/app.bundle.js | 22 - .../gohugoioTheme/static/dist/main.css | 1 - .../gohugoioTheme/static/favicon-16x16.png | Bin 1000 -> 0 bytes .../gohugoioTheme/static/favicon-32x32.png | Bin 1648 -> 0 bytes .../gohugoio/gohugoioTheme/static/favicon.ico | Bin 15086 -> 0 bytes .../static/fonts/muli-latin-200.woff | Bin 20892 -> 0 bytes .../static/fonts/muli-latin-200.woff2 | Bin 16936 -> 0 bytes .../static/fonts/muli-latin-200italic.woff | Bin 21496 -> 0 bytes .../static/fonts/muli-latin-200italic.woff2 | Bin 17320 -> 0 bytes .../static/fonts/muli-latin-300.woff | Bin 20932 -> 0 bytes .../static/fonts/muli-latin-300.woff2 | Bin 16872 -> 0 bytes .../static/fonts/muli-latin-300italic.woff | Bin 21520 -> 0 bytes .../static/fonts/muli-latin-300italic.woff2 | Bin 17332 -> 0 bytes .../static/fonts/muli-latin-400.woff | Bin 21240 -> 0 bytes .../static/fonts/muli-latin-400.woff2 | Bin 17172 -> 0 bytes .../static/fonts/muli-latin-400italic.woff | Bin 21964 -> 0 bytes .../static/fonts/muli-latin-400italic.woff2 | Bin 17732 -> 0 bytes .../static/fonts/muli-latin-600.woff | Bin 21208 -> 0 bytes .../static/fonts/muli-latin-600.woff2 | Bin 17080 -> 0 bytes .../static/fonts/muli-latin-600italic.woff | Bin 21924 -> 0 bytes .../static/fonts/muli-latin-600italic.woff2 | Bin 17776 -> 0 bytes .../static/fonts/muli-latin-700.woff | Bin 21220 -> 0 bytes .../static/fonts/muli-latin-700.woff2 | Bin 17128 -> 0 bytes .../static/fonts/muli-latin-700italic.woff | Bin 21960 -> 0 bytes .../static/fonts/muli-latin-700italic.woff2 | Bin 17756 -> 0 bytes .../static/fonts/muli-latin-800.woff | Bin 21244 -> 0 bytes .../static/fonts/muli-latin-800.woff2 | Bin 17140 -> 0 bytes .../static/fonts/muli-latin-800italic.woff | Bin 21872 -> 0 bytes .../static/fonts/muli-latin-800italic.woff2 | Bin 17644 -> 0 bytes .../static/fonts/muli-latin-900.woff | Bin 21676 -> 0 bytes .../static/fonts/muli-latin-900.woff2 | Bin 17436 -> 0 bytes .../static/fonts/muli-latin-900italic.woff | Bin 22220 -> 0 bytes .../static/fonts/muli-latin-900italic.woff2 | Bin 17948 -> 0 bytes .../gohugoioTheme/static/images/Github.svg | 1 - .../static/images/gohugoio-card.png | Bin 218051 -> 0 bytes .../static/images/gopher-hero.svg | 58 - .../static/images/gopher-side_color.svg | 31 - .../images/home-page-templating-example.png | Bin 88131 -> 0 bytes .../homepage-screenshot-hugo-themes.jpg | Bin 32994 -> 0 bytes ...emes_not-optimized-according-to-google.jpg | Bin 88453 -> 0 bytes .../static/images/hugo-logo-wide.svg | 7 - .../static/images/icon-built-in-templates.svg | 14 - .../static/images/icon-content-management.svg | 11 - .../gohugoioTheme/static/images/icon-fast.svg | 4 - .../static/images/icon-h/hugo-h-1.svg | 11 - .../static/images/icon-h/hugo-h-2.svg | 62 - .../static/images/icon-h/hugo-h-3.svg | 62 - .../static/images/icon-h/hugo-h-4.svg | 62 - .../static/images/icon-multilingual.svg | 12 - .../static/images/icon-multilingual2.svg | 4 - .../static/images/icon-search.png | Bin 337 -> 0 bytes .../static/images/icon-shortcodes.svg | 28 - .../static/images/netlify-dark.svg | 1 - .../static/images/site-hierarchy.svg | 634 -- .../gohugoioTheme/static/manifest.json | 45 - .../gohugoioTheme/static/mstile-144x144.png | Bin 6225 -> 0 bytes .../gohugoioTheme/static/mstile-150x150.png | Bin 6020 -> 0 bytes .../gohugoioTheme/static/mstile-310x310.png | Bin 12885 -> 0 bytes .../static/safari-pinned-tab.svg | 22 - .../gohugoio/gohugoioTheme/theme.toml | 15 - _vendor/modules.txt | 1 - .../examples/landscape-exif-orientation-5.jpg | Bin 38639 -> 0 bytes assets/images/examples/mask.png | Bin 137283 -> 0 bytes assets/images/examples/zion-national-park.jpg | Bin 44553 -> 0 bytes assets/images/logos/logo-128x128.png | Bin 4759 -> 0 bytes assets/images/logos/logo-256x256.png | Bin 8822 -> 0 bytes assets/images/logos/logo-512x512.png | Bin 73651 -> 0 bytes assets/images/logos/logo-64x64.png | Bin 2533 -> 0 bytes assets/images/logos/logo-96x96.png | Bin 3644 -> 0 bytes config/_default/languages.toml | 4 - config/_default/markup.toml | 40 - config/_default/menus/menus.en.toml | 158 - config/_default/params.toml | 28 - config/_default/security.toml | 9 - config/development/params.toml | 1 - config/production/config.toml | 6 - config/production/params.toml | 2 - layouts/_default/_markup/render-link.html | 317 - layouts/partials/pagelayout.html | 36 - layouts/shortcodes/glossary-term.html | 20 - layouts/shortcodes/glossary.html | 56 - layouts/shortcodes/new-in.html | 51 - pull-theme.sh | 4 - src/css/_chroma.css | 43 - src/package-lock.json | 3 - static/apple-touch-icon.png | Bin 7993 -> 0 bytes static/css/hugofont.css | 184 - static/css/style.css | 684 --- static/favicon.ico | Bin 15086 -> 0 bytes static/fonts/hugo.eot | Bin 16380 -> 0 bytes static/fonts/hugo.svg | 63 - static/fonts/hugo.ttf | Bin 16228 -> 0 bytes static/fonts/hugo.woff | Bin 11728 -> 0 bytes static/images/blog/hugo-26-poster.png | Bin 69207 -> 0 bytes static/images/blog/hugo-27-poster.png | Bin 79893 -> 0 bytes static/images/blog/hugo-28-poster.png | Bin 116760 -> 0 bytes static/images/blog/hugo-29-poster.png | Bin 123034 -> 0 bytes static/images/blog/hugo-30-poster.png | Bin 123192 -> 0 bytes static/images/blog/hugo-31-poster.png | Bin 65077 -> 0 bytes static/images/blog/hugo-32-poster.png | Bin 95867 -> 0 bytes static/images/blog/hugo-bug-poster.png | Bin 74141 -> 0 bytes static/images/blog/hugo-http2-push.png | Bin 20544 -> 0 bytes static/images/blog/sunset.jpg | Bin 34584 -> 0 bytes .../contribute/development/accept-cla.png | Bin 24972 -> 0 bytes .../development/copy-remote-url.png | Bin 7232 -> 0 bytes .../development/forking-a-repository.png | Bin 4608 -> 0 bytes .../development/open-pull-request.png | Bin 46508 -> 0 bytes static/images/gohugoio-card-1.png | Bin 73881 -> 0 bytes .../amplify-build-settings.png | Bin 67178 -> 0 bytes .../amplify-connect-repo.gif | Bin 2880775 -> 0 bytes .../amplify-gettingstarted.png | Bin 57947 -> 0 bytes .../hosting-on-azure/basic-app-details.png | Bin 54346 -> 0 bytes .../hosting-on-azure/create-in-portal.png | Bin 63683 -> 0 bytes .../bitbucket-blog-post.png | Bin 37585 -> 0 bytes .../bitbucket-create-repo.png | Bin 24689 -> 0 bytes .../hosting-on-keycdn/keycdn-pull-zone.png | Bin 114748 -> 0 bytes .../hosting-on-keycdn/secret-api-key.png | Bin 118836 -> 0 bytes .../hosting-on-keycdn/secret-zone-id.png | Bin 113753 -> 0 bytes static/images/hugo-content-bundles.png | Bin 34394 -> 0 bytes static/images/icon-custom-outputs.svg | 36 - static/img/examples/trees.svg | 104 - static/img/hugo-logo-med.png | Bin 17402 -> 0 bytes static/img/hugo-logo.png | Bin 10003 -> 0 bytes static/img/hugo.png | Bin 18210 -> 0 bytes static/img/hugoSM.png | Bin 1869 -> 0 bytes static/npmjs/index.html | 6 - static/shared/branding/hugo-tall.png | Bin 9971 -> 0 bytes .../shared/branding/made-with-hugo-dark.png | Bin 8764 -> 0 bytes .../branding/made-with-hugo-long-dark.png | Bin 9116 -> 0 bytes .../shared/branding/made-with-hugo-long.png | Bin 9318 -> 0 bytes static/shared/branding/made-with-hugo.png | Bin 8900 -> 0 bytes .../shared/branding/powered-by-hugo-dark.png | Bin 3545 -> 0 bytes .../branding/powered-by-hugo-long-dark.png | Bin 3857 -> 0 bytes .../shared/branding/powered-by-hugo-long.png | Bin 3773 -> 0 bytes static/shared/branding/powered-by-hugo.png | Bin 3527 -> 0 bytes static/shared/examples/data/books.json | 55 - .../interpreting-the-french-revolution.webp | Bin 12852 -> 0 bytes .../examples/images/les-misérables.webp | Bin 13520 -> 0 bytes .../the-ancien-régime-and-the-revolution.webp | Bin 6946 -> 0 bytes .../images/the-hunchback-of-notre-dame.webp | Bin 23780 -> 0 bytes 344 files changed, 13542 deletions(-) delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_print.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_right-sidebar.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_shame.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/Route4MeLogoBlueOnWhite.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/bep-consulting.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-dark.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-light.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-blue.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-white.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/esolia-logo.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/goland.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/graitykit-dark.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo_standard_light_medium.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/index.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/filesaver.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/menutoggle.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/nojs.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/scrolldir.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/smoothscroll.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/js/tabs.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/gohugoio-card-base-1.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/mulish-black.ttf delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/config.toml delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/404.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/_markup/render-codeblock-mermaid.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/_markup/render-heading.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/_markup/render-link.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/baseof.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/documentation-home.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/list.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/page.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/single.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/taxonomy.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/_default/terms.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/index.headers delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/index.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/index.redir delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/index.rss.xml delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/maintenance/list.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/news/list.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/news/list.xml delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/news/single.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/boxes-section-summaries.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/boxes-small-news.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/components/author-github-data-card.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/components/author-github-data.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/docs/functions-aliases.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/docs/functions-return-type.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/docs/functions-signatures.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/docs/page-meta-data.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/entry-summary.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/gtag.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-icons.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-single.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/installation.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/open-source-involvement.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/showcase.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/tweets.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/after-body-start.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/before-body-end.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/icon-link.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/maintenance-pages-table.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/math.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs-mobile.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-top.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/get-featured-image.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/opengraph.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/twitter_cards.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-edit.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-header.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/pagelayout.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section-with-title.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/related.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/right-sidebar.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/Twitter_Logo_Blue.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/apple.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clipboard.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clippy.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/cloud.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/content.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/design.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/exclamation.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/facebook.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/focus.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/freebsd.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/functions.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-corner.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-squared.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gitter.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gme.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/godoc-icon.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-2.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-front.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-homepage.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-side_path.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-small.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo-h-only.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_down.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_up.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_left_black_24px.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_right_black_24px.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/idea.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/instagram.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/javascript.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/json.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-ext.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-permalink.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/md.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/mdsolid.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/newlogo.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/sass.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/search.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/twitter.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/website.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/windows.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/yaml.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/tags.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/utilities/get-remote-data.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/robots.txt delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/articlelist.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/chroma-lexers.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable-filtered.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/deprecated-in.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/eturl.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/funcsig.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/gomodules-info.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/hl.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/img.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/imgproc.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/include.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/list-pages-in-section.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/module-mounts-note.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/new-in.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/quick-reference.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/readfile.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/todo.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/list.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/single.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/layouts/template-func/page.html delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/package.json delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-144x144.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-192x192.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-256x256.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-36x36.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-48x48.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-72x72.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-96x96.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/apple-touch-icon.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/browserconfig.xml delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/dist/app.bundle.js delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/dist/main.css delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/favicon-16x16.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/favicon-32x32.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/favicon.ico delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-200.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-200.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-200italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-200italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-300.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-300.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-300italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-300italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-400.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-400.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-400italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-400italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-600.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-600.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-600italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-600italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-700.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-700.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-700italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-700italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-800.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-800.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-800italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-800italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-900.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-900.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-900italic.woff delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/fonts/muli-latin-900italic.woff2 delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/Github.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/gohugoio-card.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/gopher-hero.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/gopher-side_color.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/home-page-templating-example.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/homepage-screenshot-hugo-themes.jpg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/homepage-screenshot-hugo-themes_not-optimized-according-to-google.jpg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/hugo-logo-wide.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-built-in-templates.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-content-management.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-fast.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-h/hugo-h-1.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-h/hugo-h-2.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-h/hugo-h-3.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-h/hugo-h-4.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-multilingual.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-multilingual2.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-search.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/icon-shortcodes.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/netlify-dark.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/images/site-hierarchy.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/manifest.json delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/mstile-144x144.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/mstile-150x150.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/mstile-310x310.png delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/static/safari-pinned-tab.svg delete mode 100644 _vendor/github.com/gohugoio/gohugoioTheme/theme.toml delete mode 100644 _vendor/modules.txt delete mode 100644 assets/images/examples/landscape-exif-orientation-5.jpg delete mode 100644 assets/images/examples/mask.png delete mode 100644 assets/images/examples/zion-national-park.jpg delete mode 100644 assets/images/logos/logo-128x128.png delete mode 100644 assets/images/logos/logo-256x256.png delete mode 100644 assets/images/logos/logo-512x512.png delete mode 100644 assets/images/logos/logo-64x64.png delete mode 100644 assets/images/logos/logo-96x96.png delete mode 100644 config/_default/languages.toml delete mode 100644 config/_default/markup.toml delete mode 100644 config/_default/menus/menus.en.toml delete mode 100644 config/_default/params.toml delete mode 100644 config/_default/security.toml delete mode 100644 config/development/params.toml delete mode 100644 config/production/config.toml delete mode 100644 config/production/params.toml delete mode 100644 layouts/_default/_markup/render-link.html delete mode 100644 layouts/partials/pagelayout.html delete mode 100644 layouts/shortcodes/glossary-term.html delete mode 100644 layouts/shortcodes/glossary.html delete mode 100644 layouts/shortcodes/new-in.html delete mode 100755 pull-theme.sh delete mode 100644 src/css/_chroma.css delete mode 100644 src/package-lock.json delete mode 100644 static/apple-touch-icon.png delete mode 100644 static/css/hugofont.css delete mode 100644 static/css/style.css delete mode 100644 static/favicon.ico delete mode 100644 static/fonts/hugo.eot delete mode 100644 static/fonts/hugo.svg delete mode 100644 static/fonts/hugo.ttf delete mode 100644 static/fonts/hugo.woff delete mode 100644 static/images/blog/hugo-26-poster.png delete mode 100644 static/images/blog/hugo-27-poster.png delete mode 100644 static/images/blog/hugo-28-poster.png delete mode 100644 static/images/blog/hugo-29-poster.png delete mode 100644 static/images/blog/hugo-30-poster.png delete mode 100644 static/images/blog/hugo-31-poster.png delete mode 100644 static/images/blog/hugo-32-poster.png delete mode 100644 static/images/blog/hugo-bug-poster.png delete mode 100644 static/images/blog/hugo-http2-push.png delete mode 100644 static/images/blog/sunset.jpg delete mode 100644 static/images/contribute/development/accept-cla.png delete mode 100644 static/images/contribute/development/copy-remote-url.png delete mode 100644 static/images/contribute/development/forking-a-repository.png delete mode 100644 static/images/contribute/development/open-pull-request.png delete mode 100644 static/images/gohugoio-card-1.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-aws-amplify/amplify-build-settings.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-aws-amplify/amplify-connect-repo.gif delete mode 100644 static/images/hosting-and-deployment/hosting-on-aws-amplify/amplify-gettingstarted.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-azure/basic-app-details.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-azure/create-in-portal.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-blog-post.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-bitbucket/bitbucket-create-repo.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-keycdn/keycdn-pull-zone.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-keycdn/secret-api-key.png delete mode 100644 static/images/hosting-and-deployment/hosting-on-keycdn/secret-zone-id.png delete mode 100644 static/images/hugo-content-bundles.png delete mode 100644 static/images/icon-custom-outputs.svg delete mode 100644 static/img/examples/trees.svg delete mode 100644 static/img/hugo-logo-med.png delete mode 100644 static/img/hugo-logo.png delete mode 100644 static/img/hugo.png delete mode 100644 static/img/hugoSM.png delete mode 100644 static/npmjs/index.html delete mode 100644 static/shared/branding/hugo-tall.png delete mode 100644 static/shared/branding/made-with-hugo-dark.png delete mode 100644 static/shared/branding/made-with-hugo-long-dark.png delete mode 100644 static/shared/branding/made-with-hugo-long.png delete mode 100644 static/shared/branding/made-with-hugo.png delete mode 100644 static/shared/branding/powered-by-hugo-dark.png delete mode 100644 static/shared/branding/powered-by-hugo-long-dark.png delete mode 100644 static/shared/branding/powered-by-hugo-long.png delete mode 100644 static/shared/branding/powered-by-hugo.png delete mode 100644 static/shared/examples/data/books.json delete mode 100644 static/shared/examples/images/interpreting-the-french-revolution.webp delete mode 100644 static/shared/examples/images/les-misérables.webp delete mode 100644 static/shared/examples/images/the-ancien-régime-and-the-revolution.webp delete mode 100644 static/shared/examples/images/the-hunchback-of-notre-dame.webp diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css deleted file mode 100644 index 0122f9758..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_algolia.css +++ /dev/null @@ -1,11 +0,0 @@ -.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;box-sizing:border-box;visibility:visible!important}.searchbox .algolia-autocomplete{display:block;width:100%;height:100%}.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative}.searchbox__input{display:inline-block;box-sizing:border-box;transition:box-shadow .4s ease,background .4s ease;border:0;border-radius:16px;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none}.searchbox__input:hover{box-shadow:inset 0 0 0 1px #b3b3b3}.searchbox__input:active,.searchbox__input:focus{outline:0;box-shadow:inset 0 0 0 1px #aaa;background:#fff}.searchbox__input::-webkit-input-placeholder{color:#aaa}.searchbox__input:-ms-input-placeholder{color:#aaa}.searchbox__input::-ms-input-placeholder{color:#aaa}.searchbox__input::placeholder{color:#aaa}.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69,142,225,0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0}.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""}.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer}.searchbox__submit:focus{outline:0}.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96}.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0,0,0,.5)}.searchbox__reset.hide{display:none}.searchbox__reset:focus{outline:0}.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px}.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s}@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important}.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0!important;right:inherit!important}.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px}.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px;box-shadow:0 1px 0 0 rgba(0,0,0,.2),0 2px 3px 0 rgba(0,0,0,.1)}.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px}.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer}.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple,.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69,142,225,.05)}.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border:1px solid #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px}.algolia-autocomplete .ds-dropdown-menu *{box-sizing:border-box}.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden}.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143,187,237,.1);padding:.1em .05em}.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;box-shadow:inset 0 -2px 0 0 rgba(69,142,225,.8);color:inherit}.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer}.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px}.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363d}.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#a4a7ae;font-size:.9em;word-wrap:break-word}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0}.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none}.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700}.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d}.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em}.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:Menlo,Monaco,Consolas,Courier New,monospace}.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none}.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block}@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}}@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}}.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:1px solid #eee;padding:8px;margin:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content:before{display:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1:before{background-image:url('data:image/svg+xml;utf8,');content:"";width:10px;height:10px;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none!important}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458ee1;font-size:.9em;font-weight:400}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title:before{content:"#";font-weight:700;color:#458ee1;display:inline-block}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8}.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:700;box-shadow:none}.algolia-autocomplete .algolia-docsearch-footer{width:134px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0}.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block} -/*# sourceMappingURL=docsearch.min.css.map */ -a.algolia-docsearch-suggestion { - text-decoration: none !important; -} -.algolia-docsearch-suggestion--category-header { - background: #0594cb; - padding-left: .25rem !important; - color: white !important; - border-radius: 3px; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css deleted file mode 100644 index 997931ac4..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_animation.css +++ /dev/null @@ -1,21 +0,0 @@ -.animated { - animation-duration: .5s; - animation-fill-mode: forwards; - animation-timing-function: ease-in-out; -} - -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} -.fadeIn { - animation-name: fadeIn; -} -.animated-delay-1 { - animation-delay: 0.5s; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css deleted file mode 100644 index 11fae8702..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_carousel.css +++ /dev/null @@ -1,25 +0,0 @@ -/* These styles enhance the home page carousel, located here: themes/gohugoioTheme/layouts/partials/home-page-sections/showcase.html */ -.overflow-x-scroll{ - -webkit-overflow-scrolling: touch; -} -.row { - transition: 450ms transform; - font-size: 0; -} -.tile { - transition: 450ms all; -} -.details { - background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.9)), to(rgba(0,0,0,0))); - background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%); - transition: 450ms opacity; -} -.tile:hover .details { - opacity: 1; -} -.row:hover .tile { - opacity: 0.3; -} -.row:hover .tile:hover { - opacity: 1; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css deleted file mode 100644 index d00ea65e6..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_chroma.css +++ /dev/null @@ -1,65 +0,0 @@ -/* Background */ .chroma { background-color: #ffffff } -/* Error */ .chroma .err { color: #a61717; background-color: #e3d2d2 } -/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } -/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: #ffffcc } -/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* Keyword */ .chroma .k { font-weight: bold } -/* KeywordConstant */ .chroma .kc { font-weight: bold } -/* KeywordDeclaration */ .chroma .kd { font-weight: bold } -/* KeywordNamespace */ .chroma .kn { font-weight: bold } -/* KeywordPseudo */ .chroma .kp { font-weight: bold } -/* KeywordReserved */ .chroma .kr { font-weight: bold } -/* KeywordType */ .chroma .kt { color: #445588; font-weight: bold } -/* NameAttribute */ .chroma .na { color: #008080 } -/* NameBuiltin */ .chroma .nb { color: #999999 } -/* NameClass */ .chroma .nc { color: #445588; font-weight: bold } -/* NameConstant */ .chroma .no { color: #008080 } -/* NameEntity */ .chroma .ni { color: #800080 } -/* NameException */ .chroma .ne { color: #990000; font-weight: bold } -/* NameFunction */ .chroma .nf { color: #990000; font-weight: bold } -/* NameNamespace */ .chroma .nn { color: #555555 } -/* NameTag */ .chroma .nt { color: #000080 } -/* NameVariable */ .chroma .nv { color: #008080 } -/* LiteralString */ .chroma .s { color: #bb8844 } -/* LiteralStringAffix */ .chroma .sa { color: #bb8844 } -/* LiteralStringBacktick */ .chroma .sb { color: #bb8844 } -/* LiteralStringChar */ .chroma .sc { color: #bb8844 } -/* LiteralStringDelimiter */ .chroma .dl { color: #bb8844 } -/* LiteralStringDoc */ .chroma .sd { color: #bb8844 } -/* LiteralStringDouble */ .chroma .s2 { color: #bb8844 } -/* LiteralStringEscape */ .chroma .se { color: #bb8844 } -/* LiteralStringHeredoc */ .chroma .sh { color: #bb8844 } -/* LiteralStringInterpol */ .chroma .si { color: #bb8844 } -/* LiteralStringOther */ .chroma .sx { color: #bb8844 } -/* LiteralStringRegex */ .chroma .sr { color: #808000 } -/* LiteralStringSingle */ .chroma .s1 { color: #bb8844 } -/* LiteralStringSymbol */ .chroma .ss { color: #bb8844 } -/* LiteralNumber */ .chroma .m { color: #009999 } -/* LiteralNumberBin */ .chroma .mb { color: #009999 } -/* LiteralNumberFloat */ .chroma .mf { color: #009999 } -/* LiteralNumberHex */ .chroma .mh { color: #009999 } -/* LiteralNumberInteger */ .chroma .mi { color: #009999 } -/* LiteralNumberIntegerLong */ .chroma .il { color: #009999 } -/* LiteralNumberOct */ .chroma .mo { color: #009999 } -/* Operator */ .chroma .o { font-weight: bold } -/* OperatorWord */ .chroma .ow { font-weight: bold } -/* Comment */ .chroma .c { color: #999988; font-style: italic } -/* CommentHashbang */ .chroma .ch { color: #999988; font-style: italic } -/* CommentMultiline */ .chroma .cm { color: #999988; font-style: italic } -/* CommentSingle */ .chroma .c1 { color: #999988; font-style: italic } -/* CommentSpecial */ .chroma .cs { color: #999999; font-weight: bold; font-style: italic } -/* CommentPreproc */ .chroma .cp { color: #999999; font-weight: bold } -/* CommentPreprocFile */ .chroma .cpf { color: #999999; font-weight: bold } -/* GenericDeleted */ .chroma .gd { color: #000000; background-color: #ffdddd } -/* GenericEmph */ .chroma .ge { font-style: italic } -/* GenericError */ .chroma .gr { color: #aa0000 } -/* GenericHeading */ .chroma .gh { color: #999999 } -/* GenericInserted */ .chroma .gi { color: #000000; background-color: #ddffdd } -/* GenericOutput */ .chroma .go { color: #888888 } -/* GenericPrompt */ .chroma .gp { color: #555555 } -/* GenericStrong */ .chroma .gs { font-weight: bold } -/* GenericSubheading */ .chroma .gu { color: #aaaaaa } -/* GenericTraceback */ .chroma .gt { color: #aa0000 } -/* TextWhitespace */ .chroma .w { color: #bbbbbb } diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css deleted file mode 100644 index 9906a13d0..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_code.css +++ /dev/null @@ -1,89 +0,0 @@ -.chroma .lntable pre { - padding: 0; - margin: 0; - border: 0; -} - -.chroma .lntable pre code { - padding: 0; - margin: 0; -} - -code { - padding: 2px 3px; - margin: 0; - font-size: 93.75%; - background-color: rgba(27,31,35,0.05); - border-radius: 3px; -} - -pre code { - display: block; - padding: 1.5em 1.5em; - font-size: .875rem; - line-height: 2; - overflow-x: auto; -} - -pre { - background-color: #fff; - color: #333; - white-space: pre; - hyphens: none; - position: relative; - border-width: 1px; - border-color: #ccc; - border-style: solid; -} - -/* The Pygments highlighter comes with its own styles. */ -.highlight pre { - background-color: inherit; - color: inherit; - padding: 0.5em; - font-size: .875rem; -} - - -/*We are adding the copy button content here so we can change it with javascript. See the "Clipboard scripts"*/ -.copy:after { - content: "Copy" -} -.copied:after { - content: "Copied" -} - -@media (--breakpoint-large) { - .full-width - { - /*width: 100vw; - position: relative; - left: 50%; - right: 50%; - margin-left: -50vw; - margin-right: -50vw;*/ - /*width: 60vw;*/ - /*position: relative; - left: 50%; - right: 50%;*/ - /*margin-left: -30vw;*/ - margin-right: -30vw; - max-width: 100vw; - } -} - -.code-block .line-numbers-rows { - background: #2f3a46; - border: none; - bottom: -50px; - color: #98a4b3; - left: -178px; - padding: 50px 0; - top: -50px; - width: 138px -} - -.code-block .line-numbers-rows>span:before { - color: inherit; - padding-right: 30px -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css deleted file mode 100644 index 1d61a7725..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_color-scheme.css +++ /dev/null @@ -1,38 +0,0 @@ -.primary-color {color: var(--primary-color)} -.bg-primary-color {background-color: var(--primary-color)} -.hover-bg-primary-color:hover {background-color: var(--primary-color)} - -.primary-color-dark {color: var(--primary-color-dark)} -.bg-primary-color-dark {background-color: var(--primary-color-dark)} -.hover-bg-primary-color-dark:hover {background-color: var(--primary-color-dark)} - -.primary-color-light {color: var(--primary-color-light)} -.bg-primary-color-light {background-color: var(--primary-color-light)} -.hover-bg-primary-color-light:hover {background-color: var(--primary-color-light)} - -.accent-color {color: var(--accent-color)} -.bg-accent-color {background-color: var(--accent-color)} -.hover-bg-accent-color:hover {background-color: var(--accent-color)} - -.accent-color-light {color: var(--accent-color-light)} -.hover-accent-color-light:hover {color: var(--accent-color-light)} -.bg-accent-color-light {background-color: var(--accent-color-light)} -.hover-bg-accent-color-light:hover {background-color: var(--accent-color-light)} - -.accent-color-dark {color: var(--accent-color-dark)} -.bg-accent-color-dark {background-color: var(--accent-color-dark)} -.hover-bg-accent-color-dark:hover {background-color: var(--accent-color-dark)} - -.text-color-primary {color: var(--text-color-primary)} -.text-on-primary-color {color: var(--text-on-primary-color)} -.text-color-secondary {color: var(--text-color-secondary)} -.text-color-disabled {color: var(--text-color-disabled)} -.divider-color {color: var(--divider-color)} -.warn-color {color: var(--warn-color)} - - -.nested-links a { - color: var(--primary-color); - text-decoration: none; - -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css deleted file mode 100644 index e1e938c74..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_columns.css +++ /dev/null @@ -1,11 +0,0 @@ -.column-count-2 {column-count: 1} -.column-gap-1 {column-gap: 0} -.break-inside-avoid {break-inside: auto} - - -@media (--breakpoint-large) { - .column-count-3-l {column-count: 3} - .column-count-2-l {column-count: 2} - .column-gap-1-l {column-gap: 1} - .break-inside-avoid-l {break-inside: avoid} -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css deleted file mode 100644 index 4e092e8bf..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content-tables.css +++ /dev/null @@ -1,28 +0,0 @@ -.prose table { - width: 100%; - margin-bottom: 3em; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - border: 1px solid var(--light-gray); - & th { - background-color: var(--primary-color); - border-bottom: 1px solid var(--primary-color); - color: white; - font-weight: 400; - - text-align: left; - padding: .375em .5em; - } - - & td, & tc { - padding: .75em .5em; - text-align: left; - border-right: 1px solid var(--light-gray); - } - -} - -.prose table tr:nth-child(even) { - background-color: var(--light-gray); -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css deleted file mode 100644 index 9306f8b2f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_content.css +++ /dev/null @@ -1,53 +0,0 @@ -.prose ul, .prose ol { - margin-bottom: 2em; -} -.prose ul li, .prose ol li { - margin-bottom: .5em; -} -.prose li:hover { - background-color: var(--light-gray) -} -.prose ::selection { - background: var(--primary-color); /* WebKit/Blink Browsers */ - color: white; -} - -.prose-glossary h3 { - margin-top: 0; - font-size: 1.125rem; -} - -.prose-glossary h3:first-of-type { - margin-top: 3em; -} - -.prose-glossary h3 ~ p { - margin: 0.5em 0 2em 0; -} - -body { - -line-height: 1.45; - -} - -p {margin-bottom: 1.3em;} - -h1, h2, h3, h4 { -margin: 1.414em 0 0.5em; - -line-height: 1.2; -} - -h1 { -margin-top: 0; -font-size: 2.441em; -} - -h2 {font-size: 1.953em;} - -h3 {font-size: 1.563em;} - -h4 {font-size: 1.25em;} - -small, .font_small {font-size: 0.8em;} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css deleted file mode 100644 index e28f67d4b..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_definition-lists.css +++ /dev/null @@ -1,9 +0,0 @@ - -dl dt { - font-weight: bold; - font-size: 1.125rem; -} -dd { - margin: .5em 0 2em 0; - padding: 0; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css deleted file mode 100644 index 0ea8e9b72..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_documentation-styles.css +++ /dev/null @@ -1,54 +0,0 @@ -.note, -.warning { - - border-left-width: 4px; - border-left-style: solid; - position: relative; - border-color: var(--primary-color); - - display: block; -} -.note #exclamation-icon, -.warning #exclamation-icon { - - fill: var(--primary-color); - position: absolute; - top: 35%; - left: -12px; - /*background-color: white;*/ -} - - .admonition-content { - display: block; - margin: 0px; - padding: .125em 1em; - /*margin-left: 1em;*/ - margin-top: 2em; - margin-bottom: 2em; - overflow-x: auto; - /*font-size: .9375em;*/ - background-color: var(--black-05); - } - - - .hide-child-menu .child-menu { - display: none; - } - .hide-child-menu:hover .child-menu, - .hide-child-menu:focus .child-menu, - .hide-child-menu:active .child-menu { - display: block; - } - - -/*documentation-copy headings exaggerate spacing and size to chunk content */ - .documentation-copy h2 { - margin-top: 3em; - &.minor { - font-size: inherit; - margin-top: inherit; - border-bottom: none; - } - } - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css deleted file mode 100644 index da9f04c81..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_fluid-type.css +++ /dev/null @@ -1,10 +0,0 @@ -.f2-fluid { - font-size: 2.25rem; -} - -@media (--breakpoint-large) { - .f2-fluid { - font-size: 1.25rem; - font-size: calc(0.875rem + 0.5 * ((100vw - 20rem) / 60)); - } -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css deleted file mode 100644 index 85b3b6c95..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_font-family.css +++ /dev/null @@ -1,74 +0,0 @@ -/* From https://www.cssfontstack.com */ -code, .code, pre code, .highlight pre { - font-family: 'inconsolata',Menlo,Monaco,'Courier New',monospace; -} - -.sans-serif { - font-family: 'Muli', Avenir, 'Helvetica Neue', Helvetica, Roboto, Noto, 'Segoe UI', Arial, sans-serif; -} - - -.serif { - font-family: Palatino,"Palatino Linotype","Palatino LT STD","Book Antiqua",Georgia,serif; -} - -/* Monospaced Typefaces (for code) */ - - -.courier { - font-family: 'Courier Next', - courier, - monospace; -} - - -/* Sans-Serif Typefaces */ - -.helvetica { - font-family: 'helvetica neue', helvetica, - sans-serif; -} - -.avenir { - font-family: 'avenir next', avenir, - sans-serif; -} - - -/* Serif Typefaces */ - -.athelas { - font-family: athelas, - georgia, - serif; -} - -.georgia { - font-family: georgia, - serif; -} - -.times { - font-family: times, - serif; -} - -.bodoni { - font-family: "Bodoni MT", - serif; -} - -.calisto { - font-family: "Calisto MT", - serif; -} - -.garamond { - font-family: garamond, - serif; -} - -.baskerville { - font-family: baskerville, - serif; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css deleted file mode 100644 index 56a16be6d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_header-link.css +++ /dev/null @@ -1,15 +0,0 @@ -.header-link:after { - position: relative; - left: 0.5em; - opacity: 0; - font-size: 0.8em; - -moz-transition: opacity 0.2s ease-in-out 0.1s; - -ms-transition: opacity 0.2s ease-in-out 0.1s; -} -h2:hover .header-link, -h3:hover .header-link, -h4:hover .header-link, -h5:hover .header-link, -h6:hover .header-link { - opacity: 1; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css deleted file mode 100644 index 0b1df9610..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_hugo-internal-template-styling.css +++ /dev/null @@ -1,52 +0,0 @@ -/* pagination.html: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/template_embedded.go#L117 */ -.pagination { - margin: 3rem 0; -} - -.pagination li { - display: inline-block; - margin-right: .375rem; - font-size: .875rem; - margin-bottom: 2.5em; -} -.pagination li a { - padding: .5rem .625rem; - background-color: white; - color: #333; - border: 1px solid #ddd; - border-radius: 3px; - text-decoration: none; -} -.pagination li.disabled { - display: none; -} -.pagination li.active a:link, -.pagination li.active a:active, -.pagination li.active a:visited { - background-color: #ddd; -} - -/* Hides non-meaningful TOC items*/ -#TableOfContents ul li ul li ul li{ - display: none; - } - - -#TableOfContents ul li { - color: black; - display: block; - margin-bottom: .375em; - line-height: 1.375; -} - -#TableOfContents ul li a{ - width: 100%; - padding: .25em .375em; - margin-left: -.375em; - -} -#TableOfContents ul li a:hover { - background-color: #999; - color: white; - -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css deleted file mode 100644 index 7991450fe..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_no-js.css +++ /dev/null @@ -1,7 +0,0 @@ -.no-js .needs-js { - opacity: 0 -} -.js .needs-js { - opacity: 1; - transition: opacity .15s ease-in; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_print.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_print.css deleted file mode 100644 index c0be3af61..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_print.css +++ /dev/null @@ -1,7 +0,0 @@ -@media print { - #page-footer, - body > footer, - body > nav { - display: none; - } -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_right-sidebar.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_right-sidebar.css deleted file mode 100644 index 757457b2d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_right-sidebar.css +++ /dev/null @@ -1,11 +0,0 @@ -#right-sidebar { - scrollbar-width: none; /* hide scrollbar: Firefox */ - -ms-overflow-style: none; /* hide scrollbar: Internet Explorer 10+ */ - height: calc(100vh - 9rem); - overflow-y: auto; -} - -#right-sidebar::-webkit-scrollbar { /* hide scrollbar: WebKit */ - width: 0; - height: 0; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_shame.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_shame.css deleted file mode 100644 index 30e0c412d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_shame.css +++ /dev/null @@ -1,25 +0,0 @@ -/* -Make h6 elements behave like dt elements. Initially implemented to support -linkable glossary entries. - -Yes, it's a hack. That's why it's in the shame file. -*/ - -h6 { - margin-top: 0; - margin-bottom: 0; - font-size: 1.125rem; -} - -h6:first-of-type { - margin-top: 3em; -} - -h6 ~ p { - margin: 0.5em 0 2em 0; -} - -/* QR codes */ -img.qrcode { - width: initial; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css deleted file mode 100644 index 6cfa7b1b4..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_social-icons.css +++ /dev/null @@ -1,52 +0,0 @@ -.facebook, -.twitter, -.instagram, -.youtube { - fill: #bababa; -} -.facebook:hover { - fill: #3b5998; -} - -.twitter { - fill: #55acee; -} - -.twitter:hover { - fill: #bababa; -} - -.instagram:hover { - fill: #e95950; -} - -.youtube:hover { - fill: #bb0000; -} - -.mstdn { - display: inline-block; - background-color: #282c37; - color: #d9e1e8; - text-decoration: none; - padding: 4px 10px 4px 30px; - border-radius: 4px; - font-size: 16px; - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2261.076954mm%22%20height%3D%2265.47831mm%22%20viewBox%3D%220%200%20216.4144%20232.00976%22%3E%3Cpath%20d%3D%22M211.80734%20139.0875c-3.18125%2016.36625-28.4925%2034.2775-57.5625%2037.74875-15.15875%201.80875-30.08375%203.47125-45.99875%202.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125%200%202.53375.15625%204.94625.46875%207.2025%203.38375%2025.68625%2025.47%2027.225%2046.39125%2027.9425%2021.11625.7225%2039.91875-5.20625%2039.91875-5.20625l.8675%2019.09s-14.77%207.93125-41.08125%209.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234%20213.82%201.40609%20165.31125.20859%20116.09125c-.365-14.61375-.14-28.39375-.14-39.91875%200-50.33%2032.97625-65.0825%2032.97625-65.0825C49.67234%203.45375%2078.20359.2425%20107.86484%200h.72875c29.66125.2425%2058.21125%203.45375%2074.8375%2011.09%200%200%2032.975%2014.7525%2032.975%2065.0825%200%200%20.41375%2037.13375-4.59875%2062.915%22%20fill%3D%22%233088d4%22%2F%3E%3Cpath%20d%3D%22M177.50984%2080.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025%200-17.4175%207.5075-17.4175%2022.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375%200-15.74%206.32875-15.74%2018.7975v59.15H38.90484V80.077c0-12.455%203.17125-22.3525%209.54125-29.675%206.56875-7.3225%2015.17125-11.07625%2025.85-11.07625%2012.355%200%2021.71125%204.74875%2027.8975%2014.2475l6.01375%2010.08125%206.015-10.08125c6.185-9.49875%2015.54125-14.2475%2027.8975-14.2475%2010.6775%200%2019.28%203.75375%2025.85%2011.07625%206.36875%207.3225%209.54%2017.22%209.54%2029.675%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); - background-size: 16px; - background-repeat: no-repeat; - background-position: top 50% left 8px; - transition: all 0.5s; -} -.mstdn:hover { - background-color: #484c56; -} - -.mstdn > span { - color: #9baec8; - font-size: 12px; - padding-left: 3px; -} -.mstdn > span:before { - content: "@"; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css deleted file mode 100644 index 7759bed96..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_stickyheader.css +++ /dev/null @@ -1,15 +0,0 @@ - -@media (min-width: 75em) { - - [data-scrolldir="down"] .sticky { - position: fixed; - top:100px; - right:0; - } - - [data-scrolldir="up"] .sticky { - position: fixed; - top:100px; - right:0; - } -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css deleted file mode 100644 index 299a4a963..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_svg.css +++ /dev/null @@ -1 +0,0 @@ -.fill-current { fill: currentColor; } diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css deleted file mode 100644 index 6e0022cc9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tabs.css +++ /dev/null @@ -1,34 +0,0 @@ -.tab-button{ - margin-bottom:1px; - position: relative; - z-index: 1; - color:#333; - border-color:#ccc; - 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:#f1f2f2; - background-color: #f1f2f2; -} -.tab-content .tab-pane{ - display: none; -} -.tab-content .tab-pane.active{ - display: block; -} -/* Treatment of copy buttons inside a tab module */ -.tab-content .copy, .tab-content .copied{ - display: none; -} -.tab-content .tab-pane.active + .copy, .tab-content .tab-pane.active + .copied{ - display: block; -} \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css deleted file mode 100644 index d697c4d85..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_tachyons.css +++ /dev/null @@ -1,94 +0,0 @@ -/*! TACHYONS v4.7.0 | http://tachyons.io */ - -/* - * NOTE: The Tachyons folder is for backup/reference only. This file references the module - * ________ ______ - * ___ __/_____ _________ /______ ______________________ - * __ / _ __ `/ ___/_ __ \_ / / / __ \_ __ \_ ___/ - * _ / / /_/ // /__ _ / / / /_/ // /_/ / / / /(__ ) - * /_/ \__,_/ \___/ /_/ /_/_\__, / \____//_/ /_//____/ - * /____/ - * - * TABLE OF CONTENTS - * - * 1. External Library Includes - * - Normalize.css | http://normalize.css.github.io - * 2. Tachyons Modules - * 3. Variables - * - Media Queries - * - Colors - * 4. Debugging - * - Debug all - * - Debug children - * - */ - - -/* External Library Includes */ -@import 'tachyons/src/_normalize'; - - -/* Modules */ -@import 'tachyons/src/_box-sizing'; -/*@import 'tachyons/src/_aspect-ratios';*/ -@import 'tachyons/src/_images'; -@import 'tachyons/src/_background-size'; -@import 'tachyons/src/_background-position'; -/*@import 'tachyons/src/_outlines';*/ -@import 'tachyons/src/_borders'; -@import 'tachyons/src/_border-colors'; -@import 'tachyons/src/_border-radius'; -@import 'tachyons/src/_border-style'; -@import 'tachyons/src/_border-widths'; -@import 'tachyons/src/_box-shadow'; -/*@import 'tachyons/src/_code';*/ -@import 'tachyons/src/_coordinates'; -@import 'tachyons/src/_clears'; -@import 'tachyons/src/_display'; -@import 'tachyons/src/_flexbox'; -@import 'tachyons/src/_floats'; -/*@import 'tachyons/src/_font-family';*/ -@import 'tachyons/src/_font-style'; -@import 'tachyons/src/_font-weight'; -@import 'tachyons/src/_forms'; -@import 'tachyons/src/_heights'; -@import 'tachyons/src/_letter-spacing'; -@import 'tachyons/src/_line-height'; -@import 'tachyons/src/_links'; -@import 'tachyons/src/_lists'; -@import 'tachyons/src/_max-widths'; -@import 'tachyons/src/_widths'; -@import 'tachyons/src/_overflow'; -@import 'tachyons/src/_position'; -@import 'tachyons/src/_opacity'; -/*@import 'tachyons/src/_rotations';*/ -@import 'tachyons/src/_skins'; -@import 'tachyons/src/_skins-pseudo'; -@import 'tachyons/src/_spacing'; -@import 'tachyons/src/_negative-margins'; -@import 'tachyons/src/_tables'; -@import 'tachyons/src/_text-decoration'; -@import 'tachyons/src/_text-align'; -@import 'tachyons/src/_text-transform'; -@import 'tachyons/src/_type-scale'; -@import 'tachyons/src/_typography'; -@import 'tachyons/src/_utilities'; -@import 'tachyons/src/_visibility'; -@import 'tachyons/src/_white-space'; -@import 'tachyons/src/_vertical-align'; -@import 'tachyons/src/_hovers'; -@import 'tachyons/src/_z-index'; -@import 'tachyons/src/_nested'; -/*@import 'tachyons/src/_styles';*/ - -/* Variables */ -/* Importing here will allow you to override any variables in the modules */ -@import 'tachyons/src/_colors'; -@import 'tachyons/src/_media-queries'; - -/* Debugging */ -/*@import 'tachyons/src/_debug-children'; -@import 'tachyons/src/_debug-grid';*/ - -/* Uncomment out the line below to help debug layout issues */ -/* @import 'tachyons/src/_debug'; */ diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css deleted file mode 100644 index 8701b1530..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/_variables.css +++ /dev/null @@ -1,16 +0,0 @@ -:root { - --primary-color: #0594CB; - --primary-color-dark: #0A1922; - --primary-color-light: #f9f9f9; - --accent-color: #EBB951; - --accent-color-light: #FF4088; - --accent-color-dark: #33ba91; - --text-color-primary: #373737; - --text-on-primary-color: #fff; - --text-color-secondary: #ccc; - --text-color-disabled: #F7f7f7; - --divider-color: #f6f6f6; - --warn-color: red; - - --blue: var(--primary-color); -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css deleted file mode 100644 index fd0f2a503..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/css/main.css +++ /dev/null @@ -1,39 +0,0 @@ -/*Base Styles*/ -@import '_tachyons'; - -/* purgecss start ignore */ -@import '_header-link'; -@import '_animation'; -@import '_documentation-styles'; - -@import 'docsearch.js/dist/cdn/docsearch.min'; -@import '_carousel'; -@import '_code'; -@import '_tabs'; -@import '_color-scheme'; -@import '_columns'; -@import '_content'; -@import '_content-tables'; -@import '_definition-lists'; -@import '_fluid-type'; -@import '_font-family'; -@import '_hugo-internal-template-styling'; -@import '_no-js'; -@import '_social-icons'; -@import '_stickyheader'; -@import '_right-sidebar'; -@import '_svg'; -@import '_chroma'; -@import '_variables'; -@import '_print'; -@import '_shame'; - -.nested-blockquote blockquote { - border-left: 4px solid var(--primary-color); - padding-left: 1em; -} - -.mw-90 { - max-width:90%; -} -/* purgecss end ignore */ diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/Route4MeLogoBlueOnWhite.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/Route4MeLogoBlueOnWhite.svg deleted file mode 100644 index d4334e8d8..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/Route4MeLogoBlueOnWhite.svg +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/bep-consulting.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/bep-consulting.svg deleted file mode 100644 index 598a1eb71..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/bep-consulting.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-dark.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-dark.svg deleted file mode 100644 index 657b75c50..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-light.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-light.svg deleted file mode 100644 index a0697df08..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/butter-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-blue.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-blue.svg deleted file mode 100644 index 79b13f431..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-blue.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-white.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-white.svg deleted file mode 100644 index 83e319a6d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/cloudcannon-white.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/esolia-logo.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/esolia-logo.svg deleted file mode 100644 index 3f5344c61..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/esolia-logo.svg +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/goland.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/goland.svg deleted file mode 100644 index ff3bde8bf..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/goland.svg +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/graitykit-dark.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/graitykit-dark.svg deleted file mode 100644 index fd7d12f5c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/graitykit-dark.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo.svg deleted file mode 100644 index 7060e856f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo_standard_light_medium.png b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/linode-logo_standard_light_medium.png deleted file mode 100644 index 269e6af84b4053038ad2c125dcb802146845cd84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11972 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%0AJz5q5wV>N)Gl1w^%Y*kQ0b=_fXywq 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 UzWnF?MnkyieoMpq2F$qs0k%!pAOHXW diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg deleted file mode 100644 index 58fd601f5..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg b/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg deleted file mode 100644 index 3b85ece5c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js deleted file mode 100644 index c89af041b..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/index.js +++ /dev/null @@ -1,10 +0,0 @@ -require('typeface-muli'); -import styles from './css/main.css'; -import './js/clipboardjs.js'; -import './js/docsearch.js'; -import './js/lazysizes.js'; -import './js/menutoggle.js'; -import './js/scrolldir.js'; -import './js/smoothscroll.js'; -import './js/tabs.js'; -import './js/nojs.js'; diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js deleted file mode 100644 index ffae31c7f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/clipboardjs.js +++ /dev/null @@ -1,30 +0,0 @@ -var Clipboard = require('clipboard/dist/clipboard.js'); -new Clipboard('.copy', { - target: function(trigger) { - if(trigger.classList.contains('copy-toggle')){ - return trigger.previousElementSibling; - } - return trigger.nextElementSibling; - } - }).on('success', function(e) { - successMessage(e.trigger, 'Copied!'); - e.clearSelection(); - }).on('error', function(e) { - successMessage(e.trigger, fallbackMessage(e.action)); -}); - -function successMessage(elem, msg) { - elem.setAttribute('class', 'copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2'); - elem.setAttribute('aria-label', msg); -} - -function fallbackMessage(elem, action) { - var actionMsg = ''; - var actionKey = (action === 'cut' ? 'X' : 'C'); - if (isMac) { - actionMsg = 'Press ⌘-' + actionKey; - } else { - actionMsg = 'Press Ctrl-' + actionKey; - } - return actionMsg; -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js deleted file mode 100644 index e14fb2994..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/docsearch.js +++ /dev/null @@ -1,8 +0,0 @@ -var docsearch = require('docsearch.js/dist/cdn/docsearch.js'); -docsearch({ - appId: 'D1BPLZHGYQ', - apiKey: '6df94e1e5d55d258c56f60d974d10314', - indexName: 'hugodocs', - inputSelector: '#search-input', - debug: true, // Set debug to true if you want to inspect the dropdown -}); diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/filesaver.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/filesaver.js deleted file mode 100644 index e69de29bb..000000000 diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js deleted file mode 100644 index 4eb3950af..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/lazysizes.js +++ /dev/null @@ -1,3 +0,0 @@ -var lazysizes = require('lazysizes'); -// var lsnoscript = require('lazysizes/plugins/noscript/ls.noscript.js'); -var unveilhooks = require('lazysizes/plugins/unveilhooks/ls.unveilhooks.js'); diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js deleted file mode 100644 index f6d3eac9f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/main.js +++ /dev/null @@ -1,22 +0,0 @@ -import styles from './../css/main.css'; -import './clipboardjs.js' -import './codeblocks.js' -import './docsearch.js' -import './lazysizes.js' -import './menutoggle.js' -import './scrolldir.js' -import './smoothscroll.js' -import './tabs.js' -import './nojs.js' - -// TO use jQuery, just call the modules you want -// var $ = require('jquery/src/core'); -// require('jquery/src/core/init'); -// require('jquery/src/manipulation'); - -// OR, use all of them -// var $ = require('jquery/src/jquery'); - -// And write your code -// $('body').append('

Jquery is working

'); -// diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/menutoggle.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/menutoggle.js deleted file mode 100644 index 40bda0ce9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/menutoggle.js +++ /dev/null @@ -1,31 +0,0 @@ -// Grab any element that has the 'js-toggle' class and add an event listener 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') - - } - } diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/nojs.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/nojs.js deleted file mode 100644 index 50b5126a9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/nojs.js +++ /dev/null @@ -1 +0,0 @@ -document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js'); diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/scrolldir.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/scrolldir.js deleted file mode 100644 index 0b69978cd..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/scrolldir.js +++ /dev/null @@ -1 +0,0 @@ -var scrollDir = require('scrolldir/dist/scrolldir.auto.min.js'); diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/smoothscroll.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/smoothscroll.js deleted file mode 100644 index 4bb2d99b8..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/smoothscroll.js +++ /dev/null @@ -1,80 +0,0 @@ -// 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(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() { - 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() { - 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() { - 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); - - }); - - } - -})(); diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/tabs.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/tabs.js deleted file mode 100644 index a689d474e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/js/tabs.js +++ /dev/null @@ -1,43 +0,0 @@ -/** - * 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 preferred language in its localStorage, tabs are set to it. -if(window.localStorage.getItem('configLangPref')) { - toggleTabs(window.localStorage.getItem('configLangPref')) -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/gohugoio-card-base-1.png b/_vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/gohugoio-card-base-1.png deleted file mode 100644 index 65555845bf5822ceb6dc06a3ef04850ad5e434dd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 242906 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

db?Vtve7`qf3Z3Nmy!`PID6Oz) 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

  • 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 T!Z1Nq_#;kIo|bXGvW)rvxp>Xu diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css b/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css deleted file mode 100644 index 4fd374a1f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/css/app.css +++ /dev/null @@ -1,5349 +0,0 @@ -/* muli-200normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 200; - src: - local('Muli Extra Light '), - local('Muli-Extra Light'), - url(/fonts/muli-latin-200.woff2) format('woff2'), - url(/fonts/muli-latin-200.woff) format('woff'); /* Modern Browsers */ -} -/* muli-200italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 200; - src: - local('Muli Extra Light italic'), - local('Muli-Extra Lightitalic'), - url(/fonts/muli-latin-200italic.woff2) format('woff2'), - url(/fonts/muli-latin-200italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-300normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 300; - src: - local('Muli Light '), - local('Muli-Light'), - url(/fonts/muli-latin-300.woff2) format('woff2'), - url(/fonts/muli-latin-300.woff) format('woff'); /* Modern Browsers */ -} -/* muli-300italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 300; - src: - local('Muli Light italic'), - local('Muli-Lightitalic'), - url(/fonts/muli-latin-300italic.woff2) format('woff2'), - url(/fonts/muli-latin-300italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-400normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 400; - src: - local('Muli Regular '), - local('Muli-Regular'), - url(/fonts/muli-latin-400.woff2) format('woff2'), - url(/fonts/muli-latin-400.woff) format('woff'); /* Modern Browsers */ -} -/* muli-400italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 400; - src: - local('Muli Regular italic'), - local('Muli-Regularitalic'), - url(/fonts/muli-latin-400italic.woff2) format('woff2'), - url(/fonts/muli-latin-400italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-600normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 600; - src: - local('Muli SemiBold '), - local('Muli-SemiBold'), - url(/fonts/muli-latin-600.woff2) format('woff2'), - url(/fonts/muli-latin-600.woff) format('woff'); /* Modern Browsers */ -} -/* muli-600italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 600; - src: - local('Muli SemiBold italic'), - local('Muli-SemiBolditalic'), - url(/fonts/muli-latin-600italic.woff2) format('woff2'), - url(/fonts/muli-latin-600italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-700normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 700; - src: - local('Muli Bold '), - local('Muli-Bold'), - url(/fonts/muli-latin-700.woff2) format('woff2'), - url(/fonts/muli-latin-700.woff) format('woff'); /* Modern Browsers */ -} -/* muli-700italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 700; - src: - local('Muli Bold italic'), - local('Muli-Bolditalic'), - url(/fonts/muli-latin-700italic.woff2) format('woff2'), - url(/fonts/muli-latin-700italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-800normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 800; - src: - local('Muli ExtraBold '), - local('Muli-ExtraBold'), - url(/fonts/muli-latin-800.woff2) format('woff2'), - url(/fonts/muli-latin-800.woff) format('woff'); /* Modern Browsers */ -} -/* muli-800italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 800; - src: - local('Muli ExtraBold italic'), - local('Muli-ExtraBolditalic'), - url(/fonts/muli-latin-800italic.woff2) format('woff2'), - url(/fonts/muli-latin-800italic.woff) format('woff'); /* Modern Browsers */ -} -/* muli-900normal - latin */ -@font-face { - font-family: 'Muli'; - font-style: normal; - font-display: swap; - font-weight: 900; - src: - local('Muli Black '), - local('Muli-Black'), - url(/fonts/muli-latin-900.woff2) format('woff2'), - url(/fonts/muli-latin-900.woff) format('woff'); /* Modern Browsers */ -} -/* muli-900italic - latin */ -@font-face { - font-family: 'Muli'; - font-style: italic; - font-display: swap; - font-weight: 900; - src: - local('Muli Black italic'), - local('Muli-Blackitalic'), - url(/fonts/muli-latin-900italic.woff2) format('woff2'), - url(/fonts/muli-latin-900italic.woff) format('woff'); /* Modern Browsers */ -} - - -/*Base Styles*/ -/*! TACHYONS v4.7.0 | http://tachyons.io */ -/* - * NOTE: The Tachyons folder is for backup/reference only. This file references the module - * ________ ______ - * ___ __/_____ _________ /______ ______________________ - * __ / _ __ `/ ___/_ __ \_ / / / __ \_ __ \_ ___/ - * _ / / /_/ // /__ _ / / / /_/ // /_/ / / / /(__ ) - * /_/ \__,_/ \___/ /_/ /_/_\__, / \____//_/ /_//____/ - * /____/ - * - * TABLE OF CONTENTS - * - * 1. External Library Includes - * - Normalize.css | http://normalize.css.github.io - * 2. Tachyons Modules - * 3. Variables - * - Media Queries - * - Colors - * 4. Debugging - * - Debug all - * - Debug children - * - */ -/* External Library Includes */ -/*! normalize.css v8.0.0 | MIT License | github.com/necolas/normalize.css */ -/* Document - ========================================================================== */ -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} -/* Sections - ========================================================================== */ -/** - * Remove the margin in all browsers. - */ -body { - margin: 0; -} -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ -h1 { - font-size: 2em; - margin: 0.67em 0; -} -/* Grouping content - ========================================================================== */ -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ -hr { - -webkit-box-sizing: content-box; - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} -/* Text-level semantics - ========================================================================== */ -/** - * Remove the gray background on active links in IE 10. - */ -a { - background-color: transparent; -} -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - -webkit-text-decoration: underline dotted; - text-decoration: underline dotted; /* 2 */ -} -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ -b, -strong { - font-weight: bolder; -} -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} -/** - * Add the correct font size in all browsers. - */ -small { - font-size: 80%; -} -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} -sub { - bottom: -0.25em; -} -sup { - top: -0.5em; -} -/* Embedded content - ========================================================================== */ -/** - * Remove the border on images inside links in IE 10. - */ -img { - border-style: none; -} -/* Forms - ========================================================================== */ -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ -button, -input { /* 1 */ - overflow: visible; -} -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ -button, -select { /* 1 */ - text-transform: none; -} -/** - * Correct the inability to style clickable types in iOS and Safari. - */ -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} -/** - * Remove the inner border and padding in Firefox. - */ -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} -/** - * Restore the focus styles unset by the previous rule. - */ -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} -/** - * Correct the padding in Firefox. - */ -fieldset { - padding: 0.35em 0.75em 0.625em; -} -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ -legend { - -webkit-box-sizing: border-box; - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ -progress { - vertical-align: baseline; -} -/** - * Remove the default vertical scrollbar in IE 10+. - */ -textarea { - overflow: auto; -} -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ -[type="checkbox"], -[type="radio"] { - -webkit-box-sizing: border-box; - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} -/* Interactive - ========================================================================== */ -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ -details { - display: block; -} -/* - * Add the correct display in all browsers. - */ -summary { - display: list-item; -} -/* Misc - ========================================================================== */ -/** - * Add the correct display in IE 10+. - */ -template { - display: none; -} -/** - * Add the correct display in IE 10. - */ -[hidden] { - display: none; -} -/* Modules */ -/* - - BOX SIZING - -*/ -html, -body, -div, -article, -aside, -section, -main, -nav, -footer, -header, -form, -fieldset, -legend, -pre, -code, -a, -h1,h2,h3,h4,h5,h6, -p, -ul, -ol, -li, -dl, -dt, -dd, -blockquote, -figcaption, -figure, -textarea, -table, -td, -th, -tr, -input[type="email"], -input[type="number"], -input[type="password"], -input[type="tel"], -input[type="text"], -input[type="url"], -.border-box { - -webkit-box-sizing: border-box; - box-sizing: border-box; -} -/*@import 'tachyons/src/_aspect-ratios';*/ -/* - - IMAGES - Docs: http://tachyons.io/docs/elements/images/ - -*/ -/* Responsive images! */ -img { max-width: 100%; } -/* - - BACKGROUND SIZE - Docs: http://tachyons.io/docs/themes/background-size/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* - Often used in combination with background image set as an inline style - on an html element. -*/ -.cover { background-size: cover!important; } -.contain { background-size: contain!important; } -@media screen and (min-width: 30em) { - .cover-ns { background-size: cover!important; } - .contain-ns { background-size: contain!important; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .cover-m { background-size: cover!important; } - .contain-m { background-size: contain!important; } -} -@media screen and (min-width: 60em) { - .cover-l { background-size: cover!important; } - .contain-l { background-size: contain!important; } -} -/* - - BACKGROUND POSITION - - Base: - bg = background - - Modifiers: - -center = center center - -top = top center - -right = center right - -bottom = bottom center - -left = center left - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - - */ -.bg-center { - background-repeat: no-repeat; - background-position: center center; -} -.bg-top { - background-repeat: no-repeat; - background-position: top center; -} -.bg-right { - background-repeat: no-repeat; - background-position: center right; -} -.bg-bottom { - background-repeat: no-repeat; - background-position: bottom center; -} -.bg-left { - background-repeat: no-repeat; - background-position: center left; -} -@media screen and (min-width: 30em) { - .bg-center-ns { - background-repeat: no-repeat; - background-position: center center; - } - - .bg-top-ns { - background-repeat: no-repeat; - background-position: top center; - } - - .bg-right-ns { - background-repeat: no-repeat; - background-position: center right; - } - - .bg-bottom-ns { - background-repeat: no-repeat; - background-position: bottom center; - } - - .bg-left-ns { - background-repeat: no-repeat; - background-position: center left; - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .bg-center-m { - background-repeat: no-repeat; - background-position: center center; - } - - .bg-top-m { - background-repeat: no-repeat; - background-position: top center; - } - - .bg-right-m { - background-repeat: no-repeat; - background-position: center right; - } - - .bg-bottom-m { - background-repeat: no-repeat; - background-position: bottom center; - } - - .bg-left-m { - background-repeat: no-repeat; - background-position: center left; - } -} -@media screen and (min-width: 60em) { - .bg-center-l { - background-repeat: no-repeat; - background-position: center center; - } - - .bg-top-l { - background-repeat: no-repeat; - background-position: top center; - } - - .bg-right-l { - background-repeat: no-repeat; - background-position: center right; - } - - .bg-bottom-l { - background-repeat: no-repeat; - background-position: bottom center; - } - - .bg-left-l { - background-repeat: no-repeat; - background-position: center left; - } -} -/*@import 'tachyons/src/_outlines';*/ -/* - - BORDERS - Docs: http://tachyons.io/docs/themes/borders/ - - Base: - b = border - - Modifiers: - a = all - t = top - r = right - b = bottom - l = left - n = none - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.ba { border-style: solid; border-width: 1px; } -.bt { border-top-style: solid; border-top-width: 1px; } -.br { border-right-style: solid; border-right-width: 1px; } -.bb { border-bottom-style: solid; border-bottom-width: 1px; } -.bl { border-left-style: solid; border-left-width: 1px; } -.bn { border-style: none; border-width: 0; } -@media screen and (min-width: 30em) { - .ba-ns { border-style: solid; border-width: 1px; } - .bt-ns { border-top-style: solid; border-top-width: 1px; } - .br-ns { border-right-style: solid; border-right-width: 1px; } - .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; } - .bl-ns { border-left-style: solid; border-left-width: 1px; } - .bn-ns { border-style: none; border-width: 0; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .ba-m { border-style: solid; border-width: 1px; } - .bt-m { border-top-style: solid; border-top-width: 1px; } - .br-m { border-right-style: solid; border-right-width: 1px; } - .bb-m { border-bottom-style: solid; border-bottom-width: 1px; } - .bl-m { border-left-style: solid; border-left-width: 1px; } - .bn-m { border-style: none; border-width: 0; } -} -@media screen and (min-width: 60em) { - .ba-l { border-style: solid; border-width: 1px; } - .bt-l { border-top-style: solid; border-top-width: 1px; } - .br-l { border-right-style: solid; border-right-width: 1px; } - .bb-l { border-bottom-style: solid; border-bottom-width: 1px; } - .bl-l { border-left-style: solid; border-left-width: 1px; } - .bn-l { border-style: none; border-width: 0; } -} -/* - - BORDER COLORS - Docs: http://tachyons.io/docs/themes/borders/ - - Border colors can be used to extend the base - border classes ba,bt,bb,br,bl found in the _borders.css file. - - The base border class by default will set the color of the border - to that of the current text color. These classes are for the cases - where you desire for the text and border colors to be different. - - Base: - b = border - - Modifiers: - --color-name = each color variable name is also a border color name - -*/ -.b--black { border-color: #000; } -.b--near-black { border-color: #111; } -.b--dark-gray { border-color: #333; } -.b--mid-gray { border-color: #555; } -.b--gray { border-color: #777; } -.b--silver { border-color: #999; } -.b--light-silver { border-color: #aaa; } -.b--moon-gray { border-color: #ccc; } -.b--light-gray { border-color: #eee; } -.b--near-white { border-color: #f4f4f4; } -.b--white { border-color: #fff; } -.b--white-90 { border-color: rgba(255, 255, 255, .9); } -.b--white-80 { border-color: rgba(255, 255, 255, .8); } -.b--white-70 { border-color: rgba(255, 255, 255, .7); } -.b--white-60 { border-color: rgba(255, 255, 255, .6); } -.b--white-50 { border-color: rgba(255, 255, 255, .5); } -.b--white-40 { border-color: rgba(255, 255, 255, .4); } -.b--white-30 { border-color: rgba(255, 255, 255, .3); } -.b--white-20 { border-color: rgba(255, 255, 255, .2); } -.b--white-10 { border-color: rgba(255, 255, 255, .1); } -.b--white-05 { border-color: rgba(255, 255, 255, .05); } -.b--white-025 { border-color: rgba(255, 255, 255, .025); } -.b--white-0125 { border-color: rgba(255, 255, 255, .0125); } -.b--black-90 { border-color: rgba(0, 0, 0, .9); } -.b--black-80 { border-color: rgba(0, 0, 0, .8); } -.b--black-70 { border-color: rgba(0, 0, 0, .7); } -.b--black-60 { border-color: rgba(0, 0, 0, .6); } -.b--black-50 { border-color: rgba(0, 0, 0, .5); } -.b--black-40 { border-color: rgba(0, 0, 0, .4); } -.b--black-30 { border-color: rgba(0, 0, 0, .3); } -.b--black-20 { border-color: rgba(0, 0, 0, .2); } -.b--black-10 { border-color: rgba(0, 0, 0, .1); } -.b--black-05 { border-color: rgba(0, 0, 0, .05); } -.b--black-025 { border-color: rgba(0, 0, 0, .025); } -.b--black-0125 { border-color: rgba(0, 0, 0, .0125); } -.b--dark-red { border-color: #e7040f; } -.b--red { border-color: #ff4136; } -.b--light-red { border-color: #ff725c; } -.b--orange { border-color: #ff6300; } -.b--gold { border-color: #ffb700; } -.b--yellow { border-color: #ffd700; } -.b--light-yellow { border-color: #fbf1a9; } -.b--purple { border-color: #5e2ca5; } -.b--light-purple { border-color: #a463f2; } -.b--dark-pink { border-color: #d5008f; } -.b--hot-pink { border-color: #ff41b4; } -.b--pink { border-color: #ff80cc; } -.b--light-pink { border-color: #ffa3d7; } -.b--dark-green { border-color: #137752; } -.b--green { border-color: #19a974; } -.b--light-green { border-color: #9eebcf; } -.b--navy { border-color: #001b44; } -.b--dark-blue { border-color: #00449e; } -.b--blue { border-color: #0594CB; } -.b--light-blue { border-color: #96ccff; } -.b--lightest-blue { border-color: #cdecff; } -.b--washed-blue { border-color: #f6fffe; } -.b--washed-green { border-color: #e8fdf5; } -.b--washed-yellow { border-color: #fffceb; } -.b--washed-red { border-color: #ffdfdf; } -.b--transparent { border-color: transparent; } -.b--inherit { border-color: inherit; } -/* - - BORDER RADIUS - Docs: http://tachyons.io/docs/themes/border-radius/ - - Base: - br = border-radius - - Modifiers: - 0 = 0/none - 1 = 1st step in scale - 2 = 2nd step in scale - 3 = 3rd step in scale - 4 = 4th step in scale - - Literal values: - -100 = 100% - -pill = 9999px - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.br0 { border-radius: 0; } -.br1 { border-radius: .125rem; } -.br2 { border-radius: .25rem; } -.br3 { border-radius: .5rem; } -.br4 { border-radius: 1rem; } -.br-100 { border-radius: 100%; } -.br-pill { border-radius: 9999px; } -.br--bottom { - border-top-left-radius: 0; - border-top-right-radius: 0; - } -.br--top { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } -.br--right { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } -.br--left { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } -@media screen and (min-width: 30em) { - .br0-ns { border-radius: 0; } - .br1-ns { border-radius: .125rem; } - .br2-ns { border-radius: .25rem; } - .br3-ns { border-radius: .5rem; } - .br4-ns { border-radius: 1rem; } - .br-100-ns { border-radius: 100%; } - .br-pill-ns { border-radius: 9999px; } - .br--bottom-ns { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - .br--top-ns { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - .br--right-ns { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - .br--left-ns { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .br0-m { border-radius: 0; } - .br1-m { border-radius: .125rem; } - .br2-m { border-radius: .25rem; } - .br3-m { border-radius: .5rem; } - .br4-m { border-radius: 1rem; } - .br-100-m { border-radius: 100%; } - .br-pill-m { border-radius: 9999px; } - .br--bottom-m { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - .br--top-m { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - .br--right-m { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - .br--left-m { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } -} -@media screen and (min-width: 60em) { - .br0-l { border-radius: 0; } - .br1-l { border-radius: .125rem; } - .br2-l { border-radius: .25rem; } - .br3-l { border-radius: .5rem; } - .br4-l { border-radius: 1rem; } - .br-100-l { border-radius: 100%; } - .br-pill-l { border-radius: 9999px; } - .br--bottom-l { - border-top-left-radius: 0; - border-top-right-radius: 0; - } - .br--top-l { - border-bottom-left-radius: 0; - border-bottom-right-radius: 0; - } - .br--right-l { - border-top-left-radius: 0; - border-bottom-left-radius: 0; - } - .br--left-l { - border-top-right-radius: 0; - border-bottom-right-radius: 0; - } -} -/* - - BORDER STYLES - Docs: http://tachyons.io/docs/themes/borders/ - - Depends on base border module in _borders.css - - Base: - b = border-style - - Modifiers: - --none = none - --dotted = dotted - --dashed = dashed - --solid = solid - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - - */ -.b--dotted { border-style: dotted; } -.b--dashed { border-style: dashed; } -.b--solid { border-style: solid; } -.b--none { border-style: none; } -@media screen and (min-width: 30em) { - .b--dotted-ns { border-style: dotted; } - .b--dashed-ns { border-style: dashed; } - .b--solid-ns { border-style: solid; } - .b--none-ns { border-style: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .b--dotted-m { border-style: dotted; } - .b--dashed-m { border-style: dashed; } - .b--solid-m { border-style: solid; } - .b--none-m { border-style: none; } -} -@media screen and (min-width: 60em) { - .b--dotted-l { border-style: dotted; } - .b--dashed-l { border-style: dashed; } - .b--solid-l { border-style: solid; } - .b--none-l { border-style: none; } -} -/* - - BORDER WIDTHS - Docs: http://tachyons.io/docs/themes/borders/ - - Base: - bw = border-width - - Modifiers: - 0 = 0 width border - 1 = 1st step in border-width scale - 2 = 2nd step in border-width scale - 3 = 3rd step in border-width scale - 4 = 4th step in border-width scale - 5 = 5th step in border-width scale - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.bw0 { border-width: 0; } -.bw1 { border-width: .125rem; } -.bw2 { border-width: .25rem; } -.bw3 { border-width: .5rem; } -.bw4 { border-width: 1rem; } -.bw5 { border-width: 2rem; } -/* Resets */ -.bt-0 { border-top-width: 0; } -.br-0 { border-right-width: 0; } -.bb-0 { border-bottom-width: 0; } -.bl-0 { border-left-width: 0; } -@media screen and (min-width: 30em) { - .bw0-ns { border-width: 0; } - .bw1-ns { border-width: .125rem; } - .bw2-ns { border-width: .25rem; } - .bw3-ns { border-width: .5rem; } - .bw4-ns { border-width: 1rem; } - .bw5-ns { border-width: 2rem; } - .bt-0-ns { border-top-width: 0; } - .br-0-ns { border-right-width: 0; } - .bb-0-ns { border-bottom-width: 0; } - .bl-0-ns { border-left-width: 0; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .bw0-m { border-width: 0; } - .bw1-m { border-width: .125rem; } - .bw2-m { border-width: .25rem; } - .bw3-m { border-width: .5rem; } - .bw4-m { border-width: 1rem; } - .bw5-m { border-width: 2rem; } - .bt-0-m { border-top-width: 0; } - .br-0-m { border-right-width: 0; } - .bb-0-m { border-bottom-width: 0; } - .bl-0-m { border-left-width: 0; } -} -@media screen and (min-width: 60em) { - .bw0-l { border-width: 0; } - .bw1-l { border-width: .125rem; } - .bw2-l { border-width: .25rem; } - .bw3-l { border-width: .5rem; } - .bw4-l { border-width: 1rem; } - .bw5-l { border-width: 2rem; } - .bt-0-l { border-top-width: 0; } - .br-0-l { border-right-width: 0; } - .bb-0-l { border-bottom-width: 0; } - .bl-0-l { border-left-width: 0; } -} -/* - - BOX-SHADOW - Docs: http://tachyons.io/docs/themes/box-shadow/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - - */ -.shadow-1 { -webkit-box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); } -.shadow-2 { -webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); } -.shadow-3 { -webkit-box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); } -.shadow-4 { -webkit-box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); } -.shadow-5 { -webkit-box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); } -@media screen and (min-width: 30em) { - .shadow-1-ns { -webkit-box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); } - .shadow-2-ns { -webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); } - .shadow-3-ns { -webkit-box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); } - .shadow-4-ns { -webkit-box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); } - .shadow-5-ns { -webkit-box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .shadow-1-m { -webkit-box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); } - .shadow-2-m { -webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); } - .shadow-3-m { -webkit-box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); } - .shadow-4-m { -webkit-box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); } - .shadow-5-m { -webkit-box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); } -} -@media screen and (min-width: 60em) { - .shadow-1-l { -webkit-box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, .2); } - .shadow-2-l { -webkit-box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, .2); } - .shadow-3-l { -webkit-box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, .2); } - .shadow-4-l { -webkit-box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, .2); } - .shadow-5-l { -webkit-box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, .2); } -} -/*@import 'tachyons/src/_code';*/ -/* - - COORDINATES - Docs: http://tachyons.io/docs/layout/position/ - - Use in combination with the position module. - - Base: - top - bottom - right - left - - Modifiers: - -0 = literal value 0 - -1 = literal value 1 - -2 = literal value 2 - --1 = literal value -1 - --2 = literal value -2 - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.top-0 { top: 0; } -.right-0 { right: 0; } -.bottom-0 { bottom: 0; } -.left-0 { left: 0; } -.top-1 { top: 1rem; } -.right-1 { right: 1rem; } -.bottom-1 { bottom: 1rem; } -.left-1 { left: 1rem; } -.top-2 { top: 2rem; } -.right-2 { right: 2rem; } -.bottom-2 { bottom: 2rem; } -.left-2 { left: 2rem; } -.top--1 { top: -1rem; } -.right--1 { right: -1rem; } -.bottom--1 { bottom: -1rem; } -.left--1 { left: -1rem; } -.top--2 { top: -2rem; } -.right--2 { right: -2rem; } -.bottom--2 { bottom: -2rem; } -.left--2 { left: -2rem; } -.absolute--fill { - top: 0; - right: 0; - bottom: 0; - left: 0; -} -@media screen and (min-width: 30em) { - .top-0-ns { top: 0; } - .left-0-ns { left: 0; } - .right-0-ns { right: 0; } - .bottom-0-ns { bottom: 0; } - .top-1-ns { top: 1rem; } - .left-1-ns { left: 1rem; } - .right-1-ns { right: 1rem; } - .bottom-1-ns { bottom: 1rem; } - .top-2-ns { top: 2rem; } - .left-2-ns { left: 2rem; } - .right-2-ns { right: 2rem; } - .bottom-2-ns { bottom: 2rem; } - .top--1-ns { top: -1rem; } - .right--1-ns { right: -1rem; } - .bottom--1-ns { bottom: -1rem; } - .left--1-ns { left: -1rem; } - .top--2-ns { top: -2rem; } - .right--2-ns { right: -2rem; } - .bottom--2-ns { bottom: -2rem; } - .left--2-ns { left: -2rem; } - .absolute--fill-ns { - top: 0; - right: 0; - bottom: 0; - left: 0; - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .top-0-m { top: 0; } - .left-0-m { left: 0; } - .right-0-m { right: 0; } - .bottom-0-m { bottom: 0; } - .top-1-m { top: 1rem; } - .left-1-m { left: 1rem; } - .right-1-m { right: 1rem; } - .bottom-1-m { bottom: 1rem; } - .top-2-m { top: 2rem; } - .left-2-m { left: 2rem; } - .right-2-m { right: 2rem; } - .bottom-2-m { bottom: 2rem; } - .top--1-m { top: -1rem; } - .right--1-m { right: -1rem; } - .bottom--1-m { bottom: -1rem; } - .left--1-m { left: -1rem; } - .top--2-m { top: -2rem; } - .right--2-m { right: -2rem; } - .bottom--2-m { bottom: -2rem; } - .left--2-m { left: -2rem; } - .absolute--fill-m { - top: 0; - right: 0; - bottom: 0; - left: 0; - } -} -@media screen and (min-width: 60em) { - .top-0-l { top: 0; } - .left-0-l { left: 0; } - .right-0-l { right: 0; } - .bottom-0-l { bottom: 0; } - .top-1-l { top: 1rem; } - .left-1-l { left: 1rem; } - .right-1-l { right: 1rem; } - .bottom-1-l { bottom: 1rem; } - .top-2-l { top: 2rem; } - .left-2-l { left: 2rem; } - .right-2-l { right: 2rem; } - .bottom-2-l { bottom: 2rem; } - .top--1-l { top: -1rem; } - .right--1-l { right: -1rem; } - .bottom--1-l { bottom: -1rem; } - .left--1-l { left: -1rem; } - .top--2-l { top: -2rem; } - .right--2-l { right: -2rem; } - .bottom--2-l { bottom: -2rem; } - .left--2-l { left: -2rem; } - .absolute--fill-l { - top: 0; - right: 0; - bottom: 0; - left: 0; - } -} -/* - - CLEARFIX - http://tachyons.io/docs/layout/clearfix/ - -*/ -/* Nicolas Gallaghers Clearfix solution - Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */ -.cf:before, -.cf:after { content: " "; display: table; } -.cf:after { clear: both; } -.cf { *zoom: 1; } -.cl { clear: left; } -.cr { clear: right; } -.cb { clear: both; } -.cn { clear: none; } -@media screen and (min-width: 30em) { - .cl-ns { clear: left; } - .cr-ns { clear: right; } - .cb-ns { clear: both; } - .cn-ns { clear: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .cl-m { clear: left; } - .cr-m { clear: right; } - .cb-m { clear: both; } - .cn-m { clear: none; } -} -@media screen and (min-width: 60em) { - .cl-l { clear: left; } - .cr-l { clear: right; } - .cb-l { clear: both; } - .cn-l { clear: none; } -} -/* - - DISPLAY - Docs: http://tachyons.io/docs/layout/display - - Base: - d = display - - Modifiers: - n = none - b = block - ib = inline-block - it = inline-table - t = table - tc = table-cell - t-row = table-row - t-columm = table-column - t-column-group = table-column-group - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.dn { display: none; } -.di { display: inline; } -.db { display: block; } -.dib { display: inline-block; } -.dit { display: inline-table; } -.dt { display: table; } -.dtc { display: table-cell; } -.dt-row { display: table-row; } -.dt-row-group { display: table-row-group; } -.dt-column { display: table-column; } -.dt-column-group { display: table-column-group; } -/* - This will set table to full width and then - all cells will be equal width -*/ -.dt--fixed { - table-layout: fixed; - width: 100%; -} -@media screen and (min-width: 30em) { - .dn-ns { display: none; } - .di-ns { display: inline; } - .db-ns { display: block; } - .dib-ns { display: inline-block; } - .dit-ns { display: inline-table; } - .dt-ns { display: table; } - .dtc-ns { display: table-cell; } - .dt-row-ns { display: table-row; } - .dt-row-group-ns { display: table-row-group; } - .dt-column-ns { display: table-column; } - .dt-column-group-ns { display: table-column-group; } - - .dt--fixed-ns { - table-layout: fixed; - width: 100%; - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .dn-m { display: none; } - .di-m { display: inline; } - .db-m { display: block; } - .dib-m { display: inline-block; } - .dit-m { display: inline-table; } - .dt-m { display: table; } - .dtc-m { display: table-cell; } - .dt-row-m { display: table-row; } - .dt-row-group-m { display: table-row-group; } - .dt-column-m { display: table-column; } - .dt-column-group-m { display: table-column-group; } - - .dt--fixed-m { - table-layout: fixed; - width: 100%; - } -} -@media screen and (min-width: 60em) { - .dn-l { display: none; } - .di-l { display: inline; } - .db-l { display: block; } - .dib-l { display: inline-block; } - .dit-l { display: inline-table; } - .dt-l { display: table; } - .dtc-l { display: table-cell; } - .dt-row-l { display: table-row; } - .dt-row-group-l { display: table-row-group; } - .dt-column-l { display: table-column; } - .dt-column-group-l { display: table-column-group; } - - .dt--fixed-l { - table-layout: fixed; - width: 100%; - } -} -/* - - FLEXBOX - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.flex { display: -webkit-box; display: -ms-flexbox; display: flex; } -.inline-flex { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; } -/* 1. Fix for Chrome 44 bug. - * https://code.google.com/p/chromium/issues/detail?id=506893 */ -.flex-auto { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; /* 1 */ - min-height: 0; /* 1 */ -} -.flex-none { -webkit-box-flex: 0; -ms-flex: none; flex: none; } -.flex-column { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } -.flex-row { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } -.flex-wrap { -ms-flex-wrap: wrap; flex-wrap: wrap; } -.flex-nowrap { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } -.flex-wrap-reverse { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; } -.flex-column-reverse { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; } -.flex-row-reverse { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; } -.items-start { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; } -.items-end { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; } -.items-center { -webkit-box-align: center; -ms-flex-align: center; align-items: center; } -.items-baseline { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; } -.items-stretch { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; } -.self-start { -ms-flex-item-align: start; align-self: flex-start; } -.self-end { -ms-flex-item-align: end; align-self: flex-end; } -.self-center { -ms-flex-item-align: center; align-self: center; } -.self-baseline { -ms-flex-item-align: baseline; align-self: baseline; } -.self-stretch { -ms-flex-item-align: stretch; align-self: stretch; } -.justify-start { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } -.justify-end { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } -.justify-center { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } -.justify-between { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } -.justify-around { -ms-flex-pack: distribute; justify-content: space-around; } -.content-start { -ms-flex-line-pack: start; align-content: flex-start; } -.content-end { -ms-flex-line-pack: end; align-content: flex-end; } -.content-center { -ms-flex-line-pack: center; align-content: center; } -.content-between { -ms-flex-line-pack: justify; align-content: space-between; } -.content-around { -ms-flex-line-pack: distribute; align-content: space-around; } -.content-stretch { -ms-flex-line-pack: stretch; align-content: stretch; } -.order-0 { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; } -.order-1 { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; } -.order-2 { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; } -.order-3 { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; } -.order-4 { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; } -.order-5 { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; } -.order-6 { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; } -.order-7 { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; } -.order-8 { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; } -.order-last { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; } -.flex-grow-0 { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; } -.flex-grow-1 { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; } -.flex-shrink-0 { -ms-flex-negative: 0; flex-shrink: 0; } -.flex-shrink-1 { -ms-flex-negative: 1; flex-shrink: 1; } -@media screen and (min-width: 30em) { - .flex-ns { display: -webkit-box; display: -ms-flexbox; display: flex; } - .inline-flex-ns { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; } - .flex-auto-ns { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; /* 1 */ - min-height: 0; /* 1 */ - } - .flex-none-ns { -webkit-box-flex: 0; -ms-flex: none; flex: none; } - .flex-column-ns { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } - .flex-row-ns { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } - .flex-wrap-ns { -ms-flex-wrap: wrap; flex-wrap: wrap; } - .flex-nowrap-ns { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } - .flex-wrap-reverse-ns { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; } - .flex-column-reverse-ns { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; } - .flex-row-reverse-ns { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; } - .items-start-ns { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; } - .items-end-ns { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; } - .items-center-ns { -webkit-box-align: center; -ms-flex-align: center; align-items: center; } - .items-baseline-ns { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; } - .items-stretch-ns { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; } - - .self-start-ns { -ms-flex-item-align: start; align-self: flex-start; } - .self-end-ns { -ms-flex-item-align: end; align-self: flex-end; } - .self-center-ns { -ms-flex-item-align: center; align-self: center; } - .self-baseline-ns { -ms-flex-item-align: baseline; align-self: baseline; } - .self-stretch-ns { -ms-flex-item-align: stretch; align-self: stretch; } - - .justify-start-ns { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } - .justify-end-ns { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } - .justify-center-ns { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } - .justify-between-ns { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } - .justify-around-ns { -ms-flex-pack: distribute; justify-content: space-around; } - - .content-start-ns { -ms-flex-line-pack: start; align-content: flex-start; } - .content-end-ns { -ms-flex-line-pack: end; align-content: flex-end; } - .content-center-ns { -ms-flex-line-pack: center; align-content: center; } - .content-between-ns { -ms-flex-line-pack: justify; align-content: space-between; } - .content-around-ns { -ms-flex-line-pack: distribute; align-content: space-around; } - .content-stretch-ns { -ms-flex-line-pack: stretch; align-content: stretch; } - - .order-0-ns { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; } - .order-1-ns { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; } - .order-2-ns { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; } - .order-3-ns { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; } - .order-4-ns { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; } - .order-5-ns { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; } - .order-6-ns { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; } - .order-7-ns { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; } - .order-8-ns { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; } - .order-last-ns { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; } - - .flex-grow-0-ns { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; } - .flex-grow-1-ns { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; } - - .flex-shrink-0-ns { -ms-flex-negative: 0; flex-shrink: 0; } - .flex-shrink-1-ns { -ms-flex-negative: 1; flex-shrink: 1; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .flex-m { display: -webkit-box; display: -ms-flexbox; display: flex; } - .inline-flex-m { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; } - .flex-auto-m { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; /* 1 */ - min-height: 0; /* 1 */ - } - .flex-none-m { -webkit-box-flex: 0; -ms-flex: none; flex: none; } - .flex-column-m { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } - .flex-row-m { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } - .flex-wrap-m { -ms-flex-wrap: wrap; flex-wrap: wrap; } - .flex-nowrap-m { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } - .flex-wrap-reverse-m { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; } - .flex-column-reverse-m { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; } - .flex-row-reverse-m { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; } - .items-start-m { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; } - .items-end-m { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; } - .items-center-m { -webkit-box-align: center; -ms-flex-align: center; align-items: center; } - .items-baseline-m { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; } - .items-stretch-m { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; } - - .self-start-m { -ms-flex-item-align: start; align-self: flex-start; } - .self-end-m { -ms-flex-item-align: end; align-self: flex-end; } - .self-center-m { -ms-flex-item-align: center; align-self: center; } - .self-baseline-m { -ms-flex-item-align: baseline; align-self: baseline; } - .self-stretch-m { -ms-flex-item-align: stretch; align-self: stretch; } - - .justify-start-m { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } - .justify-end-m { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } - .justify-center-m { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } - .justify-between-m { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } - .justify-around-m { -ms-flex-pack: distribute; justify-content: space-around; } - - .content-start-m { -ms-flex-line-pack: start; align-content: flex-start; } - .content-end-m { -ms-flex-line-pack: end; align-content: flex-end; } - .content-center-m { -ms-flex-line-pack: center; align-content: center; } - .content-between-m { -ms-flex-line-pack: justify; align-content: space-between; } - .content-around-m { -ms-flex-line-pack: distribute; align-content: space-around; } - .content-stretch-m { -ms-flex-line-pack: stretch; align-content: stretch; } - - .order-0-m { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; } - .order-1-m { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; } - .order-2-m { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; } - .order-3-m { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; } - .order-4-m { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; } - .order-5-m { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; } - .order-6-m { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; } - .order-7-m { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; } - .order-8-m { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; } - .order-last-m { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; } - - .flex-grow-0-m { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; } - .flex-grow-1-m { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; } - - .flex-shrink-0-m { -ms-flex-negative: 0; flex-shrink: 0; } - .flex-shrink-1-m { -ms-flex-negative: 1; flex-shrink: 1; } -} -@media screen and (min-width: 60em) { - .flex-l { display: -webkit-box; display: -ms-flexbox; display: flex; } - .inline-flex-l { display: -webkit-inline-box; display: -ms-inline-flexbox; display: inline-flex; } - .flex-auto-l { - -webkit-box-flex: 1; - -ms-flex: 1 1 auto; - flex: 1 1 auto; - min-width: 0; /* 1 */ - min-height: 0; /* 1 */ - } - .flex-none-l { -webkit-box-flex: 0; -ms-flex: none; flex: none; } - .flex-column-l { -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; } - .flex-row-l { -webkit-box-orient: horizontal; -webkit-box-direction: normal; -ms-flex-direction: row; flex-direction: row; } - .flex-wrap-l { -ms-flex-wrap: wrap; flex-wrap: wrap; } - .flex-nowrap-l { -ms-flex-wrap: nowrap; flex-wrap: nowrap; } - .flex-wrap-reverse-l { -ms-flex-wrap: wrap-reverse; flex-wrap: wrap-reverse; } - .flex-column-reverse-l { -webkit-box-orient: vertical; -webkit-box-direction: reverse; -ms-flex-direction: column-reverse; flex-direction: column-reverse; } - .flex-row-reverse-l { -webkit-box-orient: horizontal; -webkit-box-direction: reverse; -ms-flex-direction: row-reverse; flex-direction: row-reverse; } - - .items-start-l { -webkit-box-align: start; -ms-flex-align: start; align-items: flex-start; } - .items-end-l { -webkit-box-align: end; -ms-flex-align: end; align-items: flex-end; } - .items-center-l { -webkit-box-align: center; -ms-flex-align: center; align-items: center; } - .items-baseline-l { -webkit-box-align: baseline; -ms-flex-align: baseline; align-items: baseline; } - .items-stretch-l { -webkit-box-align: stretch; -ms-flex-align: stretch; align-items: stretch; } - - .self-start-l { -ms-flex-item-align: start; align-self: flex-start; } - .self-end-l { -ms-flex-item-align: end; align-self: flex-end; } - .self-center-l { -ms-flex-item-align: center; align-self: center; } - .self-baseline-l { -ms-flex-item-align: baseline; align-self: baseline; } - .self-stretch-l { -ms-flex-item-align: stretch; align-self: stretch; } - - .justify-start-l { -webkit-box-pack: start; -ms-flex-pack: start; justify-content: flex-start; } - .justify-end-l { -webkit-box-pack: end; -ms-flex-pack: end; justify-content: flex-end; } - .justify-center-l { -webkit-box-pack: center; -ms-flex-pack: center; justify-content: center; } - .justify-between-l { -webkit-box-pack: justify; -ms-flex-pack: justify; justify-content: space-between; } - .justify-around-l { -ms-flex-pack: distribute; justify-content: space-around; } - - .content-start-l { -ms-flex-line-pack: start; align-content: flex-start; } - .content-end-l { -ms-flex-line-pack: end; align-content: flex-end; } - .content-center-l { -ms-flex-line-pack: center; align-content: center; } - .content-between-l { -ms-flex-line-pack: justify; align-content: space-between; } - .content-around-l { -ms-flex-line-pack: distribute; align-content: space-around; } - .content-stretch-l { -ms-flex-line-pack: stretch; align-content: stretch; } - - .order-0-l { -webkit-box-ordinal-group: 1; -ms-flex-order: 0; order: 0; } - .order-1-l { -webkit-box-ordinal-group: 2; -ms-flex-order: 1; order: 1; } - .order-2-l { -webkit-box-ordinal-group: 3; -ms-flex-order: 2; order: 2; } - .order-3-l { -webkit-box-ordinal-group: 4; -ms-flex-order: 3; order: 3; } - .order-4-l { -webkit-box-ordinal-group: 5; -ms-flex-order: 4; order: 4; } - .order-5-l { -webkit-box-ordinal-group: 6; -ms-flex-order: 5; order: 5; } - .order-6-l { -webkit-box-ordinal-group: 7; -ms-flex-order: 6; order: 6; } - .order-7-l { -webkit-box-ordinal-group: 8; -ms-flex-order: 7; order: 7; } - .order-8-l { -webkit-box-ordinal-group: 9; -ms-flex-order: 8; order: 8; } - .order-last-l { -webkit-box-ordinal-group: 100000; -ms-flex-order: 99999; order: 99999; } - - .flex-grow-0-l { -webkit-box-flex: 0; -ms-flex-positive: 0; flex-grow: 0; } - .flex-grow-1-l { -webkit-box-flex: 1; -ms-flex-positive: 1; flex-grow: 1; } - - .flex-shrink-0-l { -ms-flex-negative: 0; flex-shrink: 0; } - .flex-shrink-1-l { -ms-flex-negative: 1; flex-shrink: 1; } -} -/* - - FLOATS - http://tachyons.io/docs/layout/floats/ - - 1. Floated elements are automatically rendered as block level elements. - Setting floats to display inline will fix the double margin bug in - ie6. You know... just in case. - - 2. Don't forget to clearfix your floats with .cf - - Base: - f = float - - Modifiers: - l = left - r = right - n = none - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.fl { float: left; _display: inline; } -.fr { float: right; _display: inline; } -.fn { float: none; } -@media screen and (min-width: 30em) { - .fl-ns { float: left; _display: inline; } - .fr-ns { float: right; _display: inline; } - .fn-ns { float: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .fl-m { float: left; _display: inline; } - .fr-m { float: right; _display: inline; } - .fn-m { float: none; } -} -@media screen and (min-width: 60em) { - .fl-l { float: left; _display: inline; } - .fr-l { float: right; _display: inline; } - .fn-l { float: none; } -} -/*@import 'tachyons/src/_font-family';*/ -/* - - FONT STYLE - Docs: http://tachyons.io/docs/typography/font-style/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.i { font-style: italic; } -.fs-normal { font-style: normal; } -@media screen and (min-width: 30em) { - .i-ns { font-style: italic; } - .fs-normal-ns { font-style: normal; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .i-m { font-style: italic; } - .fs-normal-m { font-style: normal; } -} -@media screen and (min-width: 60em) { - .i-l { font-style: italic; } - .fs-normal-l { font-style: normal; } -} -/* - - FONT WEIGHT - Docs: http://tachyons.io/docs/typography/font-weight/ - - Base - fw = font-weight - - Modifiers: - 1 = literal value 100 - 2 = literal value 200 - 3 = literal value 300 - 4 = literal value 400 - 5 = literal value 500 - 6 = literal value 600 - 7 = literal value 700 - 8 = literal value 800 - 9 = literal value 900 - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.normal { font-weight: normal; } -.b { font-weight: bold; } -.fw1 { font-weight: 100; } -.fw2 { font-weight: 200; } -.fw3 { font-weight: 300; } -.fw4 { font-weight: 400; } -.fw5 { font-weight: 500; } -.fw6 { font-weight: 600; } -.fw7 { font-weight: 700; } -.fw8 { font-weight: 800; } -.fw9 { font-weight: 900; } -@media screen and (min-width: 30em) { - .normal-ns { font-weight: normal; } - .b-ns { font-weight: bold; } - .fw1-ns { font-weight: 100; } - .fw2-ns { font-weight: 200; } - .fw3-ns { font-weight: 300; } - .fw4-ns { font-weight: 400; } - .fw5-ns { font-weight: 500; } - .fw6-ns { font-weight: 600; } - .fw7-ns { font-weight: 700; } - .fw8-ns { font-weight: 800; } - .fw9-ns { font-weight: 900; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .normal-m { font-weight: normal; } - .b-m { font-weight: bold; } - .fw1-m { font-weight: 100; } - .fw2-m { font-weight: 200; } - .fw3-m { font-weight: 300; } - .fw4-m { font-weight: 400; } - .fw5-m { font-weight: 500; } - .fw6-m { font-weight: 600; } - .fw7-m { font-weight: 700; } - .fw8-m { font-weight: 800; } - .fw9-m { font-weight: 900; } -} -@media screen and (min-width: 60em) { - .normal-l { font-weight: normal; } - .b-l { font-weight: bold; } - .fw1-l { font-weight: 100; } - .fw2-l { font-weight: 200; } - .fw3-l { font-weight: 300; } - .fw4-l { font-weight: 400; } - .fw5-l { font-weight: 500; } - .fw6-l { font-weight: 600; } - .fw7-l { font-weight: 700; } - .fw8-l { font-weight: 800; } - .fw9-l { font-weight: 900; } -} -/* - - FORMS - -*/ -.input-reset { - -webkit-appearance: none; - -moz-appearance: none; -} -.button-reset::-moz-focus-inner, -.input-reset::-moz-focus-inner { - border: 0; - padding: 0; -} -/* - - HEIGHTS - Docs: http://tachyons.io/docs/layout/heights/ - - Base: - h = height - min-h = min-height - min-vh = min-height vertical screen height - vh = vertical screen height - - Modifiers - 1 = 1st step in height scale - 2 = 2nd step in height scale - 3 = 3rd step in height scale - 4 = 4th step in height scale - 5 = 5th step in height scale - - -25 = literal value 25% - -50 = literal value 50% - -75 = literal value 75% - -100 = literal value 100% - - -auto = string value of auto - -inherit = string value of inherit - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* Height Scale */ -.h1 { height: 1rem; } -.h2 { height: 2rem; } -.h3 { height: 4rem; } -.h4 { height: 8rem; } -.h5 { height: 16rem; } -/* Height Percentages - Based off of height of parent */ -.h-25 { height: 25%; } -.h-50 { height: 50%; } -.h-75 { height: 75%; } -.h-100 { height: 100%; } -.min-h-100 { min-height: 100%; } -/* Screen Height Percentage */ -.vh-25 { height: 25vh; } -.vh-50 { height: 50vh; } -.vh-75 { height: 75vh; } -.vh-100 { height: 100vh; } -.min-vh-100 { min-height: 100vh; } -/* String Properties */ -.h-auto { height: auto; } -.h-inherit { height: inherit; } -@media screen and (min-width: 30em) { - .h1-ns { height: 1rem; } - .h2-ns { height: 2rem; } - .h3-ns { height: 4rem; } - .h4-ns { height: 8rem; } - .h5-ns { height: 16rem; } - .h-25-ns { height: 25%; } - .h-50-ns { height: 50%; } - .h-75-ns { height: 75%; } - .h-100-ns { height: 100%; } - .min-h-100-ns { min-height: 100%; } - .vh-25-ns { height: 25vh; } - .vh-50-ns { height: 50vh; } - .vh-75-ns { height: 75vh; } - .vh-100-ns { height: 100vh; } - .min-vh-100-ns { min-height: 100vh; } - .h-auto-ns { height: auto; } - .h-inherit-ns { height: inherit; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .h1-m { height: 1rem; } - .h2-m { height: 2rem; } - .h3-m { height: 4rem; } - .h4-m { height: 8rem; } - .h5-m { height: 16rem; } - .h-25-m { height: 25%; } - .h-50-m { height: 50%; } - .h-75-m { height: 75%; } - .h-100-m { height: 100%; } - .min-h-100-m { min-height: 100%; } - .vh-25-m { height: 25vh; } - .vh-50-m { height: 50vh; } - .vh-75-m { height: 75vh; } - .vh-100-m { height: 100vh; } - .min-vh-100-m { min-height: 100vh; } - .h-auto-m { height: auto; } - .h-inherit-m { height: inherit; } -} -@media screen and (min-width: 60em) { - .h1-l { height: 1rem; } - .h2-l { height: 2rem; } - .h3-l { height: 4rem; } - .h4-l { height: 8rem; } - .h5-l { height: 16rem; } - .h-25-l { height: 25%; } - .h-50-l { height: 50%; } - .h-75-l { height: 75%; } - .h-100-l { height: 100%; } - .min-h-100-l { min-height: 100%; } - .vh-25-l { height: 25vh; } - .vh-50-l { height: 50vh; } - .vh-75-l { height: 75vh; } - .vh-100-l { height: 100vh; } - .min-vh-100-l { min-height: 100vh; } - .h-auto-l { height: auto; } - .h-inherit-l { height: inherit; } -} -/* - - LETTER SPACING - Docs: http://tachyons.io/docs/typography/tracking/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.tracked { letter-spacing: .1em; } -.tracked-tight { letter-spacing: -.05em; } -.tracked-mega { letter-spacing: .25em; } -@media screen and (min-width: 30em) { - .tracked-ns { letter-spacing: .1em; } - .tracked-tight-ns { letter-spacing: -.05em; } - .tracked-mega-ns { letter-spacing: .25em; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .tracked-m { letter-spacing: .1em; } - .tracked-tight-m { letter-spacing: -.05em; } - .tracked-mega-m { letter-spacing: .25em; } -} -@media screen and (min-width: 60em) { - .tracked-l { letter-spacing: .1em; } - .tracked-tight-l { letter-spacing: -.05em; } - .tracked-mega-l { letter-spacing: .25em; } -} -/* - - LINE HEIGHT / LEADING - Docs: http://tachyons.io/docs/typography/line-height - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.lh-solid { line-height: 1; } -.lh-title { line-height: 1.25; } -.lh-copy { line-height: 1.5; } -@media screen and (min-width: 30em) { - .lh-solid-ns { line-height: 1; } - .lh-title-ns { line-height: 1.25; } - .lh-copy-ns { line-height: 1.5; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .lh-solid-m { line-height: 1; } - .lh-title-m { line-height: 1.25; } - .lh-copy-m { line-height: 1.5; } -} -@media screen and (min-width: 60em) { - .lh-solid-l { line-height: 1; } - .lh-title-l { line-height: 1.25; } - .lh-copy-l { line-height: 1.5; } -} -/* - - LINKS - Docs: http://tachyons.io/docs/elements/links/ - -*/ -.link { - text-decoration: none; - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -.link:link, -.link:visited { - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -.link:hover { - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -.link:active { - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -.link:focus { - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; - outline: 1px dotted currentColor; -} -/* - - LISTS - http://tachyons.io/docs/elements/lists/ - -*/ -.list { list-style-type: none; } -/* - - MAX WIDTHS - Docs: http://tachyons.io/docs/layout/max-widths/ - - Base: - mw = max-width - - Modifiers - 1 = 1st step in width scale - 2 = 2nd step in width scale - 3 = 3rd step in width scale - 4 = 4th step in width scale - 5 = 5th step in width scale - 6 = 6st step in width scale - 7 = 7nd step in width scale - 8 = 8rd step in width scale - 9 = 9th step in width scale - - -100 = literal value 100% - - -none = string value none - - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* Max Width Percentages */ -.mw-100 { max-width: 100%; } -/* Max Width Scale */ -.mw1 { max-width: 1rem; } -.mw2 { max-width: 2rem; } -.mw3 { max-width: 4rem; } -.mw4 { max-width: 8rem; } -.mw5 { max-width: 16rem; } -.mw6 { max-width: 32rem; } -.mw7 { max-width: 48rem; } -.mw8 { max-width: 64rem; } -.mw9 { max-width: 96rem; } -/* Max Width String Properties */ -.mw-none { max-width: none; } -@media screen and (min-width: 30em) { - .mw-100-ns { max-width: 100%; } - - .mw1-ns { max-width: 1rem; } - .mw2-ns { max-width: 2rem; } - .mw3-ns { max-width: 4rem; } - .mw4-ns { max-width: 8rem; } - .mw5-ns { max-width: 16rem; } - .mw6-ns { max-width: 32rem; } - .mw7-ns { max-width: 48rem; } - .mw8-ns { max-width: 64rem; } - .mw9-ns { max-width: 96rem; } - - .mw-none-ns { max-width: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .mw-100-m { max-width: 100%; } - - .mw1-m { max-width: 1rem; } - .mw2-m { max-width: 2rem; } - .mw3-m { max-width: 4rem; } - .mw4-m { max-width: 8rem; } - .mw5-m { max-width: 16rem; } - .mw6-m { max-width: 32rem; } - .mw7-m { max-width: 48rem; } - .mw8-m { max-width: 64rem; } - .mw9-m { max-width: 96rem; } - - .mw-none-m { max-width: none; } -} -@media screen and (min-width: 60em) { - .mw-100-l { max-width: 100%; } - - .mw1-l { max-width: 1rem; } - .mw2-l { max-width: 2rem; } - .mw3-l { max-width: 4rem; } - .mw4-l { max-width: 8rem; } - .mw5-l { max-width: 16rem; } - .mw6-l { max-width: 32rem; } - .mw7-l { max-width: 48rem; } - .mw8-l { max-width: 64rem; } - .mw9-l { max-width: 96rem; } - - .mw-none-l { max-width: none; } -} -/* - - WIDTHS - Docs: http://tachyons.io/docs/layout/widths/ - - Base: - w = width - - Modifiers - 1 = 1st step in width scale - 2 = 2nd step in width scale - 3 = 3rd step in width scale - 4 = 4th step in width scale - 5 = 5th step in width scale - - -10 = literal value 10% - -20 = literal value 20% - -25 = literal value 25% - -30 = literal value 30% - -33 = literal value 33% - -34 = literal value 34% - -40 = literal value 40% - -50 = literal value 50% - -60 = literal value 60% - -70 = literal value 70% - -75 = literal value 75% - -80 = literal value 80% - -90 = literal value 90% - -100 = literal value 100% - - -third = 100% / 3 (Not supported in opera mini or IE8) - -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8) - -auto = string value auto - - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* Width Scale */ -.w1 { width: 1rem; } -.w2 { width: 2rem; } -.w3 { width: 4rem; } -.w4 { width: 8rem; } -.w5 { width: 16rem; } -.w-10 { width: 10%; } -.w-20 { width: 20%; } -.w-25 { width: 25%; } -.w-30 { width: 30%; } -.w-33 { width: 33%; } -.w-34 { width: 34%; } -.w-40 { width: 40%; } -.w-50 { width: 50%; } -.w-60 { width: 60%; } -.w-70 { width: 70%; } -.w-75 { width: 75%; } -.w-80 { width: 80%; } -.w-90 { width: 90%; } -.w-100 { width: 100%; } -.w-third { width: 33.33333%; } -.w-two-thirds { width: 66.66667%; } -.w-auto { width: auto; } -@media screen and (min-width: 30em) { - .w1-ns { width: 1rem; } - .w2-ns { width: 2rem; } - .w3-ns { width: 4rem; } - .w4-ns { width: 8rem; } - .w5-ns { width: 16rem; } - .w-10-ns { width: 10%; } - .w-20-ns { width: 20%; } - .w-25-ns { width: 25%; } - .w-30-ns { width: 30%; } - .w-33-ns { width: 33%; } - .w-34-ns { width: 34%; } - .w-40-ns { width: 40%; } - .w-50-ns { width: 50%; } - .w-60-ns { width: 60%; } - .w-70-ns { width: 70%; } - .w-75-ns { width: 75%; } - .w-80-ns { width: 80%; } - .w-90-ns { width: 90%; } - .w-100-ns { width: 100%; } - .w-third-ns { width: 33.33333%; } - .w-two-thirds-ns { width: 66.66667%; } - .w-auto-ns { width: auto; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .w1-m { width: 1rem; } - .w2-m { width: 2rem; } - .w3-m { width: 4rem; } - .w4-m { width: 8rem; } - .w5-m { width: 16rem; } - .w-10-m { width: 10%; } - .w-20-m { width: 20%; } - .w-25-m { width: 25%; } - .w-30-m { width: 30%; } - .w-33-m { width: 33%; } - .w-34-m { width: 34%; } - .w-40-m { width: 40%; } - .w-50-m { width: 50%; } - .w-60-m { width: 60%; } - .w-70-m { width: 70%; } - .w-75-m { width: 75%; } - .w-80-m { width: 80%; } - .w-90-m { width: 90%; } - .w-100-m { width: 100%; } - .w-third-m { width: 33.33333%; } - .w-two-thirds-m { width: 66.66667%; } - .w-auto-m { width: auto; } -} -@media screen and (min-width: 60em) { - .w1-l { width: 1rem; } - .w2-l { width: 2rem; } - .w3-l { width: 4rem; } - .w4-l { width: 8rem; } - .w5-l { width: 16rem; } - .w-10-l { width: 10%; } - .w-20-l { width: 20%; } - .w-25-l { width: 25%; } - .w-30-l { width: 30%; } - .w-33-l { width: 33%; } - .w-34-l { width: 34%; } - .w-40-l { width: 40%; } - .w-50-l { width: 50%; } - .w-60-l { width: 60%; } - .w-70-l { width: 70%; } - .w-75-l { width: 75%; } - .w-80-l { width: 80%; } - .w-90-l { width: 90%; } - .w-100-l { width: 100%; } - .w-third-l { width: 33.33333%; } - .w-two-thirds-l { width: 66.66667%; } - .w-auto-l { width: auto; } -} -/* - - OVERFLOW - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - - */ -.overflow-visible { overflow: visible; } -.overflow-hidden { overflow: hidden; } -.overflow-scroll { overflow: scroll; } -.overflow-auto { overflow: auto; } -.overflow-x-visible { overflow-x: visible; } -.overflow-x-hidden { overflow-x: hidden; } -.overflow-x-scroll { overflow-x: scroll; } -.overflow-x-auto { overflow-x: auto; } -.overflow-y-visible { overflow-y: visible; } -.overflow-y-hidden { overflow-y: hidden; } -.overflow-y-scroll { overflow-y: scroll; } -.overflow-y-auto { overflow-y: auto; } -@media screen and (min-width: 30em) { - .overflow-visible-ns { overflow: visible; } - .overflow-hidden-ns { overflow: hidden; } - .overflow-scroll-ns { overflow: scroll; } - .overflow-auto-ns { overflow: auto; } - .overflow-x-visible-ns { overflow-x: visible; } - .overflow-x-hidden-ns { overflow-x: hidden; } - .overflow-x-scroll-ns { overflow-x: scroll; } - .overflow-x-auto-ns { overflow-x: auto; } - - .overflow-y-visible-ns { overflow-y: visible; } - .overflow-y-hidden-ns { overflow-y: hidden; } - .overflow-y-scroll-ns { overflow-y: scroll; } - .overflow-y-auto-ns { overflow-y: auto; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .overflow-visible-m { overflow: visible; } - .overflow-hidden-m { overflow: hidden; } - .overflow-scroll-m { overflow: scroll; } - .overflow-auto-m { overflow: auto; } - - .overflow-x-visible-m { overflow-x: visible; } - .overflow-x-hidden-m { overflow-x: hidden; } - .overflow-x-scroll-m { overflow-x: scroll; } - .overflow-x-auto-m { overflow-x: auto; } - - .overflow-y-visible-m { overflow-y: visible; } - .overflow-y-hidden-m { overflow-y: hidden; } - .overflow-y-scroll-m { overflow-y: scroll; } - .overflow-y-auto-m { overflow-y: auto; } -} -@media screen and (min-width: 60em) { - .overflow-visible-l { overflow: visible; } - .overflow-hidden-l { overflow: hidden; } - .overflow-scroll-l { overflow: scroll; } - .overflow-auto-l { overflow: auto; } - - .overflow-x-visible-l { overflow-x: visible; } - .overflow-x-hidden-l { overflow-x: hidden; } - .overflow-x-scroll-l { overflow-x: scroll; } - .overflow-x-auto-l { overflow-x: auto; } - - .overflow-y-visible-l { overflow-y: visible; } - .overflow-y-hidden-l { overflow-y: hidden; } - .overflow-y-scroll-l { overflow-y: scroll; } - .overflow-y-auto-l { overflow-y: auto; } -} -/* - - POSITIONING - Docs: http://tachyons.io/docs/layout/position/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.static { position: static; } -.relative { position: relative; } -.absolute { position: absolute; } -.fixed { position: fixed; } -@media screen and (min-width: 30em) { - .static-ns { position: static; } - .relative-ns { position: relative; } - .absolute-ns { position: absolute; } - .fixed-ns { position: fixed; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .static-m { position: static; } - .relative-m { position: relative; } - .absolute-m { position: absolute; } - .fixed-m { position: fixed; } -} -@media screen and (min-width: 60em) { - .static-l { position: static; } - .relative-l { position: relative; } - .absolute-l { position: absolute; } - .fixed-l { position: fixed; } -} -/* - - OPACITY - Docs: http://tachyons.io/docs/themes/opacity/ - -*/ -.o-100 { opacity: 1; } -.o-90 { opacity: .9; } -.o-80 { opacity: .8; } -.o-70 { opacity: .7; } -.o-60 { opacity: .6; } -.o-50 { opacity: .5; } -.o-40 { opacity: .4; } -.o-30 { opacity: .3; } -.o-20 { opacity: .2; } -.o-10 { opacity: .1; } -.o-05 { opacity: .05; } -.o-025 { opacity: .025; } -.o-0 { opacity: 0; } -/*@import 'tachyons/src/_rotations';*/ -/* - - SKINS - Docs: http://tachyons.io/docs/themes/skins/ - - Classes for setting foreground and background colors on elements. - If you haven't declared a border color, but set border on an element, it will - be set to the current text color. - -*/ -/* Text colors */ -.black-90 { color: rgba(0, 0, 0, .9); } -.black-80 { color: rgba(0, 0, 0, .8); } -.black-70 { color: rgba(0, 0, 0, .7); } -.black-60 { color: rgba(0, 0, 0, .6); } -.black-50 { color: rgba(0, 0, 0, .5); } -.black-40 { color: rgba(0, 0, 0, .4); } -.black-30 { color: rgba(0, 0, 0, .3); } -.black-20 { color: rgba(0, 0, 0, .2); } -.black-10 { color: rgba(0, 0, 0, .1); } -.black-05 { color: rgba(0, 0, 0, .05); } -.white-90 { color: rgba(255, 255, 255, .9); } -.white-80 { color: rgba(255, 255, 255, .8); } -.white-70 { color: rgba(255, 255, 255, .7); } -.white-60 { color: rgba(255, 255, 255, .6); } -.white-50 { color: rgba(255, 255, 255, .5); } -.white-40 { color: rgba(255, 255, 255, .4); } -.white-30 { color: rgba(255, 255, 255, .3); } -.white-20 { color: rgba(255, 255, 255, .2); } -.white-10 { color: rgba(255, 255, 255, .1); } -.black { color: #000; } -.near-black { color: #111; } -.dark-gray { color: #333; } -.mid-gray { color: #555; } -.gray { color: #777; } -.silver { color: #999; } -.light-silver { color: #aaa; } -.moon-gray { color: #ccc; } -.light-gray { color: #eee; } -.near-white { color: #f4f4f4; } -.white { color: #fff; } -.dark-red { color: #e7040f; } -.red { color: #ff4136; } -.light-red { color: #ff725c; } -.orange { color: #ff6300; } -.gold { color: #ffb700; } -.yellow { color: #ffd700; } -.light-yellow { color: #fbf1a9; } -.purple { color: #5e2ca5; } -.light-purple { color: #a463f2; } -.dark-pink { color: #d5008f; } -.hot-pink { color: #ff41b4; } -.pink { color: #ff80cc; } -.light-pink { color: #ffa3d7; } -.dark-green { color: #137752; } -.green { color: #19a974; } -.light-green { color: #9eebcf; } -.navy { color: #001b44; } -.dark-blue { color: #00449e; } -.blue { color: #0594CB; } -.light-blue { color: #96ccff; } -.lightest-blue { color: #cdecff; } -.washed-blue { color: #f6fffe; } -.washed-green { color: #e8fdf5; } -.washed-yellow { color: #fffceb; } -.washed-red { color: #ffdfdf; } -.color-inherit { color: inherit; } -.bg-black-90 { background-color: rgba(0, 0, 0, .9); } -.bg-black-80 { background-color: rgba(0, 0, 0, .8); } -.bg-black-70 { background-color: rgba(0, 0, 0, .7); } -.bg-black-60 { background-color: rgba(0, 0, 0, .6); } -.bg-black-50 { background-color: rgba(0, 0, 0, .5); } -.bg-black-40 { background-color: rgba(0, 0, 0, .4); } -.bg-black-30 { background-color: rgba(0, 0, 0, .3); } -.bg-black-20 { background-color: rgba(0, 0, 0, .2); } -.bg-black-10 { background-color: rgba(0, 0, 0, .1); } -.bg-black-05 { background-color: rgba(0, 0, 0, .05); } -.bg-white-90 { background-color: rgba(255, 255, 255, .9); } -.bg-white-80 { background-color: rgba(255, 255, 255, .8); } -.bg-white-70 { background-color: rgba(255, 255, 255, .7); } -.bg-white-60 { background-color: rgba(255, 255, 255, .6); } -.bg-white-50 { background-color: rgba(255, 255, 255, .5); } -.bg-white-40 { background-color: rgba(255, 255, 255, .4); } -.bg-white-30 { background-color: rgba(255, 255, 255, .3); } -.bg-white-20 { background-color: rgba(255, 255, 255, .2); } -.bg-white-10 { background-color: rgba(255, 255, 255, .1); } -/* Background colors */ -.bg-black { background-color: #000; } -.bg-near-black { background-color: #111; } -.bg-dark-gray { background-color: #333; } -.bg-mid-gray { background-color: #555; } -.bg-gray { background-color: #777; } -.bg-silver { background-color: #999; } -.bg-light-silver { background-color: #aaa; } -.bg-moon-gray { background-color: #ccc; } -.bg-light-gray { background-color: #eee; } -.bg-near-white { background-color: #f4f4f4; } -.bg-white { background-color: #fff; } -.bg-transparent { background-color: transparent; } -.bg-dark-red { background-color: #e7040f; } -.bg-red { background-color: #ff4136; } -.bg-light-red { background-color: #ff725c; } -.bg-orange { background-color: #ff6300; } -.bg-gold { background-color: #ffb700; } -.bg-yellow { background-color: #ffd700; } -.bg-light-yellow { background-color: #fbf1a9; } -.bg-purple { background-color: #5e2ca5; } -.bg-light-purple { background-color: #a463f2; } -.bg-dark-pink { background-color: #d5008f; } -.bg-hot-pink { background-color: #ff41b4; } -.bg-pink { background-color: #ff80cc; } -.bg-light-pink { background-color: #ffa3d7; } -.bg-dark-green { background-color: #137752; } -.bg-green { background-color: #19a974; } -.bg-light-green { background-color: #9eebcf; } -.bg-navy { background-color: #001b44; } -.bg-dark-blue { background-color: #00449e; } -.bg-blue { background-color: #0594CB; } -.bg-light-blue { background-color: #96ccff; } -.bg-lightest-blue { background-color: #cdecff; } -.bg-washed-blue { background-color: #f6fffe; } -.bg-washed-green { background-color: #e8fdf5; } -.bg-washed-yellow { background-color: #fffceb; } -.bg-washed-red { background-color: #ffdfdf; } -.bg-inherit { background-color: inherit; } -/* - - SKINS:PSEUDO - - Customize the color of an element when - it is focused or hovered over. - - */ -.hover-black:hover, -.hover-black:focus { color: #000; } -.hover-near-black:hover, -.hover-near-black:focus { color: #111; } -.hover-dark-gray:hover, -.hover-dark-gray:focus { color: #333; } -.hover-mid-gray:hover, -.hover-mid-gray:focus { color: #555; } -.hover-gray:hover, -.hover-gray:focus { color: #777; } -.hover-silver:hover, -.hover-silver:focus { color: #999; } -.hover-light-silver:hover, -.hover-light-silver:focus { color: #aaa; } -.hover-moon-gray:hover, -.hover-moon-gray:focus { color: #ccc; } -.hover-light-gray:hover, -.hover-light-gray:focus { color: #eee; } -.hover-near-white:hover, -.hover-near-white:focus { color: #f4f4f4; } -.hover-white:hover, -.hover-white:focus { color: #fff; } -.hover-black-90:hover, -.hover-black-90:focus { color: rgba(0, 0, 0, .9); } -.hover-black-80:hover, -.hover-black-80:focus { color: rgba(0, 0, 0, .8); } -.hover-black-70:hover, -.hover-black-70:focus { color: rgba(0, 0, 0, .7); } -.hover-black-60:hover, -.hover-black-60:focus { color: rgba(0, 0, 0, .6); } -.hover-black-50:hover, -.hover-black-50:focus { color: rgba(0, 0, 0, .5); } -.hover-black-40:hover, -.hover-black-40:focus { color: rgba(0, 0, 0, .4); } -.hover-black-30:hover, -.hover-black-30:focus { color: rgba(0, 0, 0, .3); } -.hover-black-20:hover, -.hover-black-20:focus { color: rgba(0, 0, 0, .2); } -.hover-black-10:hover, -.hover-black-10:focus { color: rgba(0, 0, 0, .1); } -.hover-white-90:hover, -.hover-white-90:focus { color: rgba(255, 255, 255, .9); } -.hover-white-80:hover, -.hover-white-80:focus { color: rgba(255, 255, 255, .8); } -.hover-white-70:hover, -.hover-white-70:focus { color: rgba(255, 255, 255, .7); } -.hover-white-60:hover, -.hover-white-60:focus { color: rgba(255, 255, 255, .6); } -.hover-white-50:hover, -.hover-white-50:focus { color: rgba(255, 255, 255, .5); } -.hover-white-40:hover, -.hover-white-40:focus { color: rgba(255, 255, 255, .4); } -.hover-white-30:hover, -.hover-white-30:focus { color: rgba(255, 255, 255, .3); } -.hover-white-20:hover, -.hover-white-20:focus { color: rgba(255, 255, 255, .2); } -.hover-white-10:hover, -.hover-white-10:focus { color: rgba(255, 255, 255, .1); } -.hover-inherit:hover, -.hover-inherit:focus { color: inherit; } -.hover-bg-black:hover, -.hover-bg-black:focus { background-color: #000; } -.hover-bg-near-black:hover, -.hover-bg-near-black:focus { background-color: #111; } -.hover-bg-dark-gray:hover, -.hover-bg-dark-gray:focus { background-color: #333; } -.hover-bg-mid-gray:hover, -.hover-bg-mid-gray:focus { background-color: #555; } -.hover-bg-gray:hover, -.hover-bg-gray:focus { background-color: #777; } -.hover-bg-silver:hover, -.hover-bg-silver:focus { background-color: #999; } -.hover-bg-light-silver:hover, -.hover-bg-light-silver:focus { background-color: #aaa; } -.hover-bg-moon-gray:hover, -.hover-bg-moon-gray:focus { background-color: #ccc; } -.hover-bg-light-gray:hover, -.hover-bg-light-gray:focus { background-color: #eee; } -.hover-bg-near-white:hover, -.hover-bg-near-white:focus { background-color: #f4f4f4; } -.hover-bg-white:hover, -.hover-bg-white:focus { background-color: #fff; } -.hover-bg-transparent:hover, -.hover-bg-transparent:focus { background-color: transparent; } -.hover-bg-black-90:hover, -.hover-bg-black-90:focus { background-color: rgba(0, 0, 0, .9); } -.hover-bg-black-80:hover, -.hover-bg-black-80:focus { background-color: rgba(0, 0, 0, .8); } -.hover-bg-black-70:hover, -.hover-bg-black-70:focus { background-color: rgba(0, 0, 0, .7); } -.hover-bg-black-60:hover, -.hover-bg-black-60:focus { background-color: rgba(0, 0, 0, .6); } -.hover-bg-black-50:hover, -.hover-bg-black-50:focus { background-color: rgba(0, 0, 0, .5); } -.hover-bg-black-40:hover, -.hover-bg-black-40:focus { background-color: rgba(0, 0, 0, .4); } -.hover-bg-black-30:hover, -.hover-bg-black-30:focus { background-color: rgba(0, 0, 0, .3); } -.hover-bg-black-20:hover, -.hover-bg-black-20:focus { background-color: rgba(0, 0, 0, .2); } -.hover-bg-black-10:hover, -.hover-bg-black-10:focus { background-color: rgba(0, 0, 0, .1); } -.hover-bg-white-90:hover, -.hover-bg-white-90:focus { background-color: rgba(255, 255, 255, .9); } -.hover-bg-white-80:hover, -.hover-bg-white-80:focus { background-color: rgba(255, 255, 255, .8); } -.hover-bg-white-70:hover, -.hover-bg-white-70:focus { background-color: rgba(255, 255, 255, .7); } -.hover-bg-white-60:hover, -.hover-bg-white-60:focus { background-color: rgba(255, 255, 255, .6); } -.hover-bg-white-50:hover, -.hover-bg-white-50:focus { background-color: rgba(255, 255, 255, .5); } -.hover-bg-white-40:hover, -.hover-bg-white-40:focus { background-color: rgba(255, 255, 255, .4); } -.hover-bg-white-30:hover, -.hover-bg-white-30:focus { background-color: rgba(255, 255, 255, .3); } -.hover-bg-white-20:hover, -.hover-bg-white-20:focus { background-color: rgba(255, 255, 255, .2); } -.hover-bg-white-10:hover, -.hover-bg-white-10:focus { background-color: rgba(255, 255, 255, .1); } -.hover-dark-red:hover, -.hover-dark-red:focus { color: #e7040f; } -.hover-red:hover, -.hover-red:focus { color: #ff4136; } -.hover-light-red:hover, -.hover-light-red:focus { color: #ff725c; } -.hover-orange:hover, -.hover-orange:focus { color: #ff6300; } -.hover-gold:hover, -.hover-gold:focus { color: #ffb700; } -.hover-yellow:hover, -.hover-yellow:focus { color: #ffd700; } -.hover-light-yellow:hover, -.hover-light-yellow:focus { color: #fbf1a9; } -.hover-purple:hover, -.hover-purple:focus { color: #5e2ca5; } -.hover-light-purple:hover, -.hover-light-purple:focus { color: #a463f2; } -.hover-dark-pink:hover, -.hover-dark-pink:focus { color: #d5008f; } -.hover-hot-pink:hover, -.hover-hot-pink:focus { color: #ff41b4; } -.hover-pink:hover, -.hover-pink:focus { color: #ff80cc; } -.hover-light-pink:hover, -.hover-light-pink:focus { color: #ffa3d7; } -.hover-dark-green:hover, -.hover-dark-green:focus { color: #137752; } -.hover-green:hover, -.hover-green:focus { color: #19a974; } -.hover-light-green:hover, -.hover-light-green:focus { color: #9eebcf; } -.hover-navy:hover, -.hover-navy:focus { color: #001b44; } -.hover-dark-blue:hover, -.hover-dark-blue:focus { color: #00449e; } -.hover-blue:hover, -.hover-blue:focus { color: #0594CB; } -.hover-light-blue:hover, -.hover-light-blue:focus { color: #96ccff; } -.hover-lightest-blue:hover, -.hover-lightest-blue:focus { color: #cdecff; } -.hover-washed-blue:hover, -.hover-washed-blue:focus { color: #f6fffe; } -.hover-washed-green:hover, -.hover-washed-green:focus { color: #e8fdf5; } -.hover-washed-yellow:hover, -.hover-washed-yellow:focus { color: #fffceb; } -.hover-washed-red:hover, -.hover-washed-red:focus { color: #ffdfdf; } -.hover-bg-dark-red:hover, -.hover-bg-dark-red:focus { background-color: #e7040f; } -.hover-bg-red:hover, -.hover-bg-red:focus { background-color: #ff4136; } -.hover-bg-light-red:hover, -.hover-bg-light-red:focus { background-color: #ff725c; } -.hover-bg-orange:hover, -.hover-bg-orange:focus { background-color: #ff6300; } -.hover-bg-gold:hover, -.hover-bg-gold:focus { background-color: #ffb700; } -.hover-bg-yellow:hover, -.hover-bg-yellow:focus { background-color: #ffd700; } -.hover-bg-light-yellow:hover, -.hover-bg-light-yellow:focus { background-color: #fbf1a9; } -.hover-bg-purple:hover, -.hover-bg-purple:focus { background-color: #5e2ca5; } -.hover-bg-light-purple:hover, -.hover-bg-light-purple:focus { background-color: #a463f2; } -.hover-bg-dark-pink:hover, -.hover-bg-dark-pink:focus { background-color: #d5008f; } -.hover-bg-hot-pink:hover, -.hover-bg-hot-pink:focus { background-color: #ff41b4; } -.hover-bg-pink:hover, -.hover-bg-pink:focus { background-color: #ff80cc; } -.hover-bg-light-pink:hover, -.hover-bg-light-pink:focus { background-color: #ffa3d7; } -.hover-bg-dark-green:hover, -.hover-bg-dark-green:focus { background-color: #137752; } -.hover-bg-green:hover, -.hover-bg-green:focus { background-color: #19a974; } -.hover-bg-light-green:hover, -.hover-bg-light-green:focus { background-color: #9eebcf; } -.hover-bg-navy:hover, -.hover-bg-navy:focus { background-color: #001b44; } -.hover-bg-dark-blue:hover, -.hover-bg-dark-blue:focus { background-color: #00449e; } -.hover-bg-blue:hover, -.hover-bg-blue:focus { background-color: #0594CB; } -.hover-bg-light-blue:hover, -.hover-bg-light-blue:focus { background-color: #96ccff; } -.hover-bg-lightest-blue:hover, -.hover-bg-lightest-blue:focus { background-color: #cdecff; } -.hover-bg-washed-blue:hover, -.hover-bg-washed-blue:focus { background-color: #f6fffe; } -.hover-bg-washed-green:hover, -.hover-bg-washed-green:focus { background-color: #e8fdf5; } -.hover-bg-washed-yellow:hover, -.hover-bg-washed-yellow:focus { background-color: #fffceb; } -.hover-bg-washed-red:hover, -.hover-bg-washed-red:focus { background-color: #ffdfdf; } -.hover-bg-inherit:hover, -.hover-bg-inherit:focus { background-color: inherit; } -/* Variables */ -/* - SPACING - Docs: http://tachyons.io/docs/layout/spacing/ - - An eight step powers of two scale ranging from 0 to 16rem. - - Base: - p = padding - m = margin - - Modifiers: - a = all - h = horizontal - v = vertical - t = top - r = right - b = bottom - l = left - - 0 = none - 1 = 1st step in spacing scale - 2 = 2nd step in spacing scale - 3 = 3rd step in spacing scale - 4 = 4th step in spacing scale - 5 = 5th step in spacing scale - 6 = 6th step in spacing scale - 7 = 7th step in spacing scale - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.pa0 { padding: 0; } -.pa1 { padding: .25rem; } -.pa2 { padding: .5rem; } -.pa3 { padding: 1rem; } -.pa4 { padding: 2rem; } -.pa5 { padding: 4rem; } -.pa6 { padding: 8rem; } -.pa7 { padding: 16rem; } -.pl0 { padding-left: 0; } -.pl1 { padding-left: .25rem; } -.pl2 { padding-left: .5rem; } -.pl3 { padding-left: 1rem; } -.pl4 { padding-left: 2rem; } -.pl5 { padding-left: 4rem; } -.pl6 { padding-left: 8rem; } -.pl7 { padding-left: 16rem; } -.pr0 { padding-right: 0; } -.pr1 { padding-right: .25rem; } -.pr2 { padding-right: .5rem; } -.pr3 { padding-right: 1rem; } -.pr4 { padding-right: 2rem; } -.pr5 { padding-right: 4rem; } -.pr6 { padding-right: 8rem; } -.pr7 { padding-right: 16rem; } -.pb0 { padding-bottom: 0; } -.pb1 { padding-bottom: .25rem; } -.pb2 { padding-bottom: .5rem; } -.pb3 { padding-bottom: 1rem; } -.pb4 { padding-bottom: 2rem; } -.pb5 { padding-bottom: 4rem; } -.pb6 { padding-bottom: 8rem; } -.pb7 { padding-bottom: 16rem; } -.pt0 { padding-top: 0; } -.pt1 { padding-top: .25rem; } -.pt2 { padding-top: .5rem; } -.pt3 { padding-top: 1rem; } -.pt4 { padding-top: 2rem; } -.pt5 { padding-top: 4rem; } -.pt6 { padding-top: 8rem; } -.pt7 { padding-top: 16rem; } -.pv0 { - padding-top: 0; - padding-bottom: 0; -} -.pv1 { - padding-top: .25rem; - padding-bottom: .25rem; -} -.pv2 { - padding-top: .5rem; - padding-bottom: .5rem; -} -.pv3 { - padding-top: 1rem; - padding-bottom: 1rem; -} -.pv4 { - padding-top: 2rem; - padding-bottom: 2rem; -} -.pv5 { - padding-top: 4rem; - padding-bottom: 4rem; -} -.pv6 { - padding-top: 8rem; - padding-bottom: 8rem; -} -.pv7 { - padding-top: 16rem; - padding-bottom: 16rem; -} -.ph0 { - padding-left: 0; - padding-right: 0; -} -.ph1 { - padding-left: .25rem; - padding-right: .25rem; -} -.ph2 { - padding-left: .5rem; - padding-right: .5rem; -} -.ph3 { - padding-left: 1rem; - padding-right: 1rem; -} -.ph4 { - padding-left: 2rem; - padding-right: 2rem; -} -.ph5 { - padding-left: 4rem; - padding-right: 4rem; -} -.ph6 { - padding-left: 8rem; - padding-right: 8rem; -} -.ph7 { - padding-left: 16rem; - padding-right: 16rem; -} -.ma0 { margin: 0; } -.ma1 { margin: .25rem; } -.ma2 { margin: .5rem; } -.ma3 { margin: 1rem; } -.ma4 { margin: 2rem; } -.ma5 { margin: 4rem; } -.ma6 { margin: 8rem; } -.ma7 { margin: 16rem; } -.ml0 { margin-left: 0; } -.ml1 { margin-left: .25rem; } -.ml2 { margin-left: .5rem; } -.ml3 { margin-left: 1rem; } -.ml4 { margin-left: 2rem; } -.ml5 { margin-left: 4rem; } -.ml6 { margin-left: 8rem; } -.ml7 { margin-left: 16rem; } -.mr0 { margin-right: 0; } -.mr1 { margin-right: .25rem; } -.mr2 { margin-right: .5rem; } -.mr3 { margin-right: 1rem; } -.mr4 { margin-right: 2rem; } -.mr5 { margin-right: 4rem; } -.mr6 { margin-right: 8rem; } -.mr7 { margin-right: 16rem; } -.mb0 { margin-bottom: 0; } -.mb1 { margin-bottom: .25rem; } -.mb2 { margin-bottom: .5rem; } -.mb3 { margin-bottom: 1rem; } -.mb4 { margin-bottom: 2rem; } -.mb5 { margin-bottom: 4rem; } -.mb6 { margin-bottom: 8rem; } -.mb7 { margin-bottom: 16rem; } -.mt0 { margin-top: 0; } -.mt1 { margin-top: .25rem; } -.mt2 { margin-top: .5rem; } -.mt3 { margin-top: 1rem; } -.mt4 { margin-top: 2rem; } -.mt5 { margin-top: 4rem; } -.mt6 { margin-top: 8rem; } -.mt7 { margin-top: 16rem; } -.mv0 { - margin-top: 0; - margin-bottom: 0; -} -.mv1 { - margin-top: .25rem; - margin-bottom: .25rem; -} -.mv2 { - margin-top: .5rem; - margin-bottom: .5rem; -} -.mv3 { - margin-top: 1rem; - margin-bottom: 1rem; -} -.mv4 { - margin-top: 2rem; - margin-bottom: 2rem; -} -.mv5 { - margin-top: 4rem; - margin-bottom: 4rem; -} -.mv6 { - margin-top: 8rem; - margin-bottom: 8rem; -} -.mv7 { - margin-top: 16rem; - margin-bottom: 16rem; -} -.mh0 { - margin-left: 0; - margin-right: 0; -} -.mh1 { - margin-left: .25rem; - margin-right: .25rem; -} -.mh2 { - margin-left: .5rem; - margin-right: .5rem; -} -.mh3 { - margin-left: 1rem; - margin-right: 1rem; -} -.mh4 { - margin-left: 2rem; - margin-right: 2rem; -} -.mh5 { - margin-left: 4rem; - margin-right: 4rem; -} -.mh6 { - margin-left: 8rem; - margin-right: 8rem; -} -.mh7 { - margin-left: 16rem; - margin-right: 16rem; -} -@media screen and (min-width: 30em) { - .pa0-ns { padding: 0; } - .pa1-ns { padding: .25rem; } - .pa2-ns { padding: .5rem; } - .pa3-ns { padding: 1rem; } - .pa4-ns { padding: 2rem; } - .pa5-ns { padding: 4rem; } - .pa6-ns { padding: 8rem; } - .pa7-ns { padding: 16rem; } - - .pl0-ns { padding-left: 0; } - .pl1-ns { padding-left: .25rem; } - .pl2-ns { padding-left: .5rem; } - .pl3-ns { padding-left: 1rem; } - .pl4-ns { padding-left: 2rem; } - .pl5-ns { padding-left: 4rem; } - .pl6-ns { padding-left: 8rem; } - .pl7-ns { padding-left: 16rem; } - - .pr0-ns { padding-right: 0; } - .pr1-ns { padding-right: .25rem; } - .pr2-ns { padding-right: .5rem; } - .pr3-ns { padding-right: 1rem; } - .pr4-ns { padding-right: 2rem; } - .pr5-ns { padding-right: 4rem; } - .pr6-ns { padding-right: 8rem; } - .pr7-ns { padding-right: 16rem; } - - .pb0-ns { padding-bottom: 0; } - .pb1-ns { padding-bottom: .25rem; } - .pb2-ns { padding-bottom: .5rem; } - .pb3-ns { padding-bottom: 1rem; } - .pb4-ns { padding-bottom: 2rem; } - .pb5-ns { padding-bottom: 4rem; } - .pb6-ns { padding-bottom: 8rem; } - .pb7-ns { padding-bottom: 16rem; } - - .pt0-ns { padding-top: 0; } - .pt1-ns { padding-top: .25rem; } - .pt2-ns { padding-top: .5rem; } - .pt3-ns { padding-top: 1rem; } - .pt4-ns { padding-top: 2rem; } - .pt5-ns { padding-top: 4rem; } - .pt6-ns { padding-top: 8rem; } - .pt7-ns { padding-top: 16rem; } - - .pv0-ns { - padding-top: 0; - padding-bottom: 0; - } - .pv1-ns { - padding-top: .25rem; - padding-bottom: .25rem; - } - .pv2-ns { - padding-top: .5rem; - padding-bottom: .5rem; - } - .pv3-ns { - padding-top: 1rem; - padding-bottom: 1rem; - } - .pv4-ns { - padding-top: 2rem; - padding-bottom: 2rem; - } - .pv5-ns { - padding-top: 4rem; - padding-bottom: 4rem; - } - .pv6-ns { - padding-top: 8rem; - padding-bottom: 8rem; - } - .pv7-ns { - padding-top: 16rem; - padding-bottom: 16rem; - } - .ph0-ns { - padding-left: 0; - padding-right: 0; - } - .ph1-ns { - padding-left: .25rem; - padding-right: .25rem; - } - .ph2-ns { - padding-left: .5rem; - padding-right: .5rem; - } - .ph3-ns { - padding-left: 1rem; - padding-right: 1rem; - } - .ph4-ns { - padding-left: 2rem; - padding-right: 2rem; - } - .ph5-ns { - padding-left: 4rem; - padding-right: 4rem; - } - .ph6-ns { - padding-left: 8rem; - padding-right: 8rem; - } - .ph7-ns { - padding-left: 16rem; - padding-right: 16rem; - } - - .ma0-ns { margin: 0; } - .ma1-ns { margin: .25rem; } - .ma2-ns { margin: .5rem; } - .ma3-ns { margin: 1rem; } - .ma4-ns { margin: 2rem; } - .ma5-ns { margin: 4rem; } - .ma6-ns { margin: 8rem; } - .ma7-ns { margin: 16rem; } - - .ml0-ns { margin-left: 0; } - .ml1-ns { margin-left: .25rem; } - .ml2-ns { margin-left: .5rem; } - .ml3-ns { margin-left: 1rem; } - .ml4-ns { margin-left: 2rem; } - .ml5-ns { margin-left: 4rem; } - .ml6-ns { margin-left: 8rem; } - .ml7-ns { margin-left: 16rem; } - - .mr0-ns { margin-right: 0; } - .mr1-ns { margin-right: .25rem; } - .mr2-ns { margin-right: .5rem; } - .mr3-ns { margin-right: 1rem; } - .mr4-ns { margin-right: 2rem; } - .mr5-ns { margin-right: 4rem; } - .mr6-ns { margin-right: 8rem; } - .mr7-ns { margin-right: 16rem; } - - .mb0-ns { margin-bottom: 0; } - .mb1-ns { margin-bottom: .25rem; } - .mb2-ns { margin-bottom: .5rem; } - .mb3-ns { margin-bottom: 1rem; } - .mb4-ns { margin-bottom: 2rem; } - .mb5-ns { margin-bottom: 4rem; } - .mb6-ns { margin-bottom: 8rem; } - .mb7-ns { margin-bottom: 16rem; } - - .mt0-ns { margin-top: 0; } - .mt1-ns { margin-top: .25rem; } - .mt2-ns { margin-top: .5rem; } - .mt3-ns { margin-top: 1rem; } - .mt4-ns { margin-top: 2rem; } - .mt5-ns { margin-top: 4rem; } - .mt6-ns { margin-top: 8rem; } - .mt7-ns { margin-top: 16rem; } - - .mv0-ns { - margin-top: 0; - margin-bottom: 0; - } - .mv1-ns { - margin-top: .25rem; - margin-bottom: .25rem; - } - .mv2-ns { - margin-top: .5rem; - margin-bottom: .5rem; - } - .mv3-ns { - margin-top: 1rem; - margin-bottom: 1rem; - } - .mv4-ns { - margin-top: 2rem; - margin-bottom: 2rem; - } - .mv5-ns { - margin-top: 4rem; - margin-bottom: 4rem; - } - .mv6-ns { - margin-top: 8rem; - margin-bottom: 8rem; - } - .mv7-ns { - margin-top: 16rem; - margin-bottom: 16rem; - } - - .mh0-ns { - margin-left: 0; - margin-right: 0; - } - .mh1-ns { - margin-left: .25rem; - margin-right: .25rem; - } - .mh2-ns { - margin-left: .5rem; - margin-right: .5rem; - } - .mh3-ns { - margin-left: 1rem; - margin-right: 1rem; - } - .mh4-ns { - margin-left: 2rem; - margin-right: 2rem; - } - .mh5-ns { - margin-left: 4rem; - margin-right: 4rem; - } - .mh6-ns { - margin-left: 8rem; - margin-right: 8rem; - } - .mh7-ns { - margin-left: 16rem; - margin-right: 16rem; - } - -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .pa0-m { padding: 0; } - .pa1-m { padding: .25rem; } - .pa2-m { padding: .5rem; } - .pa3-m { padding: 1rem; } - .pa4-m { padding: 2rem; } - .pa5-m { padding: 4rem; } - .pa6-m { padding: 8rem; } - .pa7-m { padding: 16rem; } - - .pl0-m { padding-left: 0; } - .pl1-m { padding-left: .25rem; } - .pl2-m { padding-left: .5rem; } - .pl3-m { padding-left: 1rem; } - .pl4-m { padding-left: 2rem; } - .pl5-m { padding-left: 4rem; } - .pl6-m { padding-left: 8rem; } - .pl7-m { padding-left: 16rem; } - - .pr0-m { padding-right: 0; } - .pr1-m { padding-right: .25rem; } - .pr2-m { padding-right: .5rem; } - .pr3-m { padding-right: 1rem; } - .pr4-m { padding-right: 2rem; } - .pr5-m { padding-right: 4rem; } - .pr6-m { padding-right: 8rem; } - .pr7-m { padding-right: 16rem; } - - .pb0-m { padding-bottom: 0; } - .pb1-m { padding-bottom: .25rem; } - .pb2-m { padding-bottom: .5rem; } - .pb3-m { padding-bottom: 1rem; } - .pb4-m { padding-bottom: 2rem; } - .pb5-m { padding-bottom: 4rem; } - .pb6-m { padding-bottom: 8rem; } - .pb7-m { padding-bottom: 16rem; } - - .pt0-m { padding-top: 0; } - .pt1-m { padding-top: .25rem; } - .pt2-m { padding-top: .5rem; } - .pt3-m { padding-top: 1rem; } - .pt4-m { padding-top: 2rem; } - .pt5-m { padding-top: 4rem; } - .pt6-m { padding-top: 8rem; } - .pt7-m { padding-top: 16rem; } - - .pv0-m { - padding-top: 0; - padding-bottom: 0; - } - .pv1-m { - padding-top: .25rem; - padding-bottom: .25rem; - } - .pv2-m { - padding-top: .5rem; - padding-bottom: .5rem; - } - .pv3-m { - padding-top: 1rem; - padding-bottom: 1rem; - } - .pv4-m { - padding-top: 2rem; - padding-bottom: 2rem; - } - .pv5-m { - padding-top: 4rem; - padding-bottom: 4rem; - } - .pv6-m { - padding-top: 8rem; - padding-bottom: 8rem; - } - .pv7-m { - padding-top: 16rem; - padding-bottom: 16rem; - } - - .ph0-m { - padding-left: 0; - padding-right: 0; - } - .ph1-m { - padding-left: .25rem; - padding-right: .25rem; - } - .ph2-m { - padding-left: .5rem; - padding-right: .5rem; - } - .ph3-m { - padding-left: 1rem; - padding-right: 1rem; - } - .ph4-m { - padding-left: 2rem; - padding-right: 2rem; - } - .ph5-m { - padding-left: 4rem; - padding-right: 4rem; - } - .ph6-m { - padding-left: 8rem; - padding-right: 8rem; - } - .ph7-m { - padding-left: 16rem; - padding-right: 16rem; - } - - .ma0-m { margin: 0; } - .ma1-m { margin: .25rem; } - .ma2-m { margin: .5rem; } - .ma3-m { margin: 1rem; } - .ma4-m { margin: 2rem; } - .ma5-m { margin: 4rem; } - .ma6-m { margin: 8rem; } - .ma7-m { margin: 16rem; } - - .ml0-m { margin-left: 0; } - .ml1-m { margin-left: .25rem; } - .ml2-m { margin-left: .5rem; } - .ml3-m { margin-left: 1rem; } - .ml4-m { margin-left: 2rem; } - .ml5-m { margin-left: 4rem; } - .ml6-m { margin-left: 8rem; } - .ml7-m { margin-left: 16rem; } - - .mr0-m { margin-right: 0; } - .mr1-m { margin-right: .25rem; } - .mr2-m { margin-right: .5rem; } - .mr3-m { margin-right: 1rem; } - .mr4-m { margin-right: 2rem; } - .mr5-m { margin-right: 4rem; } - .mr6-m { margin-right: 8rem; } - .mr7-m { margin-right: 16rem; } - - .mb0-m { margin-bottom: 0; } - .mb1-m { margin-bottom: .25rem; } - .mb2-m { margin-bottom: .5rem; } - .mb3-m { margin-bottom: 1rem; } - .mb4-m { margin-bottom: 2rem; } - .mb5-m { margin-bottom: 4rem; } - .mb6-m { margin-bottom: 8rem; } - .mb7-m { margin-bottom: 16rem; } - - .mt0-m { margin-top: 0; } - .mt1-m { margin-top: .25rem; } - .mt2-m { margin-top: .5rem; } - .mt3-m { margin-top: 1rem; } - .mt4-m { margin-top: 2rem; } - .mt5-m { margin-top: 4rem; } - .mt6-m { margin-top: 8rem; } - .mt7-m { margin-top: 16rem; } - - .mv0-m { - margin-top: 0; - margin-bottom: 0; - } - .mv1-m { - margin-top: .25rem; - margin-bottom: .25rem; - } - .mv2-m { - margin-top: .5rem; - margin-bottom: .5rem; - } - .mv3-m { - margin-top: 1rem; - margin-bottom: 1rem; - } - .mv4-m { - margin-top: 2rem; - margin-bottom: 2rem; - } - .mv5-m { - margin-top: 4rem; - margin-bottom: 4rem; - } - .mv6-m { - margin-top: 8rem; - margin-bottom: 8rem; - } - .mv7-m { - margin-top: 16rem; - margin-bottom: 16rem; - } - - .mh0-m { - margin-left: 0; - margin-right: 0; - } - .mh1-m { - margin-left: .25rem; - margin-right: .25rem; - } - .mh2-m { - margin-left: .5rem; - margin-right: .5rem; - } - .mh3-m { - margin-left: 1rem; - margin-right: 1rem; - } - .mh4-m { - margin-left: 2rem; - margin-right: 2rem; - } - .mh5-m { - margin-left: 4rem; - margin-right: 4rem; - } - .mh6-m { - margin-left: 8rem; - margin-right: 8rem; - } - .mh7-m { - margin-left: 16rem; - margin-right: 16rem; - } - -} -@media screen and (min-width: 60em) { - .pa0-l { padding: 0; } - .pa1-l { padding: .25rem; } - .pa2-l { padding: .5rem; } - .pa3-l { padding: 1rem; } - .pa4-l { padding: 2rem; } - .pa5-l { padding: 4rem; } - .pa6-l { padding: 8rem; } - .pa7-l { padding: 16rem; } - - .pl0-l { padding-left: 0; } - .pl1-l { padding-left: .25rem; } - .pl2-l { padding-left: .5rem; } - .pl3-l { padding-left: 1rem; } - .pl4-l { padding-left: 2rem; } - .pl5-l { padding-left: 4rem; } - .pl6-l { padding-left: 8rem; } - .pl7-l { padding-left: 16rem; } - - .pr0-l { padding-right: 0; } - .pr1-l { padding-right: .25rem; } - .pr2-l { padding-right: .5rem; } - .pr3-l { padding-right: 1rem; } - .pr4-l { padding-right: 2rem; } - .pr5-l { padding-right: 4rem; } - .pr6-l { padding-right: 8rem; } - .pr7-l { padding-right: 16rem; } - - .pb0-l { padding-bottom: 0; } - .pb1-l { padding-bottom: .25rem; } - .pb2-l { padding-bottom: .5rem; } - .pb3-l { padding-bottom: 1rem; } - .pb4-l { padding-bottom: 2rem; } - .pb5-l { padding-bottom: 4rem; } - .pb6-l { padding-bottom: 8rem; } - .pb7-l { padding-bottom: 16rem; } - - .pt0-l { padding-top: 0; } - .pt1-l { padding-top: .25rem; } - .pt2-l { padding-top: .5rem; } - .pt3-l { padding-top: 1rem; } - .pt4-l { padding-top: 2rem; } - .pt5-l { padding-top: 4rem; } - .pt6-l { padding-top: 8rem; } - .pt7-l { padding-top: 16rem; } - - .pv0-l { - padding-top: 0; - padding-bottom: 0; - } - .pv1-l { - padding-top: .25rem; - padding-bottom: .25rem; - } - .pv2-l { - padding-top: .5rem; - padding-bottom: .5rem; - } - .pv3-l { - padding-top: 1rem; - padding-bottom: 1rem; - } - .pv4-l { - padding-top: 2rem; - padding-bottom: 2rem; - } - .pv5-l { - padding-top: 4rem; - padding-bottom: 4rem; - } - .pv6-l { - padding-top: 8rem; - padding-bottom: 8rem; - } - .pv7-l { - padding-top: 16rem; - padding-bottom: 16rem; - } - - .ph0-l { - padding-left: 0; - padding-right: 0; - } - .ph1-l { - padding-left: .25rem; - padding-right: .25rem; - } - .ph2-l { - padding-left: .5rem; - padding-right: .5rem; - } - .ph3-l { - padding-left: 1rem; - padding-right: 1rem; - } - .ph4-l { - padding-left: 2rem; - padding-right: 2rem; - } - .ph5-l { - padding-left: 4rem; - padding-right: 4rem; - } - .ph6-l { - padding-left: 8rem; - padding-right: 8rem; - } - .ph7-l { - padding-left: 16rem; - padding-right: 16rem; - } - - .ma0-l { margin: 0; } - .ma1-l { margin: .25rem; } - .ma2-l { margin: .5rem; } - .ma3-l { margin: 1rem; } - .ma4-l { margin: 2rem; } - .ma5-l { margin: 4rem; } - .ma6-l { margin: 8rem; } - .ma7-l { margin: 16rem; } - - .ml0-l { margin-left: 0; } - .ml1-l { margin-left: .25rem; } - .ml2-l { margin-left: .5rem; } - .ml3-l { margin-left: 1rem; } - .ml4-l { margin-left: 2rem; } - .ml5-l { margin-left: 4rem; } - .ml6-l { margin-left: 8rem; } - .ml7-l { margin-left: 16rem; } - - .mr0-l { margin-right: 0; } - .mr1-l { margin-right: .25rem; } - .mr2-l { margin-right: .5rem; } - .mr3-l { margin-right: 1rem; } - .mr4-l { margin-right: 2rem; } - .mr5-l { margin-right: 4rem; } - .mr6-l { margin-right: 8rem; } - .mr7-l { margin-right: 16rem; } - - .mb0-l { margin-bottom: 0; } - .mb1-l { margin-bottom: .25rem; } - .mb2-l { margin-bottom: .5rem; } - .mb3-l { margin-bottom: 1rem; } - .mb4-l { margin-bottom: 2rem; } - .mb5-l { margin-bottom: 4rem; } - .mb6-l { margin-bottom: 8rem; } - .mb7-l { margin-bottom: 16rem; } - - .mt0-l { margin-top: 0; } - .mt1-l { margin-top: .25rem; } - .mt2-l { margin-top: .5rem; } - .mt3-l { margin-top: 1rem; } - .mt4-l { margin-top: 2rem; } - .mt5-l { margin-top: 4rem; } - .mt6-l { margin-top: 8rem; } - .mt7-l { margin-top: 16rem; } - - .mv0-l { - margin-top: 0; - margin-bottom: 0; - } - .mv1-l { - margin-top: .25rem; - margin-bottom: .25rem; - } - .mv2-l { - margin-top: .5rem; - margin-bottom: .5rem; - } - .mv3-l { - margin-top: 1rem; - margin-bottom: 1rem; - } - .mv4-l { - margin-top: 2rem; - margin-bottom: 2rem; - } - .mv5-l { - margin-top: 4rem; - margin-bottom: 4rem; - } - .mv6-l { - margin-top: 8rem; - margin-bottom: 8rem; - } - .mv7-l { - margin-top: 16rem; - margin-bottom: 16rem; - } - - .mh0-l { - margin-left: 0; - margin-right: 0; - } - .mh1-l { - margin-left: .25rem; - margin-right: .25rem; - } - .mh2-l { - margin-left: .5rem; - margin-right: .5rem; - } - .mh3-l { - margin-left: 1rem; - margin-right: 1rem; - } - .mh4-l { - margin-left: 2rem; - margin-right: 2rem; - } - .mh5-l { - margin-left: 4rem; - margin-right: 4rem; - } - .mh6-l { - margin-left: 8rem; - margin-right: 8rem; - } - .mh7-l { - margin-left: 16rem; - margin-right: 16rem; - } -} -/* - NEGATIVE MARGINS - - Base: - n = negative - - Modifiers: - a = all - t = top - r = right - b = bottom - l = left - - 1 = 1st step in spacing scale - 2 = 2nd step in spacing scale - 3 = 3rd step in spacing scale - 4 = 4th step in spacing scale - 5 = 5th step in spacing scale - 6 = 6th step in spacing scale - 7 = 7th step in spacing scale - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.na1 { margin: -0.25rem; } -.na2 { margin: -0.5rem; } -.na3 { margin: -1rem; } -.na4 { margin: -2rem; } -.na5 { margin: -4rem; } -.na6 { margin: -8rem; } -.na7 { margin: -16rem; } -.nl1 { margin-left: -0.25rem; } -.nl2 { margin-left: -0.5rem; } -.nl3 { margin-left: -1rem; } -.nl4 { margin-left: -2rem; } -.nl5 { margin-left: -4rem; } -.nl6 { margin-left: -8rem; } -.nl7 { margin-left: -16rem; } -.nr1 { margin-right: -0.25rem; } -.nr2 { margin-right: -0.5rem; } -.nr3 { margin-right: -1rem; } -.nr4 { margin-right: -2rem; } -.nr5 { margin-right: -4rem; } -.nr6 { margin-right: -8rem; } -.nr7 { margin-right: -16rem; } -.nb1 { margin-bottom: -0.25rem; } -.nb2 { margin-bottom: -0.5rem; } -.nb3 { margin-bottom: -1rem; } -.nb4 { margin-bottom: -2rem; } -.nb5 { margin-bottom: -4rem; } -.nb6 { margin-bottom: -8rem; } -.nb7 { margin-bottom: -16rem; } -.nt1 { margin-top: -0.25rem; } -.nt2 { margin-top: -0.5rem; } -.nt3 { margin-top: -1rem; } -.nt4 { margin-top: -2rem; } -.nt5 { margin-top: -4rem; } -.nt6 { margin-top: -8rem; } -.nt7 { margin-top: -16rem; } -@media screen and (min-width: 30em) { - - .na1-ns { margin: -0.25rem; } - .na2-ns { margin: -0.5rem; } - .na3-ns { margin: -1rem; } - .na4-ns { margin: -2rem; } - .na5-ns { margin: -4rem; } - .na6-ns { margin: -8rem; } - .na7-ns { margin: -16rem; } - - .nl1-ns { margin-left: -0.25rem; } - .nl2-ns { margin-left: -0.5rem; } - .nl3-ns { margin-left: -1rem; } - .nl4-ns { margin-left: -2rem; } - .nl5-ns { margin-left: -4rem; } - .nl6-ns { margin-left: -8rem; } - .nl7-ns { margin-left: -16rem; } - - .nr1-ns { margin-right: -0.25rem; } - .nr2-ns { margin-right: -0.5rem; } - .nr3-ns { margin-right: -1rem; } - .nr4-ns { margin-right: -2rem; } - .nr5-ns { margin-right: -4rem; } - .nr6-ns { margin-right: -8rem; } - .nr7-ns { margin-right: -16rem; } - - .nb1-ns { margin-bottom: -0.25rem; } - .nb2-ns { margin-bottom: -0.5rem; } - .nb3-ns { margin-bottom: -1rem; } - .nb4-ns { margin-bottom: -2rem; } - .nb5-ns { margin-bottom: -4rem; } - .nb6-ns { margin-bottom: -8rem; } - .nb7-ns { margin-bottom: -16rem; } - - .nt1-ns { margin-top: -0.25rem; } - .nt2-ns { margin-top: -0.5rem; } - .nt3-ns { margin-top: -1rem; } - .nt4-ns { margin-top: -2rem; } - .nt5-ns { margin-top: -4rem; } - .nt6-ns { margin-top: -8rem; } - .nt7-ns { margin-top: -16rem; } - -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .na1-m { margin: -0.25rem; } - .na2-m { margin: -0.5rem; } - .na3-m { margin: -1rem; } - .na4-m { margin: -2rem; } - .na5-m { margin: -4rem; } - .na6-m { margin: -8rem; } - .na7-m { margin: -16rem; } - - .nl1-m { margin-left: -0.25rem; } - .nl2-m { margin-left: -0.5rem; } - .nl3-m { margin-left: -1rem; } - .nl4-m { margin-left: -2rem; } - .nl5-m { margin-left: -4rem; } - .nl6-m { margin-left: -8rem; } - .nl7-m { margin-left: -16rem; } - - .nr1-m { margin-right: -0.25rem; } - .nr2-m { margin-right: -0.5rem; } - .nr3-m { margin-right: -1rem; } - .nr4-m { margin-right: -2rem; } - .nr5-m { margin-right: -4rem; } - .nr6-m { margin-right: -8rem; } - .nr7-m { margin-right: -16rem; } - - .nb1-m { margin-bottom: -0.25rem; } - .nb2-m { margin-bottom: -0.5rem; } - .nb3-m { margin-bottom: -1rem; } - .nb4-m { margin-bottom: -2rem; } - .nb5-m { margin-bottom: -4rem; } - .nb6-m { margin-bottom: -8rem; } - .nb7-m { margin-bottom: -16rem; } - - .nt1-m { margin-top: -0.25rem; } - .nt2-m { margin-top: -0.5rem; } - .nt3-m { margin-top: -1rem; } - .nt4-m { margin-top: -2rem; } - .nt5-m { margin-top: -4rem; } - .nt6-m { margin-top: -8rem; } - .nt7-m { margin-top: -16rem; } - -} -@media screen and (min-width: 60em) { - .na1-l { margin: -0.25rem; } - .na2-l { margin: -0.5rem; } - .na3-l { margin: -1rem; } - .na4-l { margin: -2rem; } - .na5-l { margin: -4rem; } - .na6-l { margin: -8rem; } - .na7-l { margin: -16rem; } - - .nl1-l { margin-left: -0.25rem; } - .nl2-l { margin-left: -0.5rem; } - .nl3-l { margin-left: -1rem; } - .nl4-l { margin-left: -2rem; } - .nl5-l { margin-left: -4rem; } - .nl6-l { margin-left: -8rem; } - .nl7-l { margin-left: -16rem; } - - .nr1-l { margin-right: -0.25rem; } - .nr2-l { margin-right: -0.5rem; } - .nr3-l { margin-right: -1rem; } - .nr4-l { margin-right: -2rem; } - .nr5-l { margin-right: -4rem; } - .nr6-l { margin-right: -8rem; } - .nr7-l { margin-right: -16rem; } - - .nb1-l { margin-bottom: -0.25rem; } - .nb2-l { margin-bottom: -0.5rem; } - .nb3-l { margin-bottom: -1rem; } - .nb4-l { margin-bottom: -2rem; } - .nb5-l { margin-bottom: -4rem; } - .nb6-l { margin-bottom: -8rem; } - .nb7-l { margin-bottom: -16rem; } - - .nt1-l { margin-top: -0.25rem; } - .nt2-l { margin-top: -0.5rem; } - .nt3-l { margin-top: -1rem; } - .nt4-l { margin-top: -2rem; } - .nt5-l { margin-top: -4rem; } - .nt6-l { margin-top: -8rem; } - .nt7-l { margin-top: -16rem; } -} -/* - - TABLES - Docs: http://tachyons.io/docs/elements/tables/ - -*/ -.collapse { - border-collapse: collapse; - border-spacing: 0; -} -.striped--light-silver:nth-child(odd) { - background-color: #aaa; -} -.striped--moon-gray:nth-child(odd) { - background-color: #ccc; -} -.striped--light-gray:nth-child(odd) { - background-color: #eee; -} -.striped--near-white:nth-child(odd) { - background-color: #f4f4f4; -} -.stripe-light:nth-child(odd) { - background-color: rgba(255, 255, 255, .1); -} -.stripe-dark:nth-child(odd) { - background-color: rgba(0, 0, 0, .1); -} -/* - - TEXT DECORATION - Docs: http://tachyons.io/docs/typography/text-decoration/ - - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.strike { text-decoration: line-through; } -.underline { text-decoration: underline; } -.no-underline { text-decoration: none; } -@media screen and (min-width: 30em) { - .strike-ns { text-decoration: line-through; } - .underline-ns { text-decoration: underline; } - .no-underline-ns { text-decoration: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .strike-m { text-decoration: line-through; } - .underline-m { text-decoration: underline; } - .no-underline-m { text-decoration: none; } -} -@media screen and (min-width: 60em) { - .strike-l { text-decoration: line-through; } - .underline-l { text-decoration: underline; } - .no-underline-l { text-decoration: none; } -} -/* - - TEXT ALIGN - Docs: http://tachyons.io/docs/typography/text-align/ - - Base - t = text-align - - Modifiers - l = left - r = right - c = center - j = justify - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.tl { text-align: left; } -.tr { text-align: right; } -.tc { text-align: center; } -.tj { text-align: justify; } -@media screen and (min-width: 30em) { - .tl-ns { text-align: left; } - .tr-ns { text-align: right; } - .tc-ns { text-align: center; } - .tj-ns { text-align: justify; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .tl-m { text-align: left; } - .tr-m { text-align: right; } - .tc-m { text-align: center; } - .tj-m { text-align: justify; } -} -@media screen and (min-width: 60em) { - .tl-l { text-align: left; } - .tr-l { text-align: right; } - .tc-l { text-align: center; } - .tj-l { text-align: justify; } -} -/* - - TEXT TRANSFORM - Docs: http://tachyons.io/docs/typography/text-transform/ - - Base: - tt = text-transform - - Modifiers - c = capitalize - l = lowercase - u = uppercase - n = none - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.ttc { text-transform: capitalize; } -.ttl { text-transform: lowercase; } -.ttu { text-transform: uppercase; } -.ttn { text-transform: none; } -@media screen and (min-width: 30em) { - .ttc-ns { text-transform: capitalize; } - .ttl-ns { text-transform: lowercase; } - .ttu-ns { text-transform: uppercase; } - .ttn-ns { text-transform: none; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .ttc-m { text-transform: capitalize; } - .ttl-m { text-transform: lowercase; } - .ttu-m { text-transform: uppercase; } - .ttn-m { text-transform: none; } -} -@media screen and (min-width: 60em) { - .ttc-l { text-transform: capitalize; } - .ttl-l { text-transform: lowercase; } - .ttu-l { text-transform: uppercase; } - .ttn-l { text-transform: none; } -} -/* - - TYPE SCALE - Docs: http://tachyons.io/docs/typography/scale/ - - Base: - f = font-size - - Modifiers - 1 = 1st step in size scale - 2 = 2nd step in size scale - 3 = 3rd step in size scale - 4 = 4th step in size scale - 5 = 5th step in size scale - 6 = 6th step in size scale - 7 = 7th step in size scale - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large -*/ -/* - * For Hero/Marketing Titles - * - * These generally are too large for mobile - * so be careful using them on smaller screens. - * */ -.f-6, -.f-headline { - font-size: 6rem; -} -.f-5, -.f-subheadline { - font-size: 5rem; -} -/* Type Scale */ -.f1 { font-size: 3rem; } -.f2 { font-size: 2.25rem; } -.f3 { font-size: 1.5rem; } -.f4 { font-size: 1.25rem; } -.f5 { font-size: 1rem; } -.f6 { font-size: .875rem; } -.f7 { font-size: .75rem; } -/* Small and hard to read for many people so use with extreme caution */ -@media screen and (min-width: 30em){ - .f-6-ns, - .f-headline-ns { font-size: 6rem; } - .f-5-ns, - .f-subheadline-ns { font-size: 5rem; } - .f1-ns { font-size: 3rem; } - .f2-ns { font-size: 2.25rem; } - .f3-ns { font-size: 1.5rem; } - .f4-ns { font-size: 1.25rem; } - .f5-ns { font-size: 1rem; } - .f6-ns { font-size: .875rem; } - .f7-ns { font-size: .75rem; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .f-6-m, - .f-headline-m { font-size: 6rem; } - .f-5-m, - .f-subheadline-m { font-size: 5rem; } - .f1-m { font-size: 3rem; } - .f2-m { font-size: 2.25rem; } - .f3-m { font-size: 1.5rem; } - .f4-m { font-size: 1.25rem; } - .f5-m { font-size: 1rem; } - .f6-m { font-size: .875rem; } - .f7-m { font-size: .75rem; } -} -@media screen and (min-width: 60em) { - .f-6-l, - .f-headline-l { - font-size: 6rem; - } - .f-5-l, - .f-subheadline-l { - font-size: 5rem; - } - .f1-l { font-size: 3rem; } - .f2-l { font-size: 2.25rem; } - .f3-l { font-size: 1.5rem; } - .f4-l { font-size: 1.25rem; } - .f5-l { font-size: 1rem; } - .f6-l { font-size: .875rem; } - .f7-l { font-size: .75rem; } -} -/* - - TYPOGRAPHY - http://tachyons.io/docs/typography/measure/ - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* Measure is limited to ~66 characters */ -.measure { - max-width: 30em; -} -/* Measure is limited to ~80 characters */ -.measure-wide { - max-width: 34em; -} -/* Measure is limited to ~45 characters */ -.measure-narrow { - max-width: 20em; -} -/* Book paragraph style - paragraphs are indented with no vertical spacing. */ -.indent { - text-indent: 1em; - margin-top: 0; - margin-bottom: 0; -} -.small-caps { - -webkit-font-feature-settings: "c2sc"; - font-feature-settings: "c2sc"; - font-variant: small-caps; -} -/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */ -.truncate { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} -@media screen and (min-width: 30em) { - .measure-ns { - max-width: 30em; - } - .measure-wide-ns { - max-width: 34em; - } - .measure-narrow-ns { - max-width: 20em; - } - .indent-ns { - text-indent: 1em; - margin-top: 0; - margin-bottom: 0; - } - .small-caps-ns { - -webkit-font-feature-settings: "c2sc"; - font-feature-settings: "c2sc"; - font-variant: small-caps; - } - .truncate-ns { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .measure-m { - max-width: 30em; - } - .measure-wide-m { - max-width: 34em; - } - .measure-narrow-m { - max-width: 20em; - } - .indent-m { - text-indent: 1em; - margin-top: 0; - margin-bottom: 0; - } - .small-caps-m { - -webkit-font-feature-settings: "c2sc"; - font-feature-settings: "c2sc"; - font-variant: small-caps; - } - .truncate-m { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} -@media screen and (min-width: 60em) { - .measure-l { - max-width: 30em; - } - .measure-wide-l { - max-width: 34em; - } - .measure-narrow-l { - max-width: 20em; - } - .indent-l { - text-indent: 1em; - margin-top: 0; - margin-bottom: 0; - } - .small-caps-l { - -webkit-font-feature-settings: "c2sc"; - font-feature-settings: "c2sc"; - font-variant: small-caps; - } - .truncate-l { - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; - } -} -/* - - UTILITIES - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* Equivalent to .overflow-y-scroll */ -.overflow-container { - overflow-y: scroll; -} -.center { - margin-right: auto; - margin-left: auto; -} -.mr-auto { margin-right: auto; } -.ml-auto { margin-left: auto; } -@media screen and (min-width: 30em){ - .center-ns { - margin-right: auto; - margin-left: auto; - } - .mr-auto-ns { margin-right: auto; } - .ml-auto-ns { margin-left: auto; } -} -@media screen and (min-width: 30em) and (max-width: 60em){ - .center-m { - margin-right: auto; - margin-left: auto; - } - .mr-auto-m { margin-right: auto; } - .ml-auto-m { margin-left: auto; } -} -@media screen and (min-width: 60em){ - .center-l { - margin-right: auto; - margin-left: auto; - } - .mr-auto-l { margin-right: auto; } - .ml-auto-l { margin-left: auto; } -} -/* - - VISIBILITY - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -/* - Text that is hidden but accessible - Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility -*/ -.clip { - position: fixed !important; - _position: absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); -} -@media screen and (min-width: 30em) { - .clip-ns { - position: fixed !important; - _position: absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); - } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .clip-m { - position: fixed !important; - _position: absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); - } -} -@media screen and (min-width: 60em) { - .clip-l { - position: fixed !important; - _position: absolute !important; - clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ - clip: rect(1px, 1px, 1px, 1px); - } -} -/* - - WHITE SPACE - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.ws-normal { white-space: normal; } -.nowrap { white-space: nowrap; } -.pre { white-space: pre; } -@media screen and (min-width: 30em) { - .ws-normal-ns { white-space: normal; } - .nowrap-ns { white-space: nowrap; } - .pre-ns { white-space: pre; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .ws-normal-m { white-space: normal; } - .nowrap-m { white-space: nowrap; } - .pre-m { white-space: pre; } -} -@media screen and (min-width: 60em) { - .ws-normal-l { white-space: normal; } - .nowrap-l { white-space: nowrap; } - .pre-l { white-space: pre; } -} -/* - - VERTICAL ALIGN - - Media Query Extensions: - -ns = not-small - -m = medium - -l = large - -*/ -.v-base { vertical-align: baseline; } -.v-mid { vertical-align: middle; } -.v-top { vertical-align: top; } -.v-btm { vertical-align: bottom; } -@media screen and (min-width: 30em) { - .v-base-ns { vertical-align: baseline; } - .v-mid-ns { vertical-align: middle; } - .v-top-ns { vertical-align: top; } - .v-btm-ns { vertical-align: bottom; } -} -@media screen and (min-width: 30em) and (max-width: 60em) { - .v-base-m { vertical-align: baseline; } - .v-mid-m { vertical-align: middle; } - .v-top-m { vertical-align: top; } - .v-btm-m { vertical-align: bottom; } -} -@media screen and (min-width: 60em) { - .v-base-l { vertical-align: baseline; } - .v-mid-l { vertical-align: middle; } - .v-top-l { vertical-align: top; } - .v-btm-l { vertical-align: bottom; } -} -/* - - HOVER EFFECTS - Docs: http://tachyons.io/docs/themes/hovers/ - - - Dim - - Glow - - Hide Child - - Underline text - - Grow - - Pointer - - Shadow - -*/ -/* - - Dim element on hover by adding the dim class. - -*/ -.dim { - opacity: 1; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.dim:hover, -.dim:focus { - opacity: .5; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.dim:active { - opacity: .8; -webkit-transition: opacity .15s ease-out; transition: opacity .15s ease-out; -} -/* - - Animate opacity to 100% on hover by adding the glow class. - -*/ -.glow { - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.glow:hover, -.glow:focus { - opacity: 1; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -/* - - Hide child & reveal on hover: - - Put the hide-child class on a parent element and any nested element with the - child class will be hidden and displayed on hover or focus. - -
    -
    Hidden until hover or focus
    -
    Hidden until hover or focus
    -
    Hidden until hover or focus
    -
    Hidden until hover or focus
    -
    -*/ -.hide-child .child { - opacity: 0; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.hide-child:hover .child, -.hide-child:focus .child, -.hide-child:active .child { - opacity: 1; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.underline-hover:hover, -.underline-hover:focus { - text-decoration: underline; -} -/* Can combine this with overflow-hidden to make background images grow on hover - * even if you are using background-size: cover */ -.grow { - -moz-osx-font-smoothing: grayscale; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-transition: -webkit-transform 0.25s ease-out; - transition: -webkit-transform 0.25s ease-out; - transition: transform 0.25s ease-out; - transition: transform 0.25s ease-out, -webkit-transform 0.25s ease-out; -} -.grow:hover, -.grow:focus { - -webkit-transform: scale(1.05); - transform: scale(1.05); -} -.grow:active { - -webkit-transform: scale(.90); - transform: scale(.90); -} -.grow-large { - -moz-osx-font-smoothing: grayscale; - -webkit-backface-visibility: hidden; - backface-visibility: hidden; - -webkit-transform: translateZ(0); - transform: translateZ(0); - -webkit-transition: -webkit-transform .25s ease-in-out; - transition: -webkit-transform .25s ease-in-out; - transition: transform .25s ease-in-out; - transition: transform .25s ease-in-out, -webkit-transform .25s ease-in-out; -} -.grow-large:hover, -.grow-large:focus { - -webkit-transform: scale(1.2); - transform: scale(1.2); -} -.grow-large:active { - -webkit-transform: scale(.95); - transform: scale(.95); -} -/* Add pointer on hover */ -.pointer:hover { - cursor: pointer; -} -/* - Add shadow on hover. - - Performant box-shadow animation pattern from - http://tobiasahlin.com/blog/how-to-animate-box-shadow/ -*/ -.shadow-hover { - cursor: pointer; - position: relative; - -webkit-transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); - transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); -} -.shadow-hover::after { - content: ''; - -webkit-box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, .2); - box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, .2); - border-radius: inherit; - opacity: 0; - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - z-index: -1; - -webkit-transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); - transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1); -} -.shadow-hover:hover::after, -.shadow-hover:focus::after { - opacity: 1; -} -/* Combine with classes in skins and skins-pseudo for - * many different transition possibilities. */ -.bg-animate, -.bg-animate:hover, -.bg-animate:focus { - -webkit-transition: background-color .15s ease-in-out; - transition: background-color .15s ease-in-out; -} -/* - - Z-INDEX - - Base - z = z-index - - Modifiers - -0 = literal value 0 - -1 = literal value 1 - -2 = literal value 2 - -3 = literal value 3 - -4 = literal value 4 - -5 = literal value 5 - -999 = literal value 999 - -9999 = literal value 9999 - - -max = largest accepted z-index value as integer - - -inherit = string value inherit - -initial = string value initial - -unset = string value unset - - MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index - Spec: http://www.w3.org/TR/CSS2/zindex.html - Articles: - https://philipwalton.com/articles/what-no-one-told-you-about-z-index/ - - Tips on extending: - There might be a time worth using negative z-index values. - Or if you are using tachyons with another project, you might need to - adjust these values to suit your needs. - -*/ -.z-0 { z-index: 0; } -.z-1 { z-index: 1; } -.z-2 { z-index: 2; } -.z-3 { z-index: 3; } -.z-4 { z-index: 4; } -.z-5 { z-index: 5; } -.z-999 { z-index: 999; } -.z-9999 { z-index: 9999; } -.z-max { - z-index: 2147483647; -} -.z-inherit { z-index: inherit; } -.z-initial { z-index: auto; z-index: initial; } -.z-unset { z-index: unset; } -/* - - NESTED - Tachyons module for styling nested elements - that are generated by a cms. - -*/ -.nested-copy-line-height p, -.nested-copy-line-height ul, -.nested-copy-line-height ol { - line-height: 1.5; -} -.nested-headline-line-height h1, -.nested-headline-line-height h2, -.nested-headline-line-height h3, -.nested-headline-line-height h4, -.nested-headline-line-height h5, -.nested-headline-line-height h6 { - line-height: 1.25; -} -.nested-list-reset ul, -.nested-list-reset ol { - padding-left: 0; - margin-left: 0; - list-style-type: none; -} -.nested-copy-indent p+p { - text-indent: 1em; - margin-top: 0; - margin-bottom: 0; -} -.nested-copy-separator p+p { - margin-top: 1.5em; -} -.nested-img img { - width: 100%; - max-width: 100%; - display: block; -} -.nested-links a { - color: #0594CB; - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -.nested-links a:hover, -.nested-links a:focus { - color: #96ccff; - -webkit-transition: color .15s ease-in; - transition: color .15s ease-in; -} -/*@import 'tachyons/src/_styles';*/ -/* Variables */ -/* Importing here will allow you to override any variables in the modules */ -/* - - Tachyons - COLOR VARIABLES - - Grayscale - - Solids - - Transparencies - Colors - -*/ -/* - - CUSTOM MEDIA QUERIES - - Media query values can be changed to fit your own content. - There are no magic bullets when it comes to media query width values. - They should be declared in em units - and they should be set to meet - the needs of your content. You can also add additional media queries, - or remove some of the existing ones. - - These media queries can be referenced like so: - - @media (--breakpoint-not-small) { - .medium-and-larger-specific-style { - background-color: red; - } - } - - @media (--breakpoint-medium) { - .medium-screen-specific-style { - background-color: red; - } - } - - @media (--breakpoint-large) { - .large-and-larger-screen-specific-style { - background-color: red; - } - } - -*/ -/* Media Queries */ -/* Debugging */ -/*@import 'tachyons/src/_debug-children'; -@import 'tachyons/src/_debug-grid';*/ -/* Uncomment out the line below to help debug layout issues */ -/* @import 'tachyons/src/_debug'; */ -/* purgecss start ignore */ -.header-link:after { - position: relative; - left: 0.5em; - opacity: 0; - font-size: 0.8em; - -moz-transition: opacity 0.2s ease-in-out 0.1s; - -ms-transition: opacity 0.2s ease-in-out 0.1s; -} -h2:hover .header-link, -h3:hover .header-link, -h4:hover .header-link, -h5:hover .header-link, -h6:hover .header-link { - opacity: 1; -} -.animated { - -webkit-animation-duration: .5s; - animation-duration: .5s; - -webkit-animation-fill-mode: forwards; - animation-fill-mode: forwards; - -webkit-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; -} -@-webkit-keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} -@keyframes fadeIn { - from { - opacity: 0; - } - - to { - opacity: 1; - } -} -.fadeIn { - -webkit-animation-name: fadeIn; - animation-name: fadeIn; -} -.animated-delay-1 { - -webkit-animation-delay: 0.5s; - animation-delay: 0.5s; -} -.note, -.warning { - - border-left-width: 4px; - border-left-style: solid; - position: relative; - border-color: #0594CB; - - display: block; -} -.note #exclamation-icon, -.warning #exclamation-icon { - - fill: #0594CB; - position: absolute; - top: 35%; - left: -12px; - /*background-color: white;*/ -} -.admonition-content { - display: block; - margin: 0px; - padding: .125em 1em; - /*margin-left: 1em;*/ - margin-top: 2em; - margin-bottom: 2em; - overflow-x: auto; - /*font-size: .9375em;*/ - background-color: rgba(0, 0, 0, .05); - } -.hide-child-menu .child-menu { - display: none; - } -.hide-child-menu:hover .child-menu, - .hide-child-menu:focus .child-menu, - .hide-child-menu:active .child-menu { - display: block; - } -/*documentation-copy headings exaggerate spacing and size to chunk content */ -.documentation-copy h2 { - margin-top: 3em - } -.documentation-copy h2.minor { - font-size: inherit; - margin-top: inherit; - border-bottom: none; -} -.searchbox{display:inline-block;position:relative;width:200px;height:32px!important;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box;visibility:visible!important} -.searchbox .algolia-autocomplete{display:block;width:100%;height:100%} -.searchbox__wrapper{width:100%;height:100%;z-index:999;position:relative} -.searchbox__input{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:background .4s ease,-webkit-box-shadow .4s ease;transition:background .4s ease,-webkit-box-shadow .4s ease;transition:box-shadow .4s ease,background .4s ease;transition:box-shadow .4s ease,background .4s ease,-webkit-box-shadow .4s ease;border:0;border-radius:16px;-webkit-box-shadow:inset 0 0 0 1px #ccc;box-shadow:inset 0 0 0 1px #ccc;background:#fff!important;padding:0 26px 0 32px;width:100%;height:100%;vertical-align:middle;white-space:normal;font-size:12px;-webkit-appearance:none;-moz-appearance:none;appearance:none} -.searchbox__input::-webkit-search-cancel-button,.searchbox__input::-webkit-search-decoration,.searchbox__input::-webkit-search-results-button,.searchbox__input::-webkit-search-results-decoration{display:none} -.searchbox__input:hover{-webkit-box-shadow:inset 0 0 0 1px #b3b3b3;box-shadow:inset 0 0 0 1px #b3b3b3} -.searchbox__input:active,.searchbox__input:focus{outline:0;-webkit-box-shadow:inset 0 0 0 1px #aaa;box-shadow:inset 0 0 0 1px #aaa;background:#fff} -.searchbox__input::-webkit-input-placeholder{color:#aaa} -.searchbox__input:-ms-input-placeholder{color:#aaa} -.searchbox__input::-ms-input-placeholder{color:#aaa} -.searchbox__input::placeholder{color:#aaa} -.searchbox__submit{position:absolute;top:0;margin:0;border:0;border-radius:16px 0 0 16px;background-color:rgba(69, 142, 225, 0);padding:0;width:32px;height:100%;vertical-align:middle;text-align:center;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;right:inherit;left:0} -.searchbox__submit:before{display:inline-block;margin-right:-4px;height:100%;vertical-align:middle;content:""} -.searchbox__submit:active,.searchbox__submit:hover{cursor:pointer} -.searchbox__submit:focus{outline:0} -.searchbox__submit svg{width:14px;height:14px;vertical-align:middle;fill:#6d7e96} -.searchbox__reset{display:block;position:absolute;top:8px;right:8px;margin:0;border:0;background:none;cursor:pointer;padding:0;font-size:inherit;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;fill:rgba(0, 0, 0, .5)} -.searchbox__reset.hide{display:none} -.searchbox__reset:focus{outline:0} -.searchbox__reset svg{display:block;margin:4px;width:8px;height:8px} -.searchbox__input:valid~.searchbox__reset{display:block;-webkit-animation-name:sbx-reset-in;animation-name:sbx-reset-in;-webkit-animation-duration:.15s;animation-duration:.15s} -@-webkit-keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}} -@keyframes sbx-reset-in{0%{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);opacity:0}to{-webkit-transform:none;transform:none;opacity:1}} -.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu{right:0!important;left:inherit!important} -.algolia-autocomplete.algolia-autocomplete-right .ds-dropdown-menu:before{right:48px} -.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu{left:0!important;right:inherit!important} -.algolia-autocomplete.algolia-autocomplete-left .ds-dropdown-menu:before{left:48px} -.algolia-autocomplete .ds-dropdown-menu{top:-6px;border-radius:4px;margin:6px 0 0;padding:0;text-align:left;height:auto;position:relative;background:transparent;border:none;z-index:999;max-width:600px;min-width:500px;-webkit-box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1);box-shadow:0 1px 0 0 rgba(0, 0, 0, .2),0 2px 3px 0 rgba(0, 0, 0, .1)} -.algolia-autocomplete .ds-dropdown-menu:before{display:block;position:absolute;content:"";width:14px;height:14px;background:#fff;z-index:1000;top:-7px;border-top:1px solid #d9d9d9;border-right:1px solid #d9d9d9;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);border-radius:2px} -.algolia-autocomplete .ds-dropdown-menu .ds-suggestions{position:relative;z-index:1000;margin-top:8px} -.algolia-autocomplete .ds-dropdown-menu .ds-suggestions a:hover{text-decoration:none} -.algolia-autocomplete .ds-dropdown-menu .ds-suggestion{cursor:pointer} -.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion.suggestion-layout-simple,.algolia-autocomplete .ds-dropdown-menu .ds-suggestion.ds-cursor .algolia-docsearch-suggestion:not(.suggestion-layout-simple) .algolia-docsearch-suggestion--content{background-color:rgba(69, 142, 225, .05)} -.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-]{position:relative;border:1px solid #d9d9d9;background:#fff;border-radius:4px;overflow:auto;padding:0 8px 8px} -.algolia-autocomplete .ds-dropdown-menu *{-webkit-box-sizing:border-box;box-sizing:border-box} -.algolia-autocomplete .algolia-docsearch-suggestion{display:block;position:relative;padding:0 8px;background:#fff;color:#02060c;overflow:hidden} -.algolia-autocomplete .algolia-docsearch-suggestion--highlight{color:#174d8c;background:rgba(143, 187, 237, .1);padding:.1em .05em} -.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl0 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--category-header-lvl1 .algolia-docsearch-suggestion--highlight,.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{padding:0 0 1px;background:inherit;-webkit-box-shadow:inset 0 -2px 0 0 rgba(69, 142, 225, .8);box-shadow:inset 0 -2px 0 0 rgba(69, 142, 225, .8);color:inherit} -.algolia-autocomplete .algolia-docsearch-suggestion--content{display:block;float:right;width:70%;position:relative;padding:5.33333px 0 5.33333px 10.66667px;cursor:pointer} -.algolia-autocomplete .algolia-docsearch-suggestion--content:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;left:-1px} -.algolia-autocomplete .algolia-docsearch-suggestion--category-header{position:relative;border-bottom:1px solid #ddd;display:none;margin-top:8px;padding:4px 0;font-size:1em;color:#33363d} -.algolia-autocomplete .algolia-docsearch-suggestion--wrapper{width:100%;float:left;padding:8px 0 0} -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column{float:left;width:30%;text-align:right;position:relative;padding:5.33333px 10.66667px;color:#a4a7ae;font-size:.9em;word-wrap:break-word} -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column:before{content:"";position:absolute;display:block;top:0;height:100%;width:1px;background:#ddd;right:0} -.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-inline{display:none} -.algolia-autocomplete .algolia-docsearch-suggestion--title{margin-bottom:4px;color:#02060c;font-size:.9em;font-weight:700} -.algolia-autocomplete .algolia-docsearch-suggestion--text{display:block;line-height:1.2em;font-size:.85em;color:#63676d} -.algolia-autocomplete .algolia-docsearch-suggestion--no-results{width:100%;padding:8px 0;text-align:center;font-size:1.2em} -.algolia-autocomplete .algolia-docsearch-suggestion--no-results:before{display:none} -.algolia-autocomplete .algolia-docsearch-suggestion code{padding:1px 5px;font-size:90%;border:none;color:#222;background-color:#ebebeb;border-radius:3px;font-family:Menlo,Monaco,Consolas,Courier New,monospace} -.algolia-autocomplete .algolia-docsearch-suggestion code .algolia-docsearch-suggestion--highlight{background:none} -.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__main .algolia-docsearch-suggestion--category-header,.algolia-autocomplete .algolia-docsearch-suggestion.algolia-docsearch-suggestion__secondary{display:block} -@media (min-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:block}} -@media (max-width:768px){.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column{display:inline-block;width:auto;float:left;padding:0;color:#02060c;font-size:.9em;font-weight:700;text-align:left;opacity:.5}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:before{display:none}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--subcategory-column:after{content:"|"}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content{display:inline-block;width:auto;text-align:left;float:left;padding:0}.algolia-autocomplete .algolia-docsearch-suggestion .algolia-docsearch-suggestion--content:before{display:none}} -.algolia-autocomplete .suggestion-layout-simple.algolia-docsearch-suggestion{border-bottom:1px solid #eee;padding:8px;margin:0} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content{width:100%;padding:0} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--content:before{display:none} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header{margin:0;padding:0;display:block;width:100%;border:none} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl0,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1{opacity:.6;font-size:.85em} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--category-header-lvl1:before{background-image:url('data:image/svg+xml;utf8,');content:"";width:10px;height:10px;display:inline-block} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--wrapper{width:100%;float:left;margin:0;padding:0} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--duplicate-content,.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--subcategory-inline{display:none!important} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title{margin:0;color:#458ee1;font-size:.9em;font-weight:400} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--title:before{content:"#";font-weight:700;color:#458ee1;display:inline-block} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text{margin:4px 0 0;display:block;line-height:1.4em;padding:5.33333px 8px;background:#f8f8f8;font-size:.85em;opacity:.8} -.algolia-autocomplete .suggestion-layout-simple .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight{color:#3f4145;font-weight:700;-webkit-box-shadow:none;box-shadow:none} -.algolia-autocomplete .algolia-docsearch-footer{width:134px;height:20px;z-index:2000;margin-top:10.66667px;float:right;font-size:0;line-height:0} -.algolia-autocomplete .algolia-docsearch-footer--logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='168' height='24' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cpath d='M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938zm41.937 17.866c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17z' fill='%235468FF'/%3E%3Cpath d='M6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z' fill='%235D6494'/%3E%3Cpath d='M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36' fill='%23FFF'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:50%;background-size:100%;overflow:hidden;text-indent:-9000px;padding:0!important;width:100%;height:100%;display:block} -/* These styles enhance the home page carousel, located here: themes/gohugoioTheme/layouts/partials/home-page-sections/showcase.html */ -.overflow-x-scroll{ - -webkit-overflow-scrolling: touch; -} -.row { - -webkit-transition: 450ms -webkit-transform; - transition: 450ms -webkit-transform; - transition: 450ms transform; - transition: 450ms transform, 450ms -webkit-transform; - font-size: 0; -} -.tile { - -webkit-transition: 450ms all; - transition: 450ms all; -} -.details { - background: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, .9)), to(rgba(0, 0, 0, 0))); - background: linear-gradient(to top, rgba(0, 0, 0, .9) 0%, rgba(0, 0, 0, 0) 100%); - -webkit-transition: 450ms opacity; - transition: 450ms opacity; -} -.tile:hover .details { - opacity: 1; -} -.row:hover .tile { - opacity: 0.3; -} -.row:hover .tile:hover { - opacity: 1; -} -.chroma .lntable pre { - padding: 0; - margin: 0; - border: 0; -} -.chroma .lntable pre code { - padding: 0; - margin: 0; -} -code { - padding: 2px 3px; - margin: 0; - font-size: 93.75%; - background-color: rgba(27, 31, 35, .05); - border-radius: 3px; -} -pre code { - display: block; - padding: 1.5em 1.5em; - font-size: .875rem; - line-height: 2; - overflow-x: auto; -} -pre { - background-color: #fff; - color: #333; - white-space: pre; - -webkit-hyphens: none; - -ms-hyphens: none; - hyphens: none; - position: relative; - border-width: 1px; - border-color: #ccc; - border-style: solid; -} -/* The Pygments highlighter comes with its own styles. */ -.highlight pre { - background-color: inherit; - color: inherit; - padding: 0.5em; - font-size: .875rem; -} -/*We are adding the copy button content here so we can change it with javascript. See the "Clipboard scripts"*/ -.copy:after { - content: "Copy" -} -.copied:after { - content: "Copied" -} -@media screen and (min-width: 60em) { - .full-width - { - /*width: 100vw; - position: relative; - left: 50%; - right: 50%; - margin-left: -50vw; - margin-right: -50vw;*/ - /*width: 60vw;*/ - /*position: relative; - left: 50%; - right: 50%;*/ - /*margin-left: -30vw;*/ - margin-right: -30vw; - max-width: 100vw; - } -} -.code-block .line-numbers-rows { - background: #2f3a46; - border: none; - bottom: -50px; - color: #98a4b3; - left: -178px; - padding: 50px 0; - top: -50px; - width: 138px -} -.code-block .line-numbers-rows>span:before { - color: inherit; - padding-right: 30px -} -.tab-button{ - margin-bottom:1px; - position: relative; - z-index: 1; - color:#333; - border-color:#ccc; - 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:#f1f2f2; - background-color: #f1f2f2; -} -.tab-content .tab-pane{ - display: none; -} -.tab-content .tab-pane.active{ - display: block; -} -/* Treatment of copy buttons inside a tab module */ -.tab-content .copy, .tab-content .copied{ - display: none; -} -.tab-content .tab-pane.active + .copy, .tab-content .tab-pane.active + .copied{ - display: block; -} -.primary-color {color: #0594CB} -.bg-primary-color {background-color: #0594CB} -.hover-bg-primary-color:hover {background-color: #0594CB} -.primary-color-dark {color: #0A1922} -.bg-primary-color-dark {background-color: #0A1922} -.hover-bg-primary-color-dark:hover {background-color: #0A1922} -.primary-color-light {color: #f9f9f9} -.bg-primary-color-light {background-color: #f9f9f9} -.hover-bg-primary-color-light:hover {background-color: #f9f9f9} -.accent-color {color: #EBB951} -.bg-accent-color {background-color: #EBB951} -.hover-bg-accent-color:hover {background-color: #EBB951} -.accent-color-light {color: #FF4088} -.hover-accent-color-light:hover {color: #FF4088} -.bg-accent-color-light {background-color: #FF4088} -.hover-bg-accent-color-light:hover {background-color: #FF4088} -.accent-color-dark {color: #33ba91} -.bg-accent-color-dark {background-color: #33ba91} -.hover-bg-accent-color-dark:hover {background-color: #33ba91} -.text-color-primary {color: #373737} -.text-on-primary-color {color: #fff} -.text-color-secondary {color: #ccc} -.text-color-disabled {color: #F7f7f7} -.divider-color {color: #f6f6f6} -.warn-color {color: red} -.nested-links a { - color: #0594CB; - text-decoration: none; - -} -.column-count-2 {-webkit-column-count: 1;column-count: 1} -.column-gap-1 {-webkit-column-gap: 0;column-gap: 0} -.break-inside-avoid {-webkit-column-break-inside: auto;break-inside: auto} -@media screen and (min-width: 60em) { - .column-count-3-l {-webkit-column-count: 3;column-count: 3} - .column-count-2-l {-webkit-column-count: 2;column-count: 2} - .column-gap-1-l {-webkit-column-gap: 1;column-gap: 1} - .break-inside-avoid-l {-webkit-column-break-inside: avoid;break-inside: avoid} -} -.prose ul, .prose ol { - margin-bottom: 2em; -} -.prose ul li, .prose ol li { - margin-bottom: .5em; -} -.prose li:hover { - background-color: #eee -} -.prose ::selection { - background: #0594CB; /* WebKit/Blink Browsers */ - color: white; -} -.prose-glossary h3 { - margin-top: 0; - font-size: 1.125rem; -} -.prose-glossary h3:first-of-type { - margin-top: 3em; -} -.prose-glossary h3 ~ p { - margin: 0.5em 0 2em 0; -} -body { - -line-height: 1.45; - -} -p {margin-bottom: 1.3em;} -h1, h2, h3, h4 { -margin: 1.414em 0 0.5em; - -line-height: 1.2; -} -h1 { -margin-top: 0; -font-size: 2.441em; -} -h2 {font-size: 1.953em;} -h3 {font-size: 1.563em;} -h4 {font-size: 1.25em;} -small, .font_small {font-size: 0.8em;} -.prose table { - width: 100%; - margin-bottom: 3em; - border-collapse: collapse; - border-spacing: 0; - font-size: 1em; - border: 1px solid #eee - -} -.prose table th { - background-color: #0594CB; - border-bottom: 1px solid #0594CB; - color: white; - font-weight: 400; - text-align: left; - padding: .375em .5em; -} -.prose table td, .prose table tc { - padding: .75em .5em; - text-align: left; - border-right: 1px solid #eee; -} -.prose table tr:nth-child(even) { - background-color: #eee; -} -dl dt { - font-weight: bold; - font-size: 1.125rem; -} -dd { - margin: .5em 0 2em 0; - padding: 0; -} -.f2-fluid { - font-size: 2.25rem; -} -@media screen and (min-width: 60em) { - .f2-fluid { - font-size: 1.25rem; - font-size: calc(0.70833rem + 0.83333vw); - } -} -/* From https://www.cssfontstack.com */ -code, .code, pre code, .highlight pre { - font-family: 'inconsolata',Menlo,Monaco,'Courier New',monospace; -} -.sans-serif { - font-family: 'Muli', Avenir, 'Helvetica Neue', Helvetica, Roboto, Noto, 'Segoe UI', Arial, sans-serif; -} -.serif { - font-family: Palatino,"Palatino Linotype","Palatino LT STD","Book Antiqua",Georgia,serif; -} -/* Monospaced Typefaces (for code) */ -.courier { - font-family: 'Courier Next', - courier, - monospace; -} -/* Sans-Serif Typefaces */ -.helvetica { - font-family: 'helvetica neue', helvetica, - sans-serif; -} -.avenir { - font-family: 'avenir next', avenir, - sans-serif; -} -/* Serif Typefaces */ -.athelas { - font-family: athelas, - georgia, - serif; -} -.georgia { - font-family: georgia, - serif; -} -.times { - font-family: times, - serif; -} -.bodoni { - font-family: "Bodoni MT", - serif; -} -.calisto { - font-family: "Calisto MT", - serif; -} -.garamond { - font-family: garamond, - serif; -} -.baskerville { - font-family: baskerville, - serif; -} -/* pagination.html: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/template_embedded.go#L117 */ -.pagination { - margin: 3rem 0; -} -.pagination li { - display: inline-block; - margin-right: .375rem; - font-size: .875rem; - margin-bottom: 2.5em; -} -.pagination li a { - padding: .5rem .625rem; - background-color: white; - color: #333; - border: 1px solid #ddd; - border-radius: 3px; - text-decoration: none; -} -.pagination li.disabled { - display: none; -} -.pagination li.active a:link, -.pagination li.active a:active, -.pagination li.active a:visited { - background-color: #ddd; -} -/* Hides non-meaningful TOC items*/ -#TableOfContents ul li ul li ul li{ - display: none; - } -#TableOfContents ul li { - color: black; - display: block; - margin-bottom: .375em; - line-height: 1.375; -} -#TableOfContents ul li a{ - width: 100%; - padding: .25em .375em; - margin-left: -.375em; - -} -#TableOfContents ul li a:hover { - background-color: #999; - color: white; - -} -.no-js .needs-js { - opacity: 0 -} -.js .needs-js { - opacity: 1; - -webkit-transition: opacity .15s ease-in; - transition: opacity .15s ease-in; -} -.facebook, -.twitter, -.instagram, -.youtube { - fill: #bababa; -} -.facebook:hover { - fill: #3b5998; -} -.twitter { - fill: #55acee; -} -.twitter:hover { - fill: #bababa; -} -.instagram:hover { - fill: #e95950; -} -.youtube:hover { - fill: #bb0000; -} -.mstdn { - display: inline-block; - background-color: #282c37; - color: #d9e1e8; - text-decoration: none; - padding: 4px 10px 4px 30px; - border-radius: 4px; - font-size: 16px; - background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2261.076954mm%22%20height%3D%2265.47831mm%22%20viewBox%3D%220%200%20216.4144%20232.00976%22%3E%3Cpath%20d%3D%22M211.80734%20139.0875c-3.18125%2016.36625-28.4925%2034.2775-57.5625%2037.74875-15.15875%201.80875-30.08375%203.47125-45.99875%202.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125%200%202.53375.15625%204.94625.46875%207.2025%203.38375%2025.68625%2025.47%2027.225%2046.39125%2027.9425%2021.11625.7225%2039.91875-5.20625%2039.91875-5.20625l.8675%2019.09s-14.77%207.93125-41.08125%209.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234%20213.82%201.40609%20165.31125.20859%20116.09125c-.365-14.61375-.14-28.39375-.14-39.91875%200-50.33%2032.97625-65.0825%2032.97625-65.0825C49.67234%203.45375%2078.20359.2425%20107.86484%200h.72875c29.66125.2425%2058.21125%203.45375%2074.8375%2011.09%200%200%2032.975%2014.7525%2032.975%2065.0825%200%200%20.41375%2037.13375-4.59875%2062.915%22%20fill%3D%22%233088d4%22%2F%3E%3Cpath%20d%3D%22M177.50984%2080.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025%200-17.4175%207.5075-17.4175%2022.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375%200-15.74%206.32875-15.74%2018.7975v59.15H38.90484V80.077c0-12.455%203.17125-22.3525%209.54125-29.675%206.56875-7.3225%2015.17125-11.07625%2025.85-11.07625%2012.355%200%2021.71125%204.74875%2027.8975%2014.2475l6.01375%2010.08125%206.015-10.08125c6.185-9.49875%2015.54125-14.2475%2027.8975-14.2475%2010.6775%200%2019.28%203.75375%2025.85%2011.07625%206.36875%207.3225%209.54%2017.22%209.54%2029.675%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E"); - background-size: 16px; - background-repeat: no-repeat; - background-position: top 50% left 8px; - -webkit-transition: all 0.5s; - transition: all 0.5s; -} -.mstdn:hover { - background-color: #484c56; -} -.mstdn > span { - color: #9baec8; - font-size: 12px; - padding-left: 3px; -} -.mstdn > span:before { - content: "@"; -} -@media (min-width: 75em) { - - [data-scrolldir="down"] .sticky { - position: fixed; - top:100px; - right:0; - } - - [data-scrolldir="up"] .sticky { - position: fixed; - top:100px; - right:0; - } -} -#right-sidebar { - scrollbar-width: none; /* hide scrollbar: Firefox */ - -ms-overflow-style: none; /* hide scrollbar: Internet Explorer 10+ */ - height: calc(100vh - 9rem); - overflow-y: auto; -} -#right-sidebar::-webkit-scrollbar { /* hide scrollbar: WebKit */ - width: 0; - height: 0; -} -.fill-current { fill: currentColor; } -/* Background */ -.chroma { background-color: #ffffff } -/* Error */ -.chroma .err { color: #a61717; background-color: #e3d2d2 } -/* LineTableTD */ -.chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } -/* LineTable */ -.chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; } -/* LineHighlight */ -.chroma .hl { display: block; width: 100%;background-color: #ffffcc } -/* LineNumbersTable */ -.chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* LineNumbers */ -.chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em; } -/* Keyword */ -.chroma .k { font-weight: bold } -/* KeywordConstant */ -.chroma .kc { font-weight: bold } -/* KeywordDeclaration */ -.chroma .kd { font-weight: bold } -/* KeywordNamespace */ -.chroma .kn { font-weight: bold } -/* KeywordPseudo */ -.chroma .kp { font-weight: bold } -/* KeywordReserved */ -.chroma .kr { font-weight: bold } -/* KeywordType */ -.chroma .kt { color: #445588; font-weight: bold } -/* NameAttribute */ -.chroma .na { color: #008080 } -/* NameBuiltin */ -.chroma .nb { color: #999999 } -/* NameClass */ -.chroma .nc { color: #445588; font-weight: bold } -/* NameConstant */ -.chroma .no { color: #008080 } -/* NameEntity */ -.chroma .ni { color: #800080 } -/* NameException */ -.chroma .ne { color: #990000; font-weight: bold } -/* NameFunction */ -.chroma .nf { color: #990000; font-weight: bold } -/* NameNamespace */ -.chroma .nn { color: #555555 } -/* NameTag */ -.chroma .nt { color: #000080 } -/* NameVariable */ -.chroma .nv { color: #008080 } -/* LiteralString */ -.chroma .s { color: #bb8844 } -/* LiteralStringAffix */ -.chroma .sa { color: #bb8844 } -/* LiteralStringBacktick */ -.chroma .sb { color: #bb8844 } -/* LiteralStringChar */ -.chroma .sc { color: #bb8844 } -/* LiteralStringDelimiter */ -.chroma .dl { color: #bb8844 } -/* LiteralStringDoc */ -.chroma .sd { color: #bb8844 } -/* LiteralStringDouble */ -.chroma .s2 { color: #bb8844 } -/* LiteralStringEscape */ -.chroma .se { color: #bb8844 } -/* LiteralStringHeredoc */ -.chroma .sh { color: #bb8844 } -/* LiteralStringInterpol */ -.chroma .si { color: #bb8844 } -/* LiteralStringOther */ -.chroma .sx { color: #bb8844 } -/* LiteralStringRegex */ -.chroma .sr { color: #808000 } -/* LiteralStringSingle */ -.chroma .s1 { color: #bb8844 } -/* LiteralStringSymbol */ -.chroma .ss { color: #bb8844 } -/* LiteralNumber */ -.chroma .m { color: #009999 } -/* LiteralNumberBin */ -.chroma .mb { color: #009999 } -/* LiteralNumberFloat */ -.chroma .mf { color: #009999 } -/* LiteralNumberHex */ -.chroma .mh { color: #009999 } -/* LiteralNumberInteger */ -.chroma .mi { color: #009999 } -/* LiteralNumberIntegerLong */ -.chroma .il { color: #009999 } -/* LiteralNumberOct */ -.chroma .mo { color: #009999 } -/* Operator */ -.chroma .o { font-weight: bold } -/* OperatorWord */ -.chroma .ow { font-weight: bold } -/* Comment */ -.chroma .c { color: #999988; font-style: italic } -/* CommentHashbang */ -.chroma .ch { color: #999988; font-style: italic } -/* CommentMultiline */ -.chroma .cm { color: #999988; font-style: italic } -/* CommentSingle */ -.chroma .c1 { color: #999988; font-style: italic } -/* CommentSpecial */ -.chroma .cs { color: #999999; font-weight: bold; font-style: italic } -/* CommentPreproc */ -.chroma .cp { color: #999999; font-weight: bold } -/* CommentPreprocFile */ -.chroma .cpf { color: #999999; font-weight: bold } -/* GenericDeleted */ -.chroma .gd { color: #000000; background-color: #ffdddd } -/* GenericEmph */ -.chroma .ge { font-style: italic } -/* GenericError */ -.chroma .gr { color: #aa0000 } -/* GenericHeading */ -.chroma .gh { color: #999999 } -/* GenericInserted */ -.chroma .gi { color: #000000; background-color: #ddffdd } -/* GenericOutput */ -.chroma .go { color: #888888 } -/* GenericPrompt */ -.chroma .gp { color: #555555 } -/* GenericStrong */ -.chroma .gs { font-weight: bold } -/* GenericSubheading */ -.chroma .gu { color: #aaaaaa } -/* GenericTraceback */ -.chroma .gt { color: #aa0000 } -/* TextWhitespace */ -.chroma .w { color: #bbbbbb } -@media print { - #page-footer, - body > footer, - body > nav { - display: none; - } -} -/* -Make h6 elements behave like dt elements. Initially implemented to support -linkable glossary entries. - -Yes, it's a hack. That's why it's in the shame file. -*/ -h6 { - margin-top: 0; - margin-bottom: 0; - font-size: 1.125rem; -} -h6:first-of-type { - margin-top: 3em; -} -h6 ~ p { - margin: 0.5em 0 2em 0; -} -/* QR codes */ -img.qrcode { - width: auto; - width: initial; -} -.nested-blockquote blockquote { - border-left: 4px solid #0594CB; - padding-left: 1em; -} -.mw-90 { - max-width:90%; -} -/* purgecss end ignore */ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js b/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js deleted file mode 100644 index a3e1801f8..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/assets/output/js/app.js +++ /dev/null @@ -1,17 +0,0 @@ -!function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,"a",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p="",n(n.s=1)}([function(t,e,n){!function(e,n){var r=function(t,e,n){"use strict";var r,i;if(function(){var e,n={lazyClass:"lazyload",loadedClass:"lazyloaded",loadingClass:"lazyloading",preloadClass:"lazypreload",errorClass:"lazyerror",autosizesClass:"lazyautosizes",fastLoadedClass:"ls-is-cached",iframeLoadMode:0,srcAttr:"data-src",srcsetAttr:"data-srcset",sizesAttr:"data-sizes",minSize:40,customMedia:{},init:!0,expFactor:1.5,hFac:.8,loadMode:2,loadHidden:!0,ricTimeout:0,throttleDelay:125};for(e in i=t.lazySizesConfig||t.lazysizesConfig||{},n)e in i||(i[e]=n[e])}(),!e||!e.getElementsByClassName)return{init:function(){},cfg:i,noSupport:!0};var o=e.documentElement,s=t.HTMLPictureElement,a=t.addEventListener.bind(t),u=t.setTimeout,c=t.requestAnimationFrame||u,l=t.requestIdleCallback,h=/^picture$/i,f=["load","error","lazyincluded","_lazyloaded"],d={},p=Array.prototype.forEach,g=function(t,e){return d[e]||(d[e]=new RegExp("(\\s|^)"+e+"(\\s|$)")),d[e].test(t.getAttribute("class")||"")&&d[e]},m=function(t,e){g(t,e)||t.setAttribute("class",(t.getAttribute("class")||"").trim()+" "+e)},y=function(t,e){var n;(n=g(t,e))&&t.setAttribute("class",(t.getAttribute("class")||"").replace(n," "))},v=function(t,e,n){var r=n?"addEventListener":"removeEventListener";n&&v(t,e),f.forEach((function(n){t[r](n,e)}))},b=function(t,n,i,o,s){var a=e.createEvent("Event");return i||(i={}),i.instance=r,a.initEvent(n,!o,!s),a.detail=i,t.dispatchEvent(a),a},w=function(e,n){var r;!s&&(r=t.picturefill||i.pf)?(n&&n.src&&!e.getAttribute("srcset")&&e.setAttribute("srcset",n.src),r({reevaluate:!0,elements:[e]})):n&&n.src&&(e.src=n.src)},_=function(t,e){return(getComputedStyle(t,null)||{})[e]},x=function(t,e,n){for(n=n||t.offsetWidth;n0)&&"visible"!=_(i,"overflow")&&(r=i.getBoundingClientRect(),s=z>r.left&&Fr.top-1&&H500&&o.clientWidth>500?500:370:i.expand,r._defEx=d,p=d*i.expFactor,g=i.hFac,U=null,W2&&D>2&&!e.hidden?(W=p,X=0):W=D>1&&X>1&&Q<6?d:0),f!==c&&($=innerWidth+c*g,M=innerHeight+c,l=-1*c,f=c),s=m[n].getBoundingClientRect(),(B=s.bottom)>=l&&(H=s.top)<=M&&(z=s.right)>=l*g&&(F=s.left)<=$&&(B||z||F||H)&&(i.loadHidden||Z(m[n]))&&(R&&Q<3&&!h&&(D<3||X<4)||Y(m[n],c))){if(at(m[n]),u=!0,Q>9)break}else!u&&R&&!a&&Q<4&&X<4&&D>2&&(L[0]||i.preloadAfterLoad)&&(L[0]||!h&&(B||z||F||H||"auto"!=m[n].getAttribute(i.sizesAttr)))&&(a=L[0]||m[n]);a&&!u&&at(a)}},et=function(t){var e,r=0,o=i.throttleDelay,s=i.ricTimeout,a=function(){e=!1,r=n.now(),t()},c=l&&s>49?function(){l(a,{timeout:s}),s!==i.ricTimeout&&(s=i.ricTimeout)}:C((function(){u(a)}),!0);return function(t){var i;(t=!0===t)&&(s=33),e||(e=!0,(i=o-(n.now()-r))<0&&(i=0),t||i<9?c():u(c,i))}}(tt),nt=function(t){var e=t.target;e._lazyCache?delete e._lazyCache:(G(t),m(e,i.loadedClass),y(e,i.loadingClass),v(e,it),b(e,"lazyloaded"))},rt=C(nt),it=function(t){rt({target:t.target})},ot=function(t){var e,n=t.getAttribute(i.srcsetAttr);(e=i.customMedia[t.getAttribute("data-media")||t.getAttribute("media")])&&t.setAttribute("media",e),n&&t.setAttribute("srcset",n)},st=C((function(t,e,n,r,o){var s,a,c,l,f,d;(f=b(t,"lazybeforeunveil",e)).defaultPrevented||(r&&(n?m(t,i.autosizesClass):t.setAttribute("sizes",r)),a=t.getAttribute(i.srcsetAttr),s=t.getAttribute(i.srcAttr),o&&(l=(c=t.parentNode)&&h.test(c.nodeName||"")),d=e.firesLoad||"src"in t&&(a||s||l),f={target:t},m(t,i.loadingClass),d&&(clearTimeout(P),P=u(G,2500),v(t,it,!0)),l&&p.call(c.getElementsByTagName("source"),ot),a?t.setAttribute("srcset",a):s&&!l&&(K.test(t.nodeName)?function(t,e){var n=t.getAttribute("data-load-mode")||i.iframeLoadMode;0==n?t.contentWindow.location.replace(e):1==n&&(t.src=e)}(t,s):t.src=s),o&&(a||l)&&w(t,{src:s})),t._lazyRace&&delete t._lazyRace,y(t,i.lazyClass),S((function(){var e=t.complete&&t.naturalWidth>1;d&&!e||(e&&m(t,i.fastLoadedClass),nt(f),t._lazyCache=!0,u((function(){"_lazyCache"in t&&delete t._lazyCache}),9)),"lazy"==t.loading&&Q--}),!0)})),at=function(t){if(!t._lazyRace){var e,n=V.test(t.nodeName),r=n&&(t.getAttribute(i.sizesAttr)||t.getAttribute("sizes")),o="auto"==r;(!o&&R||!n||!t.getAttribute("src")&&!t.srcset||t.complete||g(t,i.errorClass)||!g(t,i.lazyClass))&&(e=b(t,"lazyunveilread").detail,o&&T.updateElem(t,!0,t.offsetWidth),t._lazyRace=!0,Q++,st(t,e,o,r,n))}},ut=A((function(){i.loadMode=3,et()})),ct=function(){3==i.loadMode&&(i.loadMode=2),ut()},lt=function(){R||(n.now()-q<999?u(lt,999):(R=!0,i.loadMode=3,et(),a("scroll",ct,!0)))},{_:function(){q=n.now(),r.elements=e.getElementsByClassName(i.lazyClass),L=e.getElementsByClassName(i.lazyClass+" "+i.preloadClass),a("scroll",et,!0),a("resize",et,!0),a("pageshow",(function(t){if(t.persisted){var n=e.querySelectorAll("."+i.loadingClass);n.length&&n.forEach&&c((function(){n.forEach((function(t){t.complete&&at(t)}))}))}})),t.MutationObserver?new MutationObserver(et).observe(o,{childList:!0,subtree:!0,attributes:!0}):(o.addEventListener("DOMNodeInserted",et,!0),o.addEventListener("DOMAttrModified",et,!0),setInterval(et,999)),a("hashchange",et,!0),["focus","mouseover","click","load","transitionend","animationend"].forEach((function(t){e.addEventListener(t,et,!0)})),/d$|^c/.test(e.readyState)?lt():(a("load",lt),e.addEventListener("DOMContentLoaded",et),u(lt,2e4)),r.elements.length?(tt(),S._lsFlush()):et()},checkElems:et,unveil:at,_aLSL:ct}),T=(N=C((function(t,e,n,r){var i,o,s;if(t._lazysizesWidth=r,r+="px",t.setAttribute("sizes",r),h.test(e.nodeName||""))for(o=0,s=(i=e.getElementsByTagName("source")).length;o0&&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"===r(t.container)?t.container:document.body}},{key:"listenClick",value:function(t){var e=this;this.listener=(0,a.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 o.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 l("action",t)}},{key:"defaultTarget",value:function(t){var e=l("target",t);if(e)return document.querySelector(e)}},{key:"defaultText",value:function(t){return l("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}(s.default);function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}t.exports=c},function(t,e,n){"use strict";var r,i="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},o=function(){function t(t,e){for(var n=0;n0&&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,a.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,a.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=u},function(t,e){t.exports=function(t){var e;if("SELECT"===t.nodeName)t.focus(),e=t.value;else if("INPUT"===t.nodeName||"TEXTAREA"===t.nodeName){var n=t.hasAttribute("readonly");n||t.setAttribute("readonly",""),t.select(),t.setSelectionRange(0,t.value.length),n||t.removeAttribute("readonly"),e=t.value}else{t.hasAttribute("contenteditable")&&t.focus();var r=window.getSelection(),i=document.createRange();i.selectNodeContents(t),r.removeAllRanges(),r.addRange(i),e=r.toString()}return e}},function(t,e){function n(){}n.prototype={on:function(t,e,n){var r=this.e||(this.e={});return(r[t]||(r[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var r=this;function i(){r.off(t,i),e.apply(n,arguments)}return i._=e,this.on(t,i,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),r=0,i=n.length;r";var r=document.createElement("div");r.appendChild(document.createTextNode(e)),n=n||"";var i=document.createElement("div");i.appendChild(document.createTextNode(n));var s=document.createElement("div");return s.appendChild(document.createTextNode(t)),s.innerHTML.replace(RegExp(o(r.innerHTML),"g"),e).replace(RegExp(o(i.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:o("JSONPScriptError"," - -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html deleted file mode 100644 index af615ee7c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/head-additions.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html deleted file mode 100644 index 9e7240433..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hero.html +++ /dev/null @@ -1,18 +0,0 @@ -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-icons.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-icons.html deleted file mode 100644 index a7733acdc..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-icons.html +++ /dev/null @@ -1,34 +0,0 @@ -
    - {{ if .Params.features }} -
    - {{ $features := .Params.features }} - {{ range $i, $e := $features }} - {{ $features_count := $e | len }} - -
    - -
    -
    - {{ with .image_path }} - icon depicting {{ $e.heading }} - {{ end }} -
    - -
    -

    - {{ .heading }} -

    -
    -

    {{.tagline}}

    -
    - {{ .copy }} -
    -
    -
    -
    - -
    - {{ end }} -
    - {{ end }} -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-single.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-single.html deleted file mode 100644 index f36b3d674..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/features-single.html +++ /dev/null @@ -1,32 +0,0 @@ -{{ if .Params.sections }} - {{ range .Params.sections }} - {{ $.Scratch.Add "i" 1 }}{{ $i := $.Scratch.Get "i" }} - -
    -
    - -
    -
    - image depicting an example of {{ .heading }} -
    -
    - - - -
    -
    - - {{ end }} -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/installation.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/installation.html deleted file mode 100644 index cf2989ddb..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/installation.html +++ /dev/null @@ -1,38 +0,0 @@ -
    - - -
    -
    -

    Install in seconds, build in milliseconds.

    -

    Hugo works on macOS, Windows, Linux, FreeBSD, and others.

    -

    Host on any server or your favorite CDN.

    -
    -
    - - -
    -
    - Hugo Gopher -
    -

    macOS

    -
    - $ brew install hugo
    -
    -

    Windows

    -
    - $ choco install hugo-extended
    -
    -

    Linux

    -
    - $ sudo snap install hugo
    -
    - - - -
    - - - - - -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/open-source-involvement.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/open-source-involvement.html deleted file mode 100644 index 865a5161e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/open-source-involvement.html +++ /dev/null @@ -1,59 +0,0 @@ -
    -
    - Github Logo -
    -
    - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/showcase.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/showcase.html deleted file mode 100644 index c73cfa5e9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/showcase.html +++ /dev/null @@ -1,44 +0,0 @@ -
    -

    Showcase

    - {{/* NOTE: transitions for this section are in themes/gohugoioTheme/src/css/_carousel.css */}} -
    -
    -
    - {{ $showcasePages := where .Site.RegularPages "Section" "showcase" }} - {{ if $showcasePages }} - {{ template "home_showcase_item" (index $showcasePages 0) }} - {{ range $p := first 10 ($showcasePages | after 1 | shuffle) }} - {{template "home_showcase_item" $p }} - {{end}} - {{end}} -
    -
    -
    - {{/* END */}} -
    {{/* using Flex to make the button show up on the right side */}} - See All -
    -
    - - -{{ define "home_showcase_item" }} - {{ $img := (.Resources.ByType "image").GetMatch "*featured*" }} - {{ with $img }} - {{ $big := .Fill "1024x512 top" }} - {{ $small := $big.Resize "512x" }} - - {{with $.Title}} -
    -
    - {{.}} → -
    -
    - {{end}} -
    - {{ end }} -{{ end }} \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html deleted file mode 100644 index 751ee8894..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html +++ /dev/null @@ -1,60 +0,0 @@ -{{ $classes_box := "ba b--dark-gray bg-light-gray br3 flex flex-column flex-wrap items-center justify-center ph3 pv4 mb4 w-100 w-30-l " }} -{{ $gtag := .gtag | default "unknown" }} -{{ $classes_box := "ba b--dark-gray bg-light-gray br3 flex flex-column flex-wrap items-center justify-center ph3 pv4 mb4 w-100 w-30-l " }} -{{ $gtag := .gtag | default "unknown" }} -{{ $isFooter := (eq $gtag "footer") }} -{{ $utmSource := cond $isFooter "hugofooter" "hugohome" }} -{{ with .cx.Site.Data.sponsors }} - -
    -
    -

    Hugo Sponsors

    -
    - {{ range .banners }} -
    - {{ $query_params := .query_params | default "" }} - {{ $url := .link }} - {{ if not .no_query_params }} - {{ $url = printf "%s?%s%s" .link $query_params (querify "utm_source" (.utm_source | default $utmSource ) "utm_medium" (.utm_medium | default "banner") "utm_campaign" (.utm_campaign | default "hugosponsor") "utm_content" (.utm_content | default "gohugoio")) | safeURL }} - {{ end }} - {{ $logo := resources.Get .logo }} - {{ $gtagID := printf "Sponsor %s %s" .name $gtag | title }} - {{ $classes := "" }} - {{ if .show_on_hover }} - {{ $classes = printf "%s show-on-hover" $classes }} - {{ end }} - {{ if $isFooter }} - {{ $classes = printf "%s f3" $classes }} - {{ else }} - {{ $classes = printf "%s f1" $classes }} - {{ end }} - - {{ with $logo }} - {{ .Content | safeHTML }} - {{ else }} - {{ .name }} - {{ end }} - -
    - {{ end }} -
    -
    -
    -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/tweets.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/tweets.html deleted file mode 100644 index 32eb46ba8..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/tweets.html +++ /dev/null @@ -1,27 +0,0 @@ -
    - - {{ $interior_classes := $.Site.Params.flex_box_interior_classes }} - -

    See what others are saying about Hugo…

    - -
    - - {{ if $.Site.Data.homepagetweets }} - {{ range first 4 (sort $.Site.Data.homepagetweets.tweet "date" "desc" ) }} - - {{ end }} - {{ end }} -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/after-body-start.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/after-body-start.html deleted file mode 100644 index 426abd018..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/after-body-start.html +++ /dev/null @@ -1 +0,0 @@ -{{/* Deliberately empty */}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/before-body-end.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/before-body-end.html deleted file mode 100644 index dab653508..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/hooks/before-body-end.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ if .Page.Store.Get "hasMermaid" }} - -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/icon-link.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/icon-link.html deleted file mode 100644 index dec9ae48b..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/icon-link.html +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/maintenance-pages-table.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/maintenance-pages-table.html deleted file mode 100644 index f1fb6d059..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/maintenance-pages-table.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - {{ range . }} - - - - - - {{ end }} - -
    LastModLinkGitHub
    {{ .Lastmod.Format "2006-01-02" }} - {{ .Title }} - - - {{ with .GitInfo }}{{ .Subject }}{{ else }}Source{{ end }} - -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/math.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/math.html deleted file mode 100644 index defcaa055..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/math.html +++ /dev/null @@ -1,9 +0,0 @@ - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs-mobile.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs-mobile.html deleted file mode 100644 index a8fc27e21..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs-mobile.html +++ /dev/null @@ -1,11 +0,0 @@ -{{ $currentPage := . }} -{{ $menu := .Site.Menus.docs.ByWeight }} -
      - {{ range $menu }}{{ $post := printf "%s" .Post }} -
    • - - {{ .Name }} - -
    • - {{end}} -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html deleted file mode 100644 index 61aa11dde..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-docs.html +++ /dev/null @@ -1,23 +0,0 @@ -{{ $currentPage := . }} - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html deleted file mode 100644 index 6ad98923e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links-global-mobile.html +++ /dev/null @@ -1,11 +0,0 @@ -{{ $currentPage := . }} -{{ $menu := .Site.Menus.global }} - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html deleted file mode 100644 index af3790b16..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-links.html +++ /dev/null @@ -1,37 +0,0 @@ -{{ $currentPage := . }} -{{ $.Scratch.Add "listlinkClasses" "f6 link primary-color-dark hover-white db brand-font ma0 w-100 pv3 ph4" }} - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html deleted file mode 100644 index b04866e52..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-mobile.html +++ /dev/null @@ -1,12 +0,0 @@ - -
    - {{ partial "nav-links-docs-mobile.html" . }} -
    - -
    - - - -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-top.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-top.html deleted file mode 100644 index f64111409..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/nav-top.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ $currentPage := . }} -
    - - - {{ partial "nav-links.html" .}} -
    - {{ partial "nav-button-open.html" .}} -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/get-featured-image.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/get-featured-image.html deleted file mode 100644 index 79b315a44..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/get-featured-image.html +++ /dev/null @@ -1,24 +0,0 @@ -{{ $images := $.Resources.ByType "image" }} -{{ $featured := $images.GetMatch "*feature*" }} -{{ if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end }} -{{ if not $featured }} - {{ $featured = resources.Get "/opengraph/gohugoio-card-base-1.png" }} - {{ $size := 80 }} - {{ $title := $.LinkTitle }} - {{ if gt (len $title) 20 }} - {{ $size = 70 }} - {{ end }} - - {{ $text := $title }} - {{ $textOptions := dict - "color" "#FFF" - "size" $size - "lineSpacing" 10 - "x" 65 "y" 80 - "font" (resources.Get "/opengraph/mulish-black.ttf") - }} - - {{ $featured = $featured | images.Filter (images.Text $text $textOptions) }} -{{ end }} - -{{ return $featured }} \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/opengraph.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/opengraph.html deleted file mode 100644 index 6d195ede6..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/opengraph.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - - -{{- with $.Params.images -}} -{{- range first 6 . }}{{ end -}} -{{- else -}} -{{- $featured := partial "opengraph/get-featured-image.html" . }} -{{- with $featured -}} - -{{- else -}} -{{- with $.Site.Params.images }}{{ end -}} -{{- end -}} -{{- end -}} - -{{- if .IsPage }} -{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} - -{{ with .PublishDate }}{{ end }} -{{ with .Lastmod }}{{ end }} -{{- end -}} - -{{- with .Params.audio }}{{ end }} -{{- with .Params.locale }}{{ end }} -{{- with .Site.Params.title }}{{ end }} -{{- with .Params.videos }}{{- range . }} - -{{ end }}{{ end }} - -{{- /* If it is part of a series, link to related articles */}} -{{- $permalink := .Permalink }} -{{- $siteSeries := .Site.Taxonomies.series }} -{{ with .Params.series }}{{- range $name := . }} - {{- $series := index $siteSeries ($name | urlize) }} - {{- range $page := first 6 $series.Pages }} - {{- if ne $page.Permalink $permalink }}{{ end }} - {{- end }} -{{ end }}{{ end }} - -{{- /* Facebook Page Admin ID for Domain Insights */}} -{{- with site.Params.social.facebook_admin }}{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/twitter_cards.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/twitter_cards.html deleted file mode 100644 index 456f87b1c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/opengraph/twitter_cards.html +++ /dev/null @@ -1,22 +0,0 @@ -{{- with $.Params.images -}} - - -{{ else -}} -{{- $featured := partial "opengraph/get-featured-image.html" . }} -{{- with $featured -}} - - -{{- else -}} -{{- with $.Site.Params.images -}} - - -{{ else -}} - -{{- end -}} -{{- end -}} -{{- end }} - - -{{ with site.Params.social.twitter -}} - -{{ end -}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-edit.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-edit.html deleted file mode 100644 index f41e5b791..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-edit.html +++ /dev/null @@ -1,3 +0,0 @@ -Improve this page diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-header.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-header.html deleted file mode 100644 index dcc96242f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/page-header.html +++ /dev/null @@ -1,20 +0,0 @@ -{{ $currentPage := . }} -{{ $currentURL := .RelPermalink }} -
    -
      - -
    • - - News: - -
    • - {{ range $name, $taxonomy := .Site.Taxonomies.categories }} - {{ $link := $name | printf "%s%s" "/categories/" | printf "%s/" }} -
    • - - {{ $name | humanize }} - -
    • - {{ end }} -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/pagelayout.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/pagelayout.html deleted file mode 100644 index e6b644b2f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/pagelayout.html +++ /dev/null @@ -1,36 +0,0 @@ -{{ $section_to_display := .section_to_display }} -
    - -
    -
    - {{ partial "nav-links-docs.html" .context }} -
    - -
    - - -
    - {{ $interior_classes := .context.Site.Params.flex_box_interior_classes }} -
    - {{ $pages := $section_to_display }} - {{ if in (slice "functions" "methods") $.context.Type }} - {{ $pages = $.context.Pages }} - {{ end }} - {{ range $pages }} - {{ partial "boxes-section-summaries.html" (dict "context" . "classes" $interior_classes "fullcontent" true) }} - {{ end }} -
    -
    - -
    - -
    - -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section-with-title.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section-with-title.html deleted file mode 100644 index 71a14c0ef..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section-with-title.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ if or .PrevInSection .NextInSection }} -{{/* this div holds these a tags as a unit for flex-box display */}} - -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section.html deleted file mode 100644 index af9f4aac1..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links-in-section.html +++ /dev/null @@ -1,16 +0,0 @@ -{{ if or .PrevInSection .NextInSection }} -{{/* this div holds these a tags as a unit for flex-box display */}} - -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links.html deleted file mode 100644 index cd43dd840..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/previous-next-links.html +++ /dev/null @@ -1,25 +0,0 @@ -{{if .Prev }} - - {{ partial "svg/ic_chevron_left_black_24px.svg" (dict "size" "30px") }} {{ .Prev.Title }} - -{{end}} - -{{if .Next }} - - {{ .Next.Title }} {{ partial "svg/ic_chevron_right_black_24px.svg" (dict "size" "30px") }} - -{{end}} - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/related.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/related.html deleted file mode 100644 index 53995a486..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/related.html +++ /dev/null @@ -1,22 +0,0 @@ -{{- $heading := "See also" }} -{{- $related := site.RegularPages.Related . | first 5 }} - -{{- if in (slice "functions" "methods") .Type }} - {{- $related = slice }} - {{- range .Params.action.related }} - {{- with site.GetPage (lower .) }} - {{- $related = $related | append . }} - {{- else }} - {{- errorf "The 'related' partial was unable to get page %s" . }} - {{- end }} - {{- end }} -{{- end }} - -{{- with $related }} -

    {{ $heading }}

    - -{{- end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/right-sidebar.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/right-sidebar.html deleted file mode 100644 index ecdbeb33f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/right-sidebar.html +++ /dev/null @@ -1,29 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html deleted file mode 100644 index 09c013361..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-footer.html +++ /dev/null @@ -1,48 +0,0 @@ -
    -
    -
    - - - -
    - Hugo Logo -
    - - - - - - {{ with getenv "REPOSITORY_URL" -}} -

    Netlify badge

    - {{- end }} - -
    - -
      - {{ partial "home-page-sections/sponsors.html" (dict "cx" . "gtag" "footer" "classes_section" "pb3 w-100" "classes_copy" "f7 w-90-ns") }} -
    - -
    - -
      -

    The Hugo logos are copyright © Steve Francia 2013–{{ now.Year }}.

    -

    The Hugo Gopher is based on an original work by Renée French.

    -
    - - - -
    - {{- partial "nav-mobile.html" . -}} -
    - -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html deleted file mode 100644 index 54472ba16..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-manifest.html +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html deleted file mode 100644 index f387d66f3..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-nav.html +++ /dev/null @@ -1,38 +0,0 @@ -{{ $currentPage := . }} - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html deleted file mode 100644 index 7dec9de18..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-scripts.html +++ /dev/null @@ -1,17 +0,0 @@ - -{{ $scripts := resources.Get "output/js/app.js" }} -{{ $isDev := eq hugo.Environment "development" }} -{{ if not $isDev }} -{{ $scripts = $scripts | fingerprint }} -{{ end }} -{{ with $scripts }} - {{ if $isDev }} - - {{ else }} - - {{ end }} - {{ $.Scratch.Set "scripts" . }} -{{end}} - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html deleted file mode 100644 index 8c97ac454..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/site-search.html +++ /dev/null @@ -1,6 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html deleted file mode 100644 index 243b22ccb..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/social-follow.html +++ /dev/null @@ -1,15 +0,0 @@ -gohugoio -Star diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html deleted file mode 100644 index 0f140cf70..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/summary.html +++ /dev/null @@ -1,13 +0,0 @@ -
    -
    - {{ humanize .Section }} -

    - - {{ .Title }} - -

    - -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/Twitter_Logo_Blue.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/Twitter_Logo_Blue.svg deleted file mode 100644 index da9438414..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/Twitter_Logo_Blue.svg +++ /dev/null @@ -1 +0,0 @@ -Twitter_Logo_Blue diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/apple.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/apple.svg deleted file mode 100644 index 6f3c20f76..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/apple.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clipboard.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clipboard.svg deleted file mode 100644 index e1b170359..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clipboard.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clippy.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clippy.svg deleted file mode 100644 index e1b170359..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/clippy.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/cloud.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/cloud.svg deleted file mode 100644 index 2ea15de87..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/cloud.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/content.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/content.svg deleted file mode 100644 index bc696b90b..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/content.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/design.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/design.svg deleted file mode 100644 index 9f9d71769..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/design.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/exclamation.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/exclamation.svg deleted file mode 100644 index e69de29bb..000000000 diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/facebook.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/facebook.svg deleted file mode 100644 index 6e6af44a2..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/focus.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/focus.svg deleted file mode 100644 index ed2c929b4..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/focus.svg +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/freebsd.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/freebsd.svg deleted file mode 100644 index 842be09a1..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/freebsd.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/functions.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/functions.svg deleted file mode 100644 index 717a35686..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/functions.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-corner.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-corner.svg deleted file mode 100644 index 29bc57ad3..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-corner.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-squared.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-squared.svg deleted file mode 100644 index dabc741e0..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/github-squared.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gitter.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gitter.svg deleted file mode 100644 index 9c2de7da2..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gitter.svg +++ /dev/null @@ -1,57 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gme.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gme.svg deleted file mode 100644 index 9ab114aa3..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gme.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/godoc-icon.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/godoc-icon.html deleted file mode 100644 index 1a6b82159..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/godoc-icon.html +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-2.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-2.svg deleted file mode 100644 index 961221f18..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-2.svg +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-front.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-front.svg deleted file mode 100644 index 0f8fbe0d9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-front.svg +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-homepage.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-homepage.svg deleted file mode 100644 index 36d9f1c41..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-homepage.svg +++ /dev/null @@ -1,58 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-side_path.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-side_path.svg deleted file mode 100644 index 05cfb84d1..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-side_path.svg +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-small.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-small.svg deleted file mode 100644 index bc1e5010c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher-small.svg +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher.svg deleted file mode 100644 index 7f6ec255c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/gopher.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo-h-only.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo-h-only.svg deleted file mode 100644 index ea72a6f51..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo-h-only.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo.svg deleted file mode 100644 index 58d025596..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/hugo.svg +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_down.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_down.svg deleted file mode 100644 index 3ba28c3f5..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_down.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_up.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_up.svg deleted file mode 100644 index 8ec2eb766..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_arrow_drop_up.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_left_black_24px.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_left_black_24px.svg deleted file mode 100644 index da37757cf..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_left_black_24px.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_right_black_24px.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_right_black_24px.svg deleted file mode 100644 index 47689a91e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/ic_chevron_right_black_24px.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/idea.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/idea.svg deleted file mode 100644 index 5c2ccc2f4..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/idea.svg +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/instagram.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/instagram.svg deleted file mode 100644 index ae915113b..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/javascript.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/javascript.svg deleted file mode 100644 index b0e2f5b0d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/javascript.svg +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/json.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/json.svg deleted file mode 100644 index d2ba6d0fc..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/json.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-ext.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-ext.svg deleted file mode 100644 index ba9400b7f..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-ext.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-permalink.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-permalink.svg deleted file mode 100644 index f5de52d02..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/link-permalink.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/md.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/md.svg deleted file mode 100644 index f1a794565..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/md.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/mdsolid.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/mdsolid.svg deleted file mode 100644 index d0d9ae938..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/mdsolid.svg +++ /dev/null @@ -1,7 +0,0 @@ - - - - - Svg Vector Icons : http://www.onlinewebfonts.com/icon - - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/newlogo.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/newlogo.svg deleted file mode 100644 index 83b706383..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/newlogo.svg +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/sass.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/sass.svg deleted file mode 100644 index da3d9cfcf..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/sass.svg +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/search.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/search.svg deleted file mode 100644 index 181789b54..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/search.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/twitter.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/twitter.svg deleted file mode 100644 index 247ca9062..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/website.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/website.svg deleted file mode 100644 index 2bdcf5f94..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/website.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/windows.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/windows.svg deleted file mode 100644 index fe3bf0296..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/windows.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/yaml.svg b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/yaml.svg deleted file mode 100644 index 59eeb71c2..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/svg/yaml.svg +++ /dev/null @@ -1 +0,0 @@ -icon \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/tags.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/tags.html deleted file mode 100644 index 59e3e51a0..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/tags.html +++ /dev/null @@ -1,37 +0,0 @@ -{{ $currentPageUrl := .RelPermalink }} -{{ if and .Params.tags .Site.Taxonomies.tags }} - {{ $name := index .Params.tags 0 }} - {{ $name := $name | urlize }} - {{ $tags := index .Site.Taxonomies.tags $name }} - -
    - -
    -{{end}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/utilities/get-remote-data.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/utilities/get-remote-data.html deleted file mode 100644 index 78b2ba06e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/utilities/get-remote-data.html +++ /dev/null @@ -1,23 +0,0 @@ -{{/* -Parses the serialized data from the given URL and returns a map or an array. - -Supports CSV, JSON, TOML, YAML, and XML. - -@param {string} . The URL from which to retrieve the serialized data. -@returns {any} - -@example {{ partial "get-remote-data.html" "https://example.org/foo.json" }} -*/}} - -{{ $url := . }} -{{ $data := dict }} -{{ with try (resources.GetRemote $url) }} - {{ with .Err }} - {{ errorf "%s" . }} - {{ else with .Value }} - {{ $data = .Content | transform.Unmarshal }} - {{ else }} - {{ errorf "Unable to get remote resource %q" $url }} - {{ end }} -{{ end }} -{{ return $data }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/robots.txt b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/robots.txt deleted file mode 100644 index 25b9e9a0d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/robots.txt +++ /dev/null @@ -1,8 +0,0 @@ -User-agent: * -# robotstxt.org - if ENV production variable is false robots will be disallowed. -{{ if eq (getenv "HUGO_ENV") "production" }} - Disallow: admin/ - Disallow: -{{ else }} - Disallow: / -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/articlelist.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/articlelist.html deleted file mode 100644 index 2755b1e2d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/articlelist.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - {{ range $ind, $art := $.Site.Data.articles.article }} - - - - - - {{ end }} - -
    Title - Author - Date -
    {{$art.title | markdownify }}{{ $art.author | markdownify }}{{ $art.date }}
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/chroma-lexers.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/chroma-lexers.html deleted file mode 100644 index 2e10c3dee..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/chroma-lexers.html +++ /dev/null @@ -1,6 +0,0 @@ -
    - {{ range .Site.Data.docs.chroma.lexers }} -
    {{ .Name }}
    -
    {{ with .Aliases }}{{ delimit . ", " }}{{ end }}
    - {{ end }} -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html deleted file mode 100644 index d1131132d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code-toggle.html +++ /dev/null @@ -1,101 +0,0 @@ -{{- /* - Renders syntax-highlighted configuration data in JSON, TOML, and YAML formats. - - @param {string} [config] The section of site.Data.docs.config to render. - @param {bool} [copy=false] If true, display a copy to clipboard button. - @param {string} [file] The file name to display above the rendered code. - @param {bool} [fm=false] If true, render the code as front matter. - @param {bool} [skipHeader=false] If false, omit top level key(s) when rendering a section of site.Data.docs.config. - - @returns {template.HTML} -*/}} - -{{- /* Initialize. */}} -{{- $config := "" }} -{{- $dataKey := "" }} -{{- $copy := false }} -{{- $file := "" }} -{{- $fm := false }} -{{- $skipHeader := false }} - -{{- /* Get parameters. */}} -{{- $config = .Get "config" }} -{{- $dataKey = .Get "dataKey" }} -{{- $file = .Get "file" }} -{{- if in (slice "false" false 0) (.Get "copy") }} - {{- $copy = false }} -{{- else if in (slice "true" true 1) (.Get "copy") }} - {{- $copy = true }} -{{- end }} -{{- if in (slice "false" false 0) (.Get "fm") }} - {{- $fm = false }} -{{- else if in (slice "true" true 1) (.Get "fm") }} - {{- $fm = true }} -{{- end }} -{{- if in (slice "false" false 0) (.Get "skipHeader") }} - {{- $skipHeader = false }} -{{- else if in (slice "true" true 1) (.Get "skipHeader") }} - {{- $skipHeader = true }} -{{- end }} - -{{- /* Define constants. */}} -{{- $delimiters := dict "toml" "+++" "yaml" "---" }} -{{- $langs := slice "yaml" "toml" "json" }} -{{- $placeHolder := "#-hugo-placeholder-#" }} - -{{- /* Render. */}} -{{- $code := "" }} -{{- if $config }} - {{- $file = $file | default "hugo" }} - {{- $sections := (split $config ".") }} - {{- $configSection := index $.Site.Data.docs.config $sections }} - {{- $code = dict $sections $configSection }} - {{- if $skipHeader }} - {{- $code = $configSection }} - {{- end }} -{{- else if $dataKey }} - {{- $file = $file | default $dataKey }} - {{- $sections := (split $dataKey ".") }} - {{- $code = index $.Site.Data.docs $sections }} -{{- else }} - {{- $code = $.Inner }} -{{- end }} -
    -
    - {{- with $file }} -
    - {{ . }}{{ if not $fm }}.{{ end }} -
    - {{- end }} - {{- range $langs }} - -   - {{- end }} -
    -
    - {{- range $langs }} -
    - {{- $hCode := $code | transform.Remarshal . }} - {{- if and $fm (in (slice "toml" "yaml") .) }} - {{- $hCode = printf "%s\n%s\n%s" $placeHolder $hCode $placeHolder }} - {{- end }} - {{- $hCode = $hCode | replaceRE `\n+` "\n" }} - {{ highlight $hCode . "" | replaceRE $placeHolder (index $delimiters .) | safeHTML }} -
    - {{- if $copy }} - - {{- /* Functionality located within filesaver.js The copy here is located in the css with .copy class so it can be replaced with JS on success */}} - {{- end }} - {{- end }} -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code.html deleted file mode 100644 index dd21551cb..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/code.html +++ /dev/null @@ -1,35 +0,0 @@ -{{- /* -Renders syntax highlighted code. - -@param {bool} [copy=false] If true, display a copy to clipboard button. -@param {string} [file] The file name to display above the rendered code. -@param {string} [lang] The code language of the inner content. - -@returns {template.HTML} -*/}} - -{{- /* Get parameters. */}} -{{- $copy := false }} -{{- if in (slice "false" false 0) (.Get "copy") }} - {{- $copy = false }} -{{- else if in (slice "true" true 1) (.Get "copy")}} - {{- $copy = true }} -{{- end }} -{{- $file := or (.Get "file") " " }} -{{- $lang := or (.Get "lang") (path.Ext $file | strings.TrimPrefix ".") "text" }} - -{{- /* Use the go-html-template Chroma lexer for HTML. */}} -{{- if eq $lang "html" }} - {{- $lang = "go-html-template" }} -{{- end }} - -{{- /* Render. */}} -
    -
    {{ $file | htmlUnescape }}
    - {{- if $copy }} - - {{- end }} -
    - {{- highlight (trim .Inner "\n\r") $lang }} -
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable-filtered.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable-filtered.html deleted file mode 100644 index ff3f299bd..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable-filtered.html +++ /dev/null @@ -1,39 +0,0 @@ -{{ $package := (index .Params 0) }} -{{ $listname := (index .Params 1) }} -{{ $filter := split (index .Params 2) " " }} -{{ $filter1 := index $filter 0 }} -{{ $filter2 := index $filter 1 }} -{{ $filter3 := index $filter 2 }} - -{{ $list := (index (index .Site.Data.docs $package) $listname) }} -{{ $fields := after 3 .Params }} -{{ $list := where $list $filter1 $filter2 $filter3 }} - - - - {{ range $fields }} - - {{ end }} - - {{ range $list }} - - {{ range $k, $v := . }} - {{ $.Scratch.Set $k $v }} - {{ end }} - {{ range $k, $v := $fields }} - - {{ end }} - - {{ end }} -
    {{ . }}
    - {{ $tdContent := $.Scratch.Get . }} - {{ if eq $k 3 }} - {{ printf "%v" $tdContent | - strings.ReplaceRE `\[` "
    1. " | - strings.ReplaceRE `\s` "
    2. " | - strings.ReplaceRE `\]` "
    " | - safeHTML }} - {{ else }} - {{ $tdContent }} - {{ end}} -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable.html deleted file mode 100644 index 12054f89d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/datatable.html +++ /dev/null @@ -1,33 +0,0 @@ -{{ $package := (index .Params 0) }} -{{ $listname := (index .Params 1) }} -{{ $list := (index (index .Site.Data.docs $package) $listname) }} -{{ $fields := after 2 .Params }} - - - - - {{ range $fields }} - {{ $s := . }} - {{ if eq $s "_key" }} - {{ $s = "Type" }} - {{ end }} - - {{ end }} - - {{ range $k1, $v1 := $list }} - - {{ range $k2, $v2 := . }} - {{ $.Scratch.Set $k2 $v2 }} - {{ end }} - {{ range $fields }} - {{ $s := "" }} - {{ if eq . "_key" }} - {{ $s = $k1 }} - {{ else }} - {{ $s = $.Scratch.Get . }} - {{ end }} - - {{ end }} - - {{ end }} -
    {{ $s }}
    {{ $s }}
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/deprecated-in.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/deprecated-in.html deleted file mode 100644 index 7219d7f54..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/deprecated-in.html +++ /dev/null @@ -1,14 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} - -{{ with .Get 0 }} - {{ $version := printf "v%v" (strings.TrimLeft "vV" .) }} - {{ $href := printf "https://github.com/gohugoio/hugo/releases/tag/%s" $version }} - -{{ else }} - {{ errorf "The %q shortcode requires a single positional parameter indicating version. See %s" .Name .Position }} -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/eturl.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/eturl.html deleted file mode 100644 index c0cf30aec..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/eturl.html +++ /dev/null @@ -1,36 +0,0 @@ -{{- /* -Renders an absolute URL to the source code for an embedded template. - -Accepts either positional or named parameters, and depends on the -embedded_templates.toml file in the data directory. - -@param {string} filename The embedded template's file name, excluding extension. - -@returns template.HTML - -@example {{% et robots.txt %}} -@example {{% et filename=robots.txt %}} -*/}} - -{{- /* Get parameters. */}} -{{- $filename := "" -}} -{{- if .IsNamedParams -}} - {{- $filename = .Get "filename" -}} -{{- else -}} - {{- $filename = .Get 0 -}} -{{- end -}} - -{{- /* Render. */}} -{{- with $filename -}} - {{- with site.Data.embedded_template_urls -}} - {{- with index . $filename -}} - {{- urls.JoinPath site.Data.embedded_template_urls.base_url . -}} - {{- else -}} - {{- errorf "The %q shortcode was unable to find a URL for the embedded template named %q. Check the name. See %s" $.Name $filename $.Position -}} - {{- end -}} - {{- else -}} - {{- errorf "The %q shortcode was unable to find the embedded_template_urls data file in the site's data directory. See %s" $.Name $.Position -}} - {{- end -}} -{{- else -}} - {{- errorf "The %q shortcodes requires a named or positional parameter, the file name of the embedded template, excluding its extension. See %s" .Name .Position -}} -{{- end -}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/funcsig.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/funcsig.html deleted file mode 100644 index 4e96504ab..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/funcsig.html +++ /dev/null @@ -1,4 +0,0 @@ -

    Syntax

    -
    -  {{- .Inner -}}
    -
    diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/gomodules-info.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/gomodules-info.html deleted file mode 100644 index d544cd471..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/gomodules-info.html +++ /dev/null @@ -1,18 +0,0 @@ -{{ $text := ` -Most of the commands for **Hugo Modules** require a newer version (>= 1.18) of Go installed (see https://golang.org/dl/) and the relevant VCS client (e.g. Git, see https://git-scm.com/downloads/ ). -If you have an "older" site running on Netlify, you may have to set GO_VERSION to 1.19 or newer in your Environment settings. - -For more information about Go Modules, see: - -* https://go.dev/wiki/Modules -* https://blog.golang.org/using-go-modules -` }} - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/hl.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/hl.html deleted file mode 100644 index 1a5b4e1ec..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/hl.html +++ /dev/null @@ -1,11 +0,0 @@ -{{- /* -Returns syntax-highlighted code from the given text. - -This is useful as a terse way to highlight inline code snippets. Calling the -highlight shortcode for inline snippets is verbose. -*/}} - -{{- $code := .Inner | strings.TrimSpace }} -{{- $lang := or (.Get 0) "go" }} -{{- $opts := dict "hl_inline" true "noClasses" true }} -{{- transform.Highlight $code $lang $opts }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/img.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/img.html deleted file mode 100644 index 7c2d805d2..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/img.html +++ /dev/null @@ -1,391 +0,0 @@ -{{- /* -Renders the given image using the given filter, if any. - -@param {string} src The path to the image which must be a remote, page, or global resource. -@param {string} [filter] The filter to apply to the image (case-insensitive). -@param {string} [filterArgs] A comma-delimited list of arguments to pass to the filter. -@param {bool} [example=false] If true, renders a before/after example. -@param {int} [exampleWidth=384] Image width, in pixels, when rendering a before/after example. - -@returns {template.HTML} - -@examples - - {{< img src="zion-national-park.jpg" >}} - - {{< img src="zion-national-park.jpg" alt="Zion National Park" >}} - - {{< img - src="zion-national-park.jpg" - alt="Zion National Park" - filter="grayscale" - >}} - - {{< img - src="zion-national-park.jpg" - alt="Zion National Park" - filter="process" - filterArgs="resize 400x webp" - >}} - - {{< img - src="zion-national-park.jpg" - alt="Zion National Park" - filter="colorize" - filterArgs="180,50,20" - >}} - - {{< img - src="zion-national-park.jpg" - alt="Zion National Park" - filter="grayscale" - example=true - >}} - - {{< img - src="zion-national-park.jpg" - alt="Zion National Park" - filter="grayscale" - example=true - exampleWidth=400 - >}} - - When using the text filter, provide the arguments in this order: - - 0. The text - 1. The horizontal offset, in pixels, relative to the left of the image (default 20) - 2. The vertical offset, in pixels, relative to the top of the image (default 20) - 3. The font size in pixels (default 64) - 4. The line height (default 1.2) - 5. The font color (default #ffffff) - - {{< img - src="images/examples/zion-national-park.jpg" - alt="Zion National Park" - filter="Text" - filterArgs="Zion National Park,25,250,56" - example=true - >}} - - When using the padding filter, provide all arguments in this order: - - 0. Padding top - 1. Padding right - 2. Padding bottom - 3. Padding right - 4. Canvas color - - {{< img - src="images/examples/zion-national-park.jpg" - alt="Zion National Park" - filter="Padding" - filterArgs="20,50,20,50,#0705" - example=true - >}} - -*/}} - -{{- /* Initialize. */}} -{{- $alt := "" }} -{{- $src := "" }} -{{- $filter := "" }} -{{- $filterArgs := slice }} -{{- $example := false }} -{{- $exampleWidth := 384 }} - -{{- /* Default values to use with the text filter. */}} -{{ $textFilterOpts := dict - "xOffset" 20 - "yOffset" 20 - "fontSize" 64 - "lineHeight" 1.2 - "fontColor" "#ffffff" - "fontPath" "https://github.com/google/fonts/raw/main/ofl/lato/Lato-Regular.ttf" -}} - -{{- /* Get and validate parameters. */}} -{{- with .Get "alt" }} - {{- $alt = .}} -{{- end }} - -{{- with .Get "src" }} - {{- $src = . }} -{{- else }} - {{- errorf "The %q shortcode requires a file parameter. See %s" .Name .Position }} -{{- end }} - -{{- with .Get "filter" }} - {{- $filter = . | lower }} -{{- end }} - -{{- $validFilters := slice - "autoorient" "brightness" "colorbalance" "colorize" "contrast" "dither" - "gamma" "gaussianblur" "grayscale" "hue" "invert" "mask" "none" "opacity" - "overlay" "padding" "pixelate" "process" "saturation" "sepia" "sigmoid" "text" - "unsharpmask" -}} - -{{- with $filter }} - {{- if not (in $validFilters .) }} - {{- errorf "The filter passed to the %q shortcode is invalid. The filter must be one of %s. See %s" $.Name (delimit $validFilters ", " ", or ") $.Position }} - {{- end }} -{{- end }} - -{{- with .Get "filterArgs" }} - {{- $filterArgs = split . "," }} - {{- $filterArgs = apply $filterArgs "trim" "." " " }} -{{- end }} - -{{- if in (slice "false" false 0) (.Get "example") }} - {{- $example = false }} -{{- else if in (slice "true" true 1) (.Get "example")}} - {{- $example = true }} -{{- end }} - -{{- with .Get "exampleWidth" }} - {{- $exampleWidth = . | int }} -{{- end }} - -{{- /* Get image. */}} -{{- $ctx := dict "page" .Page "src" $src "name" .Name "position" .Position }} -{{- $i := partial "inline/get-resource.html" $ctx }} - -{{- /* Resize if rendering before/after examples. */}} -{{- if $example }} - {{- $i = $i.Resize (printf "%dx" $exampleWidth) }} -{{- end }} - -{{- /* Create filter. */}} -{{- $f := "" }} -{{- $ctx := dict "filter" $filter "args" $filterArgs "name" .Name "position" .Position }} -{{- if eq $filter "autoorient" }} - {{- $ctx = merge $ctx (dict "argsRequired" 0) }} - {{- template "validate-arg-count" $ctx }} - {{- $f = images.AutoOrient }} -{{- else if eq $filter "brightness" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Brightness (index $filterArgs 0) }} -{{- else if eq $filter "colorbalance" }} - {{- $ctx = merge $ctx (dict "argsRequired" 3) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "percentage red" "argValue" (index $filterArgs 0) "min" -100 "max" 500) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "percentage green" "argValue" (index $filterArgs 1) "min" -100 "max" 500) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "percentage blue" "argValue" (index $filterArgs 2) "min" -100 "max" 500) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.ColorBalance (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} -{{- else if eq $filter "colorize" }} - {{- $ctx = merge $ctx (dict "argsRequired" 3) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "hue" "argValue" (index $filterArgs 0) "min" 0 "max" 360) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "saturation" "argValue" (index $filterArgs 1) "min" 0 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 2) "min" 0 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Colorize (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} -{{- else if eq $filter "contrast" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Contrast (index $filterArgs 0) }} -{{- else if eq $filter "dither" }} - {{- $f = images.Dither }} -{{- else if eq $filter "gamma" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "gamma" "argValue" (index $filterArgs 0) "min" 0 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Gamma (index $filterArgs 0) }} -{{- else if eq $filter "gaussianblur" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "sigma" "argValue" (index $filterArgs 0) "min" 0 "max" 1000) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.GaussianBlur (index $filterArgs 0) }} -{{- else if eq $filter "grayscale" }} - {{- $ctx = merge $ctx (dict "argsRequired" 0) }} - {{- template "validate-arg-count" $ctx }} - {{- $f = images.Grayscale }} -{{- else if eq $filter "hue" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "shift" "argValue" (index $filterArgs 0) "min" -180 "max" 180) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Hue (index $filterArgs 0) }} -{{- else if eq $filter "invert" }} - {{- $ctx = merge $ctx (dict "argsRequired" 0) }} - {{- template "validate-arg-count" $ctx }} - {{- $f = images.Invert }} -{{- else if eq $filter "mask" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $ctx := dict "src" (index $filterArgs 0) "name" .Name "position" .Position }} - {{- $maskImage := partial "inline/get-resource.html" $ctx }} - {{- $f = images.Mask $maskImage }} -{{- else if eq $filter "opacity" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "opacity" "argValue" (index $filterArgs 0) "min" 0 "max" 1) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Opacity (index $filterArgs 0) }} -{{- else if eq $filter "overlay" }} - {{- $ctx = merge $ctx (dict "argsRequired" 3) }} - {{- template "validate-arg-count" $ctx }} - {{- $ctx := dict "src" (index $filterArgs 0) "name" .Name "position" .Position }} - {{- $overlayImg := partial "inline/get-resource.html" $ctx }} - {{- $f = images.Overlay $overlayImg (index $filterArgs 1 | float ) (index $filterArgs 2 | float) }} -{{- else if eq $filter "padding" }} - {{- $ctx = merge $ctx (dict "argsRequired" 5) }} - {{- template "validate-arg-count" $ctx }} - {{- $f = images.Padding - (index $filterArgs 0 | int) - (index $filterArgs 1 | int) - (index $filterArgs 2 | int) - (index $filterArgs 3 | int) - (index $filterArgs 4) - }} -{{- else if eq $filter "pixelate" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "size" "argValue" (index $filterArgs 0) "min" 0 "max" 1000) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Pixelate (index $filterArgs 0) }} -{{- else if eq $filter "process" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $f = images.Process (index $filterArgs 0) }} -{{- else if eq $filter "saturation" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 500) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Saturation (index $filterArgs 0) }} -{{- else if eq $filter "sepia" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" 0 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Sepia (index $filterArgs 0) }} -{{- else if eq $filter "sigmoid" }} - {{- $ctx = merge $ctx (dict "argsRequired" 2) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "midpoint" "argValue" (index $filterArgs 0) "min" 0 "max" 1) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "factor" "argValue" (index $filterArgs 1) "min" -10 "max" 10) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.Sigmoid (index $filterArgs 0) (index $filterArgs 1) }} -{{- else if eq $filter "text" }} - {{- $ctx = merge $ctx (dict "argsRequired" 1) }} - {{- template "validate-arg-count" $ctx }} - {{- $ctx := dict "src" $textFilterOpts.fontPath "name" .Name "position" .Position }} - {{- $font := or (partial "inline/get-resource.html" $ctx) }} - {{- $fontSize := or (index $filterArgs 3 | int) $textFilterOpts.fontSize }} - {{- $lineHeight := math.Max (or (index $filterArgs 4 | float) $textFilterOpts.lineHeight) 1 }} - {{- $opts := dict - "x" (or (index $filterArgs 1 | int) $textFilterOpts.xOffset) - "y" (or (index $filterArgs 2 | int) $textFilterOpts.yOffset) - "size" $fontSize - "linespacing" (mul (sub $lineHeight 1) $fontSize) - "color" (or (index $filterArgs 5) $textFilterOpts.fontColor) - "font" $font - }} - {{- $f = images.Text (index $filterArgs 0) $opts }} -{{- else if eq $filter "unsharpmask" }} - {{- $ctx = merge $ctx (dict "argsRequired" 3) }} - {{- template "validate-arg-count" $ctx }} - {{- $filterArgs = apply $filterArgs "float" "." }} - {{- $ctx = merge $ctx (dict "argName" "sigma" "argValue" (index $filterArgs 0) "min" 0 "max" 500) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "amount" "argValue" (index $filterArgs 1) "min" 0 "max" 100) }} - {{- template "validate-arg-value" $ctx }} - {{- $ctx = merge $ctx (dict "argName" "threshold" "argValue" (index $filterArgs 2) "min" 0 "max" 1) }} - {{- template "validate-arg-value" $ctx }} - {{- $f = images.UnsharpMask (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} -{{- end }} - -{{- /* Apply filter. */}} -{{- $fi := $i }} -{{- with $f }} - {{- $fi = $i.Filter . }} -{{- end }} - -{{- /* Render. */}} -{{- $class := "di va b--black-20" }} -{{- if eq $filter "mask" }} - {{- $class = "di va" }} -{{- end }} -{{- if $example }} -

    Original

    - {{ $alt }} -

    Processed

    - {{ $alt }} -{{- else -}} - {{ $alt }} -{{- end }} - -{{- define "validate-arg-count" }} - {{- $msg := "When using the %q filter, the %q shortcode requires an args parameter with %d %s. See %s" }} - {{- if lt (len .args) .argsRequired }} - {{- $text := "values" }} - {{- if eq 1 .argsRequired }} - {{- $text = "value" }} - {{- end }} - {{- errorf $msg .filter .name .argsRequired $text .position }} - {{- end }} -{{- end }} - -{{- define "validate-arg-value" }} - {{- $msg := "The %q argument passed to the %q shortcode is invalid. Expected a value in the range [%v,%v], but received %v. See %s" }} - {{- if or (lt .argValue .min) (gt .argValue .max) }} - {{- errorf $msg .argName .name .min .max .argValue .position }} - {{- end }} -{{- end }} - -{{- define "partials/inline/get-resource.html" }} - {{- $r := "" }} - {{- $u := urls.Parse .src }} - {{- $msg := "The %q shortcode was unable to resolve %s. See %s" }} - {{- if $u.IsAbs }} - {{- with try (resources.GetRemote $u.String) }} - {{- with .Err }} - {{- errorf "%s" . }} - {{- else with .Value }} - {{- /* This is a remote resource. */}} - {{- $r = . }} - {{- else }} - {{- errorf $msg $.name $u.String $.position }} - {{- end }} - {{- end }} - {{- else }} - {{- with .page.Resources.Get (strings.TrimPrefix "./" $u.Path) }} - {{- /* This is a page resource. */}} - {{- $r = . }} - {{- else }} - {{- with resources.Get $u.Path }} - {{- /* This is a global resource. */}} - {{- $r = . }} - {{- else }} - {{- errorf $msg $.name $u.Path $.position }} - {{- end }} - {{- end }} - {{- end }} - {{- return $r}} -{{- end -}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/imgproc.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/imgproc.html deleted file mode 100644 index c09133ba8..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/imgproc.html +++ /dev/null @@ -1,37 +0,0 @@ -{{- /* -Renders the given image using the given process specification. - -@param {string} (positional parameter 0) The path to the image, relative to the current page. The image must be a page resource. -@param {string}} (positional parameter 1) The image processing specification. - -@returns template.HTML - -@example {{< imgproc "sunset.jpg" "resize 300x" />}} -*/}} - -{{- with $.Get 0 }} - {{- with $i := $.Page.Resources.Get . }} - {{- with $spec := $.Get 1 }} - {{- with $i.Process . }} -
    - -
    - - {{- with $.Inner }} - {{ . }} - {{- else }} - {{ $spec }} - {{- end }} - -
    -
    - {{- end }} - {{- else }} - {{- errorf "The %q shortcode requires a positional parameter (1) containing the image processing specification. See %s" $.Name $.Position }} - {{- end }} - {{- else }} - {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} - {{- end }} -{{- else }} - {{- errorf "The %q shortcode requires a positional parameter (0) indicating the image path, relative to the current page. See %s" $.Name $.Position }} -{{- end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/include.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/include.html deleted file mode 100644 index 9456e197e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/include.html +++ /dev/null @@ -1,20 +0,0 @@ -{{- /* -Renders the page using the RenderShortcode method on the Page object. - -You must call this shortcode using the {{% %}} notation. - -@param {string} (positional parameter 0) The path to the page, relative to the content directory. -@returns template.HTML - -@example {{% include "functions/_common/glob-patterns" %}} -*/}} - -{{- with .Get 0 }} - {{- with $.Page.GetPage . }} - {{- .RenderShortcodes }} - {{- else }} - {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} - {{- end }} -{{- else }} - {{- errorf "The %q shortcode requires a positional parameter indicating the path of the file to include. See %s" .Name .Position }} -{{- end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/list-pages-in-section.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/list-pages-in-section.html deleted file mode 100644 index 73e7f85a9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/list-pages-in-section.html +++ /dev/null @@ -1,96 +0,0 @@ -{{- /* -Renders a description list of the pages in the given section. - -Render a subset of the pages in the section by specifying a predefined filter, -and whether to include those pages. - -Filters are defined in the data directory, in the file named page_filters. Each -filter is an array of paths to a file, relative to the root of the content -directory. Hugo will throw an error if the specified filter does not exist, or -if any of the pages in the filter do not exist. - -The definition term elements (dt) have an id attribute derived from the title -of the page. This is probably unique, because pages of the same title in the -same section is unlikely. - -If you render a complete list on a page, then call the shortcode again to -render a subset, you will generate duplicate element ids. In this case, set -omitElementIDs to true for the subset. - -@param {string} path The path to the section. -@param {string} [filter=""] The name of filter list. -@param {string} [filterType=""] The type of filter, either include or exclude. -@param {string} [omitElementIDs=false] Whether to omit dt element ids. -@param {string} [titlePrefix=""] The string to prepend to the link title. - -@returns template.HTML - -@example {{< list-pages-in-section path=/methods/resources >}} -@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude >}} -@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude titlePrefix=foo >}} -@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude titlePrefix=foo omitElementIDs=true >}} -*/}} - -{{- /* Initialize. */}} -{{- $filter := or "" (.Get "filter" | lower)}} -{{- $filterType := or (.Get "filterType") "none" | lower }} -{{- $filteredPages := slice }} -{{- $titlePrefix := or (.Get "titlePrefix") "" }} -{{- $omitElementIDs := false }} - -{{- /* Get boolean parameters. */}} -{{- if in (slice "false" false 0) (.Get "omitElementIDs") }} - {{- $omitElementIDs = false }} -{{- else if in (slice "true" true 1) (.Get "omitElementIDs")}} - {{- $omitElementIDs = true }} -{{- end }} - -{{- /* Build slice of filtered pages. */}} -{{- with $filter }} - {{- with index site.Data.page_filters . }} - {{- range . }} - {{- with site.GetPage . }} - {{- $filteredPages = $filteredPages | append . }} - {{- else }} - {{- errorf "The %q shortcode was unable to find %q as specified in the page_filters data file. See %s" $.Name . $.Position }} - {{- end }} - {{- end }} - {{- else }} - {{- errorf "The %q shortcode was unable to find the %q filter in the page_filters data file. See %s" $.Name . $.Position }} - {{- end }} -{{- end }} - -{{- /* Render */}} -{{- with $sectionPath := .Get "path" }} - {{- with site.GetPage . }} - {{- with .RegularPages }} -
    - {{- range $page := .ByTitle }} - {{- if or - (and (eq $filterType "include") (in $filteredPages $page)) - (and (eq $filterType "exclude") (not (in $filteredPages $page))) - (eq $filterType "none") - }} - {{- $linkTitle := .LinkTitle }} - {{- with $titlePrefix }} - {{- $linkTitle = printf "%s%s" . $linkTitle }} - {{- end }} - {{- $idAttribute := "" }} - {{- if not $omitElementIDs }} - {{- $id := path.Join .File.Dir .File.ContentBaseName | replaceRE `[\|/]` ":" | lower }} - {{- $idAttribute = printf " id=%q" $id }} - {{- end }} -
    {{ $linkTitle }}
    -
    {{- $page.Description | $page.RenderString }}
    - {{- end }} - {{- end }} -
    - {{- else }} - {{- warnf "The %q shortcode found no pages in the %q section. See %s" $.Name $sectionPath $.Position }} - {{- end }} - {{- else }} - {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name $sectionPath $.Position }} - {{- end }} -{{- else }} - {{- errorf "The %q shortcode requires a 'path' parameter indicating the path to the section. See %s" $.Name $.Position }} -{{- end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/module-mounts-note.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/module-mounts-note.html deleted file mode 100644 index c1c67991e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/module-mounts-note.html +++ /dev/null @@ -1 +0,0 @@ -Also see [Module Mounts Config](/hugo-modules/configuration/#module-configuration-mounts) for an alternative way to configure this directory. diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/new-in.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/new-in.html deleted file mode 100644 index 606d2219c..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/new-in.html +++ /dev/null @@ -1,34 +0,0 @@ -{{- /* -Renders a "new in" button indicating the version in which a feature was added. - -When comparing the current version to the specified version, the "new in" -button will be hidden if any of the following conditions is true: - -- The major version difference exceeds the majorVersionDiffThreshold -- The minor version difference exceeds the minorVersionDiffThreshold - -@param {string} version The semantic version string, with or without a leading v. -@returns {template.HTML} - -@example {{< new-in 0.100.0 >}} -*/}} - -{{- /* Set defaults. */}} -{{- $majorVersionDiffThreshold := 0 }} -{{- $minorVersionDiffThreshold := 30 }} -{{- $displayExpirationWarning := true }} - -{{- /* Render. */}} -{{- with $version := .Get 0 | strings.TrimPrefix "v" }} - {{- $majorVersionDiff := sub (index (split hugo.Version ".") 0 | int) (index (split $version ".") 0 | int) }} - {{- $minorVersionDiff := sub (index (split hugo.Version ".") 1 | int) (index (split $version ".") 1 | int) }} - {{- if or (gt $majorVersionDiff $majorVersionDiffThreshold) (gt $minorVersionDiff $minorVersionDiffThreshold) }} - {{- if $displayExpirationWarning }} - {{- warnf "This call to the %q shortcode should be removed: %s. The button is now hidden because the specified version (%s) is older than the display threshold." $.Name $.Position $version }} - {{- end }} - {{- else }} - New in v{{ $version }} - {{- end }} -{{- else }} - {{- errorf "The %q shortcode requires a positional parameter (version). See %s" .Name .Position }} -{{- end -}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html deleted file mode 100644 index 99818114e..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/note.html +++ /dev/null @@ -1,7 +0,0 @@ -{{ $_hugo_config := `{ "version": 1 }` }} - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/quick-reference.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/quick-reference.html deleted file mode 100644 index fc53c93bd..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/quick-reference.html +++ /dev/null @@ -1,39 +0,0 @@ -{{/* -Renders the child sections of the given top-level section, listing each child's immediate descendants. - -@param {string} section The top-level section to render. -@returns template.HTML - -@example {{% quick-reference section="functions" %}} -*/}} - -{{ $section := "" }} -{{ with .Get "section" }} - {{ $section = . }} -{{ else }} - {{ errorf "The %q shortcodes requires a 'section' parameter. See %s" .Name .Position }} -{{ end }} - -{{/* Do not change the markdown indentation, and do not remove blank lines. */}} -{{ with site.GetPage $section }} - {{ range .Sections }} - -## {{ .LinkTitle }} -{{ .RawContent }} - - {{ range .Pages }} - {{ $aliases := "" }} - {{ if eq .Section "functions" }} - {{ with .Params.action.aliases }} - {{ $aliases = delimit . " or " }} - {{ end }} - {{ end }} - -[{{ .LinkTitle }}]({{ .RelPermalink }}) {{ with $aliases }}({{ . }}){{ end }} -: {{ .Description }} - - {{ end }} - {{ end }} -{{ else }} - {{ errorf "The %q shortcodes was unable to find the %q section. See %s" .Name $section .Position }} -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/readfile.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/readfile.html deleted file mode 100644 index de8083443..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/readfile.html +++ /dev/null @@ -1,29 +0,0 @@ -{{- $highlight := or (.Get "highlight") "" }} - -{{- $markdown := false }} -{{- if in (slice "false" false 0) (.Get "markdown") }} - {{- $markdown = false }} -{{- else if in (slice "true" true 1) (.Get "markdown") }} - {{- $markdown = true }} -{{- end }} - -{{- with .Get "file" }} - {{- if os.FileExists . }} - {{- with os.ReadFile . }} - {{- $content := trim . "\n\r" }} - {{- if $markdown }} - {{- $content | markdownify }} - {{- else if $highlight }} - {{- highlight $content $highlight }} - {{- else }} - {{- $content | safeHTML }} - {{- end }} - {{- else }} - {{- errorf "The %q shortcode was unable to read %q. See %s" $.Name . $.Position }} - {{- end }} - {{- else }} - {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} - {{- end }} -{{- else }} - {{- errorf "The %q shortcode requires a 'file' parameter. See %s" $.Name $.Position }} -{{- end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/todo.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/todo.html deleted file mode 100644 index 50a099267..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/shortcodes/todo.html +++ /dev/null @@ -1 +0,0 @@ -{{ if .Inner }}{{ end }} \ No newline at end of file diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/list.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/list.html deleted file mode 100644 index bff52ad8d..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/list.html +++ /dev/null @@ -1,46 +0,0 @@ -{{ define "main" }} -
    -
    -

    - {{ .Title }} -

    -
    - {{ .Content }} -
    -
    -
    - {{ range (.Paginate (.Pages | shuffle ) 20).Pages }} - {{template "showcase_items" .}} - {{ end }} -
    - -
    The Showcase articles are copyrighted by their respective content authors. Any open source license will be attached.
    -
    -{{ end }} - - -{{define "showcase_items"}} - -
    - {{ $img := (.Resources.ByType "image").GetMatch "*featured*" }} - {{ with $img }} - {{ $big := .Fill "1024x512 top" }} - {{ $small := $big.Resize "512x" }} - - {{end}} -
    {{/* the margin aligns to the bottom */}} -

    - {{- .Title -}} -

    -
    -
    -
    - - -{{end}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/single.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/single.html deleted file mode 100644 index 5ae1e07a7..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/showcase/single.html +++ /dev/null @@ -1,106 +0,0 @@ -{{ define "title" }} -Showcase: {{ .Title }} -{{ end }} - -{{ define "main" }} -
    - - -
    - -
    - {{template "sc-details" .}} -
    - -
    - {{template "sc-main-column" .}} -
    - - - -
    - -
    {{/* bottom row */}} - Last Update: {{ .Lastmod.Format "January 2, 2006" }}
    - {{ partial "page-edit.html" . }} -
    -
    The Showcase articles are copyright the content authors. Any open source license will be attached.
    -
    -{{ end }} - - - -{{define "sc-main-column"}} - {{ $img := (.Resources.ByType "image").GetMatch "*featured*" }} - {{ with $img }} - {{ $big := .Fill "1024x512 top" }} - {{ $small := $big.Resize "512x" }} - {{ $img.Title }} - {{ end }} - - -{{end}} - -{{define "sc-details"}} - -{{end}} - -{{define "sc-navigation"}} - {{$section := where .Site.RegularPages "Section" .Section}} - {{$number_of_entries := $section | len}} - -{{end}} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/template-func/page.html b/_vendor/github.com/gohugoio/gohugoioTheme/layouts/template-func/page.html deleted file mode 100644 index 8b5f0da85..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/layouts/template-func/page.html +++ /dev/null @@ -1,55 +0,0 @@ -{{ $pkg := .Params.package}} -{{ $funcs := index site.Data.docs.tpl.funcs $pkg }} - -{{ range $k, $v := $funcs }} - {{ if $v.Description }} - {{ $func := printf "%s.%s" $pkg $k }} - {{ $id := $func | anchorize | safeURL }} -

    - - - - - - - {{ $func }} -

    - {{ with $v.Description }} -

    - {{ . | $.RenderString | safeHTML }} -

    - {{ end }} -

    - Syntax -

    -
    - {{ $pkg }}.{{ $k }} - {{ with $v.Args }} - - {{ delimit $v.Args ", "}} - - {{ end }} - -
    - {{ if $v.Examples }} -

    - Examples -

    - {{ end }} - {{ range $v.Examples }} - {{ $input := index . 0 }} - {{ $result := index . 1 }} - {{ $example := printf "%s ---> %s" $input $result }} - - {{ highlight $example "go-html-template" "" }} - {{ end }} - {{ with $v.Aliases }} -

    - Aliases -

    -

    - {{ delimit . ", "}} -

    - {{ end }} - {{ end }} -{{ end }} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/package.json b/_vendor/github.com/gohugoio/gohugoioTheme/package.json deleted file mode 100644 index 14d128910..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "gohugo-default-styles", - "version": "1.1.0", - "description": "Default Theme for Hugo Sites", - "main": "index.js", - "repository": "", - "author": "budparr", - "license": "MIT", - "scripts": { - "build": "NODE_ENV=production webpack", - "build-dev": "NODE_ENV=development webpack --progress --watch", - "start": "npm run build-dev" - }, - "devDependencies": { - "clean-webpack-plugin": "^1.0.0", - "clipboard": "^2.0.4", - "css-loader": "^1.0.1", - "docsearch.js": "^2.6.1", - "file-loader": "^2.0.0", - "glob-all": "^3.1.0", - "lazysizes": "^5.3.2", - "mini-css-extract-plugin": "^0.4.4", - "postcss": "^7.0.5", - "postcss-cssnext": "^3.1.0", - "postcss-import": "^12.0.1", - "postcss-loader": "^3.0.0", - "purgecss-webpack-plugin": "^1.3.1", - "scrolldir": "^1.4.0", - "tachyons": "^4.7.0", - "typeface-muli": "0.0.54", - "webpack": "^4.25.1", - "webpack-command": "^0.4.2" - } -} diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-144x144.png b/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-144x144.png deleted file mode 100644 index 975cb33ba6e7db41553b8326a2d16a28086074a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7612 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

    >-F1{V}O?B0~T2lkfOiT{N z7NWqOKYk4tSP|OqRAUv$OxdvZ5|!YwjqowU+vsB(7a4N;9g;*1A})Ek5>JiyufzaY zrU47Z1vbRLoGnYmkKXi^0TN!;$@p#_YV-*(j_4n8G4e;yY+ub1Keg?2zi!@+Y2t-&&4`yr$cclS2FejOznx96CobgZ zODa-hBI2iLD!#b9oW7Y?FwnMW*<+iR~CPG#b32@@d%In4YKeN1BNQ~|B zQ6r1yTSXWa{B1$erqJ%;^2eikn|n02tZ zi^BGL4l;Ud#}YJ9nPEeg+fpk_%l3q~9Y0ato!c@tBxmwu*cL$U@93C$a}}7e-MRDUCRfyn>UnA zOZ>|)h@8PweGO}j3VAzaUn>1gU{KW9I9`>cdTdKZo1usxe4FlK<#2k|iPz2F0k(7K zA#U#Z({K%Eb&Y3XeAsFr1C`ib4XL}O@7hO~HI zyj??GCC@yY`Dr~aHFl(Nqu`Ag09hwC#`Mo@^f!LZ(%XAaqq;L3IIx+lQN;rf6?bT; zw5(H@`{58Qleb9o&CC~lqJLG6Yg-OWZ4*(33i19NS;*W93R;mTKxfzv2PWJpXXHec zMPUErOp_NWkmJ7-^!~}N6xW~|qdtopvyPH}T5syWg;uJJiFC0{(cj3xHD%wRl?BX{ z`J^G;{LWK0XK-JWt+aaR+4bsvHmc`?Z9;icMPQ8G^kk#G7z@CuGVLR0?C1BU!8aItkDHd>O&XFUt$XF6v(glDh}zZ$`^))7sM?J|f3ym~~#j zg8~4 zZ^AETc1uweoMf(@Mam4&w~~CkaR!Hh?~9L>y+V0s0wqVlo%2-{idox7{h&W5XiGZL zU01Zt(AGdBr>5BxXi8ZkWv=!twTIR-m*nUX6RO*`h^X5`Dy@}N1Cw~w#43cq-P&yG zUdblQH_Um4<+sjp+RujLeOs2_%W&Jpf&dNI+m{Re#-$eytyBuLWfT_};cuzB^!Q6= zm(t{i&LabZ-IPYIQd66EC*yJJQWu|!sag5M7w2ZBj?W_wWd=Y6*o$W_&M(D)M1h18 zVG@SlT9rNm&A*mD+ML)^;V_6Bd)a5GB==>J*zkxU$tpmt#gg&p+m0r#ix@aXNH?*9 zV8@14btAr5Nf(V7%K-m~FHD-;V|c-#X4q>4o@b+IZ(S(ije4>EV9h`P1uZ-DXT=xFZY2^k;CM*yEon zjj`L*0lx#VgTg1z{|gZ+L}y-<)wWJu2_Uk|mbq|00*yJ%R_6yIJTABrV=F`)0EKg| zjjhaqAI9#lSRdTH$xTnJm>2NjQOKK_s`7Q?6i*#ShI?+$X8b+d=QOPGSiR`ua>OO$ z2;r#r%`{ziTIF~;B76QuJZLljsNp2sSsO-fm;H^J==WA<=14Ggjy`p1yrYyp2IwvS z9{BFpf_ylhIqpJ@X;zc9%he%P#}}fU?4~g@pZ!3-&lCxwb*BGBtyu@alao2g5o0vk zzall8b6hnad=Cn06$G_~@aNcUi~ zbdcZ z!Wx!3l{Q~8zWTMJKX2`hJNOa?p=6cXbT ze8TrcNMBG~LQqsfSdd3hNJ3E1&7}x)ZSMck!P)h#y^Zhxdk2v4Lvc(8BR~CDo_ZGE z%x>la`RCt<-nF3H#)>5icFc1A-Bhq0X diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-256x256.png b/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-256x256.png deleted file mode 100644 index ed88a2224d39db7b366a4afb14aff9519600a803..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15088 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 CUdzh> diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-48x48.png b/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-48x48.png deleted file mode 100644 index ca275dad66aaf58055d708a509507d4a39fe1668..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2038 zcmZ`)do+~m8vhuVVP;%%O<056Gfl>=kzF~+l#Hf1qT@QQ2{UP2W?UMglI6tNZ6eAg zg~rG&+9$TrJ>?_>v2`GblL$fIV2Cpd zLE*4)-V1_=w;)J~k@NehLl7i9;N(EHg$e%uYj+J8Es{|^Leb5VQAsxE>*ONZ#n^BP zvl#yhsMyVHL$cuX{@$==6sub}I)f0}C>_};!tRBlYU% zRf1Kh8`gx5>O!#74u;grM0SYoNJ=y=J{SLM|7UV+Sn^DH=d1>mowZ&ix_(dekGNJP zDxDbGjNa)DF2Tm41eIuA`~%5?_xXXqYm!}X)$RzmA2>eeyGAJjj^R>}cR;2Iy-|8+ zx~I}nKgkze0`KXCwMw#nA_=7P)ym;8?I-dhfZOgBihhN>+yk)(kO?!`tPQiW0r7-B zk+@0a|9mEt0;_89OZ5w(m^ZR1D@OOW4^@F*YKBlrA9U_~Csy#q;sxrN8w4&OR)Is+ z8zyBh5wR1BY3m0{fc0Y#(+g7g;5r{9z62+p09bqGDM;=IjE-KRm=WpZWy8WP7(D(2 zjIIFKK5hWdW?)$b;(Ec>HmDc86pr0I_~Zr{1Ez3&a(F`mqL2NJB*a8g#P&NU0 ze}c|=unoZ1@8H`OSla~G`awuLptpnI=iu%r*xm;2O~AYo#PqzDy7rw|`4SN~zc=TF zaLkxo>L=X&ZFs;pE5NFzPxR8eJvYCYJOnniAawxbje^W!;8+jtjC?WSzLK~+r+ItR ztQ=TYZ4yms!U#iJqg72?QREPSmmF)5CxAt7NA zG0{CSGcnSqn>G*<#QUq-R|SfJ{4I>bldl+YLhf=7Htx?|p55Q|%08nLPtvWl{zr6GaA!4RcDvt{4cu|L`jbZ{E3o)fRe_@krzA*$zo zeGT06uEc>A3g5W$h+t7I*Zu8V_guBbBSw|R{4kfsmJZ$WykZgR_`sXt!}%zr&f1st z&rpq?zF~(?l;~`f!aq&Z$hwZ%XlJP*V;0{g?N)ZFWcC^5tU*(g8qRZa7BS@8+8hBp z9{^<$9ykh}Ehs9<|MvpU&Ob!WJ#W>uYNjXG{8Dp^t(RI#=011)CD$)GBUPNU%<$@T zCVp-XVdU|YCMe|%o*&}5*Ty02Th~%=5AoiPS$Pk3DRjs4zp=0N(aiAN@(F%rxb-mF z0du50IAnz4Ne^s74>tw*x=mDv7&}Qlyuw@Re3Lz&n(88};^6S%_T%N*mZJRg?Vs!oobW(zTl)ukl~Y5F*% zC~P+5Z0~xrbLho*bH7Bfpnpo2{D8ciphO_wwTcs=E=|vR(F0QSM3h}~-QD2#GXLSO zc}{c%;#AsV)CJxoE4J}!{q2V-1jFOa_X4Kp1dCHBgB*{ize`GGFFh>xNVvY&^Duos zSe>_mf@fiy+}C5`@=*{-*~dqY#Ru)v2l#qlV) zw7Imk8A*>vKd5_sYqq!p$z7M!x)@_kql6tdC`N*hLR7|s`$f9iI&D*>PdK)9Wh6U) z=Ljh$loQJ_)Y<<|ve8o_(uHI(qa?4WfN0!x){W|tw!DvAoZ*Ah57##=FXnRf_FvRD z(kM{(qotOYI+m7@N_p4YT^sYGi_G$QxcrQyn~xzBDt!@3fS{h;`Tf!IW`XbrrOmW; zVfuPA{fItcez1d#@dwO}@Ww{Q2dH=pBHoNhz#HNZ5b=0MXc7EV{F@+z?t9Lk_5TGz z1T_m-aE48FVN$#!v5YXf|G8j4ER)6X!=7U>eIO_*XKEFVyx^>-*G2B`AqglDLJNiS zLCI;!o%mHAA&0f$n6&yLw5q7s?$@t6+Irel+r+y$_Ibx~(7ci?bJg1PH~0vMWb0_d Iv-V2(FTs_lQ~&?~ diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-72x72.png b/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-72x72.png deleted file mode 100644 index 966891f25a46b32fcb86711cea76c87221557664..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3467 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 diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-96x96.png b/_vendor/github.com/gohugoio/gohugoioTheme/static/android-chrome-96x96.png deleted file mode 100644 index feb1d3ebf65c233d53a029d00106ba47a91bc8c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4747 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 - - - - - - #2d89ef - - - diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/static/dist/app.bundle.js b/_vendor/github.com/gohugoio/gohugoioTheme/static/dist/app.bundle.js deleted file mode 100644 index 6391e71e9..000000000 --- a/_vendor/github.com/gohugoio/gohugoioTheme/static/dist/app.bundle.js +++ /dev/null @@ -1,22 +0,0 @@ -!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;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"," + +{{ end }} diff --git a/layouts/partials/helpers/linkcss.html b/layouts/partials/helpers/linkcss.html new file mode 100644 index 000000000..c12406757 --- /dev/null +++ b/layouts/partials/helpers/linkcss.html @@ -0,0 +1,28 @@ +{{ $r := .r }} +{{ $attr := .attributes | default dict }} + +{{ if hugo.IsDevelopment }} + +{{ else }} + {{ with $r | minify | fingerprint }} + + {{ end }} +{{ end }} + +{{ define "render-attributes" }} + {{- range $k, $v := . -}} + {{- if $v -}} + {{- printf ` %s=%q` $k $v | safeHTMLAttr -}} + {{- else -}} + {{- printf ` %s` $k | safeHTMLAttr -}} + {{- end -}} + {{- end -}} +{{ end }} diff --git a/layouts/partials/helpers/linkjs.html b/layouts/partials/helpers/linkjs.html new file mode 100644 index 000000000..00129ad38 --- /dev/null +++ b/layouts/partials/helpers/linkjs.html @@ -0,0 +1,15 @@ +{{ $r := .r }} +{{ $attr := .attributes | default dict }} +{{ if hugo.IsDevelopment }} + +{{ else }} + {{ with $r | fingerprint }} + + {{ end }} +{{ end }} diff --git a/layouts/partials/helpers/picture.html b/layouts/partials/helpers/picture.html new file mode 100644 index 000000000..7f30f1437 --- /dev/null +++ b/layouts/partials/helpers/picture.html @@ -0,0 +1,25 @@ +{{ $image := .image }} +{{ $width := .width | default 1000 }} +{{ $width1x := div $width 2 }} +{{ $imageWebp := $image.Resize (printf "%dx webp" $width) }} +{{ $image1x := $image.Resize (printf "%dx" $width1x) }} +{{ $image1xWebp := $image.Resize (printf "%dx webp" $width1x) }} +{{ $class := .class | default "h-64 tablet:h-96 lg:h-full w-full object-cover lg:absolute" }} + + + + + + + diff --git a/layouts/partials/layouts/blocks/alert.html b/layouts/partials/layouts/blocks/alert.html new file mode 100644 index 000000000..4db3cbd24 --- /dev/null +++ b/layouts/partials/layouts/blocks/alert.html @@ -0,0 +1,27 @@ +{{ $title := .title | default "" }} +{{ $color := .color | default "yellow" }} +{{ $icon := .icon | default "exclamation" }} +{{ $text := .text | default "" }} +{{ $class := .class | default "mt-6 mb-8" }} +

    +
    +
    + + + +
    +
    + {{ with $title }} +

    + {{ . }} +

    + {{ end }} +
    +

    + {{ $text }} +

    +
    +
    +
    +
    diff --git a/layouts/partials/layouts/blocks/modal.html b/layouts/partials/layouts/blocks/modal.html new file mode 100644 index 000000000..2ae145cc7 --- /dev/null +++ b/layouts/partials/layouts/blocks/modal.html @@ -0,0 +1,29 @@ +
    +
    + {{ .modal_button }} +
    + +
    diff --git a/layouts/partials/layouts/breadcrumbs.html b/layouts/partials/layouts/breadcrumbs.html new file mode 100644 index 000000000..d7fd8fa08 --- /dev/null +++ b/layouts/partials/layouts/breadcrumbs.html @@ -0,0 +1,30 @@ +{{ $documentation := site.GetPage "/documentation" }} + + + + +{{ define "breadcrumbs-arrow" }} + + + +{{ end }} diff --git a/layouts/partials/layouts/docsheader.html b/layouts/partials/layouts/docsheader.html new file mode 100644 index 000000000..7e8e950f3 --- /dev/null +++ b/layouts/partials/layouts/docsheader.html @@ -0,0 +1,9 @@ +
    + {{ partial "layouts/breadcrumbs.html" . }} + {{ if and .IsPage (not (eq .Layout "list")) }} +

    + {{ .Title }} +

    + {{ end }} +
    diff --git a/layouts/partials/layouts/explorer.html b/layouts/partials/layouts/explorer.html new file mode 100644 index 000000000..bb6f8e96a --- /dev/null +++ b/layouts/partials/layouts/explorer.html @@ -0,0 +1,47 @@ +{{/* This is currently not in use, but kept in case I change my mind. */}} + + +{{ define "docs-explorer-section" }} + {{ $p := .p }} + {{ $level := .level }} + {{ $pleft := $level }} + {{ if gt $level 0 }} + {{ $pleft = add $level 1 }} + {{ end }} + {{ $pl := printf "pl-%d" $pleft }} + {{ $pages := $p.Sections }} + + {{ range $pages }} + {{ $hasChildren := gt (len .Pages) 0 }} + {{ $class := cond (eq $level 0) "text-primary hover:text-primary/70" "text-gray-900 dark:text-gray-400 hover:dark:text-gray-300" }} +
  • + + {{ .LinkTitle }} + + {{ if $hasChildren }} +
      + {{ template "docs-explorer-section" (dict "p" . "level" (add $level 1)) }} +
    + {{ end }} +
  • + {{ end }} + +{{ end }} diff --git a/layouts/partials/layouts/footer.html b/layouts/partials/layouts/footer.html new file mode 100644 index 000000000..89190b45f --- /dev/null +++ b/layouts/partials/layouts/footer.html @@ -0,0 +1,72 @@ +
    +
    +
    + {{/* Column 1 */}} +
    +
    + By the + Hugo Authors
    +
    + + Hugo Logo + + +
    + + {{/* Sponsors */}} +
    + {{ partial "layouts/home/sponsors.html" (dict + "ctx" . + "gtag" "footer" + + ) + }} +
    +
    +
    +

    + The Hugo logos are copyright © Steve Francia 2013–{{ now.Year }}. The + Hugo Gopher is based on an original work by Renée French. +

    +
    +
    +
    diff --git a/layouts/partials/layouts/head/head-js.html b/layouts/partials/layouts/head/head-js.html new file mode 100644 index 000000000..d83efcd0f --- /dev/null +++ b/layouts/partials/layouts/head/head-js.html @@ -0,0 +1,11 @@ +{{ $githubInfo := partialCached "helpers/funcs/get-github-info.html" . "-" }} +{{ $opts := dict "minify" true }} +{{ with resources.Get "js/head-early.js" | js.Build $opts }} + {{ partial "helpers/linkjs.html" (dict "r" . "attributes" (dict "async" "")) }} +{{ end }} +{{ with resources.Get "js/main.js" | js.Build $opts }} + {{ partial "helpers/linkjs.html" (dict "r" . "attributes" (dict "defer" "")) }} +{{ end }} +{{ with resources.Get "js/turbo.js" | js.Build $opts }} + {{ partial "helpers/linkjs.html" (dict "r" . "attributes" (dict "defer" "")) }} +{{ end }} diff --git a/layouts/partials/layouts/head/head.html b/layouts/partials/layouts/head/head.html new file mode 100644 index 000000000..391e80dca --- /dev/null +++ b/layouts/partials/layouts/head/head.html @@ -0,0 +1,52 @@ + + + + +{{ hugo.Generator }} + +{{ if hugo.IsProduction }} + +{{ else }} + +{{ end }} + + + {{ with .Title }}{{ . }} |{{ end }} + {{ .Site.Title }} + + + + + + + + + + + +{{ range .AlternativeOutputFormats -}} + +{{ end -}} + + + + + + +{{ partial "opengraph/opengraph.html" . }} +{{- template "_internal/schema.html" . -}} +{{- template "_internal/twitter_cards.html" . -}} + +{{ if hugo.IsProduction }} + {{ partial "helpers/gtag.html" . }} +{{ end }} diff --git a/layouts/partials/layouts/header/githubstars.html b/layouts/partials/layouts/header/githubstars.html new file mode 100644 index 000000000..7e38cabc8 --- /dev/null +++ b/layouts/partials/layouts/header/githubstars.html @@ -0,0 +1,16 @@ +{{ with partialCached "helpers/funcs/get-github-info.html" . "-" }} + + + + + + + + {{ printf "%0.1fk" (div .stargazers_count 1000) }} + + +{{ end }} diff --git a/layouts/partials/layouts/header/header.html b/layouts/partials/layouts/header/header.html new file mode 100644 index 000000000..e4dd3a5a1 --- /dev/null +++ b/layouts/partials/layouts/header/header.html @@ -0,0 +1,43 @@ +
    +
    + {{ with site.Home }} + HUGO + {{ end }} +
    +
    + {{ range .Site.Menus.global }} + {{ .Name }} + {{ end }} + +
    + +
    + {{/* Search. */}} + {{ partial "layouts/search/input.html" . }} +
    +
    + {{/* QR code. */}} + {{ partial "layouts/header/qr.html" . }} + {{/* Theme selector. */}} + {{ partial "layouts/header/theme.html" . }} + + {{/* Social. */}} + +
    +
    diff --git a/layouts/partials/layouts/header/qr.html b/layouts/partials/layouts/header/qr.html new file mode 100644 index 000000000..c022e7242 --- /dev/null +++ b/layouts/partials/layouts/header/qr.html @@ -0,0 +1,24 @@ +{{ $t := debug.Timer "qr" }} +{{ $qr := partial "partials/_inline/qr" (dict + "page" $ + "img_class" "w-10 bg-white view-transition-qr" ) +}} +{{ $qrBig := partial "partials/_inline/qr" (dict "page" $ "img_class" "w-64 p-4") }} +{{ $t.Stop }} + + +{{ define "partials/_inline/qr" }} + {{ $img_class := .img_class | default "w-10" }} + {{ with images.QR $.page.Permalink (dict "targetDir" "images/qr") }} + + QR code linking to {{ $.page.Permalink }} + {{ end }} +{{ end }} diff --git a/layouts/partials/layouts/header/theme.html b/layouts/partials/layouts/header/theme.html new file mode 100644 index 000000000..006e48f9d --- /dev/null +++ b/layouts/partials/layouts/header/theme.html @@ -0,0 +1,35 @@ +
    + +
    diff --git a/layouts/partials/layouts/home/features.html b/layouts/partials/layouts/home/features.html new file mode 100644 index 000000000..527c98cb1 --- /dev/null +++ b/layouts/partials/layouts/home/features.html @@ -0,0 +1,56 @@ +{{/* icons source: https://heroicons.com/ */}} +{{ $dataTOML := ` + [[features]] + heading = "Optimized for speed" + copy = "Written in Go, optimized for speed and designed for flexibility. With its advanced templating system and fast asset pipelines, Hugo renders a large site in seconds, often less." + icon = """ + + + """ + [[features]] + heading = "Flexible framework" + copy = "With its multilingual support, and powerful taxonomy system, Hugo is widely used to create documentation sites, landing pages, corporate, government, nonprofit, education, news, event, and project sites." + icon = """ + + + """ + [[features]] + heading = "Fast assets pipeline" + copy = "Image processing (convert, resize, crop, rotate, adjust colors, apply filters, overlay text and images, and extract EXIF data), JavaScript bundling (tree shake, code splitting), Sass processing, great TailwindCSS support." + icon = """ + + + """ + [[features]] + heading = "Embedded web server" + copy = "Use Hugo's embedded web server during development to instantly see changes to content, structure, behavior, and presentation. " + icon = """ + + + """ + ` +}} +{{ $data := $dataTOML | transform.Unmarshal }} +
    +
    +
    + {{ range $data.features }} +
    +
    +
    + {{ .icon | safeHTML }} +
    + {{ .heading }} +
    +
    + {{ .copy }} +
    +
    + {{ end }} + +
    +
    +
    diff --git a/layouts/partials/layouts/home/opensource.html b/layouts/partials/layouts/home/opensource.html new file mode 100644 index 000000000..b64bdd22b --- /dev/null +++ b/layouts/partials/layouts/home/opensource.html @@ -0,0 +1,110 @@ +{{ $githubInfo := partialCached "helpers/funcs/get-github-info.html" . "-" }} +
    +
    +
    +
    +

    + Open source +

    +

    + Hugo is open source and free to use. It is distributed under the + Apache 2.0 License. +

    +
    +
    +
    + + + + Popular. +
    +
    + As of writing this, Hugo has + {{ $githubInfo.stargazers_count }} + stars on GitHub. Join the crowd and hit the + Star button. +
    +
    +
    +
    + + + + Active. +
    +
    + Hugo has a large and active community. If you have questions or + need help, you can ask in the + Hugo forums. +
    +
    +
    +
    + + + + Frequent releases. +
    +
    + Hugo has a fast + release + cycle. The project is actively maintained and new features are + added regularly. +
    +
    +
    +
    +
    + {{ partial "helpers/picture.html" (dict + "image" (resources.Get "images/hugo-github-screenshot.png") + "alt" "Hugo GitHub Repository" + "width" 640 + "class" "w-full max-w-[38rem] ring-1 shadow-xl dark:shadow-gray-500 ring-gray-400/10") + }} +
    +
    diff --git a/layouts/partials/layouts/home/sponsors.html b/layouts/partials/layouts/home/sponsors.html new file mode 100644 index 000000000..1f92e1174 --- /dev/null +++ b/layouts/partials/layouts/home/sponsors.html @@ -0,0 +1,43 @@ +{{ $gtag := .gtag | default "unknown" }} +{{ $gtag := .gtag | default "unknown" }} +{{ $isFooter := (eq $gtag "footer") }} +{{ $utmSource := cond $isFooter "hugofooter" "hugohome" }} +{{ $containerClass := .containerClass | default "mx-auto max-w-7xl px-6 lg:px-8" }} +{{/* TODO1 prod: onclick="trackOutboundLink({{ printf "'%s', '%s'" $gtagID $url | safeJS }});" +*/}} +{{ with .ctx.Site.Data.sponsors }} +
    +

    Hugo Sponsors

    +
    + {{ range .banners }} +
    + {{ $query_params := .query_params | default "" }} + {{ $url := .link }} + {{ if not .no_query_params }} + {{ $url = printf "%s?%s%s" .link $query_params (querify "utm_source" (.utm_source | default $utmSource ) "utm_medium" (.utm_medium | default "banner") "utm_campaign" (.utm_campaign | default "hugosponsor") "utm_content" (.utm_content | default "gohugoio")) | safeURL }} + {{ end }} + {{ $logo := resources.Get .logo }} + {{ $gtagID := printf "Sponsor %s %s" .name $gtag | title }} + + + +
    + {{ end }} +
    +
    +{{ end }} diff --git a/layouts/partials/layouts/hooks/body-end.html b/layouts/partials/layouts/hooks/body-end.html new file mode 100644 index 000000000..ba4a81300 --- /dev/null +++ b/layouts/partials/layouts/hooks/body-end.html @@ -0,0 +1 @@ +{{/* Empty for now */}} diff --git a/layouts/partials/layouts/hooks/body-start.html b/layouts/partials/layouts/hooks/body-start.html new file mode 100644 index 000000000..3430bd846 --- /dev/null +++ b/layouts/partials/layouts/hooks/body-start.html @@ -0,0 +1,3 @@ +{{ with resources.Get "js/body-start.js" | js.Build (dict "minify" true) }} + {{ partial "helpers/linkjs.html" (dict "r" . "attributes" (dict "" "")) }} +{{ end }} diff --git a/layouts/partials/layouts/icons.html b/layouts/partials/layouts/icons.html new file mode 100644 index 000000000..c7194bc03 --- /dev/null +++ b/layouts/partials/layouts/icons.html @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/layouts/partials/layouts/in-this-section.html b/layouts/partials/layouts/in-this-section.html new file mode 100644 index 000000000..71b4bf905 --- /dev/null +++ b/layouts/partials/layouts/in-this-section.html @@ -0,0 +1,29 @@ +{{- with .CurrentSection.RegularPages }} +

    + {{ "In this section" | title }} +

    +
    + +
    +{{- end }} diff --git a/layouts/partials/layouts/page-edit.html b/layouts/partials/layouts/page-edit.html new file mode 100644 index 000000000..b24c4c588 --- /dev/null +++ b/layouts/partials/layouts/page-edit.html @@ -0,0 +1,22 @@ +
    + +
    + Last updated: + {{ .Lastmod.Format "January 2, 2006" }}{{ with .GitInfo }} + : + {{ .Subject }} ({{ .AbbreviatedHash }}) + {{ end }} +
    + +{{ with .File }} + {{ $href := printf "%sedit/master/content/%s/%s" site.Params.ghrepo $.Lang .Path }} + + Improve this page + +{{ end }} diff --git a/layouts/partials/layouts/related.html b/layouts/partials/layouts/related.html new file mode 100644 index 000000000..a10f5adb4 --- /dev/null +++ b/layouts/partials/layouts/related.html @@ -0,0 +1,32 @@ +{{- $heading := "See also" | title }} +{{- $related := site.RegularPages.Related . | first 5 }} + +{{- if .Params.action.related }} + {{- $related = slice }} + {{- range .Params.action.related }} + {{- $path := . | lower }} + {{- with or (site.GetPage $path) ($.GetPage $path) }} + {{- $related = $related | append . }} + {{- else }} + {{/* TODO1 make error */}} + {{- warnf "The 'related' partial was unable to get page %s" . }} + {{- end }} + {{- end }} +{{- end }} +{{- with $related }} +

    + {{ $heading }} +

    + +{{- end }} diff --git a/layouts/partials/layouts/search/input-standalone.html b/layouts/partials/layouts/search/input-standalone.html new file mode 100644 index 000000000..15251eff2 --- /dev/null +++ b/layouts/partials/layouts/search/input-standalone.html @@ -0,0 +1,12 @@ +
    + + + + +
    diff --git a/layouts/partials/layouts/search/input.html b/layouts/partials/layouts/search/input.html new file mode 100644 index 000000000..e9862e5ca --- /dev/null +++ b/layouts/partials/layouts/search/input.html @@ -0,0 +1,15 @@ +
    +
    + + + + +
    + {{ partial "layouts/search/results.html" . }} +
    diff --git a/layouts/partials/layouts/search/results.html b/layouts/partials/layouts/search/results.html new file mode 100644 index 000000000..6f4ba698e --- /dev/null +++ b/layouts/partials/layouts/search/results.html @@ -0,0 +1,82 @@ + diff --git a/layouts/partials/layouts/toc.html b/layouts/partials/layouts/toc.html new file mode 100644 index 000000000..50b949e29 --- /dev/null +++ b/layouts/partials/layouts/toc.html @@ -0,0 +1,41 @@ +{{ with .Fragments.Headings }} +
    +

    + {{ "On this page" | title }} +

    + +
    +{{ end }} + +{{ define "render-toc-level" }} + {{ range . }} + {{ if and .ID (or (ge .Level 2) (lt .Level 4)) }} +
  • + + {{ .Title | safeHTML }} + +
  • + {{ end }} + {{ with .Headings }} +
      + {{ template "render-toc-level" . }} +
    + {{ end }} + {{ end }} +{{ end }} diff --git a/layouts/partials/news/get-news-items.html b/layouts/partials/news/get-news-items.html new file mode 100644 index 000000000..cb1a930d3 --- /dev/null +++ b/layouts/partials/news/get-news-items.html @@ -0,0 +1,45 @@ +{{ $news_items := slice }} + +{{/* Get releases from GitHub. */}} +{{ $u := "https://api.github.com/repos/gohugoio/hugo/releases" }} +{{ $releases := partial "helpers/funcs/get-remote-data.html" $u }} +{{ $releases = where $releases "draft" false }} +{{ $releases = where $releases "prerelease" false }} +{{ range $releases | first 20 }} + {{ $publishDate := .published_at | time.AsTime }} + + {{/* Correct the v0.138.0 release date. See https://github.com/gohugoio/hugo/issues/13066. */}} + {{ if eq .name "v0.138.0" }} + {{ $publishDate = "2024-11-06T11:22:34Z" | time.AsTime }} + {{ end }} + + {{ $ctx := dict + "Date" $publishDate + "Title" (printf "Release %s" .name) + "LinkTitle" (printf "Release %s" .name) + "Permalink" .html_url + "RelPermalink" .html_url + "Section" "news" + "Summary" "" + }} + {{ $news_items = $news_items | append $ctx }} +{{ end }} + +{{/* Get content pages from news section. */}} +{{ range .Pages }} + {{ $ctx := dict + "Date" .Date + "Title" .Title + "LinkTitle" .Title + "RelPermalink" .RelPermalink + "Section" "news" + "Summary" .Summary + "Params" (dict "description" .Description) + }} + {{ $news_items = $news_items | append $ctx }} +{{ end }} + +{{/* Sort by date (descending) and render. */}} +{{ $news_items = sort $news_items "Date" "desc" }} + +{{ return $news_items }} diff --git a/layouts/partials/opengraph/get-featured-image.html b/layouts/partials/opengraph/get-featured-image.html new file mode 100644 index 000000000..50ee2a44d --- /dev/null +++ b/layouts/partials/opengraph/get-featured-image.html @@ -0,0 +1,26 @@ +{{ $images := $.Resources.ByType "image" }} +{{ $featured := $images.GetMatch "*feature*" }} +{{ if not $featured }} + {{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }} +{{ end }} +{{ if not $featured }} + {{ $featured = resources.Get "/opengraph/gohugoio-card-base-1.png" }} + {{ $size := 80 }} + {{ $title := $.LinkTitle }} + {{ if gt (len $title) 20 }} + {{ $size = 70 }} + {{ end }} + + {{ $text := $title }} + {{ $textOptions := dict + "color" "#FFF" + "size" $size + "lineSpacing" 10 + "x" 65 "y" 80 + "font" (resources.Get "/opengraph/mulish-black.ttf") + }} + + {{ $featured = $featured | images.Filter (images.Text $text $textOptions) }} +{{ end }} + +{{ return $featured }} diff --git a/layouts/partials/opengraph/opengraph.html b/layouts/partials/opengraph/opengraph.html new file mode 100644 index 000000000..1c89b0814 --- /dev/null +++ b/layouts/partials/opengraph/opengraph.html @@ -0,0 +1,84 @@ + + + + + +{{- with $.Params.images -}} + {{- range first 6 . }} + + {{ end -}} +{{- else -}} + {{- $featured := partial "opengraph/get-featured-image.html" . }} + {{- with $featured -}} + + {{- else -}} + {{- with $.Site.Params.images }} + + {{ end -}} + {{- end -}} +{{- end -}} + +{{- if .IsPage }} + {{- $iso8601 := "2006-01-02T15:04:05-07:00" -}} + + {{ with .PublishDate }} + + {{ end }} + {{ with .Lastmod }} + + {{ end }} +{{- end -}} + +{{- with .Params.audio }}{{ end }} +{{- with .Params.locale }} + +{{ end }} +{{- with .Site.Params.title }} + +{{ end }} +{{- with .Params.videos }} + {{- range . }} + + {{ end }} + +{{ end }} + +{{- /* If it is part of a series, link to related articles */}} +{{- $permalink := .Permalink }} +{{- $siteSeries := .Site.Taxonomies.series }} +{{ with .Params.series }} + {{- range $name := . }} + {{- $series := index $siteSeries ($name | urlize) }} + {{- range $page := first 6 $series.Pages }} + {{- if ne $page.Permalink $permalink }} + + {{ end }} + {{- end }} + {{ end }} + +{{ end }} + +{{- /* Facebook Page Admin ID for Domain Insights */}} +{{- with site.Params.social.facebook_admin }} + +{{ end }} diff --git a/layouts/shortcodes/chroma-lexers.html b/layouts/shortcodes/chroma-lexers.html new file mode 100644 index 000000000..38241be33 --- /dev/null +++ b/layouts/shortcodes/chroma-lexers.html @@ -0,0 +1,7 @@ +
    + {{ range .Site.Data.docs.chroma.lexers }} +
    {{ .Name }}
    +
    {{ with .Aliases }}{{ delimit . ", " }}{{ end }}
    + {{ end }} +
    + \ No newline at end of file diff --git a/layouts/shortcodes/code-toggle.html b/layouts/shortcodes/code-toggle.html new file mode 100644 index 000000000..f22bd0158 --- /dev/null +++ b/layouts/shortcodes/code-toggle.html @@ -0,0 +1,100 @@ +{{- /* + Renders syntax-highlighted configuration data in JSON, TOML, and YAML formats. + + @param {string} [config] The section of site.Data.docs.config to render. + @param {bool} [copy=false] If true, display a copy to clipboard button. + @param {string} [file] The file name to display above the rendered code. + @param {bool} [fm=false] If true, render the code as front matter. + @param {bool} [skipHeader=false] If false, omit top level key(s) when rendering a section of site.Data.docs.config. + + @returns {template.HTML} +*/}} + +{{- /* Initialize. */}} +{{- $config := "" }} +{{- $dataKey := "" }} +{{- $copy := false }} +{{- $file := "" }} +{{- $fm := false }} +{{- $skipHeader := false }} + +{{- /* Get parameters. */}} +{{- $config = .Get "config" }} +{{- $dataKey = .Get "dataKey" }} +{{- $file = .Get "file" }} +{{- if in (slice "false" false 0) (.Get "copy") }} + {{- $copy = false }} +{{- else if in (slice "true" true 1) (.Get "copy") }} + {{- $copy = true }} +{{- end }} +{{- if in (slice "false" false 0) (.Get "fm") }} + {{- $fm = false }} +{{- else if in (slice "true" true 1) (.Get "fm") }} + {{- $fm = true }} +{{- end }} +{{- if in (slice "false" false 0) (.Get "skipHeader") }} + {{- $skipHeader = false }} +{{- else if in (slice "true" true 1) (.Get "skipHeader") }} + {{- $skipHeader = true }} +{{- end }} + +{{- /* Define constants. */}} +{{- $delimiters := dict "toml" "+++" "yaml" "---" }} +{{- $langs := slice "yaml" "toml" "json" }} +{{- $placeHolder := "#-hugo-placeholder-#" }} + +{{- /* Render. */}} +{{- $code := "" }} +{{- if $config }} + {{- $file = $file | default "hugo" }} + {{- $sections := (split $config ".") }} + {{- $configSection := index $.Site.Data.docs.config $sections }} + {{- $code = dict $sections $configSection }} + {{- if $skipHeader }} + {{- $code = $configSection }} + {{- end }} +{{- else if $dataKey }} + {{- $file = $file | default $dataKey }} + {{- $sections := (split $dataKey ".") }} + {{- $code = index $.Site.Data.docs $sections }} +{{- else }} + {{- $code = $.Inner }} +{{- end }} +{{ $langs := (slice "yaml" "toml" "json") }} +
    +
    + + + + + {{ if $code }} + {{ range $i, $lang := $langs }} +
    + {{ highlight ($code | transform.Remarshal . | safeHTML) . "" }} +
    + {{ end }} + {{ end }} +
    +
    diff --git a/layouts/shortcodes/code.html b/layouts/shortcodes/code.html new file mode 100644 index 000000000..8de38ee27 --- /dev/null +++ b/layouts/shortcodes/code.html @@ -0,0 +1,30 @@ +{{ $codeLang := "go-html-template" }} +
    + {{- with .Get "file" -}} +
    + {{ . }} +
    + {{- end -}} + + {{ if ne (.Get "copy") "false" }} + + + + {{ end }} +
    + {{ $inner := trim .Inner "\n" | safeHTML }} + {{ if .Get "nocode" }} + {{ $inner }} + {{ else }} + {{ with $codeLang }} + {{ highlight $inner . "" }} + {{ else }} +
    {{ $inner }}
    + {{ end }} + {{ end }} +
    +
    diff --git a/layouts/shortcodes/datatable-filtered.html b/layouts/shortcodes/datatable-filtered.html new file mode 100644 index 000000000..ff3f299bd --- /dev/null +++ b/layouts/shortcodes/datatable-filtered.html @@ -0,0 +1,39 @@ +{{ $package := (index .Params 0) }} +{{ $listname := (index .Params 1) }} +{{ $filter := split (index .Params 2) " " }} +{{ $filter1 := index $filter 0 }} +{{ $filter2 := index $filter 1 }} +{{ $filter3 := index $filter 2 }} + +{{ $list := (index (index .Site.Data.docs $package) $listname) }} +{{ $fields := after 3 .Params }} +{{ $list := where $list $filter1 $filter2 $filter3 }} + + + + {{ range $fields }} + + {{ end }} + + {{ range $list }} + + {{ range $k, $v := . }} + {{ $.Scratch.Set $k $v }} + {{ end }} + {{ range $k, $v := $fields }} + + {{ end }} + + {{ end }} +
    {{ . }}
    + {{ $tdContent := $.Scratch.Get . }} + {{ if eq $k 3 }} + {{ printf "%v" $tdContent | + strings.ReplaceRE `\[` "
    1. " | + strings.ReplaceRE `\s` "
    2. " | + strings.ReplaceRE `\]` "
    " | + safeHTML }} + {{ else }} + {{ $tdContent }} + {{ end}} +
    diff --git a/layouts/shortcodes/datatable.html b/layouts/shortcodes/datatable.html new file mode 100644 index 000000000..12054f89d --- /dev/null +++ b/layouts/shortcodes/datatable.html @@ -0,0 +1,33 @@ +{{ $package := (index .Params 0) }} +{{ $listname := (index .Params 1) }} +{{ $list := (index (index .Site.Data.docs $package) $listname) }} +{{ $fields := after 2 .Params }} + + + + + {{ range $fields }} + {{ $s := . }} + {{ if eq $s "_key" }} + {{ $s = "Type" }} + {{ end }} + + {{ end }} + + {{ range $k1, $v1 := $list }} + + {{ range $k2, $v2 := . }} + {{ $.Scratch.Set $k2 $v2 }} + {{ end }} + {{ range $fields }} + {{ $s := "" }} + {{ if eq . "_key" }} + {{ $s = $k1 }} + {{ else }} + {{ $s = $.Scratch.Get . }} + {{ end }} + + {{ end }} + + {{ end }} +
    {{ $s }}
    {{ $s }}
    diff --git a/layouts/shortcodes/deprecated-in.html b/layouts/shortcodes/deprecated-in.html new file mode 100644 index 000000000..0272ea4a6 --- /dev/null +++ b/layouts/shortcodes/deprecated-in.html @@ -0,0 +1,17 @@ +{{ $_hugo_config := `{ "version": 1 }` }} + +{{ with .Get 0 }} + {{ $version := printf "v%v" (strings.TrimLeft "vV" .) }} + {{ $href := printf "https://github.com/gohugoio/hugo/releases/tag/%s" $version }} + {{ $text := (printf `Deprecated in %s. +%s` $href $version $.Inner) | safeHTML }} + + {{ partial "layouts/blocks/alert.html" (dict + "text" $text + "color" "orange" + "icon" "exclamation" + ) +}} +{{ else }} + {{ errorf "The %q shortcode requires a single positional parameter indicating version. See %s" .Name .Position }} +{{ end }} diff --git a/layouts/shortcodes/eturl.html b/layouts/shortcodes/eturl.html new file mode 100644 index 000000000..c0cf30aec --- /dev/null +++ b/layouts/shortcodes/eturl.html @@ -0,0 +1,36 @@ +{{- /* +Renders an absolute URL to the source code for an embedded template. + +Accepts either positional or named parameters, and depends on the +embedded_templates.toml file in the data directory. + +@param {string} filename The embedded template's file name, excluding extension. + +@returns template.HTML + +@example {{% et robots.txt %}} +@example {{% et filename=robots.txt %}} +*/}} + +{{- /* Get parameters. */}} +{{- $filename := "" -}} +{{- if .IsNamedParams -}} + {{- $filename = .Get "filename" -}} +{{- else -}} + {{- $filename = .Get 0 -}} +{{- end -}} + +{{- /* Render. */}} +{{- with $filename -}} + {{- with site.Data.embedded_template_urls -}} + {{- with index . $filename -}} + {{- urls.JoinPath site.Data.embedded_template_urls.base_url . -}} + {{- else -}} + {{- errorf "The %q shortcode was unable to find a URL for the embedded template named %q. Check the name. See %s" $.Name $filename $.Position -}} + {{- end -}} + {{- else -}} + {{- errorf "The %q shortcode was unable to find the embedded_template_urls data file in the site's data directory. See %s" $.Name $.Position -}} + {{- end -}} +{{- else -}} + {{- errorf "The %q shortcodes requires a named or positional parameter, the file name of the embedded template, excluding its extension. See %s" .Name .Position -}} +{{- end -}} diff --git a/layouts/shortcodes/glossary-term.html b/layouts/shortcodes/glossary-term.html new file mode 100644 index 000000000..7aace730e --- /dev/null +++ b/layouts/shortcodes/glossary-term.html @@ -0,0 +1,20 @@ +{{- /* +Renders the definition of the given glossary term. + +@param {string} (.Get 0) The glossary term. +@returns {template.HTML} + +@example {{% glossary-term float %}} +@example {{% glossary-term "floating point" %}} +*/}} + +{{- with .Get 0 }} + {{- $path := printf "/quick-reference/glossary/%s" (urlize .) }} + {{- with site.GetPage $path }} +{{ .RenderShortcodes }} {{/* Do not indent. Do not remove non-breaking space. */}} + {{- else }} + {{- errorf "The glossary term (%s) shortcode was unable to find %s: see %s" $.Name $path $.Position }} + {{- end }} +{{- else }} + {{- errorf "The glossary term (%s) shortcode requires one positional parameter: see %s" $.Name $.Position }} +{{- end -}} diff --git a/layouts/shortcodes/glossary.html b/layouts/shortcodes/glossary.html new file mode 100644 index 000000000..e91be32ce --- /dev/null +++ b/layouts/shortcodes/glossary.html @@ -0,0 +1,56 @@ +{{- /* +Renders the glossary of terms. + +When you call this shortcode using the {{% %}} notation, the glossary terms are +Markdown headings (level 6) which means they are members of .Page.Fragments. +This allows the link render hook to verify links to glossary terms. + +Yes, the terms themselves are pages, but we don't want to link to the pages, at +least not right now. Instead, we want to link to the fragments rendered by this +shortcode. + +@returns {template.HTML} + +@example {{% glossary %}} +*/}} +{{- $path := "/quick-reference/glossary" }} +{{- with site.GetPage $path }} + + {{- /* Build and render alphabetical index. */}} + {{- $m := dict }} + {{- range $p := .Pages.ByTitle }} + {{- $k := substr .Title 0 1 | strings.ToUpper }} + {{- if index $m $k }} + {{- continue }} + {{- end }} + {{- $anchor := path.BaseName .Path | anchorize }} + {{- $m = merge $m (dict $k $anchor) }} + {{- end }} + {{- range $k, $v := $m }} +[{{ $k }}](#{{ $v }}) {{/* Do not indent. */}} + {{- end }} + + {{- /* Render glossary terms. */}} + {{- range $p := .Pages.ByTitle }} +###### {{ .Title }}{{/* Do not indent. */}} +{{ .RenderShortcodes }}{{/* Do not indent. */}} + {{- with .Params.reference }} + {{- $destination := "" }} + {{- with $u := urls.Parse . }} + {{- if $u.IsAbs }} + {{- $destination = $u.String }} + {{- else }} + {{- with site.GetPage $u.Path -}} + {{- $destination = .RelPermalink }} + {{- else }} + {{- errorf "The %q shortcode was unable to find the reference link %s: see %s" $.Name . $p.String }} + {{- end }} + {{- end }} + {{- end -}} + See [details]({{ $destination }}).{{/* Do not indent. */}} + {{- end }} + {{- end }} + +{{- else }} + {{- errorf "The %q shortcode was unable to get %s: see %s" .Name $path .Position}} +{{- end }} diff --git a/layouts/shortcodes/gomodules-info.html b/layouts/shortcodes/gomodules-info.html new file mode 100644 index 000000000..126d846c0 --- /dev/null +++ b/layouts/shortcodes/gomodules-info.html @@ -0,0 +1,12 @@ +{{ $text := ` + Most of the commands for **Hugo Modules** require a newer version (>= 1.18) of Go installed (see https://golang.org/dl/) and the relevant VCS client (e.g. Git, see https://git-scm.com/downloads/ ). + If you have an "older" site running on Netlify, you may have to set GO_VERSION to 1.19 or newer in your Environment settings. + + For more information about Go Modules, see: + + * https://go.dev/wiki/Modules + * https://blog.golang.org/using-go-modules + ` +}} + +{{ partial "layouts/blocks/alert.html" (dict "title" "Go Modules" "text" ($text | markdownify) "color" "orange" "icon" "exclamation") }} diff --git a/layouts/shortcodes/hl.html b/layouts/shortcodes/hl.html new file mode 100644 index 000000000..1a5b4e1ec --- /dev/null +++ b/layouts/shortcodes/hl.html @@ -0,0 +1,11 @@ +{{- /* +Returns syntax-highlighted code from the given text. + +This is useful as a terse way to highlight inline code snippets. Calling the +highlight shortcode for inline snippets is verbose. +*/}} + +{{- $code := .Inner | strings.TrimSpace }} +{{- $lang := or (.Get 0) "go" }} +{{- $opts := dict "hl_inline" true "noClasses" true }} +{{- transform.Highlight $code $lang $opts }} diff --git a/layouts/shortcodes/img.html b/layouts/shortcodes/img.html new file mode 100644 index 000000000..7c2d805d2 --- /dev/null +++ b/layouts/shortcodes/img.html @@ -0,0 +1,391 @@ +{{- /* +Renders the given image using the given filter, if any. + +@param {string} src The path to the image which must be a remote, page, or global resource. +@param {string} [filter] The filter to apply to the image (case-insensitive). +@param {string} [filterArgs] A comma-delimited list of arguments to pass to the filter. +@param {bool} [example=false] If true, renders a before/after example. +@param {int} [exampleWidth=384] Image width, in pixels, when rendering a before/after example. + +@returns {template.HTML} + +@examples + + {{< img src="zion-national-park.jpg" >}} + + {{< img src="zion-national-park.jpg" alt="Zion National Park" >}} + + {{< img + src="zion-national-park.jpg" + alt="Zion National Park" + filter="grayscale" + >}} + + {{< img + src="zion-national-park.jpg" + alt="Zion National Park" + filter="process" + filterArgs="resize 400x webp" + >}} + + {{< img + src="zion-national-park.jpg" + alt="Zion National Park" + filter="colorize" + filterArgs="180,50,20" + >}} + + {{< img + src="zion-national-park.jpg" + alt="Zion National Park" + filter="grayscale" + example=true + >}} + + {{< img + src="zion-national-park.jpg" + alt="Zion National Park" + filter="grayscale" + example=true + exampleWidth=400 + >}} + + When using the text filter, provide the arguments in this order: + + 0. The text + 1. The horizontal offset, in pixels, relative to the left of the image (default 20) + 2. The vertical offset, in pixels, relative to the top of the image (default 20) + 3. The font size in pixels (default 64) + 4. The line height (default 1.2) + 5. The font color (default #ffffff) + + {{< img + src="images/examples/zion-national-park.jpg" + alt="Zion National Park" + filter="Text" + filterArgs="Zion National Park,25,250,56" + example=true + >}} + + When using the padding filter, provide all arguments in this order: + + 0. Padding top + 1. Padding right + 2. Padding bottom + 3. Padding right + 4. Canvas color + + {{< img + src="images/examples/zion-national-park.jpg" + alt="Zion National Park" + filter="Padding" + filterArgs="20,50,20,50,#0705" + example=true + >}} + +*/}} + +{{- /* Initialize. */}} +{{- $alt := "" }} +{{- $src := "" }} +{{- $filter := "" }} +{{- $filterArgs := slice }} +{{- $example := false }} +{{- $exampleWidth := 384 }} + +{{- /* Default values to use with the text filter. */}} +{{ $textFilterOpts := dict + "xOffset" 20 + "yOffset" 20 + "fontSize" 64 + "lineHeight" 1.2 + "fontColor" "#ffffff" + "fontPath" "https://github.com/google/fonts/raw/main/ofl/lato/Lato-Regular.ttf" +}} + +{{- /* Get and validate parameters. */}} +{{- with .Get "alt" }} + {{- $alt = .}} +{{- end }} + +{{- with .Get "src" }} + {{- $src = . }} +{{- else }} + {{- errorf "The %q shortcode requires a file parameter. See %s" .Name .Position }} +{{- end }} + +{{- with .Get "filter" }} + {{- $filter = . | lower }} +{{- end }} + +{{- $validFilters := slice + "autoorient" "brightness" "colorbalance" "colorize" "contrast" "dither" + "gamma" "gaussianblur" "grayscale" "hue" "invert" "mask" "none" "opacity" + "overlay" "padding" "pixelate" "process" "saturation" "sepia" "sigmoid" "text" + "unsharpmask" +}} + +{{- with $filter }} + {{- if not (in $validFilters .) }} + {{- errorf "The filter passed to the %q shortcode is invalid. The filter must be one of %s. See %s" $.Name (delimit $validFilters ", " ", or ") $.Position }} + {{- end }} +{{- end }} + +{{- with .Get "filterArgs" }} + {{- $filterArgs = split . "," }} + {{- $filterArgs = apply $filterArgs "trim" "." " " }} +{{- end }} + +{{- if in (slice "false" false 0) (.Get "example") }} + {{- $example = false }} +{{- else if in (slice "true" true 1) (.Get "example")}} + {{- $example = true }} +{{- end }} + +{{- with .Get "exampleWidth" }} + {{- $exampleWidth = . | int }} +{{- end }} + +{{- /* Get image. */}} +{{- $ctx := dict "page" .Page "src" $src "name" .Name "position" .Position }} +{{- $i := partial "inline/get-resource.html" $ctx }} + +{{- /* Resize if rendering before/after examples. */}} +{{- if $example }} + {{- $i = $i.Resize (printf "%dx" $exampleWidth) }} +{{- end }} + +{{- /* Create filter. */}} +{{- $f := "" }} +{{- $ctx := dict "filter" $filter "args" $filterArgs "name" .Name "position" .Position }} +{{- if eq $filter "autoorient" }} + {{- $ctx = merge $ctx (dict "argsRequired" 0) }} + {{- template "validate-arg-count" $ctx }} + {{- $f = images.AutoOrient }} +{{- else if eq $filter "brightness" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Brightness (index $filterArgs 0) }} +{{- else if eq $filter "colorbalance" }} + {{- $ctx = merge $ctx (dict "argsRequired" 3) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "percentage red" "argValue" (index $filterArgs 0) "min" -100 "max" 500) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "percentage green" "argValue" (index $filterArgs 1) "min" -100 "max" 500) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "percentage blue" "argValue" (index $filterArgs 2) "min" -100 "max" 500) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.ColorBalance (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} +{{- else if eq $filter "colorize" }} + {{- $ctx = merge $ctx (dict "argsRequired" 3) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "hue" "argValue" (index $filterArgs 0) "min" 0 "max" 360) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "saturation" "argValue" (index $filterArgs 1) "min" 0 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 2) "min" 0 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Colorize (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} +{{- else if eq $filter "contrast" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Contrast (index $filterArgs 0) }} +{{- else if eq $filter "dither" }} + {{- $f = images.Dither }} +{{- else if eq $filter "gamma" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "gamma" "argValue" (index $filterArgs 0) "min" 0 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Gamma (index $filterArgs 0) }} +{{- else if eq $filter "gaussianblur" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "sigma" "argValue" (index $filterArgs 0) "min" 0 "max" 1000) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.GaussianBlur (index $filterArgs 0) }} +{{- else if eq $filter "grayscale" }} + {{- $ctx = merge $ctx (dict "argsRequired" 0) }} + {{- template "validate-arg-count" $ctx }} + {{- $f = images.Grayscale }} +{{- else if eq $filter "hue" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "shift" "argValue" (index $filterArgs 0) "min" -180 "max" 180) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Hue (index $filterArgs 0) }} +{{- else if eq $filter "invert" }} + {{- $ctx = merge $ctx (dict "argsRequired" 0) }} + {{- template "validate-arg-count" $ctx }} + {{- $f = images.Invert }} +{{- else if eq $filter "mask" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $ctx := dict "src" (index $filterArgs 0) "name" .Name "position" .Position }} + {{- $maskImage := partial "inline/get-resource.html" $ctx }} + {{- $f = images.Mask $maskImage }} +{{- else if eq $filter "opacity" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "opacity" "argValue" (index $filterArgs 0) "min" 0 "max" 1) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Opacity (index $filterArgs 0) }} +{{- else if eq $filter "overlay" }} + {{- $ctx = merge $ctx (dict "argsRequired" 3) }} + {{- template "validate-arg-count" $ctx }} + {{- $ctx := dict "src" (index $filterArgs 0) "name" .Name "position" .Position }} + {{- $overlayImg := partial "inline/get-resource.html" $ctx }} + {{- $f = images.Overlay $overlayImg (index $filterArgs 1 | float ) (index $filterArgs 2 | float) }} +{{- else if eq $filter "padding" }} + {{- $ctx = merge $ctx (dict "argsRequired" 5) }} + {{- template "validate-arg-count" $ctx }} + {{- $f = images.Padding + (index $filterArgs 0 | int) + (index $filterArgs 1 | int) + (index $filterArgs 2 | int) + (index $filterArgs 3 | int) + (index $filterArgs 4) + }} +{{- else if eq $filter "pixelate" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "size" "argValue" (index $filterArgs 0) "min" 0 "max" 1000) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Pixelate (index $filterArgs 0) }} +{{- else if eq $filter "process" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $f = images.Process (index $filterArgs 0) }} +{{- else if eq $filter "saturation" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" -100 "max" 500) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Saturation (index $filterArgs 0) }} +{{- else if eq $filter "sepia" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "percentage" "argValue" (index $filterArgs 0) "min" 0 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Sepia (index $filterArgs 0) }} +{{- else if eq $filter "sigmoid" }} + {{- $ctx = merge $ctx (dict "argsRequired" 2) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "midpoint" "argValue" (index $filterArgs 0) "min" 0 "max" 1) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "factor" "argValue" (index $filterArgs 1) "min" -10 "max" 10) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.Sigmoid (index $filterArgs 0) (index $filterArgs 1) }} +{{- else if eq $filter "text" }} + {{- $ctx = merge $ctx (dict "argsRequired" 1) }} + {{- template "validate-arg-count" $ctx }} + {{- $ctx := dict "src" $textFilterOpts.fontPath "name" .Name "position" .Position }} + {{- $font := or (partial "inline/get-resource.html" $ctx) }} + {{- $fontSize := or (index $filterArgs 3 | int) $textFilterOpts.fontSize }} + {{- $lineHeight := math.Max (or (index $filterArgs 4 | float) $textFilterOpts.lineHeight) 1 }} + {{- $opts := dict + "x" (or (index $filterArgs 1 | int) $textFilterOpts.xOffset) + "y" (or (index $filterArgs 2 | int) $textFilterOpts.yOffset) + "size" $fontSize + "linespacing" (mul (sub $lineHeight 1) $fontSize) + "color" (or (index $filterArgs 5) $textFilterOpts.fontColor) + "font" $font + }} + {{- $f = images.Text (index $filterArgs 0) $opts }} +{{- else if eq $filter "unsharpmask" }} + {{- $ctx = merge $ctx (dict "argsRequired" 3) }} + {{- template "validate-arg-count" $ctx }} + {{- $filterArgs = apply $filterArgs "float" "." }} + {{- $ctx = merge $ctx (dict "argName" "sigma" "argValue" (index $filterArgs 0) "min" 0 "max" 500) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "amount" "argValue" (index $filterArgs 1) "min" 0 "max" 100) }} + {{- template "validate-arg-value" $ctx }} + {{- $ctx = merge $ctx (dict "argName" "threshold" "argValue" (index $filterArgs 2) "min" 0 "max" 1) }} + {{- template "validate-arg-value" $ctx }} + {{- $f = images.UnsharpMask (index $filterArgs 0) (index $filterArgs 1) (index $filterArgs 2) }} +{{- end }} + +{{- /* Apply filter. */}} +{{- $fi := $i }} +{{- with $f }} + {{- $fi = $i.Filter . }} +{{- end }} + +{{- /* Render. */}} +{{- $class := "di va b--black-20" }} +{{- if eq $filter "mask" }} + {{- $class = "di va" }} +{{- end }} +{{- if $example }} +

    Original

    + {{ $alt }} +

    Processed

    + {{ $alt }} +{{- else -}} + {{ $alt }} +{{- end }} + +{{- define "validate-arg-count" }} + {{- $msg := "When using the %q filter, the %q shortcode requires an args parameter with %d %s. See %s" }} + {{- if lt (len .args) .argsRequired }} + {{- $text := "values" }} + {{- if eq 1 .argsRequired }} + {{- $text = "value" }} + {{- end }} + {{- errorf $msg .filter .name .argsRequired $text .position }} + {{- end }} +{{- end }} + +{{- define "validate-arg-value" }} + {{- $msg := "The %q argument passed to the %q shortcode is invalid. Expected a value in the range [%v,%v], but received %v. See %s" }} + {{- if or (lt .argValue .min) (gt .argValue .max) }} + {{- errorf $msg .argName .name .min .max .argValue .position }} + {{- end }} +{{- end }} + +{{- define "partials/inline/get-resource.html" }} + {{- $r := "" }} + {{- $u := urls.Parse .src }} + {{- $msg := "The %q shortcode was unable to resolve %s. See %s" }} + {{- if $u.IsAbs }} + {{- with try (resources.GetRemote $u.String) }} + {{- with .Err }} + {{- errorf "%s" . }} + {{- else with .Value }} + {{- /* This is a remote resource. */}} + {{- $r = . }} + {{- else }} + {{- errorf $msg $.name $u.String $.position }} + {{- end }} + {{- end }} + {{- else }} + {{- with .page.Resources.Get (strings.TrimPrefix "./" $u.Path) }} + {{- /* This is a page resource. */}} + {{- $r = . }} + {{- else }} + {{- with resources.Get $u.Path }} + {{- /* This is a global resource. */}} + {{- $r = . }} + {{- else }} + {{- errorf $msg $.name $u.Path $.position }} + {{- end }} + {{- end }} + {{- end }} + {{- return $r}} +{{- end -}} diff --git a/layouts/shortcodes/imgproc.html b/layouts/shortcodes/imgproc.html new file mode 100644 index 000000000..c09133ba8 --- /dev/null +++ b/layouts/shortcodes/imgproc.html @@ -0,0 +1,37 @@ +{{- /* +Renders the given image using the given process specification. + +@param {string} (positional parameter 0) The path to the image, relative to the current page. The image must be a page resource. +@param {string}} (positional parameter 1) The image processing specification. + +@returns template.HTML + +@example {{< imgproc "sunset.jpg" "resize 300x" />}} +*/}} + +{{- with $.Get 0 }} + {{- with $i := $.Page.Resources.Get . }} + {{- with $spec := $.Get 1 }} + {{- with $i.Process . }} +
    + +
    + + {{- with $.Inner }} + {{ . }} + {{- else }} + {{ $spec }} + {{- end }} + +
    +
    + {{- end }} + {{- else }} + {{- errorf "The %q shortcode requires a positional parameter (1) containing the image processing specification. See %s" $.Name $.Position }} + {{- end }} + {{- else }} + {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter (0) indicating the image path, relative to the current page. See %s" $.Name $.Position }} +{{- end }} diff --git a/layouts/shortcodes/include.html b/layouts/shortcodes/include.html new file mode 100644 index 000000000..b4a20cd72 --- /dev/null +++ b/layouts/shortcodes/include.html @@ -0,0 +1,21 @@ +{{- /* +Renders the page using the RenderShortcode method on the Page object. + +You must call this shortcode using the {{% %}} notation. + +@param {string} (positional parameter 0) The path to the page, relative to the content directory. +@returns template.HTML + +@example {{% include "functions/_common/glob-patterns" %}} +*/}} + +{{- with .Get 0 }} + {{- with or ($.Page.GetPage .) (site.GetPage .) }} + {{- .RenderShortcodes }} + {{- else }} + {{/* TODO1 make error */}} + {{- warnf "The %q shortcode was unable to find %q. See %s" $.Name . $.Position }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter indicating the path of the file to include. See %s" .Name .Position }} +{{- end }} diff --git a/layouts/shortcodes/list-pages-in-section.html b/layouts/shortcodes/list-pages-in-section.html new file mode 100644 index 000000000..73e7f85a9 --- /dev/null +++ b/layouts/shortcodes/list-pages-in-section.html @@ -0,0 +1,96 @@ +{{- /* +Renders a description list of the pages in the given section. + +Render a subset of the pages in the section by specifying a predefined filter, +and whether to include those pages. + +Filters are defined in the data directory, in the file named page_filters. Each +filter is an array of paths to a file, relative to the root of the content +directory. Hugo will throw an error if the specified filter does not exist, or +if any of the pages in the filter do not exist. + +The definition term elements (dt) have an id attribute derived from the title +of the page. This is probably unique, because pages of the same title in the +same section is unlikely. + +If you render a complete list on a page, then call the shortcode again to +render a subset, you will generate duplicate element ids. In this case, set +omitElementIDs to true for the subset. + +@param {string} path The path to the section. +@param {string} [filter=""] The name of filter list. +@param {string} [filterType=""] The type of filter, either include or exclude. +@param {string} [omitElementIDs=false] Whether to omit dt element ids. +@param {string} [titlePrefix=""] The string to prepend to the link title. + +@returns template.HTML + +@example {{< list-pages-in-section path=/methods/resources >}} +@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude >}} +@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude titlePrefix=foo >}} +@example {{< list-pages-in-section path=/functions/images filter=some_filter filterType=exclude titlePrefix=foo omitElementIDs=true >}} +*/}} + +{{- /* Initialize. */}} +{{- $filter := or "" (.Get "filter" | lower)}} +{{- $filterType := or (.Get "filterType") "none" | lower }} +{{- $filteredPages := slice }} +{{- $titlePrefix := or (.Get "titlePrefix") "" }} +{{- $omitElementIDs := false }} + +{{- /* Get boolean parameters. */}} +{{- if in (slice "false" false 0) (.Get "omitElementIDs") }} + {{- $omitElementIDs = false }} +{{- else if in (slice "true" true 1) (.Get "omitElementIDs")}} + {{- $omitElementIDs = true }} +{{- end }} + +{{- /* Build slice of filtered pages. */}} +{{- with $filter }} + {{- with index site.Data.page_filters . }} + {{- range . }} + {{- with site.GetPage . }} + {{- $filteredPages = $filteredPages | append . }} + {{- else }} + {{- errorf "The %q shortcode was unable to find %q as specified in the page_filters data file. See %s" $.Name . $.Position }} + {{- end }} + {{- end }} + {{- else }} + {{- errorf "The %q shortcode was unable to find the %q filter in the page_filters data file. See %s" $.Name . $.Position }} + {{- end }} +{{- end }} + +{{- /* Render */}} +{{- with $sectionPath := .Get "path" }} + {{- with site.GetPage . }} + {{- with .RegularPages }} +
    + {{- range $page := .ByTitle }} + {{- if or + (and (eq $filterType "include") (in $filteredPages $page)) + (and (eq $filterType "exclude") (not (in $filteredPages $page))) + (eq $filterType "none") + }} + {{- $linkTitle := .LinkTitle }} + {{- with $titlePrefix }} + {{- $linkTitle = printf "%s%s" . $linkTitle }} + {{- end }} + {{- $idAttribute := "" }} + {{- if not $omitElementIDs }} + {{- $id := path.Join .File.Dir .File.ContentBaseName | replaceRE `[\|/]` ":" | lower }} + {{- $idAttribute = printf " id=%q" $id }} + {{- end }} +
    {{ $linkTitle }}
    +
    {{- $page.Description | $page.RenderString }}
    + {{- end }} + {{- end }} +
    + {{- else }} + {{- warnf "The %q shortcode found no pages in the %q section. See %s" $.Name $sectionPath $.Position }} + {{- end }} + {{- else }} + {{- errorf "The %q shortcode was unable to find %q. See %s" $.Name $sectionPath $.Position }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a 'path' parameter indicating the path to the section. See %s" $.Name $.Position }} +{{- end }} diff --git a/layouts/shortcodes/module-mounts-note.html b/layouts/shortcodes/module-mounts-note.html new file mode 100644 index 000000000..c1c67991e --- /dev/null +++ b/layouts/shortcodes/module-mounts-note.html @@ -0,0 +1 @@ +Also see [Module Mounts Config](/hugo-modules/configuration/#module-configuration-mounts) for an alternative way to configure this directory. diff --git a/layouts/shortcodes/new-in.html b/layouts/shortcodes/new-in.html new file mode 100644 index 000000000..c725ae14b --- /dev/null +++ b/layouts/shortcodes/new-in.html @@ -0,0 +1,51 @@ +{{- /* +Renders a "new in" button indicating the version in which a feature was added. + +When comparing the current version to the specified version, the "new in" +button will be hidden if any of the following conditions is true: + +- The major version difference exceeds the majorVersionDiffThreshold +- The minor version difference exceeds the minorVersionDiffThreshold + +@param {string} version The semantic version string, with or without a leading v. +@returns {template.HTML} + +@examples {{< new-in 0.100.0 />}} + + {{< new-in 0.100.0 >}} + Some descriptive text here. + {{< /new-in >}} +*/}} + + +{{ $_hugo_config := `{ "version": 1 }` }} + +{{- /* Set defaults. */}} +{{- $majorVersionDiffThreshold := 0 }} +{{- $minorVersionDiffThreshold := 30 }} +{{- $displayExpirationWarning := true }} + +{{- /* Render. */}} +{{- with $version := .Get 0 | strings.TrimPrefix "v" }} + {{- $majorVersionDiff := sub (index (split hugo.Version ".") 0 | int) (index (split $version ".") 0 | int) }} + {{- $minorVersionDiff := sub (index (split hugo.Version ".") 1 | int) (index (split $version ".") 1 | int) }} + {{- if or (gt $majorVersionDiff $majorVersionDiffThreshold) (gt $minorVersionDiff $minorVersionDiffThreshold) }} + {{- if $displayExpirationWarning }} + {{- warnf "This call to the %q shortcode should be removed: %s. The button is now hidden because the specified version (%s) is older than the display threshold." $.Name $.Position $version }} + {{- end }} + {{- else }} + {{- $href := printf "https://github.com/gohugoio/hugo/releases/tag/v%s" $version }} + {{- with $.Inner }} + + {{- else }} + New in v{{ $version }} + {{- end }} + {{- end }} +{{- else }} + {{- errorf "The %q shortcode requires a positional parameter (version). See %s" .Name .Position }} +{{- end -}} diff --git a/layouts/shortcodes/note.html b/layouts/shortcodes/note.html new file mode 100644 index 000000000..b18d53bc7 --- /dev/null +++ b/layouts/shortcodes/note.html @@ -0,0 +1,7 @@ +{{ $_hugo_config := `{ "version": 1 }` }} +{{ partial "layouts/blocks/alert.html" (dict + "text" .Inner + "color" "blue" + "icon" "exclamation" + ) +}} diff --git a/layouts/shortcodes/quick-reference.html b/layouts/shortcodes/quick-reference.html new file mode 100644 index 000000000..fc53c93bd --- /dev/null +++ b/layouts/shortcodes/quick-reference.html @@ -0,0 +1,39 @@ +{{/* +Renders the child sections of the given top-level section, listing each child's immediate descendants. + +@param {string} section The top-level section to render. +@returns template.HTML + +@example {{% quick-reference section="functions" %}} +*/}} + +{{ $section := "" }} +{{ with .Get "section" }} + {{ $section = . }} +{{ else }} + {{ errorf "The %q shortcodes requires a 'section' parameter. See %s" .Name .Position }} +{{ end }} + +{{/* Do not change the markdown indentation, and do not remove blank lines. */}} +{{ with site.GetPage $section }} + {{ range .Sections }} + +## {{ .LinkTitle }} +{{ .RawContent }} + + {{ range .Pages }} + {{ $aliases := "" }} + {{ if eq .Section "functions" }} + {{ with .Params.action.aliases }} + {{ $aliases = delimit . " or " }} + {{ end }} + {{ end }} + +[{{ .LinkTitle }}]({{ .RelPermalink }}) {{ with $aliases }}({{ . }}){{ end }} +: {{ .Description }} + + {{ end }} + {{ end }} +{{ else }} + {{ errorf "The %q shortcodes was unable to find the %q section. See %s" .Name $section .Position }} +{{ end }} diff --git a/layouts/shortcodes/readfile.html b/layouts/shortcodes/readfile.html new file mode 100644 index 000000000..1a7d6a320 --- /dev/null +++ b/layouts/shortcodes/readfile.html @@ -0,0 +1 @@ +TODO readfile.html diff --git a/netlify.toml b/netlify.toml index d9225229b..add253cb3 100644 --- a/netlify.toml +++ b/netlify.toml @@ -24,7 +24,32 @@ [context.next.environment] HUGO_ENABLEGITINFO = "true" -[[redirects]] - from = "/npmjs/*" - to = "/npmjs/" - status = 200 +[[headers]] + for = "/*.jpg" + + [headers.values] + Cache-Control = "public, max-age=31536000" + +[[headers]] + for = "/*.png" + + [headers.values] + Cache-Control = "public, max-age=31536000" + +[[headers]] + for = "/*.css" + + [headers.values] + Cache-Control = "public, max-age=31536000" + +[[headers]] + for = "/*.js" + + [headers.values] + Cache-Control = "public, max-age=31536000" + +[[headers]] + for = "/*.ttf" + + [headers.values] + Cache-Control = "public, max-age=31536000" diff --git a/package.json b/package.json new file mode 100644 index 000000000..92339ba25 --- /dev/null +++ b/package.json @@ -0,0 +1,22 @@ +{ + "name": "hugoDocs", + "version": "1.0.0", + "description": "", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "author": "", + "license": "", + "devDependencies": { + "@tailwindcss/cli": "^4.0.0", + "@tailwindcss/typography": "^0.5.15", + "tailwindcss": "^4.0.0" + }, + "dependencies": { + "@alpinejs/focus": "^3.14.8", + "@alpinejs/persist": "^3.14.8", + "@hotwired/turbo": "^8.0.12", + "alpinejs": "^3.14.8" + } +} diff --git a/static/android-chrome-144x144.png b/static/android-chrome-144x144.png new file mode 100644 index 0000000000000000000000000000000000000000..975cb33ba6e7db41553b8326a2d16a28086074a3 GIT binary patch literal 7612 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

    >-F1{V}O?B0~T2lkfOiT{N z7NWqOKYk4tSP|OqRAUv$OxdvZ5|!YwjqowU+vsB(7a4N;9g;*1A})Ek5>JiyufzaY zrU47Z1vbRLoGnYmkKXi^0TN!;$@p#_YV-*(j_4n8G4e;yY+ub1Keg?2zi!@+Y2t-&&4`yr$cclS2FejOznx96CobgZ zODa-hBI2iLD!#b9oW7Y?FwnMW*<+iR~CPG#b32@@d%In4YKeN1BNQ~|B zQ6r1yTSXWa{B1$erqJ%;^2eikn|n02tZ zi^BGL4l;Ud#}YJ9nPEeg+fpk_%l3q~9Y0ato!c@tBxmwu*cL$U@93C$a}}7e-MRDUCRfyn>UnA zOZ>|)h@8PweGO}j3VAzaUn>1gU{KW9I9`>cdTdKZo1usxe4FlK<#2k|iPz2F0k(7K zA#U#Z({K%Eb&Y3XeAsFr1C`ib4XL}O@7hO~HI zyj??GCC@yY`Dr~aHFl(Nqu`Ag09hwC#`Mo@^f!LZ(%XAaqq;L3IIx+lQN;rf6?bT; zw5(H@`{58Qleb9o&CC~lqJLG6Yg-OWZ4*(33i19NS;*W93R;mTKxfzv2PWJpXXHec zMPUErOp_NWkmJ7-^!~}N6xW~|qdtopvyPH}T5syWg;uJJiFC0{(cj3xHD%wRl?BX{ z`J^G;{LWK0XK-JWt+aaR+4bsvHmc`?Z9;icMPQ8G^kk#G7z@CuGVLR0?C1BU!8aItkDHd>O&XFUt$XF6v(glDh}zZ$`^))7sM?J|f3ym~~#j zg8~4 zZ^AETc1uweoMf(@Mam4&w~~CkaR!Hh?~9L>y+V0s0wqVlo%2-{idox7{h&W5XiGZL zU01Zt(AGdBr>5BxXi8ZkWv=!twTIR-m*nUX6RO*`h^X5`Dy@}N1Cw~w#43cq-P&yG zUdblQH_Um4<+sjp+RujLeOs2_%W&Jpf&dNI+m{Re#-$eytyBuLWfT_};cuzB^!Q6= zm(t{i&LabZ-IPYIQd66EC*yJJQWu|!sag5M7w2ZBj?W_wWd=Y6*o$W_&M(D)M1h18 zVG@SlT9rNm&A*mD+ML)^;V_6Bd)a5GB==>J*zkxU$tpmt#gg&p+m0r#ix@aXNH?*9 zV8@14btAr5Nf(V7%K-m~FHD-;V|c-#X4q>4o@b+IZ(S(ije4>EV9h`P1uZ-DXT=xFZY2^k;CM*yEon zjj`L*0lx#VgTg1z{|gZ+L}y-<)wWJu2_Uk|mbq|00*yJ%R_6yIJTABrV=F`)0EKg| zjjhaqAI9#lSRdTH$xTnJm>2NjQOKK_s`7Q?6i*#ShI?+$X8b+d=QOPGSiR`ua>OO$ z2;r#r%`{ziTIF~;B76QuJZLljsNp2sSsO-fm;H^J==WA<=14Ggjy`p1yrYyp2IwvS z9{BFpf_ylhIqpJ@X;zc9%he%P#}}fU?4~g@pZ!3-&lCxwb*BGBtyu@alao2g5o0vk zzall8b6hnad=Cn06$G_~@aNcUi~ zbdcZ z!Wx!3l{Q~8zWTMJKX2`hJNOa?p=6cXbT ze8TrcNMBG~LQqsfSdd3hNJ3E1&7}x)ZSMck!P)h#y^Zhxdk2v4Lvc(8BR~CDo_ZGE z%x>la`RCt<-nF3H#)>5icFc1A-Bhq0X literal 0 HcmV?d00001 diff --git a/static/android-chrome-256x256.png b/static/android-chrome-256x256.png new file mode 100644 index 0000000000000000000000000000000000000000..ed88a2224d39db7b366a4afb14aff9519600a803 GIT binary patch literal 15088 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 CUdzh> literal 0 HcmV?d00001 diff --git a/static/android-chrome-48x48.png b/static/android-chrome-48x48.png new file mode 100644 index 0000000000000000000000000000000000000000..ca275dad66aaf58055d708a509507d4a39fe1668 GIT binary patch literal 2038 zcmZ`)do+~m8vhuVVP;%%O<056Gfl>=kzF~+l#Hf1qT@QQ2{UP2W?UMglI6tNZ6eAg zg~rG&+9$TrJ>?_>v2`GblL$fIV2Cpd zLE*4)-V1_=w;)J~k@NehLl7i9;N(EHg$e%uYj+J8Es{|^Leb5VQAsxE>*ONZ#n^BP zvl#yhsMyVHL$cuX{@$==6sub}I)f0}C>_};!tRBlYU% zRf1Kh8`gx5>O!#74u;grM0SYoNJ=y=J{SLM|7UV+Sn^DH=d1>mowZ&ix_(dekGNJP zDxDbGjNa)DF2Tm41eIuA`~%5?_xXXqYm!}X)$RzmA2>eeyGAJjj^R>}cR;2Iy-|8+ zx~I}nKgkze0`KXCwMw#nA_=7P)ym;8?I-dhfZOgBihhN>+yk)(kO?!`tPQiW0r7-B zk+@0a|9mEt0;_89OZ5w(m^ZR1D@OOW4^@F*YKBlrA9U_~Csy#q;sxrN8w4&OR)Is+ z8zyBh5wR1BY3m0{fc0Y#(+g7g;5r{9z62+p09bqGDM;=IjE-KRm=WpZWy8WP7(D(2 zjIIFKK5hWdW?)$b;(Ec>HmDc86pr0I_~Zr{1Ez3&a(F`mqL2NJB*a8g#P&NU0 ze}c|=unoZ1@8H`OSla~G`awuLptpnI=iu%r*xm;2O~AYo#PqzDy7rw|`4SN~zc=TF zaLkxo>L=X&ZFs;pE5NFzPxR8eJvYCYJOnniAawxbje^W!;8+jtjC?WSzLK~+r+ItR ztQ=TYZ4yms!U#iJqg72?QREPSmmF)5CxAt7NA zG0{CSGcnSqn>G*<#QUq-R|SfJ{4I>bldl+YLhf=7Htx?|p55Q|%08nLPtvWl{zr6GaA!4RcDvt{4cu|L`jbZ{E3o)fRe_@krzA*$zo zeGT06uEc>A3g5W$h+t7I*Zu8V_guBbBSw|R{4kfsmJZ$WykZgR_`sXt!}%zr&f1st z&rpq?zF~(?l;~`f!aq&Z$hwZ%XlJP*V;0{g?N)ZFWcC^5tU*(g8qRZa7BS@8+8hBp z9{^<$9ykh}Ehs9<|MvpU&Ob!WJ#W>uYNjXG{8Dp^t(RI#=011)CD$)GBUPNU%<$@T zCVp-XVdU|YCMe|%o*&}5*Ty02Th~%=5AoiPS$Pk3DRjs4zp=0N(aiAN@(F%rxb-mF z0du50IAnz4Ne^s74>tw*x=mDv7&}Qlyuw@Re3Lz&n(88};^6S%_T%N*mZJRg?Vs!oobW(zTl)ukl~Y5F*% zC~P+5Z0~xrbLho*bH7Bfpnpo2{D8ciphO_wwTcs=E=|vR(F0QSM3h}~-QD2#GXLSO zc}{c%;#AsV)CJxoE4J}!{q2V-1jFOa_X4Kp1dCHBgB*{ize`GGFFh>xNVvY&^Duos zSe>_mf@fiy+}C5`@=*{-*~dqY#Ru)v2l#qlV) zw7Imk8A*>vKd5_sYqq!p$z7M!x)@_kql6tdC`N*hLR7|s`$f9iI&D*>PdK)9Wh6U) z=Ljh$loQJ_)Y<<|ve8o_(uHI(qa?4WfN0!x){W|tw!DvAoZ*Ah57##=FXnRf_FvRD z(kM{(qotOYI+m7@N_p4YT^sYGi_G$QxcrQyn~xzBDt!@3fS{h;`Tf!IW`XbrrOmW; zVfuPA{fItcez1d#@dwO}@Ww{Q2dH=pBHoNhz#HNZ5b=0MXc7EV{F@+z?t9Lk_5TGz z1T_m-aE48FVN$#!v5YXf|G8j4ER)6X!=7U>eIO_*XKEFVyx^>-*G2B`AqglDLJNiS zLCI;!o%mHAA&0f$n6&yLw5q7s?$@t6+Irel+r+y$_Ibx~(7ci?bJg1PH~0vMWb0_d Iv-V2(FTs_lQ~&?~ literal 0 HcmV?d00001 diff --git a/static/android-chrome-72x72.png b/static/android-chrome-72x72.png new file mode 100644 index 0000000000000000000000000000000000000000..966891f25a46b32fcb86711cea76c87221557664 GIT binary patch literal 3467 zcmZ`+c{tQv8~zztvV_5lW*QUOUfX1d2xG~bC5HT%A07~g!~_5Jbv^IhjU=f0ljocn&xIe(nHoL7IIn{|8&oYx)~&$FI_Ug#nM1D8<0Fm@}-9^Lj!z zXE*5+;NC7=$rIaOYx!dIY-VWgo0J2{S5aeKIUk7~5XUKp>z-E)xV*REsu6M5D-Qcq zdo!?wr_Q?hv7*Y)kcHFKSDR9>DoI?x!P;HQ8BhK}$?a17H1T(=poz?C+p<@Q`kV1+ z%5}1Z_(<4jTcK0AW!tXJjFZ5ROb=5P<;*~+Y4P_PyLnXl7eDt;@0XNOQ(WTW%ImOY zz7^m)>f$K1i`;tHd3-5wJTH)qwif!a@P)A*`w6D-!)eSknD}!SA3zwq0b`1GR9dwP znvk}&le&Pf9Dr4x?$&>A*jYASNUE2QCp1S6$|t_GO0)VqPJO8u$yR2$DkWR^RTg{Ih{&5(US+mRI#bGUJ((cM zqGjo&8{8&6So4#X=l}eSprq(}9!EIR&K&O&uiG3Jqy1K#MXQ|)OficVa*Te9v++~a zgnMKeRCf%WfEF~lNDWgc{X40Ry&9{P6@q1FQ?VwBLrT;=6mcUG2*BOuuo)8)!-8ZJ z|Jtt%W!o-HcJ=)IM@wV2^h*2SZM4xn4i{TlhIBWxo{HqVdUq<(wj8fO#H}6<3!$z& zyVqq@QjV|-mzWS4Tp~?xy^lB5I5H+cLPXPv5q)G+JDwDWu_WO^g5BFWpRO+MB|9%K zge|H*)5!O^A%+iGm-#L6q}2Lw!b|E!J#{_@E4gVNS zicVS{#Qg)|Hy`0oN&=HJu5hw>ZqVDJ-&=g`FP6YqR!Id#)S&UDjB8%gM%T_}bAG=k zV^bY9$T;PU^{*WJN86CkdF+IS;2}}+lbO6jer9^V?K2KOR{XOJK0kNm(`f zNoT75gDr0_vzO?p8yy49qlL;ZDMRvF6h9G#za?`pJM`2xiF_$gS}*xRxFo@aLfq*1 z{EI7I@{!!GTiJr|n8))mbgmjrqs3UpP=#k43|}_arIZCGS2v zjA*A%G{62`UL=dXv++h$Li)^&p-ZNZYb4HV)Z27fQ84u!9@kCN8oqrgSJ9IYfI$d{ zx2TROoa5;?FE?r)AJ`TW{>-0*1NwapY;jei)PlQ}ew0aemIBF+Ly_|_vDw`ppD>C* zSxf#h#4HkdEO+!s_t*DQ^!jR~pRmi-gwmzp0+42{k9r_YymD#W4@08rJa#6eUfquy z)K0LHiyYf*6HF1={7!GyvFP>1ut_aLk86Oed?t17TS(5r9$3<_k6)*6f7y5HA-P#V zg4`ieTVRjUQFb1PkheYE{n{64e<5R-J3j2}5h&7)AG5e9Q86DU(k+mvJ1EcYnKr{A zTUYyao?{^2Q?qmFJCc{ql4XlYutBx5Ag7Fuot3AULlQ65w|q0R{-TTTSxZe{Xhij!cU=N*W&FR^vn6ppFg=-}?1btC1kf_`bJw-~M_2?e|v?myK8^pxbdg zjw(?*f{7dDhoP&Qz=UWEVSFJ11ko=wg(DkL@6ehC%bD-3*e7=tIj)gkQu8uy@3iz zA%ld-`tYvri)PLKfG)A#OIqZc3GSwYfcQ+|uYiE9@KhzAQAr!h=FMKiPaDLwT zZ0zmz_46a(iU9uR3goq1xNF$5wVlr$` z+4J6wDoq)S9q_PSkd2d+ zfw`hQY9ABEhe&rz`MzkCYjUS@)Q0wxyyt1CuvZxh4hyWI8uv;5_SU%tD;dPL?pbhu zHP3eA1L;I+U#WzK%-;X?^hr=l@o9iaq~S*0TXD9VLLFjeY)vDs{&d2$x4T-~#WT{^ zXD&0bnQYe_kpF07Zh11RlZzr+b?yVe3vF9gnWJhLa9O-h3;V>$$pGdKQq9ZB+>cOb zDv9{)^z2QA<&TOTfux&p#a-J>AV|0c!9ut;xu`0eRJGE*)#Dq|vOk6Ydfd2p0Lhqi zs6h#cG5HYRWs}VNXJ>NNJJG4bgAb>RjcwRlOS?61@*uOAWKUSeS`M7Nz*+)xBq%BX~vDb%J9yG3)_(T{%UuSNg zZOxd3sb53i7UUWt3?VpKu8Xj?a{;}7gz!)0>kT>;23~=BVanZK_rR_LtX`it=E=nnrgAp!MZ!@SJq`3Q-Z+mG##PajUC z5vw#Un9l zB|BgJT>QEnCsE?wXL0TR_m+a?ZGj8bU74A4A@U$?|kFO`H(m)CgncK2x2ol2lB zE*O71ikROrBEMjK&>Nklt{-X3I_{@S7GBC}^%a3)Ib`jw9Uc}}b!L!RHYhTOV8Sh_s%$s}>HULW`K*>x4Fd{DFazj?S!JA9xrMn6Q+epQ;o3O)b_~66 rEgIf8KHSsM-vRAl>ci>f8^{1Fd|duJnhLLIAprfG#@ZE{4pILCKjVv* literal 0 HcmV?d00001 diff --git a/static/android-chrome-96x96.png b/static/android-chrome-96x96.png new file mode 100644 index 0000000000000000000000000000000000000000..feb1d3ebf65c233d53a029d00106ba47a91bc8c1 GIT binary patch literal 4747 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 + + + + + + #2d89ef + + + diff --git a/static/favicon-16x16.png b/static/favicon-16x16.png new file mode 100644 index 0000000000000000000000000000000000000000..c62ce6fb25d8786669312332d8fd7e83ac01ae74 GIT binary patch literal 1000 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>4GETFAq=4uOM>AYK&>{%?JTu4;pw)0IZVUBX=W2VazTmI*rnhPf zo@>tem9X!B;GX|BTmIW_`5&_PSKPkm>T~W2_kK5A^*{B<|F=K>_h0#MwfVpG=Ku3< z{(tf9fAoR38Vmm0Z2g~pwnCF|F&D-0Tozp`M>z~ z|FC`kH$43R@#p`qzyE*x^Z(tC|384_&;Q?k|3CTa|Lhz8FTVZ%;phKJSO1%DdZ)4Q z|CDS07vH%j()Yt?_5ZXZ|3CctKk>@{1-Jgc{{B*D{_pfd|HJqHPCfWiYu*j+_V+;b z|Npxv_C1JQ5cWxpZAzNaR5}Q_;-G7FQQup5C4wUKiJv$QhDHj;N~m`kXzZtFv~E zs_K!W5=)lk=Dd9)D>HXaY)o$MlBE(UDR=MK+U(s^Tl4o1^PQB`2Bts_<`g1i4_?tjWcfS*zto!h4K6mmHY*g0gWle{O3j7mxnA^c+!DUbLW;XJ!f>> zm%ov@{>8*nldY1~b?F@&@8a%1O-`z=td(qGW~riA7bPh#exwvCnpzgNAm8H36;qSk z923(mTNeI%`sC8ZtCufdefWr_h+&Pb!QAejYs7(mRxNRjC`m~yNwrEYN(E93Mh1rF zx&}tNMus5<7FGskRz{ZE28LD!2AVMsPNHbY%}>cptHiA#f-#~Ls3E*6B%&lJv0R~` zC_gPTCsm=OvLICRr~FT!@q8M@z^u%zm&`4!EbKj5gjra@ zrNQKI3bXR&5QWn>uADe>=7`J@_R|d>3%v9gUWp5qd~!0K3bca3)78&qol`;+08b;e AtpET3 literal 0 HcmV?d00001 diff --git a/static/favicon-32x32.png b/static/favicon-32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..57a018e350c62a36611dd42656596c6b9e549c7c GIT binary patch literal 1648 zcmZ`&do+}37=Mkdd#xocy4W-_OJ+zk!&X{k++s*>wPGl88Do%%Ttdr+nsh_5ty8CU zsf=5wM(&pxLZXxjmCJ1I!~TlP3-|L8s6_dUPoeSW{+^PKa&Z?e7J0eKl!832Gh z+0u-HqWYItN*sO7@=_X5SaaOe))asT>9WhmB)$~AEh)ADFf{>)O#omKZN-iN5JmuC z%o708H2^lyvMU`-0Km}fZJf*zp$#xw0kaWAZ~)^L@G1cT&q3^;z^esBHiAON;3rTEf%;t$jy;Mk<(#{i6s^A$e z3~7R?pcL7!Uwj~8L@BqSC?m&b5m1|F}29vpat1Kl|=tOZUiz-1Af zT!2%Ha8U@~&B5VWI6MbOKEc=1(7qZvR73kJc(MV0T!5Ap(1hK)_V)$D!WZ)AK5FF( zjf;7h=+{cAGrG4$$Un6Urgy{rWiY7&rgg#OPLXZpGl`fX)r@(){2{drE?{;`pB>f6 zULxKf)yP8st8ZQM#Lu^cChT_c=mF*Q8T=jmXyXJrb6yOJog<3hT=KpHYfK8~uouRa zXfLH4o-Sc_-Jac&^a116EmG^x?QZq< z+y^W)Ra}WgR~1c*?+RjFkD5B*aAdNBX^zSt2D16ZDgG3?l@*=!cZ$BYY^H%)Rc56H zh3@ahWV-p&SxJ?u#%e4B$vd~Nl-W@z7QW8m;m*Dm6joZ<70vCEHaXUZ4-Tl~h}(_u z##^L{XXv44N26D4RqIo@b!PDNu!^!1BHZ_3SRLkXXPI~$K=6JX{ zA9ZkbJtUt|bhj|SAXp2pZEI+>bJtrRKKs6nm4ASLkYC`*iIIZlcKqmA(8Oq2m-gF-nfIdOb zXa_-mhrXT@VK<3jNYW>26ZA*~0?vcq{69fpFxAgD^4kIzF_$nTILvf%VNi}msMF}d zzJ38d>WoO5kGda?;SIp4?4fBnsSsx^t(JqWZRB?pAg&>+>n*FOp=f0d?>&@?QE{q62ZgkS`XpJYCzVnyTDX2EDs>EHiAY)hX1r4AU}y~Ma<{0jy%=16KVOu zYICiTD(mOKxDiz9!mP1dQ`T)H@7s`xG>&lfy`?t9j8wbY!mo3H>!L4ilncqXoV=8w z>|1JMOt^LXbKD?fThqEA2E+h*elbU78%5RfOZs82gXLzNMH&@$56GsF2>_4 zz`P4oZpBWFW8!wpv?hhJwBt2d|BM*KJj+<;rybO>i#mrvcPJRD!ZTEDi$}lhF-qB2 z!rpaX+^I1Rc`q?v7PT#wbv>N2;U^|`wt@L|Jt~Yk@{re0JD}6Pk~RjaO_)U^_lJI( z4BbaP>_?=o$$9 z`5>p&4*fT_)*hMl;0amLr6eeBjbEp12W2Qr9e%zAZROK8F@)QWq3WyJ=#RaiV=Ji4 z7x(Dc-7=-oQTe#TRrGJ~zM?VSDmD9;)6hX()aj=kw7r#Bi0M}CKp&3Hfwk%%k7Fd*31Xu+0To`*ejlK6{{_YjTa(px8C9P9Z~G)Jfg6Vc4?RHnG?j6B{x5 zYez3NF$V1)0Nztp+|1K26Ke01e?5F!R&^^g@a`HS^4~QgMXQm5idKny^+$};r#<7g zQagazF$Vl=J#vN1MKWJCeL&r`F`;&zzi&Zbo+3tK^=-rWMmfz!#X1gHu@ko~K38Tm z`&O29z9H+;Z;5GLcaej0#Ou#l0cIeT{yyeXK)@j%#1}i3F zB-YCK_j=*CVP5zIvOiGf&j8%+FrgW~7-;rzU++fBc|yj}R&4q_k{ zJ*LCL-?awd2Zp=&?@a$U`p;eeR~o~&b^P8&|JzeV)^s)Ja<SEa9AAcvj=tnP=ZSeSRbcVhQQ|80R>l z`Ix5FJ>ZV@Slbcp{U>edm=G~oF{J_{*DBxh`?v=7CWsyFvGOu@F&Z&r#>aS$*0HvL z_-*E%Q}J`k z!tGnmzQTI~-WO0;;5z}wN@5`$AgtPHh8}^JL#mXe6rN0)pOa_yLnjRx%35`~@`bb&={vCjYB}y2v)W<& z%!Qpwca5~2cJBe1|H${UrhB%->ju$>F4bhpGc zbJ7Dx4DuTXH)V3EgStYs8)?1~YUe}n>3FokEB21xhOhnjn|*NaLxBzCWw= zvFNu?p#Lrew#&pGfKX>&2;NSVsfw*=%KTMr<-OnYz`hw|9UIJVM%}N;6HN?}(2YCK zM(7_YzV`I#eb)a&ko@H9BRDGtIO2si9 zi}yuHom6a7s)T8hQeXq4QbkM?{(n>54&5%@PTg)n0~6>6?HBDQmKmh|sQs$_?6k3- z@3dNgehPBG(@MmT2>fB3Hb6fbhCXzL#5~I)pgO1u^xp*Z*`Bbu3FJEtHvvaa@&r{< zg-Yzvcz@mjbJTp;y#zAm;4xTBNU*EtHPqSXgSS1_yok(W@N0AEw87?aZI@@Csf`Qe zJEfsh}wd82H9=kw^@+6VA{n!J?>~{HajlMI+mDcnn33;oU`Y!uIDqMRLY`4qpSEaI+fQq}=V6@xj}s%`imb5g z_p4)HpPAV=sFS*BgSKeXV?WnzpKt5*xq@jV>}!40?XjPG*S_lmq%{u1|A$2W^DBH8 z^sRLqbFOi><(10)Pk;YN`v3A##AALZ@?|g33nqPm{5O9RDZSv`|D$2Q;-<*8lOk77 zAaxP**H2@NmPg;dX(9N(di+PD{cK}tG3cT<@qS9rQPH%2rBG!10J9Hd{vIjmRgtWr zCLVewn)Zv?|9@%DOU4-B9EE}EJ5Cdc`Jd|# zbyBxy{`agu;}Ub4W8ZX0ua9YXSM~4Yb4F~4YbfvkoMq;iD?S)t{l)xuAMNQhWT_(+x~P-7O&j(;w5jdu6#LaA;7A9L@z#?v++R;`QY1^; zUk|?jdd4*-uwNlBWqkJL&}mPn4QP)RnQhcTUH)u@QigLtL-=hFbm5M`^abO6lNub6kJ?=_hx56PB`ecnf-&OVL2q38^k2QhElA7tbI3OH7PuF)SZVtxhd$P=#KaQR(l zGoBX;N$^E~mW8W_{Nl8kAsU7eGUMDK8HOE-5Q4}=IHo#89n|FxU(g0^l_X(OvkBuA z3`?{Cx#JWedJz7ugSPhp9dZ%!*>#{Q=pTHAF>db+T7+}+<;e|>3W<4^fu6uT;diW} zj&a#E`2D+g>f+6O>x;%2$GF!-o@J~f4|z3^QSsTeQ2rVy4{z3;AGA9o+Xj@m@8~#> zY+Be;^7bsYOHQ=1N zA0ZEUDMMLX-JE2M(V`D=7US8CdzkVY=DRkoaa^m9EHdBuaDTf2c*si`%4&I@<+!eB z`ThUE{L>YLH++W|dgN(?yuswl@UH0WE|Ej;o5VMC+}qK9Nb=Xrw@D@E(VejO=9@3> z!9$g2`wyed8NE&7{}(95J~FucdD&p`-~Jh9+qnm`wx9l6(E7Zm{pR;8U_bk`;|GdG_Cc_PXdrmigm#+7JWA%3XxoOhhimLVGYG MPch=el%eeZ07#?~rvLx| literal 0 HcmV?d00001 diff --git a/static/fonts/Mulish-Italic-VariableFont_wght.ttf b/static/fonts/Mulish-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..e5425c75ee1cd6cd2ec848c0f602d4c95d3ef034 GIT binary patch literal 219768 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 literal 0 HcmV?d00001 diff --git a/static/fonts/Mulish-VariableFont_wght.ttf b/static/fonts/Mulish-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..410f7aa63860fccf494f2f96c5b9bfbdfe0b2826 GIT binary patch literal 212500 zcmd3P2V7J~*Y}j&r8lV}!qOEHmffY=fTf6vAPOQ@1OyC%0qiM0rkP$$OgE;RZW0sI zqlxL&MAM5Vrm0brXf#Hb?>}?rF1yC$eV_OJJ>U0now;+*J#*&FnVBNJvB;AwK?9lQXU7ojGqSAq+TV&g3aYQ%-d3`~uJW@%&Wd;>PY5R_;P!bUmJ} zO$!Ea_4|TLcB&2V%oH@tEczN z6MM{rl)esf=Pc}QS=eT}>;m9V0KV5#wC{qAhRg9tXkQ-*!krirNDc8K6Nyngx&0Xg z7Nq=hpNSA-x^wl(hYg2L!6E!71);=u3)v#GdlRq8!6e8hiVOfN5ibrQW?~^}raWTr zDkOyhN0h{GnpJst%Z;;xMjj!Y|0uwpkDXB=?q9Chc%E~$^H;+mgFhZkgb67A46KyA z4o(TXgw^ADymqIvNIFfI7%Ey%SYI_UkJn)nt0tBT_WopAeGEhCP&1*|i}&;}+lrf+ zaLHFNN~0u<_z>SEt!=$1kBFdg2$2Zh@l1UwxDusOKgtnbh2T#Ohz}zKP{Ad5q=6Lj zW9Sn!hDty^S3-RB~n}>0~4s zOQw)Hq=PIa=L0G-Q^~8AW>OyDi!jOsZ-N7bXAm5!v{A}Y%VToG@e+J09B;v?O8ZDT z2uU#-2B-$7gwqp9eu1zKumJ)aeOgH4OgxW4NI{4a`DFcQ-*9Jx>~liegq&AQt{+cs zsUnZmlb7d`YXK6CPTyMl$;M9~`}~P-w(WU+&l}&p@x!}&KivPxfiDhxdGO0ayMEdI z%QwG%``h=w{c!k)BR?J4`}@A%_a8lY?9j1a{`lpO-;N*o^T?mSpE!2nkCVqw{^|VF zd7|$mrIazwjNHgg25+N}(bwc>^7jhx3iJx{4)PB64)F=`iSrHh4f6~4i|~*1kMbWF z5EU>mAUa@B;Gn>mpus`0!Lh+{!R8QiNPI{_NaBEm0f_^WLX$&N!cxLg!-j+p4Nr?0 z7Lgt?JTg6Ucw|OYMpR~$WuRqX)S4HzsdzLF~x5QRdO+G3LVfqJ)yf zvZS)4@}#lJ70KgL#-~h3oj9awNcGU_p_7Kzq}8NNPMb2UHhpS(eda7%i*260ExSE; zL0(thnfVLzyGJZS=Y_N|tZA&2F)@=u843khh%y7gA1Nc>#L*Y{3;aFe!}s!E$sm5% zU?fR~5QCZI0Ncd3^AGrkd?_2(7$m?qaM0oRb4Z3i#2-QY7=IkGXiJW^{0y;ZOOCem zAzZel=n~2FC85^1rH>47O2v}#Gf&h4#8}HK&1zg2>OYZhLZ57Z>u!) zvyKBT?5o!ide~JLXkvf*q{26nV0w>An}|1bl&mB4@c??6N_&IODwXyD{Z5tk#oVHJ zrhX)WDp^r~Xtd)BCjgrIBb5#$L&(D_9fUD)g-QpLG}5fnAtZt5GzVbRL@0PDMyRh! zYcoI%=^_hABk3d+q!;%N(oUL4C0Qg>J){jIO~)8cN--Psl5XG?<9#DA&-h#1{~E)c zS{LXw{{yXmem|MCpcd`m>Ywo{f!7SYMZo^MI@SQERo1@|HT^rR382yn>Gb|BMt|-4 zar#s*Y^{L?epSkKUp+A><4Mlx=$wE>HLL1;c=!s=`(+ONNnT*stq?VwMbb~9i!sx)g3D2Ft7d0?L z&Yifo0Lu*gHiWA%tb8tT!Lr8hZ!(YZV{Oz)4h<1S+@7TD<4mpEjBS8$udY&)H4G$ z6Jt%QQKza;5#-YdXpcuvb03TSZF#CJY@nF~rUWHIfM*KG@{{3h$yJ>@d z4jkZmA!;Q0jW#~a#0n0wz=zf%Ldx!a&W!oI8@c8~22HZ}6rop$HW2+x^s6B*x%a4^ z*{WJ;5!y|cS|-Zt!qqBUavoBmFZQ6HE|8;H^wBml6!R1ziGYqEBcqT97HGCGI&lmFx`89kUf0#eRUxmf<6=u-i4a^W|h&H4ctcKBsafUj> zT*DH>{e~wEFB#r7d}jFG@GFeQ3}b<@%vfWbWt?wZWL#;y)VS7oyYWHeX5&l7cZ{DH zzcn5(9yb|H38oCwc+*tVJX5#nY}3W2>rA(s9x^>`dd0NebjWnVE6mI6mF|`2RpM3c zHN)$CudBRn@!H_E!)uq*t&9+vN&qIC)IXZw32pUi{;Hm+)4A?nfcW7d0X6TsEg`sDKt`5C6^sdm2q0fcB z9r{V=p3p;~C&IkL!otj9>0x$iA_hhzM`T5eil~a19x*TC%!sohE{eD&;?{@_5syc_5b;LDj)<=#4n+JBIVdtW zvN&>92(+zKr=P=Ez_=IAHML!Ht727<~2MTL<4a_=&+=2fs7;)4_kndc}su z#>Ebc&5d=$R>e+_ZH?`TJuh}m?47ZX$G#lRm`rAZr-wj}LJX30a7XC$vqzAAZJ^05?>;+GPdlAqF< za&yWDDSxEqrjALSle#qZ!PH-d*oQO@xqQgeL%tho92z&YVCdyTUmW_;(65H>O$$r2 zq}8Wgkal<4yTc-eB@9a&mNRVruxo}rJM4>eL;CRa{PfcF%JgaJjp+;0m!)5jzA1f6 z`rGNB4EG%#F+5>-#_)pSWy5QRw+~-5{FdSG4F43Xys;V88TA?GW^Bs%B9mtZW=3Sj zW~O9XGe>8ZW&SJkvCOTR?__>up%x!YxFy~)-EzI<5zDid*Rn`fVpe9>gsir#v$HP9 zx<2c+tb4Pb%G#3kwl&c@%sS56XkB7mW4+({mi2%w!Zy~{ZCh^JX#39gv+bCj*uCxf z_E!7N_LuC=Y*Th(c7Aqi_WjxWaw2maIh{FcavsfjBWF*pC3kM_irlMnAIaU3dnhk5 z&yhDiZ&BWJd9UZapZ7(+DL*~GD!()Ty8LJJU(5e6|MUDG@(RO=T2Ndtv7n(~ zUcn6ocNJ_bc&^~}f*l3B3XYE8BZiEaI-+UBZ6n?ov3`A0S)=ETzJK)dV~k_QjX7(~)nhh~IaU}^ zIKJ@8!aEE16GaZzOV^g(UHWM0JEcFB#g|Phn_sq~?4q(O%Wf{a zw`^0{ma^B&c9iWc`@Ni%2bL$7k1QWsKBc_5yr=x!^2^I_E8qB+Yya5fu}jCkRuNV) zrQ(i?4=WCivy8iN+=JtO93MKqWc-5hw~qgGg4cxd2}>tjJz?{NpDKeY2UTWQ7FX6) zHdUTgd0pj($~P*%s5~^$cVhCy!ikqmd~D*@i94$jtL9f-SM_Gqo~ol&ebrIbqpQ!V zeq&PZq?$=*O*&B1P_wvZ@8q({8zyg`d~%B4l*lPbQ}U)%PPt;r{ZoFc&8?kS+fsXG z?K!oV)~>02p!Vh3_iMkX{jrYJMb!dcV699b$8Z1S@%-ihjn}E{+t>$ z)iJeq>a9~hsORH3fAf1YNX7BVeiTK=?o(=MKN=d?$rJvZ&m zX`fE}X4<}Kho_xvFf{}o0QKD&ALjkBMb{rQ~mIaB6z%sGF~ra3>& z`3W`z6^4XYFCuN9N<2pJhXIDl_#a$Q*;uFj3;QANR|=WsqID%w<4NGZc}0+Lk81#| z$pP}JC3lnBf4GD-)qyLS+=QTCt7Qt42MHxtBJ^MFGM$9A>i_ogLK!Kb5^>5^4x8<- zS3E34Pl=zJ@1LJ5-Q<%?#+~*WMD*)!>^A;SF0n5u@_Dw#7__KHZ6xk9h~K|?wU9iI zYa}e&{%Zo(QU7#}N9p6q1?tkCwD>ytrU>gFK`p_J<`pt6-u!Pbld5?OEPwaQAG;KP zy)K8X?s?^sfA1Ph;$2sQt39=L%~j7qIJMBOc(Rt8n1dke*+NcarbtuIBde9OwB;Y&=Ju@484?yl()Kr`lh%gbW`68^y#Z`lST5(;8 z(}B_QnuOKW0(n+Yh?R07u;ZX#hT^&gE4~t}?dIeBpb#{3vFRR#a>B3{96_L_Ndwl` zH-NT-*vVDMJq|11Dsm&JT}G529r4?2G@Dy65wBkd~Mk4DF%fru{xe1 zSECtWWJ&krv|3bkuPyBt4dd05$++ z<&vpFeE%;l?Auj<3%eR6W5_)+m4k15in{HUyMtP;R|s=)9Jj56mr}mFQH@B ziBo8H1hmSn;IAI{ZI#$8IRjXhd1WBFi*FmvoVtGTj7umxDJ^+aT!w$;^vI0Jk@6rXbD%ZaJ}7&T zI>Z?~B6dU^4szl~o5z@o;&GG{Uz|{sP@LdMC`l+ybR?E0mL-;}qaE#V2S+=p(}qkO zQaz+*Xq7zPk%v3O>eB0n*JsSgn3*{vbCzYMWwvEb)|{+HYm>Fv)?{n8wZPJE%Wlh_ zpVN`MAh$EGEC0-b?t^b%#dz*d94cwmx@d11gPvS#(2G8QzJdag7jJ0TcY**}x*b8E>#Cr7l z*mbdgnElMb=5TYgIo6zDPBB}|Hgkcw#9U)uXkKQ%*nGSBF7v(S`^*oUA2UB;e#ZQK zd}w?`d_sImd`1FGFeL;f3`hu1h)#%27?vmBPK8x|WAYmQBdO^eNl&513DEsmWK+Ymb|wj*|F z?8?|HVy}@BSa0@%1O}L+%rR!Olz`QouO!fGUI_`@X}$*%c)hIiPo2?W0*6Z7* zZ#%w?_-6OF$=^JH>+Ek{Amp1@zj;f?z|&Q@mVeXo&63?$60-XogeHVDcF*2Da(65| z4c`3x4BxdToG!{d;tV^Au4mhH3cMP7g;RJP&P&^P2VaQ$Mx41l<9h!T&fd20w{cSX zl@2@I9j9mFFq|0D40F%}n$ZW=8z&m47#obu#(BmzW2dp#xY)SVxZHS_@f_?Zt}K#UWB5>>!-w&7zLKBK&*c`r7V?UPa!JK_8H-u4 z8WxE-l@WWmi^xi}{oUvR4`aXfCGsix3_G^F$UZ)b=kn3~BJ96@Nq&J}1Wtr$9L|69 zXdx}5b#xk?N$1fv+C$f3FZV`hpNHrZ^d0D*4>A6}<|FueK9XO+r(q9w7C)2E;fwg~ z{6_vczlrYUmDtTKDl}&Xwv8Dlk{o&EZs@3ryr9@>IE(Q z8)jN>5>G>LMjK92Xaq^114tUq$A{5q;-Fc?O5@3Bnoi27o!DpsnLtNi*3Bmq=_pc3 zN0Q03giNA1f1tHwE}cy3X$5JbQ!rnb!+x4a>q#4(4o{&o;2*Pq!dHaOCY=-~KD31_ zq3vWDh4%rvXj0+zM$`uZ|FzlTe6?-A_wR< zlUZu~F59q7p3A%y2NFRkw z!(g#oO3xv;(`(6P^jz{2{gOY3nP~&R7kmE?@m+j3e-vlykMIXDy1(IH@NfAKd=LMc zKaG=t7x*^*I^W7SW8A;ZU&4I$B0Wrxu)*{Y3x~f!B#UAL*#Mk7MAMU)A-q^1d=!3$ zhr&VnEB%fBPLI-K^bdN1dBan|kNGlx7QlkxuMor{FsH__HrCGO!@r;t-UZz_wdiGw z*iv>rybLa47qZptVs;sP4K9U`!S(D0wve64Ze$(oYIq*3Vb`+j*cI$bww5hpi`jYb zhl*u4VV1fXJ`lICcy=rOlPzJh*k^1u`<(v57O(`ijwQ0&;2p7^C9~TxpWVSy*`1i# z?}D$y-I(3(VZ+$HnCI_2oz7;Nkj_)ctO+3ZnxPdvu**d~_G zo?r!R1l!C;vZvrp@iZIFp20cHv#by{LJ@nOJ;{nOQ#xQTl&~$Vlx<~Y>?KytUS?z2 zHdeu2VdF55j>k#O1ok?sWN)yE>`hk1-eT3TFeb5gSPgp@R>ym63VWZ`vhA#neE=Ke zLsrjrz!KTX8rVl{I{O$t8=tV5>{EDrY``r2IGY1MibnP&Nupsm$sa^A=wMPxZKQ-+ zNj6O+Rq#KVLQ6>vEhaN)CF!Db$(gj7^wL(coGu_MXeX?qGs$iA8dwHv$W8QeawEJ3 z9)K6YLv%fPlHNx))BDLrdM9~|-c6o@_sSOfIN3@!kx$^Uu!Fu%zQRoUIem|ONw8i&l}#=}K}XJQ>cXOUQ+E8M%lqC#&fSasgdR zuBPXcHS|JqExm|b2TT1LdI5QzK1bf9FOawC7V<7UDc++mllSR1@($ffzK0Lacl1+u z@O(k`(yw?epUN9}9iPq}yoeX`5+FMD_=pT}GI zOy12G;=Jt)-o;n*%lH+1InLg$mbBefTyct#;fmIhM z=`(0sBjo7?IR`?QtR_b(Jrt(mt6h5_XXI(oT!{oTtAYi#U*XJHd!a=fXrr-dADYFe<6{3zqknmfA| zkR9{78=J_R9qp}+WE;FuJID(%eoDrV$@oDT-y`Goor@N9lbgD5BiD9yH+PcDdfGeZ zkqdhk&Fvv8dloJ1AN}ng;;ocYEL>W5#DX^8N(%NqS5q4?S-_2=i7eP3g56j?0bnL za1E%hh8HdG401EUUys46`W|taz@)i|6_1!leWg*VpGF_XPGDB*wkCXmvp?#*JFEd>6vSjsv*n$%u8TroMv`mg5Gqps)2~B*@(f9X|~F zP5tjo(pseKC-$r2Lr6)=g3V*C>>Ktiunm|=GccFl@5(9K*qhCT7eX^@VPC=fU>Dns zx8AT95+wE-%){BrqGKRY<2+y@h1Lkwa3xB=}59}Bb?KWG?;_z-Y)470?DlNhlQ zWAG^$u-*AKLnz|64FeEAZ3sd9j2n$8i4iF=A|yt*!~plO<+fsUA9dr@2@dy@Z^$R) zU9yebkA2Q_!1;WP*gE)FC!nW=0mBS^G`Lo8_(?oD`JdtqKOx_UlKya| zen;wOAv^wyD|G-VC!~%M%J+*j--o!L=9_qWn!kZ~6MqZwGp^EJ!_({h75U~>`9@HF z*_GOY6g*1-d)AeD3aQssX-|qYe**C{zzPKY&9HG_gk3AF+`ar~euy98$M|vZr?)YK zALUTtZ;JQ(_x7{g#gtRc=|cJ+19H>Y6KO#zRZehibnUG#M^DzzOd@uWe7?li(~hc_+w zhgLzmzK{45c)?P5zG`0P2IV0uyke>JilyMdtY~Pxdj{58<#g(Qpl*zKVI-A-{W>x7 zB)6h9pF_(CZUZE@X31@$l!O7Nc#E-T9w@b&(0s^^Sf9TH$FP(z2YAalAXv@;2gDqJ z6`atBB9Ats3Js~th{#fzEY(kz8Y@eU2acc*`vZMk(~e@MWc+>p0SN36KE(TtR$*W`wc?P=zci_b45{$EM zoCq{vf4>+Qfw~5Trrpc-vHk34c7PpZhuAOByhe5c`)k2GnkOOsC!F_#_&}bB^l|Jx z2J$GLfb<`n^8g;nkb8TKS2xEblAoN_-N&f}2&9aZw>VLTS;Bdm}6z$a`l(ubLo zdt(PP2I=3}Nz60Y%Oi~KhJI(z-QOT?!JNyW&*y<(AvrM*T!xjpm=A@H+)F27cHBVs z&_|`_ht>xjZ&~q{l^oC&AfDToju6aq#y7E{<9D7Ys{TPgZ%f#AlJI{k@IBxTfvqQv+_$ffJxEIaHhf7MjgdsG27M4* zcV3Qscs2-F*?%~sf&Pc!@$bS>yzhfWA?_+*hH7L{IJd){?C<*&;X8zFc=l3ZD(-cF zeU5vY!V&2hq#vW=S4s$MCg_L|23fUfcaio82lVH@qr4h;2p9v6h9K=O(x(Rgyc_H& z>h}LZFvNq8bHJAff}aO*|EDkmzeo7*h6g}v7idnzi21wl0hz)6Q{isnkKb~nof_C# zB#Mp4y5PSXDo7eTHK3oda+33ZEAZuHtOzKtUIeUIa{ewzp3+axn?dkA_&*wKSUq_| zwmJV83Q&)Nz9UTDMOq8k1+PS?*FxWymX5k5n3YC*mSPTy|e#N#e-L^=%jR}kLO z1NKtu-9tZJNxxh@S7HYWED|J}f*LY5_%1^*$iEXe9V8N~0XrjfK$1M?-Z z4DbFnq@D7P5F1Qr&j4K|`T+|<--Ycc<`Fzs;v8WRR(gZvJbe?!Jmyb~A6MWZB-DK_ zgpLnkYl+1}_a6d&j|#t#FgaIfbC#F`G~FxaW1%BgYk?QzS?H-d$Y}JnMngJ61#ksE z_`tq{FE0Y@5)x*(3oxORwK;tx<})z|dWpG=PXgXyyuY1f@Iui3v~NFlE<&WP{}I;9 zXw>a$(0ftweIanqMp)bT8w_7xSbB~8X#{bH*NH4c@Tu$0E72x*;`uc)TJVa{h;$?G zfCYpgc#$$e8O%w-1pnNCw5XSuW0eggZ4+Tri1`A+B}aEzy3dynl99Ts zbrP}@;d)ZeAahY)F%PhJF~7^Xu5T-kfX>)YrZQn`h;oGd^m`@AXE^C+G3fXA^#?W% z@=63;13zd-v}jAbWi9L3JhE}Sgxf-SqN?|oL-cZ}@? zekifB(MY%9w~kn4$+8pCm!F5_J{WX{D83UFp9HuQQAQc^euv;dXas%1=f-|M!Am^5 z3(pDQQ}9|yrh~`nY$b^h0enmsGGPJ8Ux~Vlde5vO_@rY$d6%d#&j>7zJjeH8w1AHgOG!Ku(Tl8ib=Qr@>uhD@@E#*lV|IGh++5e!IoA{gjh z$ScAh&`;PeM80w2u3!d9e>TccL6u*Qlg_~i!^i>bm>z)a>fqh^Ci+o5`CJ9zYem2l z!Ea8rfUic#KRg3xEJBmIr{XT!PUH_n$U?9oh;|ljr^7@WR;XtI(?dAYBF_L71RQ;a z`r>{b!o>)p-9;#JON;01Q=U(SW#YX7Ar0Y1gkcCt2o?l^%Vi&}Cl0=jj5Ojq2Y^}G zjU<%6108lH$}2z_CX&kG_bS7Akb4Kt>>)2Hw`1@_K%iFW##uQ1vS401hgc1XnD^32 z57wt23q0IAMUeRp<3#T;&h!uCr0XzFytE);I7hi!g+!e#`K7Vkx#X$a?|K*8^&2%jN{ zx(ME%L|CN4eB3WVs6i0#A4RwndCU5K?zd@DPYeipE-&MFq_I1ju z1sLMm)He}t1b5T=Cie{hja_}BUKjMu?i=5?P+pzLEw0W}pQU)j-X8w?9>C7@Y5oie z049+)sQ6xmff}iadQork8hk8#sUQ3-0%#z-9D-;tPF+Lj0Qg;m!P_Am`$<>9cOsca zV$7bz`Dru!F9yPcA{A%7KhYR`Wgr$_CT1$U&|7E%O{7UQ8K<5pG?fmaLuncvM&6|9 zbU6GHGH52X&@A}C*{B_TDvcbY*)&J`sN`c@7SIuNBprowVv=qB6FJQ)n&r2B*?`_`NjH z>DUXi;@oux{3mA8S#&m?LmP1t-AbEiGyF9^gl9}Ed}G?_e0m1$pbKax?ZTH5&ZONq z)$M_YMlW4N7n6m=sZ;qy|>80JUL49v((@CgyVAHK|w zEXAqFGUiWKzy~A{9w5RGWB@q}-XmcwoGgb&NF)>fB+=3{WH7ur;^4^<53A&MSQBT% zYa^MZkVna6%o9_vDoKUk2EK3skBxLT9J6!=?27N0g`9xDh84aVc9sqA%#{sTNOX2H{B4t9FCvPL$S+)CD|Gca*l zrhB?{zz;=uy9i$v-Q#63{8W~*Wo$WH!Omi5vvct4-IeTLY!$p(gfGm6@P-k-Fqgm+ zM)<=Bua~Rf1#^w^f>|rQV{U}^%gyk7xfQ#Yx52~Zc6hhk3D1_h;ni|4JVNe+N6Q27 zW_bvnERVp87Wk>W1Rs@c@K1RazA3N6 zFXc`6q`VD(ly~8a@;>}fK7bF(4)~vZ1m6>Uw*#IwpTpziOa07GoDgD<{yX+P`+@y< zy4`K;Hy_4c^zZB_JI4NC$Jw9k1Ut!`*qtVvVjr7hj~kz>IqhC@2==T)v7a4|z3xct zgAc?W`5+!6{omranaA@4c%&v_$2kT5Z$se8mnJ>=hQr%06P|oo*x9wg&o3K$ySY41 zdi{-nm)$6M>WzUvT@k!I9Pslfh1Xs=d^{>}HZFWVD&bF81@Fj7@D!X356N11g-nGH z;WYS%Oy@J;^Dzs*j0nX#BpkN0b~+!8Gu#+Ho6q5md@ejhn&B%l5B?!-@E8%^Asu`H zJVv_UD{>}0MtXQJ{QDO3C44Eo5SQ~6{497Mo&*2GmHc1u9XXGm4`09w;ZL}lU(7Gz zm%_8;a`={9$*;mm^I>?*{EoAdAXrqf|4Fi$+=r9F7s!h^iTCAe;T?Gcybf=|`r~GP z3%m{2@!QDxd_BBhz2J{{2Rt8-!t?nqemB1d9%dWhX?8z6%O2zpkqh8&_6Xld*23RR ze7_}-9K<>7Q^btlNyNkR;W~0HS%cqJG{Vomh;Jg-kX!f@{7IY)-AL}{oAGN5Z=9k$ z&7XqTq7PY(-xFMlla$NIdBRf-{)<17RXFz(K5Ea)lbJ2@Z02R0?Y)9uxW9%IzBl-r z{4Myg$&(tK^ypvu*(tvDgMIu@`DgH_{DOZ8@5!&FXWTdNhT8+L%J1P5_ap!5)H6VM zN`65c{afdQz6L*ozaap>zYj75<1}G_A=D6N2scC+ zA`MZeo*o+F4GHinPckIqxB97uA%>ywtsQ16n%mv7xW#KxXM0v@QK@z>&QW)Zx?9!V zF7B2rM~U`aB%hJbp`KN~qCE9nB=M~lNylQf>hBfZB1zX`wOGB17Bn_>cXfIdb+vYN zww&Qx)ZO0M+Ss(Hx5cZdRJ+Tf^RhJ3mOMX4Q+s#Qq6PChT9*1cn!9=%o0?iWdu54P z4!fzOsSyNm>+Wil(5zC6UVkI4is)a+< z!l9(&(4=Fv*nLYq*vTp_R-}q`f#i6VstQZNXDO0dcCS)R09q}J9j0>0kzaX#Wwjbw zt-j@_lw!3Q#?Ec**0NfQ{Kk6b$ttzlS;aV0g{#FOdBvDjubYyLL&EXC$g4szTA?v! zs_1R+Xm0Tv=Skd>Ws`M)Fmp{4WP_O|^b0e~R&1C6b~WBysH$|ED%Gy_hb%{tX`)7A zq8kZ&wwBv2<(yS&&*7z=t(r6(#p+$2smfKotkM$IL?x=A64g{CibRRVvsHBrt5vm+ zO>bJ&^o~+vRa;kgr&dUbVz*SMrm#ws5KAoqRc(vVeY+Pe=xAIdD-BVWdR4i%dA7=( zEz7cC6!}&4bTsy~xq3UQs3_aDj%u|!Of{NdYTN{qt!j~_xXxC!$kIzFHBELSnxiV8 zljAq}lt#2>DM95ZQaOr5j)LcFjAZ4N8K$7CnWnh0q2XGrSxP)Pius&UQ?08_@LCmL zs^4>rwf(X!RRxtP21<2VD`KUk0kwaXEyho+yKHldylS=XYOEEC#8fLgt=4?Gd8VmS z9DY;#tM4jvi6X$3tYVw?x=gi#O^K{5 z&(t7`@ohL|oaS4DE99Hm<1&O7AUrZnjV=kHBa~?ri*wao={&upVmS~n(iB5QYG4%U zYFXtg%GdH2$-#jhDCs~A>+coaB3T2xw|O-xDK;uK+}N*%8(Um`$YRY_mA2&jHTBEM zx5-sgQ?sjQK+j6XkV_S8krhM*a!f6<-li5e>?~D{VkHKL%H>e(I#k&XO$=5`wr`88 zTqQA8^J2Z`xn3>q{Ub|}%*ys^@zA$Aqxq&*$&p`cf9(WmOP1B<+j>fAR!y#1rP+qI ze*LS8&MNb3^P~YioNa1%wKwFhxV4t~w95_whg_{5x>|Ec3}6;}wX1rxD|OuN>e&{n zE!S_pXIW4yTGlLEuKyXW-7PJh9gUsM?M~bJLdFlE(m$$g|w64(dO)2Lni3xtdFkVdEZi3OeKQy4?I$Q4|iofhKQ;%zmWtHZr%IDsGAx4#g^Q%FCgQzT1-mv|<5?Tyb~QZgntcnnW(e4od1Kdl0N`>I;w~EtcWqX;XKCHn zZdK(f#b&oEzO6dn3g0S4YOz}tzuLrtXKgC9YZf$~b^dhvs(fW`+0}5iYl;x{*7?@u zpqHcgwJ7=)B?rxlMLumn*)?kx<*M?qzL0WO7K%Mb(a%-zTtz=$J?HDss+@djl%Snd zzI?^MvWDzMN?vL`W7pP2mTX-<+Iq-hFH-rn^%9zDqmZNS?t>K0e3Bb zwl3dd#fP>svDmd03GSMzvTHLXo|PQ6nH0~eJ+$cs&q}VExooj(W-{)I4`n9XH8UD; zRgV%?zGnDZ?4_z6nqiD*mA_QUQ8VrUSNTg-{!%3e&FHh(%ak0-RDNYz*~?Trl&Sn> zDu0=lKU@|@@STvX)w zoUgsd?^3k<>OG#d{--S~EOu?$!d=xomJv>4R*AudU21 zc5UXzU5!u8BEYla&#v>Q(^uu&RlC|1zu7vTf@kY;P;#*=e$@iVt|nM}wkk(Wuy(b4 zva9LYt}VSRb~Q8Fb5wb`sy?}@oP1qB>(8n_`HHW6l`miMk+14gq~xRwYrAHkqrWLS znqiLdukve#JDyekVwGPr_%ZHPK5apOXH~v3Z?kp1TderdEN6^sMNiwIz_XH@wu6CZ zB`1fHuS2ziwy?lBSA1yZ7@id$${e$6<{IFt9wn-L&A`GqSNSyq49_Zmsgk3zP3@ZT zfcGkYsp4BRE}#!oJCv#XY6`cPDLIs>^2=2IGA)0$ns>9+e4DN2zifTp%TxH8#enwF z=w(~WwDFsLsy?utGT!q&pNon;pYyf%{rW(Auj>O_zTG&vy>&sO)DAY)D{RFMpXDvx zT^YSyJ@dS=8KxzAmuL{*-ZohA66Q0nYf-mKwJ%n9J?%>+$hQaEdYxLbr5)eI*AP3~ z6+uxZwtwWv#$C1)?ouP+E+vk;>@m1Y$>T0HIqtFrahE*^_k4|K@gq3NvrGt{MMCi` zk{ZuiO7JZ41kVyr<5?y(o+YB>S*E01#82jA88RWt5D8U=NNQzhDN%;R6J#UPcvncTZ&42=e4&k0v!83TFIL2hqb!aGP&BEY0cHf3bs;J37UvukBymEqm8U}5hvP?Q9- zG~32%RW_bQ(|u)mWo4!X?VVyt)zi|{)!D3JXW4vOdU~-Y?rqT_nyq0~wvkoe0?@Z! z^`*43eXOd5tx9KFl`UmeI?<|hqScY-FKh(hVI|Phq8>`+gW$zt!YlQ`x3WTbr8FY|2ElDU;r&OedQ%iEPUBvDxy1UDc6o zl2H{XTO+GDqpH8fPzCuA?AB7J0_^VSx$bXe!%0A(tM#-;mjK<-WjjiM>@8?a_qVb| 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 diff --git a/_vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/mulish-black.ttf b/_vendor/github.com/gohugoio/gohugoioTheme/assets/opengraph/mulish-black.ttf deleted file mode 100644 index db680a088a13b2a8ec3aaff424d1c7ed4d8bfdbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 105920 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