]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
Squashed 'docs/' changes from 6e32d0591..39af43ef1
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 22 May 2023 14:43:12 +0000 (16:43 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 22 May 2023 14:43:12 +0000 (16:43 +0200)
39af43ef1 Update postprocess.md
3ec192d08 Update multilingual.md
7fc7bf862 Add a note about some changes in 0.112.0
742510ae8 Fix ordinal abbrev example
fe557031a Correct spelling for 'GitHub' and 'GitLab' (#2082)
84a059b9a Fix typo in hosting-on-azure.md (#2080)
3383786fe Add i18n to list of directories affected by ignoreFiles
5bfb95234 Update 404.md (#2076)
87545a4fd Update hosting-on-cloudflare-pages.md (#2078)
aa5952c28 Add default module mount to example (#2075)
ced5292c8 Align permalinks examples (#2073)
77b5009fd Fix typo
c79319a6a Clarify description of baseURL
e93a9807b Fix typo in frontmatter description (#2071)
05fe9163a Remove erroneous statement
aa59ef383 docs: Remove note about hugo server not using 404 (#2068)
4a387a6b8 Clarify findRESubmatch (#2065)
47a9181b5 Clarify findRE, replaceRE, and findRESubmatch (#2064)
e5eedbb5e Update theme
5d392c3d4 Clarify pageRef menu property (#2059)
a557b0ebf Fix typos on Configure Hugo page (#2058)
17ef283e6 Clarify module.replacements wording (#2052)
5db4aa421 Fixing broken links (#2057)
9afa0c2fa Fix broken links (#2055)
49b981b1f Correct repo URL for migration tool (contentful.com) (#2056)
969c24c16 Remove duplicate content
0b91e7676 Revert "Delete duplicate content"
3229e79f2 Delete duplicate content
ec4eddb98 Fix typo
6509159d5 Describe snap package strict confinement (#2050)
1589bcdb7 Remove hugo.Generator admonition (#2048)
7e553d11b Add example
48bec0335 Replace blockquotes with admonitions where appropriate (#2043)
98226fe61 Remove orphaned param fron admonition calls (#2042)
2a37a1d21 Clarify cast functions (#2041)
03fd1d404 Fix typo
1898013ef Fix typos
944e27430 Replace output shortcode calls
0c66fb055 Add example of shortcode calls within sample code
f25a79c69 Replace tip and warning shortcode calls
3afac22fc Refactor code shortcode
ad65d2931 Clarify seq function
59f8a1f48 Clarify title function
47535dc87 Cleanup hasPrefix hasSuffix
7bee3e4c1 Cleanup action delimiters
cc96070f0 Correct functions archetype
ffe5d39b9 Remove duplicate shortcodes
075c9f3fe Remove old todos
bc3ec033c Front matter cleanup (#2039)
928b94505 Add code fence types (#2038)
856fa293c Document .File.Filename (#2037)
0988c4a42 Update output-formats.md (#2036)
289da5658 Change findRe to findRE
1e50f0583 Update theme
f90fb1bf5 Improve type formatting (#2032)
7785fa7d9 Use code-toggle shortcode where appropriate
f11cabf37 Add space after and before action delimiters
ac333c795 Replace erroneous use of nocopy shortcode param
064896c06 Use bool param when calling code-toggle
fb33bf59b Update code-toggle shortcode
6ddeab4f8 Add missing go-html-template code fence type (#2030)
1bba4cefb Fix links (#2029)
77f4d6c32 Link destination cleanup (#2028)
fc0ecc027 Improve breadcrumb example (#2026)
6148be2de Update the breadcrumb navigation example (#2025)
6ebb37b1b Clarify sort function (#2024)
31269bad9 Add Winget installation method (#1988)
d6c5f940e Resource methods: add signatures, minor improvements (#2017)
d2e594cbc Modify inner variable shortcode-template explanation (#1985)
a54927a7f Update GitHub Pages starter workflow (#2023)
2964c2d44 Remove orphaned static files (#2022)
97e5567cc Complete documentation on '.Scratch' and '.Store' (#2016)
fa7b2e299 Fix typo
bdce77c57 Remove literal from example menu template
c0f23b216 Correct and improve menu documentation (#2010)
464368fd9 Document .Page.Store (#2011)
a3d7c4a3a Improve urls.Parse function (#2012)
d2cec3776 Clarify postcss config option (#2013)
eb3003fef Fixed typo (#2007)
90c82d7ea Clarify mermaid markdown example (#2004)
1b11dcd5c docs(Diagrams): Update mermaid import mechanism (#1967)
4aceb6855 Fingerprinting, asset management: minor improvements (#2003)
bcbc519bb resources.GetRemote: minor improvement (#2002)
d54185bef Clarify markdownify behavior (#1999)
afb582a80 Clarify usage of slug in front matter (#1998)
f71985315 Update hasSuffix.md
29ad622a3 netlify: Hugo 0.111.3
adf223ecc Merge branch 'tempv0.111.3'
06858c646 docs: Improve examples of variadic math functions
8b656994e tpl/math: Allow multi numbers in add, sub, mul, div, min and max
2a38c4046 tpl: Add hasSuffix alias
4e0b98d54 switch transfers to workers
11651ac0f customize parallel transfer count
142f5da81 Update GitHub hosting instructions (#1991)
ad7901d2f netlify: Hugo 0.111.2
0651a76e0 add headings to distinguish render hook context params
d96d75be4 netlify: Hugo 0.111.1
226cb9e3a Add a paragraph about the new page template function
4c0157a49 Add .Fragments docs
6c78c0679 netlify: Bump to Hugo 0.111.0
7b11c24cf Merge branch 'feat/related-fragments'
615d18ef8 Add Related fragments config
a36449b0c cods: Regen docs helper
0272fa45f Merge commit '336622d5e7afd9334cd2de7150d4f16bdf7c24f9'
c5a962b93 related: Add config option cardinalityThreshold
f91677377  docs: Another fix related docs example
17aa939ea docs: Fix related docs example
12c449150 Merge commit 'cf591b7c0c598d34896709db6d28598da37e3ff6'
cb998b3d6 Add page fragments support to Related

git-subtree-dir: docs
git-subtree-split: 39af43ef11c23b8eaea7e17b59ff065a169305ac

347 files changed:
_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company-dark.svg
_vendor/github.com/gohugoio/gohugoioTheme/assets/images/sponsors/your-company.svg
_vendor/github.com/gohugoio/gohugoioTheme/data/sponsors.toml
_vendor/github.com/gohugoio/gohugoioTheme/layouts/partials/home-page-sections/sponsors.html
_vendor/modules.txt
archetypes/functions.md
content/en/about/_index.md
content/en/about/benefits.md
content/en/about/features.md
content/en/about/hugo-and-gdpr.md
content/en/about/license.md
content/en/about/security-model/index.md
content/en/about/what-is-hugo.md
content/en/commands/hugo_deploy.md
content/en/content-management/_index.md
content/en/content-management/archetypes.md
content/en/content-management/build-options.md
content/en/content-management/comments.md
content/en/content-management/diagrams.md
content/en/content-management/formats.md
content/en/content-management/front-matter.md
content/en/content-management/image-processing/index.md
content/en/content-management/menus.md
content/en/content-management/multilingual.md
content/en/content-management/organization/index.md
content/en/content-management/page-bundles.md
content/en/content-management/page-resources.md
content/en/content-management/related.md
content/en/content-management/sections.md
content/en/content-management/shortcodes.md
content/en/content-management/static-files.md
content/en/content-management/summaries.md
content/en/content-management/syntax-highlighting.md
content/en/content-management/taxonomies.md
content/en/content-management/toc.md
content/en/content-management/types.md
content/en/content-management/urls.md
content/en/contribute/_index.md
content/en/contribute/development.md
content/en/contribute/documentation.md
content/en/contribute/themes.md
content/en/documentation.md
content/en/functions/GetPage.md
content/en/functions/RenderString.md
content/en/functions/_index.md
content/en/functions/adddate.md
content/en/functions/after.md
content/en/functions/anchorize.md
content/en/functions/append.md
content/en/functions/apply.md
content/en/functions/base64.md
content/en/functions/chomp.md
content/en/functions/complement.md
content/en/functions/cond.md
content/en/functions/countrunes.md
content/en/functions/countwords.md
content/en/functions/crypto.FNV32a.md
content/en/functions/dateformat.md
content/en/functions/default.md
content/en/functions/delimit.md
content/en/functions/dict.md
content/en/functions/duration.md
content/en/functions/echoparam.md
content/en/functions/emojify.md
content/en/functions/eq.md
content/en/functions/errorf.md
content/en/functions/fileExists.md
content/en/functions/findRe.md
content/en/functions/findresubmatch.md [new file with mode: 0644]
content/en/functions/first.md
content/en/functions/float.md
content/en/functions/format.md
content/en/functions/ge.md
content/en/functions/get.md
content/en/functions/getenv.md
content/en/functions/group.md
content/en/functions/gt.md
content/en/functions/hasPrefix.md [deleted file]
content/en/functions/hasmenucurrent.md
content/en/functions/highlight.md
content/en/functions/hmac.md
content/en/functions/htmlEscape.md
content/en/functions/htmlUnescape.md
content/en/functions/hugo.md
content/en/functions/humanize.md
content/en/functions/i18n.md
content/en/functions/images/index.md
content/en/functions/in.md
content/en/functions/index-function.md
content/en/functions/int.md
content/en/functions/intersect.md
content/en/functions/ismenucurrent.md
content/en/functions/isset.md
content/en/functions/jsonify.md
content/en/functions/lang.Merge.md
content/en/functions/lang.md
content/en/functions/last.md
content/en/functions/le.md
content/en/functions/len.md
content/en/functions/lower.md
content/en/functions/lt.md
content/en/functions/markdownify.md
content/en/functions/math.md
content/en/functions/md5.md
content/en/functions/merge.md
content/en/functions/ne.md
content/en/functions/now.md
content/en/functions/os.Stat.md
content/en/functions/param.md
content/en/functions/partialCached.md
content/en/functions/path.Base.md
content/en/functions/path.BaseName.md
content/en/functions/path.Clean.md
content/en/functions/path.Dir.md
content/en/functions/path.Ext.md
content/en/functions/path.Join.md
content/en/functions/path.Split.md
content/en/functions/plainify.md
content/en/functions/pluralize.md
content/en/functions/print.md
content/en/functions/printf.md
content/en/functions/println.md
content/en/functions/querify.md
content/en/functions/range.md
content/en/functions/readdir.md
content/en/functions/readfile.md
content/en/functions/ref.md
content/en/functions/reflect.IsMap.md
content/en/functions/reflect.IsSlice.md
content/en/functions/relref.md
content/en/functions/render.md
content/en/functions/replace.md
content/en/functions/replacere.md
content/en/functions/safeCSS.md
content/en/functions/safeHTML.md
content/en/functions/safeHTMLAttr.md
content/en/functions/safeJS.md
content/en/functions/safeURL.md
content/en/functions/scratch.md
content/en/functions/seq.md
content/en/functions/sha.md
content/en/functions/shuffle.md
content/en/functions/singularize.md
content/en/functions/site.md
content/en/functions/slice.md
content/en/functions/slicestr.md
content/en/functions/sort.md
content/en/functions/split.md
content/en/functions/store.md [new file with mode: 0644]
content/en/functions/string.md
content/en/functions/strings.Contains.md
content/en/functions/strings.ContainsAny.md
content/en/functions/strings.Count.md
content/en/functions/strings.FirstUpper.md
content/en/functions/strings.HasPrefix.md [new file with mode: 0644]
content/en/functions/strings.HasSuffix.md
content/en/functions/strings.Repeat.md
content/en/functions/strings.RuneCount.md
content/en/functions/strings.TrimLeft.md
content/en/functions/strings.TrimPrefix.md
content/en/functions/strings.TrimRight.md
content/en/functions/strings.TrimSuffix.md
content/en/functions/substr.md
content/en/functions/symdiff.md
content/en/functions/templates.Exists.md
content/en/functions/time.ParseDuration.md
content/en/functions/time.md
content/en/functions/title.md
content/en/functions/transform.Unmarshal.md
content/en/functions/trim.md
content/en/functions/truncate.md
content/en/functions/union.md
content/en/functions/uniq.md
content/en/functions/unix.md
content/en/functions/upper.md
content/en/functions/urlize.md
content/en/functions/urlquery.md
content/en/functions/urls.Parse.md
content/en/functions/where.md
content/en/functions/with.md
content/en/getting-started/_index.md
content/en/getting-started/configuration-markup.md
content/en/getting-started/configuration.md
content/en/getting-started/directory-structure.md
content/en/getting-started/external-learning-resources/index.md
content/en/getting-started/quick-start.md
content/en/getting-started/usage.md
content/en/hosting-and-deployment/_index.md
content/en/hosting-and-deployment/deployment-with-rclone.md
content/en/hosting-and-deployment/deployment-with-rsync.md
content/en/hosting-and-deployment/hosting-on-21yunbox.md
content/en/hosting-and-deployment/hosting-on-aws-amplify.md
content/en/hosting-and-deployment/hosting-on-azure-static-web-apps.md
content/en/hosting-and-deployment/hosting-on-azure.md
content/en/hosting-and-deployment/hosting-on-cloudflare-pages.md
content/en/hosting-and-deployment/hosting-on-firebase.md
content/en/hosting-and-deployment/hosting-on-github.md [deleted file]
content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-github/gh-pages-2.png [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-github/index.md [new file with mode: 0644]
content/en/hosting-and-deployment/hosting-on-gitlab.md
content/en/hosting-and-deployment/hosting-on-keycdn.md
content/en/hosting-and-deployment/hosting-on-netlify.md
content/en/hosting-and-deployment/hosting-on-render.md
content/en/hosting-and-deployment/hugo-deploy.md
content/en/hugo-modules/_index.md
content/en/hugo-modules/configuration.md
content/en/hugo-modules/theme-components.md
content/en/hugo-modules/use-modules.md
content/en/hugo-pipes/_index.md
content/en/hugo-pipes/babel.md
content/en/hugo-pipes/bundling.md
content/en/hugo-pipes/fingerprint.md
content/en/hugo-pipes/introduction.md
content/en/hugo-pipes/js.md
content/en/hugo-pipes/minification.md
content/en/hugo-pipes/postcss.md
content/en/hugo-pipes/postprocess.md
content/en/hugo-pipes/resource-from-string.md
content/en/hugo-pipes/resource-from-template.md
content/en/hugo-pipes/scss-sass.md [deleted file]
content/en/hugo-pipes/transform-to-css.md [new file with mode: 0644]
content/en/installation/_index.md
content/en/installation/bsd.md
content/en/installation/linux.md
content/en/installation/macos.md
content/en/installation/windows.md
content/en/maintenance/_index.md
content/en/news/0.11-relnotes/index.md
content/en/news/0.12-relnotes/index.md
content/en/news/0.14-relnotes/index.md
content/en/news/0.17-relnotes/index.md
content/en/news/0.18-relnotes/index.md
content/en/news/0.19-relnotes/index.md
content/en/news/0.20-relnotes/index.md
content/en/news/0.20.1-relnotes/index.md
content/en/news/0.20.2-relnotes/index.md
content/en/news/0.20.3-relnotes/index.md
content/en/news/0.20.4-relnotes/index.md
content/en/news/0.20.5-relnotes/index.md
content/en/news/0.20.6-relnotes/index.md
content/en/news/0.20.7-relnotes/index.md
content/en/news/0.21-relnotes/index.md
content/en/news/0.22-relnotes/index.md
content/en/news/0.22.1-relnotes/index.md
content/en/news/0.23-relnotes/index.md
content/en/news/0.24-relnotes/index.md
content/en/news/0.24.1-relnotes/index.md
content/en/news/0.25-relnotes/index.md
content/en/news/0.25.1-relnotes/index.md
content/en/news/0.59.0-relnotes/index.md
content/en/news/0.63.0-relnotes/index.md
content/en/news/0.80.0-relnotes/index.md
content/en/news/0.81.0-relnotes/index.md
content/en/news/lets-celebrate-hugos-5th-birthday/index.md
content/en/readfiles/dateformatting.md
content/en/templates/404.md
content/en/templates/_index.md
content/en/templates/base.md
content/en/templates/data-templates.md
content/en/templates/files.md
content/en/templates/homepage.md
content/en/templates/internal.md
content/en/templates/introduction.md
content/en/templates/lists.md [deleted file]
content/en/templates/lists/index.md [new file with mode: 0644]
content/en/templates/lists/site-hierarchy.svg [new file with mode: 0644]
content/en/templates/lookup-order.md
content/en/templates/menu-templates.md
content/en/templates/output-formats.md
content/en/templates/pagination.md
content/en/templates/partials.md
content/en/templates/render-hooks.md
content/en/templates/robots.md
content/en/templates/rss.md
content/en/templates/section-templates.md
content/en/templates/shortcode-templates.md
content/en/templates/single-page-templates.md
content/en/templates/sitemap-template.md
content/en/templates/taxonomy-templates.md
content/en/templates/template-debugging.md
content/en/templates/views.md
content/en/tools/_index.md
content/en/tools/editors.md
content/en/tools/frontends.md
content/en/tools/migrations.md
content/en/tools/other.md
content/en/tools/search.md
content/en/tools/starter-kits.md
content/en/troubleshooting/_index.md
content/en/troubleshooting/build-performance.md
content/en/troubleshooting/faq.md
content/en/variables/_index.md
content/en/variables/files.md
content/en/variables/git.md
content/en/variables/menus.md
content/en/variables/page.md
content/en/variables/pages.md
content/en/variables/shortcodes.md
content/en/variables/site.md
content/en/variables/sitemap.md
content/en/variables/taxonomy.md
data/docs.json
go.mod
go.sum
hugo.toml
layouts/shortcodes/code-toggle.html
layouts/shortcodes/code.html
layouts/shortcodes/content-tree.html [deleted file]
layouts/shortcodes/directoryindex.html [deleted file]
layouts/shortcodes/docfile.html [deleted file]
layouts/shortcodes/exfile.html [deleted file]
layouts/shortcodes/exfm.html [deleted file]
layouts/shortcodes/gh.html [deleted file]
layouts/shortcodes/ghrepo.html [deleted file]
layouts/shortcodes/nohighlight.html [deleted file]
layouts/shortcodes/note.html [deleted file]
layouts/shortcodes/output.html [deleted file]
layouts/shortcodes/tip.html [deleted file]
layouts/shortcodes/warning.html [deleted file]
layouts/shortcodes/yt.html [deleted file]
netlify.toml
static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png [deleted file]
static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png [deleted file]
static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-deploy-dry-run.png [deleted file]
static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png [deleted file]
static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png [deleted file]
static/images/site-hierarchy.svg [deleted file]

index 1793cb6446ac42e6b5cc52a71bb5192ce091a933..58fd601f55cb228f89235b71692c51652e592a9a 100644 (file)
@@ -1,4 +1,4 @@
-<svg width="298" height="144" viewBox="0 0 298 144"  xmlns="http://www.w3.org/2000/svg">
+<svg viewBox="0 0 298 144"  xmlns="http://www.w3.org/2000/svg">
 <path d="M92.056 39.544H86.68L68.536 66.616V80.056H78.712V91H46.072V80.056H55.672V66.52L36.952 39.544H31.384V28.6H57.208V39.544H52.024L62.488 55.288H63.064L73.432 39.544H67.48V28.6H92.056V39.544ZM134.601 69.4C134.601 76.248 132.361 81.72 127.881 85.816C123.401 89.912 117.705 91.96 110.793 91.96C104.137 91.96 98.6965 90.04 94.4725 86.2C90.3125 82.296 88.2325 76.856 88.2325 69.88C88.2325 63.544 90.1525 58.104 93.9925 53.56C97.8325 49.016 103.657 46.744 111.465 46.744C119.273 46.744 125.065 49.016 128.841 53.56C132.681 58.04 134.601 63.32 134.601 69.4ZM121.833 69.016C121.833 64.6 120.809 61.368 118.761 59.32C116.713 57.272 114.217 56.248 111.273 56.248C108.073 56.248 105.545 57.4 103.689 59.704C101.897 61.944 101.001 65.112 101.001 69.208C101.001 72.92 101.833 76.056 103.497 78.616C105.225 81.176 107.785 82.456 111.177 82.456C114.377 82.456 116.937 81.272 118.857 78.904C120.841 76.472 121.833 73.176 121.833 69.016ZM191.379 91H172.755V84.376C169.875 89.368 165.235 91.864 158.835 91.864C154.739 91.864 151.187 90.648 148.179 88.216C145.171 85.784 143.667 82.008 143.667 76.888V57.016H137.907V47.704H156.051V72.088C156.051 75.864 156.659 78.552 157.875 80.152C159.155 81.688 161.011 82.456 163.443 82.456C166.387 82.456 168.659 81.496 170.259 79.576C171.923 77.656 172.755 75.192 172.755 72.184V57.016H165.747V47.704H185.139V81.688H191.379V91ZM222.863 47.128C224.079 47.128 225.423 47.32 226.895 47.704C228.431 48.024 229.935 48.632 231.407 49.528L233.327 64.696L223.919 65.752L222.287 58.36C221.007 57.592 219.887 57.208 218.927 57.208C217.519 57.208 216.271 57.752 215.183 58.84C214.159 59.928 213.647 61.528 213.647 63.64V81.688H221.327V91H195.503V81.688H201.263V57.112H195.023V47.704H212.687V55.96C213.391 53.464 214.511 51.384 216.047 49.72C217.647 47.992 219.919 47.128 222.863 47.128Z" fill="#004887"/>
 <path d="M37.568 124.032C36.0747 125.44 33.9413 126.571 31.168 127.424C28.4373 128.235 25.6 128.64 22.656 128.64C16.64 128.64 11.6693 126.699 7.744 122.816C3.86133 118.891 1.92 113.856 1.92 107.712C1.92 104.256 2.64533 100.843 4.096 97.472C5.54667 94.1013 7.808 91.3067 10.88 89.088C13.952 86.8693 17.8773 85.76 22.656 85.76C26.1547 85.76 29.1413 86.2507 31.616 87.232C34.0907 88.2133 36.0533 89.3653 37.504 90.688L38.592 99.712L32.768 100.288L31.744 94.528C29.184 92.864 26.112 92.032 22.528 92.032C18.6027 92.032 15.4453 93.3973 13.056 96.128C10.7093 98.8587 9.536 102.592 9.536 107.328C9.536 112.277 10.7947 116.032 13.312 118.592C15.8293 121.109 19.136 122.368 23.232 122.368C26.6453 122.368 29.44 121.771 31.616 120.576L32.64 114.368L38.464 114.944L37.568 124.032ZM72.802 113.664C72.802 118.144 71.3727 121.771 68.514 124.544C65.698 127.275 62.0287 128.64 57.506 128.64C53.1113 128.64 49.57 127.317 46.882 124.672C44.2367 122.027 42.914 118.443 42.914 113.92C42.914 109.739 44.1727 106.155 46.69 103.168C49.2073 100.139 52.9407 98.624 57.89 98.624C62.882 98.624 66.6153 100.117 69.09 103.104C71.5647 106.091 72.802 109.611 72.802 113.664ZM65.698 113.472C65.698 110.4 64.9513 108.053 63.458 106.432C62.0073 104.811 60.1087 104 57.762 104C55.33 104 53.4313 104.875 52.066 106.624C50.7007 108.331 50.018 110.635 50.018 113.536C50.018 116.267 50.658 118.571 51.938 120.448C53.2607 122.325 55.202 123.264 57.762 123.264C60.2367 123.264 62.178 122.368 63.586 120.576C64.994 118.741 65.698 116.373 65.698 113.472ZM129.478 128H116.806V122.752H118.406V111.488C118.406 108.757 117.915 106.837 116.934 105.728C115.995 104.576 114.651 104 112.902 104C110.64 104 108.976 104.768 107.91 106.304C106.886 107.84 106.352 109.589 106.31 111.552V122.752H110.597V128H97.9255V122.752H99.4615V111.488C99.4615 108.757 98.9708 106.837 97.9895 105.728C97.0508 104.576 95.7282 104 94.0215 104C91.8028 104 90.1602 104.768 89.0935 106.304C88.0268 107.797 87.4722 109.525 87.4295 111.488V122.752H92.8055V128H76.2935V122.752H80.5815V104.576H76.3575V99.264H87.4295V104C88.3255 102.421 89.5202 101.141 91.0135 100.16C92.5068 99.1787 94.3202 98.688 96.4535 98.688C98.5868 98.688 100.507 99.2213 102.214 100.288C103.92 101.312 105.115 102.933 105.798 105.152C106.651 103.189 107.888 101.632 109.51 100.48C111.131 99.2853 113.115 98.688 115.462 98.688C118.064 98.688 120.347 99.52 122.31 101.184C124.272 102.848 125.254 105.451 125.254 108.992V122.752H129.478V128ZM164.428 112.896C164.428 116.992 163.34 120.64 161.164 123.84C159.03 127.04 155.724 128.64 151.244 128.64C147.105 128.64 144.097 127.147 142.22 124.16V136.256H147.916V141.632H131.084V136.256H135.372V104.512H130.892V99.264H142.22V104.96C143.03 103.253 144.204 101.781 145.74 100.544C147.318 99.3067 149.43 98.688 152.076 98.688C155.745 98.688 158.71 99.9467 160.972 102.464C163.276 104.939 164.428 108.416 164.428 112.896ZM157.324 113.6C157.324 110.528 156.62 108.203 155.212 106.624C153.804 105.003 152.012 104.192 149.836 104.192C147.532 104.192 145.718 105.067 144.396 106.816C143.073 108.565 142.369 110.613 142.284 112.96L142.22 115.2C142.22 117.589 142.902 119.509 144.268 120.96C145.676 122.411 147.468 123.136 149.644 123.136C152.076 123.136 153.953 122.283 155.276 120.576C156.641 118.869 157.324 116.544 157.324 113.6ZM170.922 101.376C173.055 100.352 174.954 99.648 176.618 99.264C178.282 98.88 180.202 98.688 182.378 98.688C185.578 98.688 188.202 99.4987 190.25 101.12C192.341 102.741 193.386 105.173 193.386 108.416V121.344C193.386 123.051 194.09 123.904 195.498 123.904C195.882 123.904 196.373 123.819 196.97 123.648L197.034 127.424C195.626 128.235 194.09 128.64 192.426 128.64C188.799 128.64 186.837 126.741 186.538 122.944V122.816C185.685 124.309 184.469 125.653 182.89 126.848C181.354 128.043 179.434 128.64 177.13 128.64C175.125 128.64 173.141 128.043 171.178 126.848C169.258 125.611 168.298 123.477 168.298 120.448C168.298 116.907 169.706 114.581 172.522 113.472C175.338 112.32 178.389 111.744 181.674 111.744C182.485 111.744 183.317 111.765 184.17 111.808C185.023 111.851 185.813 111.915 186.538 112V110.4C186.538 108.693 186.239 107.157 185.642 105.792C185.045 104.427 183.551 103.744 181.162 103.744C180.266 103.744 179.413 103.808 178.602 103.936C177.834 104.064 177.087 104.32 176.362 104.704L175.21 109.12L169.706 108.544L170.922 101.376ZM186.538 116.608V115.584C185.813 115.499 185.066 115.413 184.298 115.328C183.53 115.243 182.741 115.2 181.93 115.2C180.223 115.2 178.687 115.499 177.322 116.096C175.999 116.693 175.338 117.888 175.338 119.68C175.338 122.283 176.725 123.584 179.498 123.584C181.119 123.584 182.655 123.008 184.106 121.856C185.557 120.661 186.367 118.912 186.538 116.608ZM234.863 128H219.503V122.752H223.727V111.488C223.727 108.757 223.236 106.837 222.255 105.728C221.273 104.576 219.908 104 218.159 104C215.983 104 214.255 104.704 212.975 106.112C211.737 107.52 211.097 109.248 211.055 111.296V122.752H215.343V128H199.919V122.752H204.207V104.576H199.727V99.264H211.055V103.936C213.06 100.437 216.239 98.688 220.591 98.688C223.321 98.688 225.668 99.52 227.631 101.184C229.593 102.848 230.575 105.451 230.575 108.992V122.752H234.863V128ZM267.085 104.512H264.077L254.477 128L251.277 136.256H255.501V141.632H240.141V136.256H245.005L247.821 128.256L237.645 104.512H234.509V99.264H248.653V104.512H245.005L251.661 120.064H252.045L257.421 104.512H254.157V99.264H267.085V104.512ZM275.625 98.688L270.121 98.176L271.145 89.152C273.15 88.0427 275.22 87.2107 277.353 86.656C279.486 86.1013 281.449 85.824 283.241 85.824C286.825 85.824 289.812 86.6347 292.201 88.256C294.633 89.8347 295.849 92.032 295.849 94.848C295.849 97.024 295.209 98.7947 293.929 100.16C292.649 101.483 291.177 102.592 289.513 103.488C287.892 104.384 286.441 105.237 285.161 106.048C283.881 106.859 283.241 107.84 283.241 108.992C283.241 110.4 284.201 111.104 286.121 111.104V115.456C279.252 116.139 275.817 114.24 275.817 109.76C275.817 107.755 276.436 106.197 277.673 105.088C278.91 103.936 280.34 102.976 281.961 102.208C283.582 101.44 285.012 100.608 286.249 99.712C287.486 98.7733 288.105 97.536 288.105 96C288.105 93.3547 286.206 92.032 282.409 92.032C281.428 92.032 280.382 92.16 279.273 92.416C278.206 92.672 277.289 93.056 276.521 93.568L275.625 98.688ZM277.673 128V119.872H285.865V128H277.673Z" fill="#004887"/>
 </svg>
index 6f3082b548a32d6b403612dbbb231403ce7297aa..3b85ece5c645c681bd5fb149a204b34bbc9ad767 100644 (file)
@@ -1,4 +1,4 @@
-<svg width="298" height="144" viewBox="0 0 298 144" fill="none" xmlns="http://www.w3.org/2000/svg">
+<svg viewBox="0 0 298 144" fill="none" xmlns="http://www.w3.org/2000/svg">
 <path d="M92.056 39.544H86.68L68.536 66.616V80.056H78.712V91H46.072V80.056H55.672V66.52L36.952 39.544H31.384V28.6H57.208V39.544H52.024L62.488 55.288H63.064L73.432 39.544H67.48V28.6H92.056V39.544ZM134.601 69.4C134.601 76.248 132.361 81.72 127.881 85.816C123.401 89.912 117.705 91.96 110.793 91.96C104.137 91.96 98.6965 90.04 94.4725 86.2C90.3125 82.296 88.2325 76.856 88.2325 69.88C88.2325 63.544 90.1525 58.104 93.9925 53.56C97.8325 49.016 103.657 46.744 111.465 46.744C119.273 46.744 125.065 49.016 128.841 53.56C132.681 58.04 134.601 63.32 134.601 69.4ZM121.833 69.016C121.833 64.6 120.809 61.368 118.761 59.32C116.713 57.272 114.217 56.248 111.273 56.248C108.073 56.248 105.545 57.4 103.689 59.704C101.897 61.944 101.001 65.112 101.001 69.208C101.001 72.92 101.833 76.056 103.497 78.616C105.225 81.176 107.785 82.456 111.177 82.456C114.377 82.456 116.937 81.272 118.857 78.904C120.841 76.472 121.833 73.176 121.833 69.016ZM191.379 91H172.755V84.376C169.875 89.368 165.235 91.864 158.835 91.864C154.739 91.864 151.187 90.648 148.179 88.216C145.171 85.784 143.667 82.008 143.667 76.888V57.016H137.907V47.704H156.051V72.088C156.051 75.864 156.659 78.552 157.875 80.152C159.155 81.688 161.011 82.456 163.443 82.456C166.387 82.456 168.659 81.496 170.259 79.576C171.923 77.656 172.755 75.192 172.755 72.184V57.016H165.747V47.704H185.139V81.688H191.379V91ZM222.863 47.128C224.079 47.128 225.423 47.32 226.895 47.704C228.431 48.024 229.935 48.632 231.407 49.528L233.327 64.696L223.919 65.752L222.287 58.36C221.007 57.592 219.887 57.208 218.927 57.208C217.519 57.208 216.271 57.752 215.183 58.84C214.159 59.928 213.647 61.528 213.647 63.64V81.688H221.327V91H195.503V81.688H201.263V57.112H195.023V47.704H212.687V55.96C213.391 53.464 214.511 51.384 216.047 49.72C217.647 47.992 219.919 47.128 222.863 47.128Z" fill="white"/>
 <path d="M37.568 124.032C36.0747 125.44 33.9413 126.571 31.168 127.424C28.4373 128.235 25.6 128.64 22.656 128.64C16.64 128.64 11.6693 126.699 7.744 122.816C3.86133 118.891 1.92 113.856 1.92 107.712C1.92 104.256 2.64533 100.843 4.096 97.472C5.54667 94.1013 7.808 91.3067 10.88 89.088C13.952 86.8693 17.8773 85.76 22.656 85.76C26.1547 85.76 29.1413 86.2507 31.616 87.232C34.0907 88.2133 36.0533 89.3653 37.504 90.688L38.592 99.712L32.768 100.288L31.744 94.528C29.184 92.864 26.112 92.032 22.528 92.032C18.6027 92.032 15.4453 93.3973 13.056 96.128C10.7093 98.8587 9.536 102.592 9.536 107.328C9.536 112.277 10.7947 116.032 13.312 118.592C15.8293 121.109 19.136 122.368 23.232 122.368C26.6453 122.368 29.44 121.771 31.616 120.576L32.64 114.368L38.464 114.944L37.568 124.032ZM72.802 113.664C72.802 118.144 71.3727 121.771 68.514 124.544C65.698 127.275 62.0287 128.64 57.506 128.64C53.1113 128.64 49.57 127.317 46.882 124.672C44.2367 122.027 42.914 118.443 42.914 113.92C42.914 109.739 44.1727 106.155 46.69 103.168C49.2073 100.139 52.9407 98.624 57.89 98.624C62.882 98.624 66.6153 100.117 69.09 103.104C71.5647 106.091 72.802 109.611 72.802 113.664ZM65.698 113.472C65.698 110.4 64.9513 108.053 63.458 106.432C62.0073 104.811 60.1087 104 57.762 104C55.33 104 53.4313 104.875 52.066 106.624C50.7007 108.331 50.018 110.635 50.018 113.536C50.018 116.267 50.658 118.571 51.938 120.448C53.2607 122.325 55.202 123.264 57.762 123.264C60.2367 123.264 62.178 122.368 63.586 120.576C64.994 118.741 65.698 116.373 65.698 113.472ZM129.478 128H116.806V122.752H118.406V111.488C118.406 108.757 117.915 106.837 116.934 105.728C115.995 104.576 114.651 104 112.902 104C110.64 104 108.976 104.768 107.91 106.304C106.886 107.84 106.352 109.589 106.31 111.552V122.752H110.597V128H97.9255V122.752H99.4615V111.488C99.4615 108.757 98.9708 106.837 97.9895 105.728C97.0508 104.576 95.7282 104 94.0215 104C91.8028 104 90.1602 104.768 89.0935 106.304C88.0268 107.797 87.4722 109.525 87.4295 111.488V122.752H92.8055V128H76.2935V122.752H80.5815V104.576H76.3575V99.264H87.4295V104C88.3255 102.421 89.5202 101.141 91.0135 100.16C92.5068 99.1787 94.3202 98.688 96.4535 98.688C98.5868 98.688 100.507 99.2213 102.214 100.288C103.92 101.312 105.115 102.933 105.798 105.152C106.651 103.189 107.888 101.632 109.51 100.48C111.131 99.2853 113.115 98.688 115.462 98.688C118.064 98.688 120.347 99.52 122.31 101.184C124.272 102.848 125.254 105.451 125.254 108.992V122.752H129.478V128ZM164.428 112.896C164.428 116.992 163.34 120.64 161.164 123.84C159.03 127.04 155.724 128.64 151.244 128.64C147.105 128.64 144.097 127.147 142.22 124.16V136.256H147.916V141.632H131.084V136.256H135.372V104.512H130.892V99.264H142.22V104.96C143.03 103.253 144.204 101.781 145.74 100.544C147.318 99.3067 149.43 98.688 152.076 98.688C155.745 98.688 158.71 99.9467 160.972 102.464C163.276 104.939 164.428 108.416 164.428 112.896ZM157.324 113.6C157.324 110.528 156.62 108.203 155.212 106.624C153.804 105.003 152.012 104.192 149.836 104.192C147.532 104.192 145.718 105.067 144.396 106.816C143.073 108.565 142.369 110.613 142.284 112.96L142.22 115.2C142.22 117.589 142.902 119.509 144.268 120.96C145.676 122.411 147.468 123.136 149.644 123.136C152.076 123.136 153.953 122.283 155.276 120.576C156.641 118.869 157.324 116.544 157.324 113.6ZM170.922 101.376C173.055 100.352 174.954 99.648 176.618 99.264C178.282 98.88 180.202 98.688 182.378 98.688C185.578 98.688 188.202 99.4987 190.25 101.12C192.341 102.741 193.386 105.173 193.386 108.416V121.344C193.386 123.051 194.09 123.904 195.498 123.904C195.882 123.904 196.373 123.819 196.97 123.648L197.034 127.424C195.626 128.235 194.09 128.64 192.426 128.64C188.799 128.64 186.837 126.741 186.538 122.944V122.816C185.685 124.309 184.469 125.653 182.89 126.848C181.354 128.043 179.434 128.64 177.13 128.64C175.125 128.64 173.141 128.043 171.178 126.848C169.258 125.611 168.298 123.477 168.298 120.448C168.298 116.907 169.706 114.581 172.522 113.472C175.338 112.32 178.389 111.744 181.674 111.744C182.485 111.744 183.317 111.765 184.17 111.808C185.023 111.851 185.813 111.915 186.538 112V110.4C186.538 108.693 186.239 107.157 185.642 105.792C185.045 104.427 183.551 103.744 181.162 103.744C180.266 103.744 179.413 103.808 178.602 103.936C177.834 104.064 177.087 104.32 176.362 104.704L175.21 109.12L169.706 108.544L170.922 101.376ZM186.538 116.608V115.584C185.813 115.499 185.066 115.413 184.298 115.328C183.53 115.243 182.741 115.2 181.93 115.2C180.223 115.2 178.687 115.499 177.322 116.096C175.999 116.693 175.338 117.888 175.338 119.68C175.338 122.283 176.725 123.584 179.498 123.584C181.119 123.584 182.655 123.008 184.106 121.856C185.557 120.661 186.367 118.912 186.538 116.608ZM234.863 128H219.503V122.752H223.727V111.488C223.727 108.757 223.236 106.837 222.255 105.728C221.273 104.576 219.908 104 218.159 104C215.983 104 214.255 104.704 212.975 106.112C211.737 107.52 211.097 109.248 211.055 111.296V122.752H215.343V128H199.919V122.752H204.207V104.576H199.727V99.264H211.055V103.936C213.06 100.437 216.239 98.688 220.591 98.688C223.321 98.688 225.668 99.52 227.631 101.184C229.593 102.848 230.575 105.451 230.575 108.992V122.752H234.863V128ZM267.085 104.512H264.077L254.477 128L251.277 136.256H255.501V141.632H240.141V136.256H245.005L247.821 128.256L237.645 104.512H234.509V99.264H248.653V104.512H245.005L251.661 120.064H252.045L257.421 104.512H254.157V99.264H267.085V104.512ZM275.625 98.688L270.121 98.176L271.145 89.152C273.15 88.0427 275.22 87.2107 277.353 86.656C279.486 86.1013 281.449 85.824 283.241 85.824C286.825 85.824 289.812 86.6347 292.201 88.256C294.633 89.8347 295.849 92.032 295.849 94.848C295.849 97.024 295.209 98.7947 293.929 100.16C292.649 101.483 291.177 102.592 289.513 103.488C287.892 104.384 286.441 105.237 285.161 106.048C283.881 106.859 283.241 107.84 283.241 108.992C283.241 110.4 284.201 111.104 286.121 111.104V115.456C279.252 116.139 275.817 114.24 275.817 109.76C275.817 107.755 276.436 106.197 277.673 105.088C278.91 103.936 280.34 102.976 281.961 102.208C283.582 101.44 285.012 100.608 286.249 99.712C287.486 98.7733 288.105 97.536 288.105 96C288.105 93.3547 286.206 92.032 282.409 92.032C281.428 92.032 280.382 92.16 279.273 92.416C278.206 92.672 277.289 93.056 276.521 93.568L275.625 98.688ZM277.673 128V119.872H285.865V128H277.673Z" fill="white"/>
 </svg>
index c31178c923536d85e486ec53adfe313a1cbfe105..71167bfd4efbff8354268156cce31922beef0bcb 100644 (file)
@@ -5,20 +5,17 @@
     utm_campaign = "hugosponsor"
 
 [[banners]]
-    name         = "ButterCMS"
-    link         = "https://buttercms.com/hugo-cms/"
-    logo         = "images/sponsors/butter-light.svg"
-    utm_campaign = "sponsorship"
-    bgcolor      = "#131A3E"
+    name          = "Your Company?"
+    link          = "https://bep.is/en/hugo-sponsor-2023-01/"
+    logo          = "/images/sponsors/your-company.svg"
+    utm_campaign  = "hugosponsor"
+    show_on_hover = true
+    bgcolor       = "#004887"
 
 [[banners]]
-    name         = "Gravity Kit"
-    link         = "https://www.gravitykit.com/"
-    logo         = "images/sponsors/graitykit-dark.svg"
-    query_params = "ref=532&campaign=hugo&"
-    utm_campaign = "hugosponsor"
-    bgcolor      = "#e0ecf3"
-
-    #hugohome
-    #hugofooter
-    #hugogithub
+    name          = "Your Company?"
+    link          = "https://bep.is/en/hugo-sponsor-2023-01/"
+    logo          = "/images/sponsors/your-company.svg"
+    utm_campaign  = "hugosponsor"
+    show_on_hover = true
+    bgcolor       = "#004887"
index b2915e109c10f63fedefe9273fcec6bfc84d5046..32bc44f6a65487bbe8886a19ee4fe73450534c56 100644 (file)
@@ -5,6 +5,14 @@
 {{ $isFooter := (eq $gtag "footer") }}
 {{ $utmSource := cond $isFooter "hugofooter" "hugohome" }}
 {{ with .cx.Site.Data.sponsors }}
+  <style>
+    a.show-on-hover {
+      opacity: 0;
+    }
+    a.show-on-hover:hover {
+      opacity: 1;
+    }
+  </style>
   <section
     class="{{ $.classes_section | default "bg-primary-color-dark b--dark-gray bb bt ph5 pv4 w-100" }}">
     <div class="center mw9">
               <a
                 href="{{ $url }}"
                 onclick="trackOutboundLink({{ printf "'%s', '%s'" $gtagID $url | safeJS }});"
-                class="w-100 grow pa3">
+                class="w-100 grow pa3{{ if .show_on_hover }}
+                  show-on-hover
+                {{ end }}"
+                style="">
                 {{ $logo.Content | safeHTML }}
               </a>
             {{ else }}
-              <a href="{{ $url }}" class="w-100 grow pa3" style="">
+              <a
+                href="{{ $url }}"
+                class="w-100 grow pa3{{ if .show_on_hover }}
+                  show-on-hover
+                {{ end }}">
                 {{ $logo.Content | safeHTML }}
               </a>
             {{ end }}
index 9e5b08998d872cc7673da02c5748241c85b6a10c..5c4b5327102a5eaba9231c704e7af4c1ca00f2a4 100644 (file)
@@ -1 +1 @@
-# github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f
+# github.com/gohugoio/gohugoioTheme v0.0.0-20230418063032-99f9185b8e11
index c2bb3113ecaeb9662953bd38b28a7a5fdabb018e..891458daa865e4ed7a3ef5d14f52ad3bd259e632 100644 (file)
@@ -1,12 +1,11 @@
 ---
-linktitle: ""
+title: {{ replace .Name "-" " " | title }}
 description: ""
-categories: [functions]
-tags: []
-ns: ""
 signature: []
-hugoversion: ""
-aliases: []
+categories: [functions]
+keywords: []
+menu:
+  docs:
+    parent: functions
 relatedfuncs: []
-toc: false
 ---
index 8ed441b61ed2ddd45691df2058994a5af7c856db..91260a4a6a0cec731ed3ff0c9d1a0c99c1099b40 100644 (file)
@@ -2,19 +2,14 @@
 title: About Hugo
 linktitle: Overview
 description: Hugo's features, roadmap, license, and motivation.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: []
 keywords: []
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 1
 weight: 1
-draft: false
 aliases: [/about-hugo/,/docs/]
-toc: false
 ---
 
 Hugo is not your average static site generator.
index 925da17324f7600d3440a25e973597264e39ca60..91c243413db8872b9b0216f82a9f95479c17641c 100644 (file)
@@ -2,19 +2,12 @@
 title: The Benefits of Static Site Generators
 linktitle: The Benefits of Static
 description: Improved performance, security and ease of use are just a few of the reasons static site generators are so appealing.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: [ssg,static,performance,security]
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 30
 weight: 30
-sections_weight: 30
-draft: false
-aliases: []
-toc: false
 ---
 
 The purpose of website generators is to render content into HTML files. Most are "dynamic site generators." That means the HTTP server---i.e., the program that sends files to the browser to be viewed---runs the generator to create a new HTML file every time an end user requests a page.
index fc3d5a030444bda2e4641b9dcc4833c80c800430..6fac68cdd2061dd8681c45a84b6c00361a367f4b 100644 (file)
@@ -1,17 +1,11 @@
 ---
 title: Hugo Features
-linktitle: Hugo Features
 description: Hugo boasts blistering speed, robust content management, and a powerful templating language making it a great fit for all kinds of static websites.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 20
 weight: 20
-sections_weight: 20
-draft: false
 toc: true
 ---
 
index 2d4fba872fa9f859472039d1ad64d1a7dc2d3add..3e0a160c75875869b818306a1911e7f0358c4f7a 100644 (file)
@@ -2,16 +2,13 @@
 title: Hugo and the  General Data Protection Regulation (GDPR)
 linktitle: Hugo and GDPR
 description: About how to configure your Hugo site to meet the new regulations.
-date: 2018-05-25
 layout: single
 keywords: ["GDPR", "Privacy", "Data Protection"]
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 5
 weight: 5
-sections_weight: 5
-draft: false
 aliases: [/privacy/,/gdpr/]
 toc: true
 ---
@@ -57,7 +54,6 @@ disable = false
 privacyEnhanced = false
 {{< /code-toggle >}}
 
-
 ## Disable All Services
 
 An example Privacy Config that disables all the relevant services in Hugo. With this configuration, the other settings will not matter.
@@ -91,9 +87,9 @@ respectDoNotTrack
 useSessionStorage
 : Enabling this will disable the use of Cookies and use Session Storage to Store the GA Client ID.
 
-{{% warning %}}
+{{% note %}}
 `useSessionStorage` is not supported when using Google Analytics v4 (gtag.js).
-{{% /warning %}}
+{{% /note %}}
 
 ### Instagram
 
index ae74b60475f37e867fd2dfb01a5d5175e6d905ec..267ec95a0d13f7a668aa96534195be75f023327d 100644 (file)
@@ -2,24 +2,20 @@
 title: Apache License
 linktitle: License
 description: Hugo v0.15 and later are released under the Apache 2.0 license.
-date: 2016-02-01
-publishdate: 2016-02-01
-lastmod: 2016-03-02
 categories: ["about hugo"]
 keywords: ["License","apache"]
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 60
 weight: 60
-sections_weight: 60
 aliases: [/meta/license]
 toc: true
 ---
 
 {{% note %}}
 Hugo v0.15 and later are released under the Apache 2.0 license.
-Earlier versions of Hugo were released under the [Simple Public License](https://opensource.org/licenses/Simple-2.0).
+Earlier versions of Hugo were released under the [Simple Public License](https://opensource.org/license/simpl-2-0-html/).
 {{% /note %}}
 
 _Version 2.0, January 2004_ <br>
@@ -148,7 +144,7 @@ _END OF TERMS AND CONDITIONS_
 
 To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets `[]` replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives.
 
-{{< code file="apache-notice.txt" download="apache-notice.txt" >}}
+{{< code file="apache-notice.txt" >}}
 Copyright [yyyy] [name of copyright owner]
 
 Licensed under the Apache License, Version 2.0 (the "License");
index d4dacd9bf2e72e1bd031e2860f99f05eb9f44d9b..a909a42369a77feff0d4fdfa9f95783e8a417c56 100644 (file)
@@ -1,15 +1,13 @@
 ---
 title: Hugo's Security Model
 description: A summary of Hugo's security model.
-date: 2019-10-01
 layout: single
 keywords: ["Security", "Privacy"]
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 4
 weight: 5
-sections_weight: 5
 aliases: [/security/]
 toc: true
 ---
index d61f821cdd6f387c3245d767ef5c526e95903bfb..3097de50e98926506a62fa13282a138d91390107 100644 (file)
@@ -1,18 +1,12 @@
 ---
 title: What is Hugo
-linktitle: What is Hugo
 description: Hugo is a fast and modern static site generator written in Go, and designed to make website creation fun again.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 layout: single
 menu:
   docs:
-    parent: "about"
+    parent: about
     weight: 10
 weight: 10
-sections_weight: 10
-draft: false
 aliases: [/overview/introduction/,/about/why-i-built-hugo/]
 toc: true
 ---
index 4e1d468b7c3d4e8c54d0eafe14879afdb2d4fcb5..7b14c30ef4bce1531e04566b3bbb28b95b262cfc 100644 (file)
@@ -31,6 +31,7 @@ hugo deploy [flags]
       --ignoreVendorPaths string   ignores any _vendor for module paths matching the given Glob pattern
       --invalidateCDN              invalidate the CDN cache listed in the deployment target (default true)
       --maxDeletes int             maximum # of files to delete, or -1 to disable (default 256)
+      --workers int                number of workers to transfer files. (default 10)
   -s, --source string              filesystem path to read files relative from
       --target string              target deployment from deployments section in config file; defaults to the first one
       --themesDir string           filesystem path to themes directory
index 7cb6357c641240cb7ead2ff801d84076642daf10..e87749d3adbd74c0e3958f77a1d5c7d92f84c991 100644 (file)
@@ -8,7 +8,6 @@ menu:
     weight: 10
 keywords: [source, organization]
 categories: [content management]
-toc: false
 weight: 10
 aliases: [/content/,/content/organization]
 ---
index 1d2ba317937be49631461f2b25946a7eb5e97a53..f2bc6a441d8a3bf136e5eb1b6a345be519c0158f 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Archetypes
-linkTitle: Archetypes
 description: Archetypes are templates used when creating new content.
 keywords: [archetypes,generators,metadata,front matter]
 categories: [content management]
index f798754f1557ba2525de260449ed9060cad50c86..4798f9b2bdebb1f2cc11e4669984e21c43e3c519 100644 (file)
@@ -56,43 +56,39 @@ If true, the page will be treated as part of the project's collections and, when
 
 #### publishResources
 
-If set to true the [Bundle's Resources]({{< relref "content-management/page-bundles" >}}) will be published.
+If set to true the [Bundle's Resources](/content-management/page-bundles) will be published.
 Setting this to false will still publish Resources on demand (when a resource's `.Permalink` or `.RelPermalink` is invoked from the templates) but will skip the others.
 
 {{% note %}}
-Any page, regardless of their build options, will always be available using the [`.GetPage`]({{< relref "functions/GetPage" >}}) methods.
+Any page, regardless of their build options, will always be available using the [`.GetPage`](/functions/getpage) methods.
 {{% /note %}}
 
-------
-
 ### Illustrative use cases
 
 #### Not publishing a page
 
 Project needs a "Who We Are" content file for Front Matter and body to be used by the homepage but nowhere else.
 
-```yaml
-# content/who-we-are.md`
+{{< code-toggle file="content/who-we-are.md" fm=true copy=false >}}
 title: Who we are
 _build:
  list: false
  render: false
-```
+{{< /code-toggle >}}
 
-```go-html-template
-{{/* layouts/index.html */}}
+{{< code file="layouts/index.html" copy=false >}}
 <section id="who-we-are">
-{{ with site.GetPage "who-we-are" }}
-  {{ .Content }}
-{{ end }}
+  {{ with site.GetPage "who-we-are" }}
+    {{ .Content }}
+  {{ end }}
 </section>
-```
+{{< /code >}}
 
 #### Listing pages without publishing them
 
 Website needs to showcase a few of the hundred "testimonials" available as content files without publishing any of them.
 
-To avoid setting the build options on every testimonials, one can use [`cascade`]({{< relref "/content-management/front-matter#front-matter-cascade" >}}) on the testimonial section's content file.
+To avoid setting the build options on every testimonials, one can use [`cascade`](/content-management/front-matter#front-matter-cascade) on the testimonial section's content file.
 
 {{< code-toggle >}}
 title: Testimonials
@@ -104,12 +100,12 @@ cascade:
     list: true # default
 {{< /code-toggle >}}
 
-```go-html-template
-{{/* layouts/_defaults/testimonials.html */}}
+{{< code file="layouts/_defaults/testimonials.html" copy=false >}}
 <section id="testimonials">
-{{ range first 5 .Pages }}
-  <blockquote cite="{{ .Params.cite }}">
-    {{ .Content }}
-  </blockquote>
-{{ end }}
+  {{ range first 5 .Pages }}
+    <blockquote cite="{{ .Params.cite }}">
+      {{ .Content }}
+    </blockquote>
+  {{ end }}
 </section>
+{{< /code >}}
index e49711e7c70dd4772ae831044843b8f6d85144d2..0543f47a7b8d812c97427d554e7369186f50dacd 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Comments
-linkTitle: Comments
 description: Hugo ships with an internal Disqus template, but this isn't the only commenting system that will work with your new Hugo website.
 keywords: [sections,content,organization]
 categories: [project organization, fundamentals]
@@ -25,7 +24,7 @@ Hugo comes with all the code you need to load Disqus into your templates. Before
 
 Disqus comments require you set a single value in your [site's configuration file][configuration] like so:
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 disqusShortname = "yourDisqusShortname"
 {{</ code-toggle >}}
 
index c95548249f6d5ac33c292fcbf6a098758e833bfe..e664dd501944d3d30ad28bf8ef3e86950c614477 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Diagrams
-LinkTitle: Diagrams
 description: Use fenced code blocks and markdown render hooks to display diagrams.
 categories: [content management]
 keywords: [diagrams,drawing]
@@ -58,8 +57,8 @@ And then include this snippet at the bottom of the content template (**Note**: b
 
 ```go-html-template
 {{ if .Page.Store.Get "hasMermaid" }}
-  <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
-  <script>
+  <script type="module">
+    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
     mermaid.initialize({ startOnLoad: true });
   </script>
 {{ end }}
@@ -67,6 +66,7 @@ And then include this snippet at the bottom of the content template (**Note**: b
 
 With that you can use the `mermaid` language in Markdown code blocks:
 
+````
 ```mermaid
 sequenceDiagram
     participant Alice
@@ -80,6 +80,7 @@ sequenceDiagram
     John->>Bob: How about you?
     Bob-->>John: Jolly good!
 ```
+````
 
 ## Goat Ascii Diagram Examples
 
index a98898821c30a1554c300c909cd29600059f436a..ba988c29bb648573aed00d3dc11a9ff06962d1f5 100644 (file)
@@ -46,9 +46,9 @@ Hugo passes reasonable default arguments to these external helpers by default:
 - `rst2html`: `--leave-comments --initial-header-level=2`
 - `pandoc`: `--mathjax`
 
-{{% warning "Performance of External Helpers" %}}
+{{% note %}}
 Because additional formats are external commands, generation performance will rely heavily on the performance of the external tool you are using. As this feature is still in its infancy, feedback is welcome.
-{{% /warning %}}
+{{% /note %}}
 
 ### External Helper AsciiDoc
 
index bf530518fdfcca60441082b701e675f0349c8b83..78d3323dd75975803ae4baebb0ff9bc99bb303c6 100644 (file)
@@ -1,8 +1,6 @@
 ---
 title: Front Matter
-linkTitle: Front Matter
 description: Hugo allows you to add front matter in yaml, toml, or json to your content files.
-lastmod: 2017-02-24
 categories: [content management]
 keywords: ["front matter", "yaml", "toml", "json", "metadata", "archetypes"]
 menu:
@@ -56,87 +54,87 @@ slug = "spf13-vim-3-0-release-and-new-website"
 There are a few predefined variables that Hugo is aware of. See [Page Variables][pagevars] for how to call many of these predefined variables in your templates.
 
 aliases
-: an array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details.
+: An array of one or more aliases (e.g., old published paths of renamed content) that will be created in the output directory structure . See [Aliases][aliases] for details.
 
 audio
-: an array of paths to audio files related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:audio`.
+: An array of paths to audio files related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:audio`.
 
 cascade
-: a map of Front Matter keys whose values are passed down to the page's descendants unless overwritten by self or a closer ancestor's cascade. See [Front Matter Cascade](#front-matter-cascade) for details.
+: A map of front matter keys whose values are passed down to the page's descendants unless overwritten by self or a closer ancestor's cascade. See [Front Matter Cascade](#front-matter-cascade) for details.
 
 date
-: the datetime assigned to this page. This is usually fetched from the `date` field in front matter, but this behavior is configurable.
+: The datetime assigned to this page. This is usually fetched from the `date` field in front matter, but this behavior is configurable.
 
 description
-: the description for the content.
+: The description for the content.
 
 draft
-: if `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command.
+: If `true`, the content will not be rendered unless the `--buildDrafts` flag is passed to the `hugo` command.
 
 expiryDate
-: the datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command.
+: The datetime at which the content should no longer be published by Hugo; expired content will not be rendered unless the `--buildExpired` flag is passed to the `hugo` command.
 
 headless
-: if `true`, sets a leaf bundle to be [headless][headless-bundle].
+: If `true`, sets a leaf bundle to be [headless][headless-bundle].
 
 images
-: an array of paths to images related to the page; used by [internal templates](/templates/internal) such as `_internal/twitter_cards.html`.
+: An array of paths to images related to the page; used by [internal templates](/templates/internal) such as `_internal/twitter_cards.html`.
 
 isCJKLanguage
-: if `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages.
+: If `true`, Hugo will explicitly treat the content as a CJK language; both `.Summary` and `.WordCount` work properly in CJK languages.
 
 keywords
-: the meta keywords for the content.
+: The meta keywords for the content.
 
 layout
-: the layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See [Content Types][content type].
+: The layout Hugo should select from the [lookup order][lookup] when rendering the content. If a `type` is not specified in the front matter, Hugo will look for the layout of the same name in the layout directory that corresponds with a content's section. See [Content Types][content type].
 
 lastmod
-: the datetime at which the content was last modified.
+: The datetime at which the content was last modified.
 
 linkTitle
-: used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle].
+: Used for creating links to content; if set, Hugo defaults to using the `linktitle` before the `title`. Hugo can also [order lists of content by `linktitle`][bylinktitle].
 
 markup
 : **experimental**; specify `"rst"` for reStructuredText (requires`rst2html`) or `"md"` (default) for Markdown.
 
 outputs
-: allows you to specify output formats specific to the content. See [output formats][outputs].
+: Allows you to specify output formats specific to the content. See [output formats][outputs].
 
 publishDate
-: if in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`.
+: If in the future, content will not be rendered unless the `--buildFuture` flag is passed to `hugo`.
 
 resources
-: used for configuring page bundle resources. See [Page Resources][page-resources].
+: Used for configuring page bundle resources. See [Page Resources][page-resources].
 
 series
-: an array of series this page belongs to, as a subset of the `series` [taxonomy](/content-management/taxonomies/); used by the `opengraph` [internal template](/templates/internal) to populate `og:see_also`.
+: An array of series this page belongs to, as a subset of the `series` [taxonomy](/content-management/taxonomies/); used by the `opengraph` [internal template](/templates/internal) to populate `og:see_also`.
 
 slug
-: appears as the tail of the output URL. A value specified in front matter will override the segment of the URL based on the filename.
+: Overrides the last segment of the URL path. Not applicable to section pages. See [URL Management](/content-management/urls/#slug) for details.
 
 summary
-: text used when providing a summary of the article in the `.Summary` page variable; details available in the [content-summaries](/content-management/summaries/) section.
+: Text used when providing a summary of the article in the `.Summary` page variable; details available in the [content-summaries](/content-management/summaries/) section.
 
 title
-: the title for the content.
+: The title for the content.
 
 type
-: the type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter.
+: The type of the content; this value will be automatically derived from the directory (i.e., the [section]) if not specified in front matter.
 
 url
-: the full path to the content from the web root. It makes no assumptions about the path of the content file. See [URL Management](/content-management/urls/#set-url-in-front-matter).
+: Overrides the entire URL path. Applicable to regular pages and section pages. See [URL Management](/content-management/urls/#url) for details.
 
 videos
-: an array of paths to videos related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:video`.
+: An array of paths to videos related to the page; used by the `opengraph` [internal template](/templates/internal) to populate `og:video`.
 
 weight
 : used for [ordering your content in lists][ordering]. Lower weight gets higher precedence. So content with lower weight will come first. If set, weights should be non-zero, as 0 is interpreted as an *unset* weight.
 
 \<taxonomies\>
-: field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. *Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables.*
+: Field name of the *plural* form of the index. See `tags` and `categories` in the above front matter examples. *Note that the plural form of user-defined taxonomies cannot be the same as any of the predefined front matter variables.*
 
-{{% note "Hugo's Default URL Destinations" %}}
+{{% note %}}
 If neither `slug` nor `url` is present and [permalinks are not configured otherwise in your site `config` file](/content-management/urls/#permalinks), Hugo will use the filename of your content to create the output URL. See [Content Organization](/content-management/organization) for an explanation of paths in Hugo and [URL Management](/content-management/urls/) for ways to customize Hugo's default behaviors.
 {{% /note %}}
 
@@ -146,7 +144,7 @@ You can add fields to your front matter arbitrarily to meet your needs. These us
 
 The following fields can be accessed via `.Params.include_toc` and `.Params.show_comments`, respectively. The [Variables] section provides more information on using Hugo's page- and site-level variables in your templates.
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 include_toc: true
 show_comments: false
 {{</ code-toggle >}}
@@ -159,7 +157,7 @@ Any node or section can pass down to descendants a set of Front Matter values as
 
 The `cascade` block can be a slice with a optional `_target` keyword, allowing for multiple `cascade` values targeting different page sets.
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 title ="Blog"
 [[cascade]]
 background = "yosemite.jpg"
@@ -193,7 +191,7 @@ Any of the above can be omitted.
 
 In `content/blog/_index.md`
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 title: Blog
 cascade:
   banner: images/typewriter.jpg
index 3f71b42448ceae4bdb7be60e5704537eea710614..0043f97b0f67da5ad940c2ca4596ea0d947ef9bb 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Image Processing
-linkTitle: Image Processing
 description: Resize, crop, rotate, filter, and convert images.
 categories: [content management]
 keywords: [resources, images]
@@ -457,15 +456,15 @@ If you change image processing methods or options, or if you rename or remove im
 hugo --gc
 ```
 
-[`anchor`]: {{< relref "content-management/image-processing#anchor" >}}
-[`lang.FormatNumber`]: {{< relref "functions/lang#langformatnumber" >}}
-[Exif]: <https://en.wikipedia.org/wiki/Exif>
-[filters]: {{< relref "functions/images" >}}
+[time.Format]: /functions/dateformat
+[`anchor`]: /content-management/image-processing#anchor
+[mounted]: /hugo-modules/configuration#module-config-mounts
+[page bundle]: /content-management/page-bundles
+[`lang.FormatNumber`]: /functions/lang
+[filters]: /functions/images
 [github.com/disintegration/imaging]: <https://github.com/disintegration/imaging#image-resizing>
-[mounted]: {{< relref "hugo-modules/configuration#module-config-mounts">}}
-[page bundle]: {{< relref "content-management/page-bundles" >}}
 [Smartcrop]: <https://github.com/muesli/smartcrop#smartcrop>
-[time.Format]: {{< relref "functions/dateformat" >}}
+[Exif]: <https://en.wikipedia.org/wiki/Exif>
 [`Colors`]: #colors
 [`Crop`]: #crop
 [`Exif`]: #exif
index b9fab2ca4737ef2400241e7b4eed679339782c78..369938aba79d77acdbadf66c0e6bc515dc9a71b4 100644 (file)
@@ -1,7 +1,6 @@
 ---
 title: Menus
-linkTitle: Menus
-description: Hugo has a simple yet powerful menu system.
+description:  Create menus by defining entries, localizing each entry, and rendering the resulting data structure.
 categories: [content management]
 keywords: [menus]
 menu:
@@ -13,117 +12,214 @@ weight: 190
 aliases: [/extras/menus/]
 ---
 
-{{% note "Lazy Blogger"%}}
-If all you want is a simple menu for your sections, see the ["Section Menu for Lazy Bloggers" in Menu Templates](/templates/menu-templates/#section-menu-for-lazy-bloggers).
-{{% /note %}}
+## Overview
+
+To create a menu for your site:
 
-You can do this:
+1. Define the menu entries
+2. [Localize] each entry
+3. Render the menu with a [template]
 
-* Place content in one or many menus
-* Handle nested menus with unlimited depth
-* Create menu entries without being attached to any content
-* Distinguish active element (and active branch)
+Create multiple menus, either flat or nested. For example, create a main menu for the header, and a separate menu for the footer.
 
-## What is a Menu in Hugo?
+There are three ways to define menu entries:
 
-A **menu** is a named array of menu entries accessible by name via the [`.Site.Menus` site variable][sitevars]. For example, you can access your site's `main` menu via `.Site.Menus.main`.
+1. Automatically
+1. In front matter
+1. In site configuration
 
-{{% note "Menus on Multilingual Sites" %}}
-If you make use of the [multilingual feature](/content-management/multilingual/), you can define language-independent menus.
+{{% note %}}
+Although you can use these methods in combination when defining a menu, the menu will be easier to conceptualize and maintain if you use one method throughout the site.
 {{% /note %}}
 
-See the [Menu Entry Properties][me-props] for all the variables and functions related to a menu entry.
+## Define automatically
 
-## Add content to menus
+To automatically define menu entries for each top-level section of your site, enable the section pages menu in your site configuration.
 
-Hugo allows you to add content to a menu via the content's [front matter](/content-management/front-matter/).
+{{< code-toggle file="config" copy=false >}}
+sectionPagesMenu = "main"
+{{< /code-toggle >}}
 
-### Simple
+This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details.
 
-If all you need to do is add an entry to a menu, the simple form works well.
+## Define in front matter
 
-#### A Single Menu
+To add a page to the "main" menu:
 
-{{< code-toggle >}}
-menu: "main"
+{{< code-toggle file="content/about.md" copy=false fm=true >}}
+title = 'About'
+menu = 'main'
 {{< /code-toggle >}}
 
-#### Multiple Menus
+Access the entry with `site.Menus.main` in your templates. See [menu templates] for details.
+
+To add a page to the "main" and "footer" menus:
 
-{{< code-toggle >}}
-menu: ["main", "footer"]
+{{< code-toggle file="content/contact.md" copy=false fm=true >}}
+title = 'Contact'
+menu = ['main','footer']
 {{< /code-toggle >}}
 
-#### Advanced
+Access the entry with `site.Menus.main` and `site.Menus.footer` in your templates. See [menu templates] for details.
 
-{{< code-toggle >}}
-menu:
-  docs:
-    parent: 'extras'
-    weight: 20
+### Properties {#properties-front-matter}
+
+Use these properties when defining menu entries in front matter:
+
+identifier
+: (`string`) Required when two or more menu entries have the same `name`, or when localizing the `name` using translation tables. Must start with a letter, followed by letters, digits, or underscores.
+
+name
+: (`string`) The text to display when rendering the menu entry.
+
+params
+: (`map`) User-defined properties for the menu entry.
+
+parent
+: (`string`) The `identifier` of the parent menu entry. If `identifier` is not defined, use `name`. Required for child entries in a nested menu.
+
+post
+: (`string`) The HTML to append when rendering the menu entry.
+
+pre
+: (`string`) The HTML to prepend when rendering the menu entry.
+
+title
+: (`string`) The HTML `title` attribute of the rendered menu entry.
+
+weight
+: (`int`) A non-zero integer indicating the entry's position relative the root of the menu, or to its parent for a child entry. Lighter entries float to the top, while heavier entries sink to the bottom.
+
+### Example {#example-front-matter}
+
+This front matter menu entry demonstrates some of the available properties:
+
+{{< code-toggle file="content/products/software.md" copy=false fm=true >}}
+title = 'Software'
+[menu.main]
+parent = 'Products'
+weight = 20
+pre = '<i class="fa-solid fa-code"></i>'
+[menu.main.params]
+class = 'center'
 {{< /code-toggle >}}
 
-## Add Non-content Entries to a Menu
+Access the entry with `site.Menus.main` in your templates. See [menu templates] for details.
+
 
-You can also add entries to menus that aren’t attached to a piece of content. This takes place in your Hugo project's [`config` file][config] (see [Menu Entry Properties][me-props] for full details of available variables).
+## Define in site configuration
 
-Here’s an example snippet pulled from a configuration file:
+To define entries for the "main" menu:
 
-{{< code-toggle file="config" >}}
+{{< code-toggle file="config" copy=false >}}
 [[menu.main]]
-    name = "about hugo"
-    pre = "<i class='fa fa-heart'></i>"
-    weight = -110
-    identifier = "about"
-    url = "/about/"
+name = 'Home'
+pageRef = '/'
+weight = 10
+
 [[menu.main]]
-    name = "getting started"
-    pre = "<i class='fa fa-road'></i>"
-    post = "<span class='alert'>New!</span>"
-    weight = -100
-    url = "/getting-started/"
+name = 'Products'
+pageRef = '/products'
+weight = 20
+
+[[menu.main]]
+name = 'Services'
+pageRef = '/services'
+weight = 30
+{{< /code-toggle >}}
+
+This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details.
+
+To define entries for the "footer" menu:
+
+{{< code-toggle file="config" copy=false >}}
+[[menu.footer]]
+name = 'Terms'
+pageRef = '/terms'
+weight = 10
+
+[[menu.footer]]
+name = 'Privacy'
+pageRef = '/privacy'
+weight = 20
 {{< /code-toggle >}}
 
+This creates a menu structure that you can access with `site.Menus.footer` in your templates. See [menu templates] for details.
+
+### Properties {#properties-site-configuration}
+
 {{% note %}}
-The URLs must be relative to the context root. If the `baseURL` is `https://example.com/mysite/`, then the URLs in the menu must not include the context root `mysite`. Using an absolute URL will override the baseURL. If the value used for `URL` in the above example is `https://subdomain.example.com/`, the output will be `https://subdomain.example.com`.
+The [properties available to entries defined in front matter] are also available to entries defined in site configuration.
+
+[properties available to entries defined in front matter]: /content-management/menus/#properties-front-matter
 {{% /note %}}
 
-## Nesting
+Each menu entry defined in site configuration requires two or more properties:
 
-All nesting of content is done via the `parent` field.
+- Specify `name` and `pageRef` for internal links
+- Specify `name` and `url` for external links
 
-The parent of an entry should be the identifier of another entry. The identifier should be unique (within a menu).
+pageRef
+: (`string`) The file path of the target page, relative to the `content` directory. Omit language code and file extension. Required for *internal* links.
 
-The following order is used to determine an Identifier:
+Kind|pageRef
+:--|:--
+home|`/`
+page|`/books/book-1`
+section|`/books`
+taxonomy|`/tags`
+term|`/tags/foo`
 
-`.Name > .LinkTitle > .Title`
+url
+: (`string`) Required for *external* links.
 
-This means that `.Title` will be used unless `.LinkTitle` is present, etc. In practice, `.Name` and `.Identifier` are only used to structure relationships and therefore never displayed.
+### Example {#example-site-configuration}
 
-In this example, the top level of the menu is defined in your [site `config` file][config]. All content entries are attached to one of these entries via the `.Parent` field.
+This nested menu demonstrates some of the available properties:
 
-## Params
+{{< code-toggle file="config" copy=false >}}
+[[menu.main]]
+name = 'Products'
+pageRef = '/products'
+weight = 10
 
-You can also add user-defined content to menu items via the `params` field.
+[[menu.main]]
+name = 'Hardware'
+pageRef = '/products/hardware'
+parent = 'Products'
+weight = 1
 
-A common use case is to define a custom param to add a css class to a specific menu item.
+[[menu.main]]
+name = 'Software'
+pageRef = '/products/software'
+parent = 'Products'
+weight = 2
+
+[[menu.main]]
+name = 'Services'
+pageRef = '/services'
+weight = 20
 
-{{< code-toggle file="config" >}}
 [[menu.main]]
-    name = "about hugo"
-    pre = "<i class='fa fa-heart'></i>"
-    weight = -110
-    identifier = "about"
-    url = "/about/"
-    [menu.main.params]
-      class = "highlight-menu-item"
-{{</ code-toggle >}}
-
-## Render Menus
-
-See [Menu Templates](/templates/menu-templates/) for information on how to render your site menus within your templates.
-
-[config]: /getting-started/configuration/
-[multilingual]: /content-management/multilingual/
-[sitevars]: /variables/
-[me-props]: /variables/menus/
+name = 'Hugo'
+pre = '<i class="fa fa-heart"></i>'
+url = 'https://gohugo.io/'
+weight = 30
+[menu.main.params]
+rel = 'external'
+{{< /code-toggle >}}
+
+This creates a menu structure that you can access with `site.Menus.main` in your templates. See [menu templates] for details.
+
+## Localize
+
+Hugo provides two methods to localize your menu entries. See [multilingual].
+
+## Render
+
+See [menu templates].
+
+[localize]: /content-management/multilingual/#menus
+[menu templates]: /templates/menu-templates/
+[multilingual]: /content-management/multilingual/#menus
+[template]: /templates/menu-templates/
index 5eb5506d9397d25cd738215b91143babd4ab2087..f1f25086aa01231767569e270201e108208f0db3 100644 (file)
@@ -15,7 +15,7 @@ aliases: [/content/multilingual/,/tutorials/create-a-multilingual-site/]
 
 You should define the available languages in a `languages` section in your site configuration.
 
-> Also See [Hugo Multilingual Part 1: Content translation]
+Also See [Hugo Multilingual Part 1: Content translation].
 
 ## Configure Languages
 
@@ -69,6 +69,35 @@ Only the obvious non-global options can be overridden per language. Examples of
 
 **Please note:** use lowercase language codes, even when using regional languages (ie. use pt-pt instead of pt-PT). Currently Hugo language internals lowercase language codes, which can cause conflicts with settings like `defaultContentLanguage` which are not lowercased. Please track the evolution of this issue in [Hugo repository issue tracker](https://github.com/gohugoio/hugo/issues/7344)
 
+### Changes in Hugo 0.112.0
+
+{{< new-in "0.112.0" >}}
+
+In version `0.112.0` of Hugo we did a major we consolidated all configuration options, but also improved how the languages and their params gets merged with the main configuration. But while testing this on Hugo sites out there, we got some error reports.
+
+1. `site.Language.Params` is deprecated. Use `site.Params` directly.
+1. The `params` sections on site and language is the only place to put custom user parameters, and `site.Params` will only contain these user defined parameters (see example below). 
+
+```toml
+title = "My blog"
+languageCode = "en-us"
+
+[languages]
+[languages.sv]
+title = "Min blogg"
+languageCode = "sv"
+[languages.en.params]
+color = "blue"
+```
+
+In the example above, all the settings exept the `color` below `params` maps to predefined configuration options in Hguo for the site and its language, and should be accessed via the documented accessors:
+
+```
+{{ site.Title }}
+{{ site.LanguageCode }}
+{{ site.Params.color }}
+```
+
 ### Disable a Language
 
 You can disable one or more languages. This can be useful when working on a new translation.
@@ -97,7 +126,9 @@ From **Hugo 0.31** we support multiple languages in a multihost configuration. S
 
 This means that you can now configure a `baseURL` per `language`:
 
-> If a `baseURL` is set on the `language` level, then all languages must have one and they must all be different.
+{{% note %}}
+If a `baseURL` is set on the `language` level, then all languages must have one and they must all be different.
+{{% /note %}}
 
 Example:
 
@@ -155,9 +186,9 @@ Their language is __assigned__ according to the language code added as a __suffi
 
 By having the same **path and base filename**, the content pieces are __linked__ together as translated pages.
 
-{{< note >}}
+{{% note %}}
 If a file has no language code, it will be assigned the default language.
-{{</ note >}}
+{{% /note %}}
 
 ### Translation by content directory
 
@@ -209,16 +240,22 @@ By setting the `translationKey` front matter param to `about` in all three pages
 
 Because paths and filenames are used to handle linking, all translated pages will share the same URL (apart from the language subdirectory).
 
-To localize the URLs, the [`slug`]({{< ref "/content-management/organization/index.md#slug" >}}) or [`url`]({{< ref "/content-management/organization/index.md#url" >}}) front matter param can be set in any of the non-default language file.
+To localize URLs:
 
-For example, a French translation (`content/about.fr.md`) can have its own localized slug.
+- For a regular page, set either [`slug`] or [`url`] in front matter
+- For a section page, set [`url`] in front matter
 
-{{< code-toggle >}}
-Title: A Propos
+[`slug`]: /content-management/urls/#slug
+[`url`]: /content-management/urls/#url
+
+For example, a French translation can have its own localized slug.
+
+{{< code-toggle file="content/about.fr.md" fm=true copy=false >}}
+title: A Propos
 slug: "a-propos"
 {{< /code-toggle >}}
 
-At render, Hugo will build both `/about/` and `/fr/a-propos/` while maintaining their translation linking.
+At render, Hugo will build both `/about/` and `/fr/a-propos/` without affecting the translation link.
 
 ### Page Bundles
 
@@ -338,7 +375,7 @@ The function will read `.Count` from `.ReadingTime` and evaluate whether the num
 {{< code-toggle file="i18n/en-US" >}}
 [readingTime]
 one = "One minute to read"
-other = "{{.Count}} minutes to read"
+other = "{{ .Count }} minutes to read"
 {{< /code-toggle >}}
 
 Assuming `.ReadingTime.Count` in the context has value is 525600. The result will be:
@@ -462,76 +499,91 @@ See [lang.FormatPercent] for details.
 
 ## Menus
 
-You can define your menus for each language independently. Creating multilingual menus works just like [creating regular menus][menus], except they're defined in language-specific blocks in the configuration file:
-
-{{< code-toggle file="config" >}}
-defaultContentLanguage = "en"
-
-[languages.en]
-weight = 0
-languageName = "English"
+Localization of menu entries depends on the how you define them:
 
-[[languages.en.menu.main]]
-url    = "/"
-name   = "Home"
-weight = 0
+- When you define menu entries [automatically] using the section pages menu, you must use translation tables to localize each entry.
+- When you define menu entries [in front matter], they are already localized based on the front matter itself. If the front matter values are insufficient, use translation tables to localize each entry.
+- When you define menu entries [in site configuration], you can (a) use translation tables, or (b) create language-specific menu entries under each language key.
 
-[languages.de]
-weight = 10
-languageName = "Deutsch"
+### Use translation tables
 
-[[languages.de.menu.main]]
-url    = "/"
-name   = "Startseite"
-weight = 0
-{{< /code-toggle >}}
-
-The rendering of the main navigation works as usual. `.Site.Menus` will just contain the menu in the current language. Note that `absLangURL` below will link to the correct locale of your website. Without it, menu entries in all languages would link to the English version, since it's the default content language that resides in the root directory.
+When rendering the text that appears in menu each entry, the [example menu template] does this:
 
 ```go-html-template
-<ul>
-    {{- $currentPage := . -}}
-    {{ range .Site.Menus.main -}}
-    <li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
-        <a href="{{ .URL | absLangURL }}">{{ .Name }}</a>
-    </li>
-    {{- end }}
-</ul>
+{{ or (T .Identifier) .Name | safeHTML }}
 ```
 
-### Dynamically localizing menus with i18n
+It queries the translation table for the current language using the menu entry's `identifier` and returns the translated string. If the translation table does not exist, or if the `identifier` key is not present in the translation table, it falls back to `name`.
 
-While customizing menus per language is useful, your config file can become hard to maintain if you have a lot of languages
+The `identifier` depends on how you define menu entries:
 
-If your menus are the same in all languages (ie. if the only thing that changes is the translated name) you can use the `.Identifier` as a translation key for the menu name:
+- If you define the menu entry [automatically] using the section pages menu, the `identifier` is the page's `.Section`.
+- If you define the menu entry [in site configuration] or [in front matter], set the `identifier` property to the desired value.
 
-{{< code-toggle file="config" >}}
+For example, if you define menu entries in site configuration:
+
+{{< code-toggle file="config" copy=false >}}
+[[menu.main]]
+  identifier = 'products'
+  name = 'Products'
+  pageRef = '/products'
+  weight = 10
 [[menu.main]]
-name = "About me"
-url = "about"
+  identifier = 'services'
+  name = 'Services'
+  pageRef = '/services'
+  weight = 20
+{{< / code-toggle >}}
+
+Create corresponding entries in the translation tables:
+
+{{< code-toggle file="i18n/de" copy=false >}}
+products = 'Produkte'
+services = 'Leistungen'
+{{< / code-toggle >}}
+
+[example menu template]: /templates/menu-templates/#example
+[automatically]: /content-management/menus/#define-automatically
+[in front matter]: /content-management/menus/#define-in-front-matter
+[in site configuration]: /content-management/menus/#define-in-site-configuration
+
+### Create language-specific menu entries
+
+For example:
+
+{{< code-toggle file="config" copy=false >}}
+[languages.de]
+languageCode = 'de-DE'
+languageName = 'Deutsch'
 weight = 1
-identifier = "about"
-{{< /code-toggle >}}
 
-You now need to specify the translations for the menu keys in the i18n files:
+[[languages.de.menu.main]]
+name = 'Produkte'
+pageRef = '/products'
+weight = 10
 
-{{< code file="i18n/pt.toml" >}}
-[about]
-other="Sobre mim"
-{{< /code >}}
+[[languages.de.menu.main]]
+name = 'Leistungen'
+pageRef = '/services'
+weight = 20
 
-And do the appropriate changes in the menu code to use the `i18n` tag with the `.Identifier` as a key. You will also note that here we are using a `default` to fall back to `.Name`, in case the `.Identifier` key is also not present in the language specified in the `defaultContentLanguage` configuration.
+[languages.en]
+languageCode = 'en-US'
+languageName = 'English'
+weight = 2
 
-{{< code file="layouts/partials/menu.html" >}}
-<ul>
-    {{- $currentPage := . -}}
-    {{ range .Site.Menus.main -}}
-    <li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
-        <a href="{{ .URL | absLangURL }}">{{ i18n .Identifier | default .Name}}</a>
-    </li>
-    {{- end }}
-</ul>
-{{< /code >}}
+[[languages.en.menu.main]]
+name = 'Products'
+pageRef = '/products'
+weight = 10
+
+[[languages.en.menu.main]]
+name = 'Services'
+pageRef = '/services'
+weight = 20
+{{< /code-toggle >}}
+
+For a simple menu with two languages, these menu entries are easy to create and maintain. For a larger menu, or with more than two languages, using translation tables as described above is preferable.
 
 ## Missing Translations
 
@@ -586,11 +638,11 @@ hugo new content/de/post/test.md
 [homepage]: /templates/homepage/
 [Hugo Multilingual Part 1: Content translation]: https://regisphilibert.com/blog/2018/08/hugo-multilingual-part-1-managing-content-translation/
 [i18func]: /functions/i18n/
-[lang.FormatAccounting]: /functions/lang/#langformataccounting
-[lang.FormatCurrency]: /functions/lang/#langformatcurrency
-[lang.FormatNumber]: /functions/lang/#langformatnumber
-[lang.FormatNumberCustom]: /functions/lang/#langformatnumbercustom
-[lang.FormatPercent]: /functions/lang/#langformatpercent
+[lang.FormatAccounting]: /functions/lang
+[lang.FormatCurrency]: /functions/lang
+[lang.FormatNumber]: /functions/lang
+[lang.FormatNumberCustom]: /functions/lang
+[lang.FormatPercent]: /functions/lang
 [lang.Merge]: /functions/lang.merge/
 [menus]: /content-management/menus/
 [OS environment]: /getting-started/configuration/#configure-with-environment-variables
index 94c0cfd5a35cbbb72cefc37e72b6e62d1e3fc073..efa355ddc2caa60746ae88dea6e1eb81d94b7794 100644 (file)
@@ -17,7 +17,7 @@ aliases: [/content/sections/]
 
 Hugo `0.32` announced page-relative images and other resources packaged into `Page Bundles`.
 
-These terms are connected, and you also need to read about [Page Resources]({{< relref "/content-management/page-resources" >}}) and [Image Processing]({{< relref "/content-management/image-processing" >}}) to get the full picture.
+These terms are connected, and you also need to read about [Page Resources](/content-management/page-resources) and [Image Processing](/content-management/image-processing) to get the full picture.
 
 {{< imgproc 1-featured Resize "300x" >}}
 The illustration shows three bundles. Note that the home page bundle cannot contain other content pages, although other files (images etc.) are allowed.
@@ -131,10 +131,7 @@ A default content type is determined by the section in which a content item is s
 
 ### `slug`
 
-A content's `slug` is either `name.extension` or `name/`. The value for `slug` is determined by
-
-* the name of the content file (e.g., `lollapalooza.md`) OR
-* front matter overrides
+The `slug` is the last segment of the URL path, defined by the file name and optionally overridden by a `slug` value in front matter. See [URL Management](/content-management/urls/#slug) for details.
 
 ### `path`
 
@@ -145,78 +142,7 @@ A content's `path` is determined by the section's path to the file. The file `pa
 
 ### `url`
 
-The `url` is the relative URL for the piece of content. The `url`
-
-* is based on the content item's location within the directory structure OR
-* is defined in front matter, in which case it *overrides all the above*
-
-## Override Destination Paths via Front Matter
-
-Hugo assumes that your content is organized with a purpose. The same structure that you use to organize your source content is used to organize the rendered site. As displayed above, the organization of the source content will be mirrored at the destination.
-
-There are times when you may need more fine-grained control over the content organization. In such cases, the front matter field can be used to determine the destination of a specific piece of content.
-
-The following items are defined in a specific order for a reason: items explained lower down in the list override higher items. Note that not all items can be defined in front matter.
-
-### `filename`
-
-`filename` is not a front matter field. It is the actual file name, minus the extension. This will be the name of the file in the destination (e.g., `content/posts/my-post.md` becomes `example.com/posts/my-post/`).
-
-### `slug`
-
-When defined in the front matter, the `slug` can take the place of the filename in the destination.
-
-{{< code file="content/posts/old-post.md" >}}
----
-title: A new post with the filename old-post.md
-slug: "new-post"
----
-{{< /code >}}
-
-This will render to the following destination according to Hugo's default behavior:
-
-```txt
-example.com/posts/new-post/
-```
-
-### `section`
-
-`section` is determined by a content item's location on disk and *cannot* be specified in the front matter. See [sections] for more information.
-
-### `type`
-
-A content item's `type` is also determined by its location on disk but, unlike `section`, it *can* be specified in the front matter. See [types]. This can come in especially handy when you want a piece of content to render using a different layout. In the following example, you can create a layout at `layouts/new/mylayout.html` that Hugo will use to render this piece of content, even in the midst of many other posts.
-
-{{< code file="content/posts/my-post.md" >}}
----
-title: My Post
-type: new
-layout: mylayout
----
-{{< /code >}}
-<!-- See https://discourse.gohugo.io/t/path-not-works/6387 -->
-<!-- ### `path`-->
-
-<!--`path` can be provided in the front matter. This will replace the actual path to the file on disk. Destination will create the destination with the same path, including the section. -->
-
-### `url`
-
-A complete URL can be provided. This will override all the above as it pertains to the end destination. This must be the path from the baseURL (starting with a `/`). `url` will be used exactly as it is defined in the front matter, and will ignore the `--uglyURLs` setting in your site configuration:
-
-{{< code file="content/posts/old-url.md" >}}
----
-title: Old URL
-url: /blog/new-url/
----
-{{< /code >}}
-
-Assuming your `baseURL` is [configured][config] to `https://example.com`, the addition of `url` to the front matter will make `old-url.md` render to the following destination:
-
-```txt
-https://example.com/blog/new-url/
-```
-
-You can see more information on how to control output paths in [URL Management][urls].
+The `url` is the entire URL path, defined by the file path and optionally overridden by a `url` value in front matter. See [URL Management](/content-management/urls/#slug) for details.
 
 [config]: /getting-started/configuration/
 [formats]: /content-management/formats/
@@ -225,7 +151,7 @@ You can see more information on how to control output paths in [URL Management][
 [homepage template]: /templates/homepage/
 [homepage]: /templates/homepage/
 [lists]: /templates/lists/
-[pretty]: /content-management/urls/#pretty-urls
+[pretty]: /content-management/urls/#appearance
 [section templates]: /templates/section-templates/
 [sections]: /content-management/sections/
 [singles]: /templates/single-page-templates/
index 28ab004c58945733b7675001671b1fe59e0a674a..2a5147c21f69f2d3d6a165c44353dce4c13243e9 100644 (file)
@@ -1,14 +1,11 @@
 ---
 title: Page Bundles
-linkTitle: Page Bundles
 description: Content organization using Page Bundles
-linkTitle: Page Bundles
 keywords: [page, bundle, leaf, branch]
 categories: [content management]
 menu :
   docs:
-    identifier: "page-bundles"
-    parent: "content-management"
+    parent: content-management
     weight: 30
 toc: true
 weight: 30
@@ -132,9 +129,9 @@ Explanation of the above example:
 A leaf bundle can be made headless by adding below in the Front Matter
 (in the `index.md`):
 
-```toml
+{{< code-toggle file="content/headless/index.md" fm=true copy=false >}}
 headless = true
-```
+{{< /code-toggle >}}
 
 There are many use cases of such headless page bundles:
 
index 16c9fc0abb009e797265f8b12a6a67ac805a5e1e..4bbd159be0e04c1a6d68a517b51043f2c156eb4a 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Page Resources
-linkTitle: Page Resources
 description: Page resources -- images, other pages, documents, etc. -- have page-relative URLs and their own metadata.
 categories: [content management]
 keywords: [bundle,content,resources]
@@ -11,8 +10,7 @@ menu:
 toc: true
 weight: 80
 ---
-Page resources are only accessible from [page bundles]({{< relref
-"/content-management/page-bundles" >}}), those directories with `index.md` or
+Page resources are only accessible from [page bundles](/content-management/page-bundles), those directories with `index.md` or
 `_index.md` files at their root. Page resources are only available to the
 page with which they are bundled.
 
@@ -128,9 +126,9 @@ Resources of type `page` get `Title` etc. from their own front matter.
 name
 : Sets the value returned in `Name`.
 
-{{% warning %}}
+{{% note %}}
 The methods `Match`, `Get` and `GetMatch` use `Name` to match the resources.
-{{%/ warning %}}
+{{% /note %}}
 
 title
 : Sets the value returned in `Title`
@@ -140,7 +138,7 @@ params
 
 ### Resources metadata example
 
-{{< code-toggle copy="false">}}
+{{< code-toggle copy=false >}}
 title: Application
 date : 2018-01-25
 resources :
@@ -174,9 +172,9 @@ From the example above:
 - All `PDF` files will get a new `Name`. The `name` parameter contains a special placeholder [`:counter`](#the-counter-placeholder-in-name-and-title), so the `Name` will be `pdf-file-1`, `pdf-file-2`, `pdf-file-3`.
 - Every docx in the bundle will receive the `word` icon.
 
-{{% warning %}}
+{{% note %}}
 The __order matters__ --- Only the **first set** values of the `title`, `name` and `params`-**keys** will be used. Consecutive parameters will be set only for the ones not already set. In the above example, `.Params.icon` is first set to `"photo"` in `src = "documents/photo_specs.pdf"`. So that would not get overridden to `"pdf"` by the later set `src = "**.pdf"` rule.
-{{%/ warning %}}
+{{% /note %}}
 
 ### The `:counter` placeholder in `name` and `title`
 
@@ -186,7 +184,7 @@ The counter starts at 1 the first time they are used in either `name` or `title`
 
 For example, if a bundle has the resources `photo_specs.pdf`, `other_specs.pdf`, `guide.pdf` and `checklist.pdf`, and the front matter has specified the `resources` as:
 
-{{< code-toggle copy="false">}}
+{{< code-toggle copy=false >}}
 [[resources]]
   src = "*specs.pdf"
   title = "Specification #:counter"
index 2d2077c81c627ca7f7798efdb3543a01ca1d5072..823e3035c2023c7c0ba01ae0365bdd4ad0a11f44 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Related Content
-linkTitle: Related Content
 description: List related content in "See Also" sections.
 categories: [content management]
 keywords: [content]
@@ -31,40 +30,81 @@ To list up to 5 related pages (which share the same _date_ or _keyword_ paramete
 {{ end }}
 {{< /code >}}
 
-### Methods
+The `Related` method takes one argument which may be a `Page` or a options map. The options map have these options:
 
-Here is the list of "Related" methods available on a page collection such `.RegularPages`.
+indices
+: The indices to search in.
 
-#### .Related PAGE
+document
+: The document to search for related content for.
 
-Returns a collection of pages related the given one.
+namedSlices
+: The keywords to search for.
+
+fragments
+: Fragments holds a a list of special keywords that is used for indices configured as type "fragments". This will match the fragment identifiers of the documents.
+
+A fictional example using all of the above options:
 
 ```go-html-template
-{{ $related := site.RegularPages.Related . }}
+{{ $page := . }}
+{{ $opts := 
+  "indices" (slice "tags" "keywords")
+  "document" $page
+  "namedSlices" (slice (keyVals "tags" "hugo" "rocks") (keyVals "date" $page.Date))
+  "fragments" (slice "heading-1" "heading-2")
+}}
 ```
 
-#### .RelatedIndices PAGE INDICE1 [INDICE2 ...]
+{{% note %}}
+We improved and simplified this feature in Hugo 0.111.0. Before this we had 3 different methods: `Related`, `RelatedTo` and `RelatedIndicies`. Now we have only one method: `Related`. The old methods are still available but deprecated. Also see [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation of more advanced usage of this feature.
+{{% /note %}}
 
-Returns a collection of pages related to a given one restricted to a list of indices.
+## Index Content Headings in Related Content
 
-```go-html-template
-{{ $related := site.RegularPages.RelatedIndices . "tags" "date" }}
-```
+{{< new-in "0.111.0" >}}
 
-#### .RelatedTo KEYVALS [KEYVALS2 ...]
+Hugo can index the headings in your content and use this to find related content. You can enable this by adding a index of type `fragments` to your `related` configuration:
 
-Returns a collection of pages related together by a set of indices and their match.
+{{< code-toggle file="config" copy=false >}}
+[related]
+threshold    = 20
+includeNewer = true
+toLower      = false
+[[related.indices]]
+name        = "fragmentrefs"
+type        = "fragments"
+applyFilter = false
+weight      = 80
+{{< /code-toggle >}}
 
-In order to build those set and pass them as argument, one must use the `keyVals` function where the first argument would be the `indice` and the consecutive ones its potential `matches`.
+* The `name` maps to a optional front matter slice attribute that can be used to link from the page level down to the fragment/heading level.
+* If `applyFilter`is enabled, the `.HeadingsFiltered` on each page in the result will reflect the filtered headings. This is useful if you want to show the headings in the related content listing:
 
 ```go-html-template
-{{ $related := site.RegularPages.RelatedTo ( keyVals "tags" "hugo" "rocks")  ( keyVals "date" .Date ) }}
+{{ $related := .Site.RegularPages.Related . | first 5 }}
+{{ with $related }}
+  <h2>See Also</h2>
+  <ul>
+    {{ range $i, $p := . }}
+      <li>
+        <a href="{{ .RelPermalink }}">{{ .Title }}</a>
+        {{ with .HeadingsFiltered }}
+          <ul>
+            {{ range . }}
+              {{ $link := printf "%s#%s" $p.RelPermalink .ID | safeURL }}
+              <li>
+                <a href="{{ $link }}">{{ .Title }}</a>
+              </li>
+            {{ end }}
+          </ul>
+        {{ end }}
+      </li>
+    {{ end }}
+  </ul>
+{{ end }}
 ```
 
-{{% note %}}
-Read [this blog article](https://regisphilibert.com/blog/2018/04/hugo-optmized-relashionships-with-related-content/) for a great explanation of more advanced usage of this feature.
-{{% /note %}}
-
 ## Configure Related Content
 
 Hugo provides a sensible default configuration of Related Content, but you can fine-tune this in your configuration, on the global or language level if needed.
@@ -109,9 +149,19 @@ toLower
 name
 :  The index name. This value maps directly to a page param. Hugo supports string values (`author` in the example) and lists (`tags`, `keywords` etc.) and time and date objects.
 
+type
+: {{< new-in "0.111.0" >}}. One of `basic`(default) or `fragments`.
+
+applyFilter
+: {{< new-in "0.111.0" >}}. Apply a `type` specific filter to the result of a search. This is currently only used for the `fragments` type.
+
 weight
 : An integer weight that indicates _how important_ this parameter is relative to the other parameters.  It can be 0, which has the effect of turning this index off, or even negative. Test with different values to see what fits your content best.
 
+
+cardinalityThreshold (default 0)
+: {{< new-in "0.111.0" >}}. A percentage (0-100) used to remove common keywords from the index. As an example, setting this to 50 will remove all keywords that are used in more than 50% of the documents in the index.
+
 pattern
 : This is currently only relevant for dates. When listing related content, we may want to list content that is also close in time. Setting "2006" (default value for date indexes) as the pattern for a date index will add weight to pages published in the same year. For busier blogs, "200601" (year and month) may be a better default.
 
index b68a5bdb90ab21cc2bc51e71329b72bcc9382c34..10c87e6cbf81b4b0afd4047b8c80c3657ead072a 100644 (file)
@@ -2,9 +2,6 @@
 title: Content Sections
 linkTitle: Sections
 description: Hugo generates a **section tree** that matches your content.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [content management]
 keywords: [lists,sections,content types,organization]
 menu:
@@ -62,17 +59,19 @@ If you need a specific template for a sub-section, you need to adjust either the
 
 With the available [section variables and methods](#section-page-variables-and-methods) you can build powerful navigation. One common example would be a partial to show Breadcrumb navigation:
 
-{{< code file="layouts/partials/breadcrumb.html" download="breadcrumb.html" >}}
-<ol class="nav navbar-nav">
-<ul>
-{{- range .Ancestors.Reverse }}
-<li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
-{{- end }}
-<li class="active" aria-current="page">
-<a href="{{ .Permalink }}">{{ .Title }}</a>
-</li>
-</ul>
-</ol>
+{{< code file="layouts/partials/breadcrumb.html" >}}
+<nav aria-label="breadcrumb">
+  <ol>
+    {{ range .Ancestors.Reverse }}
+      <li>
+        <a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
+      </li>
+    {{ end }}
+    <li class="active">
+      <a aria-current="page" href="{{ .Permalink }}">{{ .LinkTitle }}</a>
+    </li>
+  </ol>
+</nav>
 {{< /code >}}
 
 ## Section Page Variables and Methods
index 6344446842fedf973f3e13dc9175af7cd3880719..f91adc2277a89704a5c9019f03b39b5ea1fb347e 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Shortcodes
-linkTitle: Shortcodes
 description: Shortcodes are simple snippets inside your content files calling built-in or custom templates.
 categories: [content management]
 keywords: [markdown,content,shortcodes]
@@ -126,131 +125,130 @@ attrlink
 #### Example `figure` Input
 
 {{< code file="figure-input-example.md" >}}
-{{</* figure src="/media/spf13.jpg" title="Steve Francia" */>}}
+{{</* figure src="elephant.jpg" title=">An elephant at sunset" */>}}
 {{< /code >}}
 
 #### Example `figure` Output
 
-{{< output file="figure-output-example.html" >}}
+```html
 <figure>
-  <img src="/media/spf13.jpg"  />
-  <figcaption>
-      <h4>Steve Francia</h4>
-  </figcaption>
+  <img src="elephant.jpg">
+  <figcaption>An elephant at sunset</figcaption>
 </figure>
-{{< /output >}}
+```
 
 ### `gist`
 
-Bloggers often want to include GitHub gists when writing posts. Let's suppose we want to use the [gist at the following url][examplegist]:
+To display a GitHub [gist] with this URL:
 
-```txt
-https://gist.github.com/spf13/7896402
+[gist]: https://docs.github.com/en/get-started/writing-on-github/editing-and-sharing-content-with-gists
+
+```text
+https://gist.github.com/user/50a7482715eac222e230d1e64dd9a89b
 ```
 
-We can embed the gist in our content via username and gist ID pulled from the URL:
+Include this in your markdown:
 
-```go-html-template
-{{</* gist spf13 7896402 */>}}
+```text
+{{</* gist user 50a7482715eac222e230d1e64dd9a89b */>}}
 ```
 
-#### Example `gist` Input
-
-If the gist contains several files and you want to quote just one of them, you can pass the filename (quoted) as an optional third argument:
+This will display all files in the gist alphabetically by file name.
 
-{{< code file="gist-input.md" >}}
-{{</* gist spf13 7896402 "img.html" */>}}
-{{< /code >}}
+{{< gist jmooring 50a7482715eac222e230d1e64dd9a89b >}}
 
-#### Example `gist` Output
+To display a specific file within the gist:
 
-{{< output file="gist-output.html" >}}
-{{< gist spf13 7896402 >}}
-{{< /output >}}
-
-#### Example `gist` Display
+```text
+{{</* gist user 50a7482715eac222e230d1e64dd9a89b 1-template.html */>}}
+```
 
-To demonstrate the remarkable efficiency of Hugo's shortcode feature, we have embedded the `spf13` `gist` example in this page. The following simulates the experience for visitors to your website. Naturally, the final display will depend on your stylesheets and surrounding markup.
+Rendered:
 
-{{< gist spf13 7896402 >}}
+{{< gist jmooring 50a7482715eac222e230d1e64dd9a89b 1-template.html >}}
 
 ### `highlight`
 
-This shortcode will convert the source code provided into syntax-highlighted HTML. Read more on [highlighting](/content-management/syntax-highlighting/). `highlight` takes exactly one required `language` parameter and requires a closing shortcode.
-
-#### Example `highlight` Input
+To display a highlighted code sample:
 
-{{< code file="content/tutorials/learn-html.md" >}}
-{{</* highlight html */>}}
-<section id="main">
-  <div>
-   <h1 id="title">{{ .Title }}</h1>
-    {{ range .Pages }}
-        {{ .Render "summary"}}
-    {{ end }}
-  </div>
-</section>
+```text
+{{</* highlight go-html-template */>}}
+{{ range .Pages }}
+  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+{{ end }}
 {{</* /highlight */>}}
-{{< /code >}}
-
-#### Example `highlight` Output
-
-The `highlight` shortcode example above would produce the following HTML when the site is rendered:
+```
 
-{{< output file="tutorials/learn-html/index.html" >}}
-<span style="color: #f92672">&lt;section</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;main&quot;</span><span style="color: #f92672">&gt;</span>
-  <span style="color: #f92672">&lt;div&gt;</span>
-   <span style="color: #f92672">&lt;h1</span> <span style="color: #a6e22e">id=</span><span style="color: #e6db74">&quot;title&quot;</span><span style="color: #f92672">&gt;</span>{{ .Title }}<span style="color: #f92672">&lt;/h1&gt;</span>
-    {{ range .Pages }}
-        {{ .Render &quot;summary&quot;}}
-    {{ end }}
-  <span style="color: #f92672">&lt;/div&gt;</span>
-<span style="color: #f92672">&lt;/section&gt;</span>
-{{< /output >}}
+Rendered:
 
-{{% note "More on Syntax Highlighting" %}}
-To see even more options for adding syntax-highlighted code blocks to your website, see [Syntax Highlighting in Developer Tools](/tools/syntax-highlighting/).
-{{% /note %}}
+{{< highlight go-html-template >}}
+{{ range .Pages }}
+  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+{{ end }}
+{{< /highlight >}}
 
-### `instagram`
+To specify one or more [highlighting options], include a quotation-encapsulated, comma-separated list:
 
-If you'd like to embed a photo from [Instagram], you only need the photo's ID. You can discern an Instagram photo ID from the URL:
+[highlighting options]: /functions/highlight/
 
-```txt
-https://www.instagram.com/p/BWNjjyYFxVx/
+```text
+{{</* highlight go-html-template "lineNos=inline, lineNoStart=42" */>}}
+{{ range .Pages }}
+  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+{{ end }}
+{{</* /highlight */>}}
 ```
 
-#### Example `instagram` Input
+Rendered:
 
-{{< code file="instagram-input.md" >}}
-{{</* instagram BWNjjyYFxVx */>}}
-{{< /code >}}
+{{< highlight go-html-template "lineNos=inline, lineNoStart=42" >}}
+{{ range .Pages }}
+  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+{{ end }}
+{{< /highlight >}}
 
-You also have the option to hide the caption:
+### `instagram`
 
-{{< code file="instagram-input-hide-caption.md" >}}
-{{</* instagram BWNjjyYFxVx hidecaption */>}}
-{{< /code >}}
+The `instagram` shortcode uses Facebook's **oEmbed Read** feature. The  Facebook [developer documentation] states:
 
-#### Example `instagram` Output
+- This permission or feature requires successful completion of the App Review process before your app can access live data. [Learn More]
+- This permission or feature is only available with business verification. You may also need to sign additional contracts before your app can access data. [Learn More Here]
 
-By adding the preceding `hidecaption` example, the following HTML will be added to your rendered website's markup:
+[developer documentation]: https://developers.facebook.com/docs/features-reference/oembed-read
+[Learn More]: https://developers.facebook.com/docs/app-review
+[Learn More Here]: https://developers.facebook.com/docs/development/release/business-verification
 
-{{< output file="instagram-hide-caption-output.html" >}}
-{{< instagram BWNjjyYFxVx hidecaption >}}
-{{< /output >}}
+You must obtain an Access Token to use the `instagram` shortcode.
 
-#### Example `instagram` Display
+If your site configuration is private:
 
-Using the preceding `instagram` with `hidecaption` example above, the following simulates the displayed experience for visitors to your website. Naturally, the final display will be contingent on your style sheets and surrounding markup.
+{{< code-toggle file=config copy=false >}}
+[services.instagram]
+accessToken = 'xxx'
+{{< /code-toggle >}}
 
-{{< instagram BWNjjyYFxVx hidecaption >}}
+If your site configuration is _not_ private, set the Access Token with an environment variable:
 
+```text
+HUGO_SERVICES_INSTAGRAM_ACCESSTOKEN=xxx hugo --gc --minify
+```
 
 {{% note %}}
-The `instagram`-shortcode refers an endpoint of Instagram's API, that's deprecated since October 24th, 2020. Thus, no images can be fetched from this API endpoint, resulting in an error when the `instagram`-shortcode is used. For more information please have a look at GitHub issue [#7879](https://github.com/gohugoio/hugo/issues/7879).
+If you are using a Client Access Token, you must combine the Access Token with your App ID using a pipe symbol (`APPID|ACCESSTOKEN`).
 {{% /note %}}
 
+To display an Instagram post with this URL:
+
+```text
+https://www.instagram.com/p/BWNjjyYFxVx/
+```
+
+Include this in your markdown:
+
+```text
+{{</* instagram BWNjjyYFxVx */>}}
+```
+
 ### `param`
 
 Gets a value from the current `Page's` params set in front matter, with a fallback to the site param value. It will log an `ERROR` if the param with the given key could not be found in either.
@@ -275,7 +273,7 @@ These shortcodes will look up the pages by their relative path (e.g., `blog/post
 
 `ref` and `relref` also make it possible to make fragmentary links that work for the header links generated by Hugo.
 
-{{% note "More on Cross References" %}}
+{{% note %}}
 Read a more extensive description of `ref` and `relref` in the [cross references](/content-management/cross-references/) documentation.
 {{% /note %}}
 
@@ -299,71 +297,47 @@ Assuming that standard Hugo pretty URLs are turned on.
 
 ### `tweet`
 
-You want to include a single tweet into your blog post? Everything you need is the URL of the tweet:
+To display a Twitter post with this URL:
 
 ```txt
 https://twitter.com/SanDiegoZoo/status/1453110110599868418
 ```
 
-#### Example `tweet` Input
+Include this in your markdown:
 
-Pass the tweet's user (case-insensitive) and ID from the URL as parameters to the `tweet` shortcode.
-
-{{< code file="example-tweet-input.md" >}}
+```text
 {{</* tweet user="SanDiegoZoo" id="1453110110599868418" */>}}
-{{< /code >}}
-
-#### Example `tweet` Output
-
-Using the preceding `tweet` example, the following HTML will be added to your rendered website's markup:
-
-{{< output file="example-tweet-output.html" >}}
-{{< tweet user="SanDiegoZoo" id="1453110110599868418" >}}
-{{< /output >}}
-
-#### Example `tweet` Display
+```
 
-Using the preceding `tweet` example, the following simulates the displayed experience for visitors to your website. Naturally, the final display will be contingent on your stylesheets and surrounding markup.
+Rendered:
 
 {{< tweet user="SanDiegoZoo" id="1453110110599868418" >}}
 
 ### `vimeo`
 
-Adding a video from [Vimeo] is equivalent to the [YouTube Input shortcode].
+To display a Vimeo video with this URL:
 
-```txt
-https://vimeo.com/channels/staffpicks/146022717
+```text
+https://vimeo.com/channels/staffpicks/55073825
 ```
 
-#### Example `vimeo` Input
-
-Extract the ID from the video's URL and pass it to the `vimeo` shortcode:
-
-{{< code file="example-vimeo-input.md" >}}
-{{</* vimeo 146022717 */>}}
-{{< /code >}}
+Include this in your markdown:
 
-#### Example `vimeo` Output
+```text
+{{</* vimeo 55073825 */>}}
+```
 
-Using the preceding `vimeo` example, the following HTML will be added to your rendered website's markup:
+Rendered:
 
-{{< output file="example-vimeo-output.html" >}}
-{{< vimeo 146022717 >}}
-{{< /output >}}
+{{< vimeo 55073825 >}}
 
-{{% tip %}}
+{{% note %}}
 If you want to further customize the visual styling of the YouTube or Vimeo output, add a `class` named parameter when calling the shortcode. The new `class` will be added to the `<div>` that wraps the `<iframe>` *and* will remove the inline styles. Note that you will need to call the `id` as a named parameter as well. You can also give the vimeo video a descriptive title with `title`.
 
 ```go
 {{</* vimeo id="146022717" class="my-vimeo-wrapper-class" title="My vimeo video" */>}}
 ```
-{{% /tip %}}
-
-#### Example `vimeo` Display
-
-Using the preceding `vimeo` example, the following simulates the displayed experience for visitors to your website. Naturally, the final display will be contingent on your stylesheets and surrounding markup.
-
-{{< vimeo 146022717 >}}
+{{% /note %}}
 
 ### `youtube`
 
index 20a1442e652853e9c14d435cb5e939524f146df6..6bff7fd6f03bf8c35ab0f16ee91db960b7849ab9 100644 (file)
@@ -28,7 +28,7 @@ This union filesystem will be served from your site root. So a file
 Here's an example of setting `staticDir` and `staticDir2` for a
 multi-language site:
 
-{{< code-toggle copy="false" file="config" >}}
+{{< code-toggle copy=false file="config" >}}
 staticDir = ["static1", "static2"]
 
 [languages]
index 345e2f74892c41a0c4c20667bcc92a87ca97821f..3156afa20bc2fbd644ad52a485e43ad41458e0f1 100644 (file)
@@ -43,7 +43,7 @@ For [Org mode content][org], use `# more` where you want to split the article.
 
 Content that comes before the summary divider will be used as that content's summary and stored in the `.Summary` page variable with all HTML formatting intact.
 
-{{% note "Summary Divider"%}}
+{{% note %}}
 The concept of a *summary divider* is not unique to Hugo. It is also called the "more tag" or "excerpt separator" in other literature.
 {{% /note %}}
 
@@ -55,7 +55,7 @@ Cons
 
 {{% warning "Be Precise with the Summary Divider" %}}
 Be careful to enter <code>&#60;&#33;&#45;&#45;more&#45;&#45;&#62;</code> exactly; i.e., all lowercase and with no whitespace.
-{{% /warning %}}
+{{% /note %}}
 
 ### Front Matter Summary
 
@@ -77,7 +77,7 @@ Because there are multiple ways in which a summary can be specified it is useful
 
 {{% warning "Competing selections" %}}
 Hugo uses the _first_ of the above steps that returns text.  So if, for example, your article has both `summary` variable in its front matter and a <code>&#60;&#33;&#45;&#45;more&#45;&#45;&#62;</code> summary divider Hugo will use the manual summary split method.
-{{% /warning %}}
+{{% /note %}}
 
 ## Example: First 10 Articles with Summaries
 
index 5f8a44ee26ca7bbd6e8be2760e674f4d08c3985f..1f3045aed5958e75329d6fba4cea9dde615d1ef3 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Syntax Highlighting
-linkTitle: Syntax Highlighting
 description: Hugo comes with really fast syntax highlighting from Chroma.
 keywords: [highlighting,chroma,code blocks,syntax]
 categories: [content management]
@@ -131,7 +130,7 @@ func GetTitleFunc(style string) func(s string) string {
 }
 ```
 
-The options are the same as in the [highlighting shortcode](/content-management/syntax-highlighting/#highlight-shortcode),including `linenos=false`, but note the slightly different Markdown attribute syntax.
+The options are the same as in the [highlighting shortcode](/content-management/syntax-highlighting/#highlight-shortcode), including `linenos=false`, but note the slightly different Markdown attribute syntax.
 
 ## List of Chroma Highlighting Languages
 
index f5960367f5540c13db9104b0ca047b4dd426551f..fe42a0667f840300a0e1c594b775aaaf9626d00a 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Taxonomies
-linkTitle: Taxonomies
 description: Hugo includes support for user-defined taxonomies.
 keywords: [taxonomies,metadata,front matter,terms]
 categories: [content management]
@@ -83,7 +82,7 @@ Hugo natively supports taxonomies.
 
 Without adding a single line to your [site config][config] file, Hugo will automatically create taxonomies for `tags` and `categories`. That would be the same as manually [configuring your taxonomies](#configure-taxonomies) as below:
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle file="config" copy=false >}}
 [taxonomies]
   tag = "tags"
   category = "categories"
@@ -91,7 +90,7 @@ Without adding a single line to your [site config][config] file, Hugo will autom
 
 If you do not want Hugo to create any taxonomies, set `disableKinds` in your [site config][config] to the following:
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle file="config" copy=false >}}
 disableKinds = ["taxonomy","term"]
 {{</ code-toggle >}}
 
@@ -106,7 +105,7 @@ When taxonomies are used---and [taxonomy templates] are provided---Hugo will aut
 
 ## Configure Taxonomies
 
-Custom taxonomies other than the [defaults]({{< relref "taxonomies.md#default-taxonomies" >}}) must be defined in your [site config][config] before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML.
+Custom taxonomies other than the [defaults](#default-taxonomies) must be defined in your [site config][config] before they can be used throughout the site. You need to provide both the plural and singular labels for each taxonomy. For example, `singular key = "plural value"` for TOML and `singular key: "plural value"` for YAML.
 
 ### Example: Adding a custom taxonomy named "series"
 
@@ -114,7 +113,7 @@ Custom taxonomies other than the [defaults]({{< relref "taxonomies.md#default-ta
 While adding custom taxonomies, you need to put in the default taxonomies too, _if you want to keep them_.
 {{% /note %}}
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle file="config" copy=false >}}
 [taxonomies]
   tag = "tags"
   category = "categories"
@@ -125,12 +124,12 @@ While adding custom taxonomies, you need to put in the default taxonomies too, _
 
 If you want to have just the default `tags` taxonomy, and remove the `categories` taxonomy for your site, you can do so by modifying the `taxonomies` value in your [site config][config].
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle file="config" copy=false >}}
 [taxonomies]
   tag = "tags"
 {{</ code-toggle >}}
 
-If you want to disable all taxonomies altogether, see the use of `disableKinds` in [Hugo Taxonomy Defaults]({{< relref "taxonomies.md#default-taxonomies" >}}).
+If you want to disable all taxonomies altogether, see the use of `disableKinds` in [Hugo Taxonomy Defaults](#default-taxonomies).
 
 {{% note %}}
 You can add content and front matter to your taxonomy list and taxonomy terms pages. See [Content Organization](/content-management/organization/) for more information on how to add an `_index.md` for this purpose.
@@ -138,11 +137,11 @@ You can add content and front matter to your taxonomy list and taxonomy terms pa
 Much like regular pages, taxonomy list [permalinks](/content-management/urls/) are configurable, but taxonomy term page permalinks are not.
 {{% /note %}}
 
-{{% warning %}}
+{{% note %}}
 The configuration option `preserveTaxonomyNames` was removed in Hugo 0.55.
 
 You can now use `.Page.Title` on the relevant taxonomy node to get the original value.
-{{% /warning %}}
+{{% /note %}}
 
 ## Add Taxonomies to Content
 
@@ -156,7 +155,7 @@ If you would like the ability to quickly generate content files with preconfigur
 
 ### Example: Front Matter with Taxonomies
 
-{{< code-toggle copy="false">}}
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
 title = "Hugo: A fast and flexible static site generator"
 tags = [ "Development", "Go", "fast", "Blogging" ]
 categories = [ "Development" ]
@@ -173,7 +172,7 @@ The following show a piece of content that has a weight of 22, which can be used
 
 ### Example: Taxonomic `weight`
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 title = "foo"
 tags = [ "a", "b", "c" ]
 tags_weight = 22
@@ -183,7 +182,7 @@ categories_weight = 44
 
 By using taxonomic weight, the same piece of content can appear in different positions in different taxonomies.
 
-{{% note "Limits to Ordering Taxonomies" %}}
+{{% note %}}
 Currently taxonomies only support the [default `weight => date` ordering of list content](/templates/lists/#default-weight--date--linktitle--filepath). For more information, see the documentation on [taxonomy templates](/templates/taxonomy-templates/).
 {{% /note %}}
 
@@ -191,13 +190,10 @@ Currently taxonomies only support the [default `weight => date` ordering of list
 
 If you need to add custom metadata to your taxonomy terms, you will need to create a page for that term at `/content/<TAXONOMY>/<TERM>/_index.md` and add your metadata in its front matter. Continuing with our 'Actors' example, let's say you want to add a Wikipedia page link to each actor. Your terms pages would be something like this:
 
-{{< code file="/content/actors/bruce-willis/_index.md" >}}
----
+{{< code-toggle file="content/actors/bruce-willis/_index.md" fm=true copy=false >}}
 title: "Bruce Willis"
 wikipedia: "https://en.wikipedia.org/wiki/Bruce_Willis"
----
-{{< /code >}}
-
+{{< /code-toggle >}}
 
 [`urlize` template function]: /functions/urlize/
 [content section]: /content-management/sections/
index d136972cc263afab2ae291a44e98bc4b2063c91b..4215107fb9716ac5b1f9ae6725b928d5602b442d 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Table of Contents
-linkTitle: Table of Contents
 description: Hugo can automatically parse Markdown content and create a Table of Contents you can use in your templates.
 categories: [content management]
 keywords: [table of contents, toc]
@@ -13,9 +12,9 @@ weight: 210
 aliases: [/extras/toc/]
 ---
 
-{{% note "TOC Heading Levels are Fixed" %}}
+{{% note %}}
 
-Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `<nav id="TableOfContents"><ul></ul></nav>` was going to start at `<h1>` when pulling from `{{.Content}}`.
+Previously, there was no out-of-the-box way to specify which heading levels you want the TOC to render. [See the related GitHub discussion (#1778)](https://github.com/gohugoio/hugo/issues/1778). As such, the resulting `<nav id="TableOfContents"><ul></ul></nav>` was going to start at `<h1>` when pulling from `{{ .Content }}`.
 
 Hugo [v0.60.0](https://github.com/gohugoio/hugo/releases/tag/v0.60.0) made a switch to [Goldmark](https://github.com/yuin/goldmark/) as the default library for Markdown which has improved and configurable implementation of TOC. Take a look at [how to configure TOC](/getting-started/configuration-markup/#table-of-contents) for Goldmark renderer.
 
@@ -49,7 +48,7 @@ The built-in `.TableOfContents` variables outputs a `<nav id="TableOfContents">`
 
 The following is an example of a very basic [single page template]:
 
-{{< code file="layout/_default/single.html" download="single.html" >}}
+{{< code file="layout/_default/single.html" >}}
 {{ define "main" }}
 <main>
     <article>
@@ -69,19 +68,19 @@ The following is an example of a very basic [single page template]:
 
 The following is a [partial template][partials] that adds slightly more logic for page-level control over your table of contents. It assumes you are using a `toc` field in your content's [front matter] that, unless specifically set to `false`, will add a TOC to any page with a `.WordCount` (see [Page Variables][pagevars]) greater than 400. This example also demonstrates how to use [conditionals] in your templating:
 
-{{< code file="layouts/partials/toc.html" download="toc.html" >}}
+{{< code file="layouts/partials/toc.html" >}}
 {{ if and (gt .WordCount 400 ) (.Params.toc) }}
 <aside>
     <header>
-    <h2>{{.Title}}</h2>
+    <h2>{{ .Title }}</h2>
     </header>
-    {{.TableOfContents}}
+    {{ .TableOfContents }}
 </aside>
 {{ end }}
 {{< /code >}}
 
 {{% note %}}
-With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{.TableOfContents}}` variable to pull from.
+With the preceding example, even pages with > 400 words *and* `toc` not set to `false` will not render a table of contents if there are no headings in the page for the `{{ .TableOfContents }}` variable to pull from.
 {{% /note %}}
 
 ## Usage with AsciiDoc
index 8ad0d7f6c142007bd35c255c349526c21c0cba58..fc79ca58ce222e005c7f45aa798d526dfd848878 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Content Types
-linkTitle: Content Types
 description: Hugo is built around content organized in sections.
 categories: [content management]
 keywords: [lists, sections, content types, types, organization]
index 739c9c390657cc4ae993ae0006c4cb92c95fa2ab..c65d6c15a7abdd027f12404e23ba0e8ddccef547 100644 (file)
@@ -1,7 +1,6 @@
 ---
 title: URL Management
-linkTitle: URL Management
-description: Hugo supports permalinks, aliases, link canonicalization, and multiple options for handling relative vs absolute URLs.
+description: Control the structure and appearance of URLs through front matter entries and settings in your site configuration.
 categories: [content management]
 keywords: [aliases,redirects,permalinks,urls]
 menu:
@@ -13,46 +12,148 @@ weight: 180
 aliases: [/extras/permalinks/,/extras/aliases/,/extras/urls/,/doc/redirects/,/doc/alias/,/doc/aliases/]
 ---
 
-## Permalinks
+## Overview
 
-The default Hugo target directory for your built website is `public/`. However, you can change this value by specifying a different `publishDir` in your [site configuration][config]. The directories created at build time for a section reflect the position of the content's directory within the `content` folder and namespace matching its layout within the `contentdir` hierarchy.
+By default, when Hugo renders a page, the resulting URL matches the file path within the `content` directory. For example:
 
-The `permalinks` option in your [site configuration][config] allows you to adjust the directory paths (i.e., the URLs) on a per-section basis. This will change where the files are written to and will change the page's internal "canonical" location, such that template references to `.RelPermalink` will honor the adjustments made as a result of the mappings in this option.
+```text
+content/posts/post-1.md → https://example.org/posts/post-1/
+```
+
+You can change the structure and appearance of URLs with front matter values and site configuration options.
+
+## Front matter
+
+### `slug`
+
+Set the `slug` in front matter to override the last segment of the path. The `slug` value does not affect section pages.
+
+{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}}
+title = 'My First Post'
+slug = 'my-first-post'
+{{< /code-toggle >}}
+
+The resulting URL will be:
+
+```text
+https://example.org/posts/my-first-post/
+```
+
+### `url`
+
+Set the `url` in front matter to override the entire path. Use this with either regular pages or section pages.
+
+With this front matter:
+
+{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}}
+title = 'My First Article'
+url = '/articles/my-first-article'
+{{< /code-toggle >}}
+
+The resulting URL will be:
+
+```text
+https://example.org/articles/my-first-article/
+```
+
+If you include a file extension:
+
+{{< code-toggle file="content/posts/post-1.md" copy=false fm=true >}}
+title = 'My First Article'
+url = '/articles/my-first-article.html'
+{{< /code-toggle >}}
+
+The resulting URL will be:
+
+```text
+https://example.org/articles/my-first-article.html
+```
+
+In a monolingual site, a `url` value with or without a leading slash is relative to the `baseURL`.
+
+In a multilingual site:
+
+- A `url` value with a leading slash is relative to the `baseURL`.
+- A `url` value without a leading slash is relative to the `baseURL` plus the language prefix.
+
+Site type|Front matter `url`|Resulting URL
+:--|:--|:--
+monolingual|`/about`|`https://example.org/about/`
+monolingual|`about`|`https://example.org/about/`
+multilingual|`/about`|`https://example.org/about/`
+multilingual|`about`|`https://example.org/de/about/`
 
-{{% note "Default Publish and Content Folders" %}}
-These examples use the default values for `publishDir` and `contentDir`; i.e., `public` and `content`, respectively. You can override the default values in your [site's `config` file](/getting-started/configuration/).
+If you set both `slug` and `url` in front matter, the `url` value takes precedence.
+
+## Site configuration
+
+### Permalinks
+
+In your site configuration, set a URL pattern for regular pages within a top-level section. This is recursive, affecting descendant regular pages.
+
+{{% note %}}
+The  `permalinks` defined in your site configuration do not apply to section pages. To adjust the URL for section pages, set `url` in front matter.
 {{% /note %}}
 
-For example, if one of your [sections] is called `posts` and you want to adjust the canonical path to be hierarchical based on the year, month, and post title, you could set up the following configurations in YAML and TOML, respectively.
+#### Examples {#permalinks-examples}
 
-### Permalinks Configuration Example
+With this content structure:
 
-{{< code-toggle file="config" copy="false" >}}
-permalinks:
-  posts: /:year/:month/:title/
+```text
+content/
+├── posts/
+│   ├── _index.md
+│   ├── post-1.md
+│   └── post-2.md
+└── _index.md
+```
+
+Create a date-based hierarchy, recursively, for regular pages within the `posts` section:
+
+{{< code-toggle file="config" copy=false >}}
+[permalinks]
+  posts = '/posts/:year/:month/:title/'
 {{< /code-toggle >}}
 
-Only the content under `posts/` will have the new URL structure. For example, the file `content/posts/sample-entry.md` with `date: 2017-02-27T19:20:00-05:00` in its front matter will render to `public/2017/02/sample-entry/index.html` at build time and therefore be reachable at `https://example.com/2017/02/sample-entry/`.
+The structure of the published site will be:
+
+```text
+public/
+├── posts/
+│   ├── 2023/
+│   │   └── 03/
+│   │       ├── post-1/
+│   │       │   └── index.html
+│   │       └── post-2/
+│   │           └── index.html
+│   └── index.html
+├── favicon.ico
+└── index.html
+```
 
-To configure the `permalinks` option for pages in the "root" section, use **/** as the key:
+To create a date-based hierarchy for regular pages in the content root:
 
-{{< code-toggle file="config" copy="false" >}}
-permalinks:
-  /: /:year/:month/:filename/
+{{< code-toggle file="config" copy=false >}}
+[permalinks]
+  '/' = '/:year/:month/:title/'
 {{< /code-toggle >}}
 
-If the standard date-based permalink configuration does not meet your needs, you can also format URL segments using [Go time formatting directives](https://pkg.go.dev/time#Time.Format). For example, a URL structure with two digit years and month and day digits without zero padding can be accomplished with:
+{{% note %}}
+A URL pattern defined for the content root is not recursive.
+{{% /note %}}
 
-{{< code-toggle file="config" copy="false" >}}
-permalinks:
-  posts: /:06/:1/:2/:title/
+Use the same approach with taxonomies. For example, to omit the taxonomy segment of the URL:
+
+{{< code-toggle file="config" copy=false >}}
+[permalinks]
+  'tags' = '/:title/'
 {{< /code-toggle >}}
 
-You can also configure permalinks of taxonomies with the same syntax, by using the plural form of the taxonomy instead of the section. You will probably only want to use the configuration values `:slug` or `:title`.
+Front matter `url` values take precedence over URL patterns defined in `permalinks`.
 
-### Permalink Configuration Values
+#### Tokens
 
-The following is a list of values that can be used in a `permalink` definition in your site `config` file. All references to time are dependent on the content's date.
+Use these tokens when defining the URL pattern. The `date` field in front matter determines the value of time-related tokens.
 
 `:year`
 : the 4-digit year
@@ -93,219 +194,157 @@ The following is a list of values that can be used in a `permalink` definition i
 `:filename`
 : the content's filename (without extension)
 
-Additionally, a Go time format string prefixed with `:` may be used.
+For time-related values, you can also use the layout string components defined in Go's [time package]. For example:
 
-## Aliases
-
-Aliases can be used to create redirects to your page from other URLs.
-
-Aliases comes in two forms:
-
-1. Starting with a `/` meaning they are relative to the `BaseURL`, e.g. `/posts/my-blogpost/`
-2. They are relative to the `Page` they're defined in, e.g. `my-blogpost` or even something like `../blog/my-blogpost` (new in Hugo 0.55).
-
-### Example: Aliases
-
-Let's assume you create a new piece of content at `content/posts/my-awesome-blog-post.md`. The content is a revision of your previous post at `content/posts/my-original-url.md`. You can create an `aliases` field in the front matter of your new `my-awesome-blog-post.md` where you can add previous paths. The following examples show how to create this field in TOML and YAML front matter, respectively.
-
-#### TOML Front Matter
+[time package]: https://pkg.go.dev/time#pkg-constants
 
-{{< code file="content/posts/my-awesome-post.md" copy="false" >}}
-+++
-aliases = [
-    "/posts/my-original-url/",
-    "/2010/01/01/even-earlier-url.html"
-]
-+++
-{{< /code >}}
-
-#### YAML Front Matter
-
-{{< code file="content/posts/my-awesome-post.md" copy="false" >}}
----
-aliases:
-    - /posts/my-original-url/
-    - /2010/01/01/even-earlier-url.html
----
-{{< /code >}}
+{{< code-toggle file="config" copy=false >}}
+permalinks:
+  posts: /:06/:1/:2/:title/
+{{< /code-toggle >}}
 
-Now when you visit any of the locations specified in aliases---i.e., _assuming the same site domain_---you'll be redirected to the page they are specified on. For example, a visitor to `example.com/posts/my-original-url/` will be immediately redirected to `example.com/posts/my-awesome-post/`.
+### Appearance
 
-### Example: Aliases in Multilingual
+The appearance of a URL is either ugly or pretty.
 
-On [multilingual sites][multilingual], each translation of a post can have unique aliases. To use the same alias across multiple languages, prefix it with the language code.
+Type|Path|URL
+:--|:--|:--
+ugly|content/about.md|`https://example.org/about.html`
+pretty|content/about.md|`https://example.org/about/`
 
-In `/posts/my-new-post.es.md`:
+By default, Hugo produces pretty URLs. To generate ugly URLs, change your site configuration:
 
-```md
----
-aliases:
-    - /es/posts/my-original-post/
----
-```
+{{< code-toggle file="config" copy=false >}}
+uglyURLs = true
+{{< /code-toggle >}}
 
-From Hugo 0.55 you can also have page-relative aliases, so `/es/posts/my-original-post/` can be simplified to the more portable `my-original-post/`
+### Post-processing
 
-### How Hugo Aliases Work
+Hugo provides two mutually exclusive configuration options to alter URLs _after_ it renders a page.
 
-When aliases are specified, Hugo creates a directory to match the alias entry. Inside the directory, Hugo creates an `.html` file specifying the canonical URL for the page and the new redirect target.
+#### Canonical URLs
 
-For example, a content file at `posts/my-intended-url.md` with the following in the front matter:
+{{% note %}}
+This is a legacy configuration option, superseded by template functions and markdown render hooks, and will likely be [removed in a future release].
 
-```yml
----
-title: My New post
-aliases: [/posts/my-old-url/]
----
-```
+[removed in a future release]: https://github.com/gohugoio/hugo/issues/4733
+{{% /note %}}
 
-Assuming a `baseURL` of `example.com`, the contents of the auto-generated alias `.html` found at `https://example.com/posts/my-old-url/` will contain the following:
+If enabled, Hugo performs a search and replace _after_ it renders the page. It searches for site-relative URLs (those with a leading slash) associated with `action`, `href`, `src`, `srcset`, and `url` attributes. It then prepends the `baseURL` to create absolute URLs.
 
-```html
-<!DOCTYPE html>
-<html>
-  <head>
-    <title>https://example.com/posts/my-intended-url</title>
-    <link rel="canonical" href="https://example.com/posts/my-intended-url"/>
-    <meta name="robots" content="noindex">
-    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
-    <meta http-equiv="refresh" content="0; url=https://example.com/posts/my-intended-url"/>
-  </head>
-</html>
+```text
+<a href="/about"> → <a href="https://example.org/about/">
+<img src="/a.gif"> → <img src="https://example.org/a.gif">
 ```
 
-The `http-equiv="refresh"` line is what performs the redirect, in 0 seconds in this case. If an end user of your website goes to `https://example.com/posts/my-old-url`, they will now be automatically redirected to the newer, correct URL. The addition of `<meta name="robots" content="noindex">` lets search engine bots know that they should not index your alias page (`https://example.com/posts/my-old-url/`).
-
-### Customize
+This is an imperfect, brute force approach that can affect content as well as HTML attributes. As noted above, this is a legacy configuration option that will likely be removed in a future release.
 
-You may customize this alias page by creating an `alias.html` template in the
-layouts folder of your site (i.e., `layouts/alias.html`). In this case, the data passed to the template is
-
-`Permalink`
-: the link to the page being aliased
+To enable:
 
-`Page`
-: the Page data for the page being aliased
-
-### Important Behaviors of Aliases
+{{< code-toggle file="config" copy=false >}}
+canonifyURLs = true
+{{< /code-toggle >}}
 
-1. Hugo makes no assumptions about aliases. They also do not change based
-on your UglyURLs setting. You need to provide absolute paths to your web root
-and the complete filename or directory.
-2. Aliases are rendered *before* any content are rendered and therefore will be overwritten by any content with the same location.
+#### Relative URLs
 
-## Pretty URLs
+{{% note %}}
+Do not enable this option unless you are creating a serverless site, navigable via the file system.
+{{% /note %}}
 
-Hugo's default behavior is to render your content with "pretty" URLs. No non-standard server-side configuration is required for these pretty URLs to work.
+If enabled, Hugo performs a search and replace _after_ it renders the page. It searches for site-relative URLs (those with a leading slash) associated with `action`, `href`, `src`, `srcset`, and `url` attributes. It then transforms the URL to be relative to the current page.
 
-The following demonstrates the concept:
+For example, when rendering `content/posts/post-1`:
 
-```txt
-content/posts/_index.md
-=> example.com/posts/
-content/posts/post-1.md
-=> example.com/posts/post-1/
+```text
+<a href="/about"> → <a href="../../about">
+<img src="/a.gif"> → <img src="../../a.gif">
 ```
 
-## Ugly URLs
+This is an imperfect, brute force approach that can affect content as well as HTML attributes. As noted above, do not enable this option unless you are creating a serverless site.
 
-If you would like to have what are often referred to as "ugly URLs" (e.g., example.com/urls.html), set `uglyurls = true` or `uglyurls: true` in your site's `config.toml` or `config.yaml`, respectively. You can also set the `HUGO_UGLYURLS` environment variable to `true` when running `hugo` or `hugo server`.
+To enable:
 
-If you want a specific piece of content to have an exact URL, you can specify this in the [front matter] under the `url` key. The following are examples of the same content directory and what the eventual URL structure will be when Hugo runs with its default behavior.
+{{< code-toggle file="config" copy=false >}}
+relativeURLs = true
+{{< /code-toggle >}}
 
-See [Content Organization][contentorg] for more details on paths.
+## Aliases
 
-```txt
-.
-└── content
-    └── about
-    |   └── _index.md  // <- https://example.com/about/
-    ├── posts
-    |   ├── firstpost.md   // <- https://example.com/posts/firstpost/
-    |   ├── happy
-    |   |   └── ness.md  // <- https://example.com/posts/happy/ness/
-    |   └── secondpost.md  // <- https://example.com/posts/secondpost/
-    └── quote
-        ├── first.md       // <- https://example.com/quote/first/
-        └── second.md      // <- https://example.com/quote/second/
-```
+Create redirects from old URLs to new URLs with aliases:
 
-Here's the same organization run with `hugo --uglyURLs`:
-
-```txt
-.
-└── content
-    └── about
-    |   └── _index.md  // <- https://example.com/about.html
-    ├── posts
-    |   ├── firstpost.md   // <- https://example.com/posts/firstpost.html
-    |   ├── happy
-    |   |   └── ness.md    // <- https://example.com/posts/happy/ness.html
-    |   └── secondpost.md  // <- https://example.com/posts/secondpost.html
-    └── quote
-        ├── first.md       // <- https://example.com/quote/first.html
-        └── second.md      // <- https://example.com/quote/second.html
-```
+- An alias with a leading slash is relative to the `baseURL`
+- An alias without a leading slash is relative to the current directory
 
-## Canonicalization
+### Examples {#alias-examples}
 
-By default, all relative URLs encountered in the input are left unmodified, e.g. `/css/foo.css` would stay as `/css/foo.css`. The `canonifyURLs` field in your site `config` has a default value of `false`.
+Change the file name of an existing page, and create an alias from the previous URL to the new URL:
 
-By setting `canonifyURLs` to `true`, all relative URLs would instead be *canonicalized* using `baseURL`.  For example, assuming you have `baseURL = https://example.com/`, the relative URL `/css/foo.css` would be turned into the absolute URL `https://example.com/css/foo.css`.
+{{< code-toggle file="content/posts/new-file-name.md" copy=false >}}
+aliases = ['/posts/previous-file-name']
+{{< /code-toggle >}}
 
-Benefits of canonicalization include fixing all URLs to be absolute, which may aid with some parsing tasks. Note, however, that all modern browsers handle this on the client without issue.
+Each of these directory-relative aliases is equivalent to the site-relative alias above:
 
-Benefits of non-canonicalization include being able to have scheme-relative resource inclusion; e.g., so that `http` vs `https` can be decided according to how the page was retrieved.
+- `previous-file-name`
+- `./previous-file-name`
+- `../posts/previous-file-name`
 
-{{% note "`canonifyURLs` default change" %}}
-In the May 2014 release of Hugo v0.11, the default value of `canonifyURLs` was switched from `true` to `false`, which we think is the better default and should continue to be the case going forward. Please verify and adjust your website accordingly if you are upgrading from v0.10 or older versions.
-{{% /note %}}
+You can create more than one alias to the current page:
 
-To find out the current value of `canonifyURLs` for your website, you may use the handy `hugo config` command added in v0.13.
+{{< code-toggle file="content/posts/new-file-name.md" copy=false >}}
+aliases = ['previous-file-name','original-file-name']
+{{< /code-toggle >}}
 
-```txt
-hugo config | grep -i canon
-```
+In a multilingual site, use a directory-relative alias, or include the language prefix with a site-relative alias:
 
-Or, if you are on Windows and do not have `grep` installed:
+{{< code-toggle file="content/posts/new-file-name.de.md" copy=false >}}
+aliases = ['/de/posts/previous-file-name']
+{{< /code-toggle >}}
 
-```txt
-hugo config | FINDSTR /I canon
-```
+### How Aliases Work
 
-## Set URL in Front Matter
+Using the first example above, Hugo generates the following site structure:
 
-In addition to specifying permalink values in your site configuration for different content sections, Hugo provides even more granular control for individual pieces of content.
+```text
+public/
+├── posts/
+│   ├── new-file-name/
+│   │   └── index.html
+│   ├── previous-file-name/
+│   │   └── index.html
+│   └── index.html
+└── index.html
+```
 
-Both `slug` and `url` can be defined in individual front matter. For more information on content destinations at build time, see [Content Organization][contentorg].
+The alias from the previous URL to the new URL is a client-side redirect:
 
-From Hugo 0.55, you can use URLs relative to the current site context (the language), which makes it simpler to maintain. For a Japanese translation, both of the following examples would get the same URL:
+{{< code file="posts/previous-file-name/index.html" copy=false >}}
+<!DOCTYPE html>
+<html lang="en-us">
+  <head>
+    <title>https://example.org/posts/new-file-name/</title>
+    <link rel="canonical" href="https://example.org/posts/new-file-name/">
+    <meta name="robots" content="noindex">
+    <meta charset="utf-8">
+    <meta http-equiv="refresh" content="0; url=https://example.org/posts/new-file-name/">
+  </head>
+</html>
+{{< /code >}}
 
-```markdown
----
-title: "Custom URL!"
-url: "/jp/custom/foo"
----
-```
+Collectively, the elements in the `head` section:
 
-```markdown
----
-title: "Custom URL!"
-url: "custom/foo"
----
-```
+- Tell search engines that the new URL is canonical
+- Tell search engines not to index the previous URL
+- Tell the browser to redirect to the new URL
 
-## Relative URLs
+Hugo renders alias files before rendering pages. A new page with the previous file name will overwrite the alias, as expected.
 
-By default, all relative URLs are left unchanged by Hugo, which can be problematic when you want to make your site browsable from a local file system.
+### Customize
 
-Setting `relativeURLs` to `true` in your [site configuration][config] will cause Hugo to rewrite all relative URLs to be relative to the current content.
+Create a new template (`layouts/alias.html`) to customize the content of the alias files. The template receives the following context:
 
-For example, if your `/posts/first/` page contains a link to `/about/`, Hugo will rewrite the URL to `../../about/`.
+`Permalink`
+: the link to the page being aliased
 
-[config]: /getting-started/configuration/
-[contentorg]: /content-management/organization/
-[front matter]: /content-management/front-matter/
-[multilingual]: /content-management/multilingual/
-[sections]: /content-management/sections/
-[usage]: /getting-started/usage/
+`Page`
+: the Page data for the page being aliased
index 5e46ae28754b67c2b8a464375015d1866771e830..cb6ca29660e0dd0e758344e662b36233e0abe725 100644 (file)
@@ -2,20 +2,14 @@
 title: Contribute to the Hugo Project
 linktitle: Contribute to Hugo
 description: Contribute to Hugo development and documentation.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [contribute]
 keywords: []
 menu:
   docs:
-    parent: "contribute"
+    parent: contribute
     weight: 01
-weight: 01     #rem
-draft: false
-slug:
+weight: 01
 aliases: [/tutorials/how-to-contribute-to-hugo/,/community/contributing/]
-toc: false
 ---
 
 Hugo relies heavily on the enthusiasm and participation of the open-source community. We need your support in both its development and documentation.
index b11ef09de89c066023e7ee52da76d7091f1825bd..c40b334ba68ee8b0d694c6e5d41a2e1f58edcd75 100644 (file)
@@ -2,17 +2,13 @@
 title: Contribute to Hugo Development
 linktitle: Development
 description: Hugo relies heavily on contributions from the open source community.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [contribute]
 keywords: [dev,open source]
-authors: [digitalcraftsman]
 menu:
   docs:
-    parent: "contribute"
+    parent: contribute
     weight: 10
 weight: 10
-sections_weight: 10
 toc: true
 ---
 
@@ -27,7 +23,7 @@ This contribution guide takes a step-by-step approach in hopes of helping newcom
 * You are new to Git or open-source projects in general
 * You are a fan of Hugo and enthusiastic about contributing to the project
 
-{{% note "Additional Questions?" %}}
+{{% note %}}
 If you're struggling at any point in this contribution guide, reach out to the Hugo community in [Hugo's Discussion forum](https://discourse.gohugo.io).
 {{% /note %}}
 
@@ -126,7 +122,9 @@ You set up the working copy of the repository locally on your computer. Your loc
 
 We assume that you've set up your `GOPATH` (see the section above if you're unsure about this). You should now copy the Hugo repository down to your computer. You'll hear this called "clone the repo". GitHub's [help pages](https://help.github.com/articles/cloning-a-repository/) give us a short explanation:
 
-> When you create a repository on GitHub, it exists as a remote repository. You can create a local clone of your repository on your computer and sync between the two locations.
+{{% note %}}
+When you create a repository on GitHub, it exists as a remote repository. You can create a local clone of your repository on your computer and sync between the two locations.
+{{% /note %}}
 
 We're going to clone the [master Hugo repository](https://github.com/gohugoio/hugo). That seems counter-intuitive, since you won't have commit rights on it. But it's required for the Go workflow. You'll work on a copy of the master and push your changes to your own repository on GitHub.
 
@@ -138,8 +136,7 @@ cd $HOME/src
 git clone https://github.com/gohugoio/hugo.git
 ```
 
-> Since Hugo 0.48, Hugo uses the Go Modules support built into Go 1.11 to build.
-> The easiest is to clone Hugo in a directory outside of GOPATH
+Since Hugo 0.48, Hugo uses the Go Modules support built into Go 1.11 to build. The easiest is to clone Hugo in a directory outside of GOPATH
 
 And then, install dependencies of Hugo by running the following in the cloned directory:
 
@@ -158,7 +155,9 @@ go install github.com/magefile/mage@latest
 
 If you're not familiar with this term, GitHub's [help pages](https://help.github.com/articles/fork-a-repo/) provide again a simple explanation:
 
-> A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project.
+{{% note %}}
+A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project.
+{{% /note %}}
 
 #### Fork by hand
 
@@ -316,7 +315,7 @@ git commit --amend
 
 {{% warning "Be Careful Modifying Multiple Commits"%}}
 Modifications such as those described in this section can have serious unintended consequences. Skip this section if you're not sure!
-{{% /warning %}}
+{{% /note %}}
 
 This is a bit more advanced. Git allows you to [rebase](https://git-scm.com/docs/git-rebase) commits interactively. In other words: it allows you to rewrite the commit history.
 
@@ -421,7 +420,7 @@ Feel free to [open an issue][newissue] if you think you found a bug or you have
 [docscontrib]: /contribute/documentation/
 [forums]: https://discourse.gohugo.io
 [gitbook]: https://git-scm.com/
-[gobootcamp]: https://www.golangbootcamp.com/book/get_setup
+[gobootcamp]: https://www.golang-book.com/guides/machine_setup
 [godl]: https://go.dev/dl/
 [goinstall]: https://go.dev/doc/install
 [gvm]: https://github.com/moovweb/gvm
index 641f86c81d068929cf9611bd4ef01858586f167c..b1fed4cb275f1bed7adce078365d635c7558e3db 100644 (file)
 ---
 title: Contribute to the Hugo Docs
 linktitle: Documentation
-description: Documentation is an integral part of any open source project. The Hugo docs are as much a work in progress as the source it attempts to cover.
-date: 2017-02-01
-publishdate: 2017-02-01
+description: Documentation is an integral part of any open source project. The Hugo documentation is as much a work in progress as the source it attempts to cover.
 categories: [contribute]
 keywords: [docs,documentation,community, contribute]
 menu:
   docs:
-    parent: "contribute"
+    parent: contribute
     weight: 20
+toc: true
 weight: 20
-sections_weight: 20
 aliases: [/contribute/docs/]
-toc: true
 ---
 
-## Create Your Fork
-
-It's best to make changes to the Hugo docs on your local machine to check for consistent visual styling. Make sure you've created a fork of [hugoDocs](https://github.com/gohugoio/hugoDocs) on GitHub and cloned the repository locally on your machine. For more information, you can see [GitHub's documentation on "forking"][ghforking] or follow along with [Hugo's development contribution guide][hugodev].
-
-You can then create a separate branch for your additions. Be sure to choose a descriptive branch name that best fits the type of content. The following is an example of a branch name you might use for adding a new website to the showcase:
-
-```txt
-git checkout -b jon-doe-showcase-addition
-```
+## GitHub workflow
 
-## Add New Content
+Step 1
+: Fork the [documentation repository].
 
-The Hugo docs make heavy use of Hugo's [archetypes] feature. All content sections in Hugo documentation have an assigned archetype.
+Step 2
+: Clone your fork.
 
-Adding new content to the Hugo docs follows the same pattern, regardless of the content section:
+Step 3
+: Create a new branch with a descriptive name.
 
-```txt
-hugo new <DOCS-SECTION>/<new-content-lowercase>.md
+```bash
+git checkout -b fix/typos-site-variables
 ```
 
-### Add a New Function
-
-Once you have cloned the Hugo repository, you can create a new function via the following command. Keep the filename lowercase.
+Step 4
+: Make changes.
 
-```txt
-hugo new functions/newfunction.md
-```
+Step 5
+: Commit your changes with a descriptive commit message, typically 50 characters or less. Included the "Closes" keyword if your change addresses one or more open [issues].
 
-The archetype for `functions` according to the Hugo docs is as follows:
-
-{{< code file="archetypes/functions.md" >}}
-{{< readfile file="/archetypes/functions.md">}}
-{{< /code >}}
+```bash
+git commit -m "Fix typos on site variables page
 
-#### New Function Required Fields
-
-Here is a review of the front matter fields automatically generated for you using `hugo new functions/*`:
-
-***`title`***
-: this will be auto-populated in all lowercase when you use `hugo new` generator.
-
-***`linktitle`***
-: the function's actual casing (e.g., `replaceRE` rather than `replacere`).
-
-***`description`***
-: a brief description used to populate the [Functions Quick Reference](/functions/).
-
-`categories`
-: currently auto-populated with 'functions` for future-proofing and portability reasons only; ignore this field.
-
-`tags`
-: only if you think it will help end users find other related functions
-
-`signature`
-: this is a signature/syntax definition for calling the function (e.g., `apply SEQUENCE FUNCTION [PARAM...]`).
+Closes #1234
+Closes #5678"
+```
 
-`workson`
-: acceptable values include `lists`,`taxonomies`, `terms`, `groups`, and `files`.
+Step 5
+: Push the new branch to your fork of the documentation repository.
 
-`hugoversion`
-: the version of Hugo that will ship with this new function.
+Step 6
+: Visit the [documentation repository] and create a pull request (PR).
 
-`relatedfuncs`
-: other [templating functions] you feel are related to your new function to help fellow Hugo users.
+[documentation repository]: https://github.com/gohugoio/hugoDocs/
+[issues]: https://github.com/gohugoio/hugoDocs/issues
 
-`{{.Content}}`
-: an extended description of the new function; examples are not only welcomed but encouraged.
+Step 7
+: A project maintainer will review your PR, and may request changes. You may delete your branch after the maintainer merges your PR.
 
-In the body of your function, expand the short description used in the front matter. Include as many examples as possible, and leverage the Hugo docs [`code` shortcode](#add-code-blocks). If you are unable to add examples but would like to solicit help from the Hugo community, add `needsexample: true` to your front matter.
+## Including sample code
 
-## Add Code Blocks
+{{% note %}}
+Use this syntax to include shortcodes calls within your code samples:
 
-Code blocks are crucial for providing examples of Hugo's new features to end users of the Hugo docs. Whenever possible, create examples that you think Hugo users will be able to implement in their own projects.
+`{{</*/* foo */*/>}}`\
+`{{%/*/* foo */*/%}}`
+{{% /note %}}
 
-### Standard Syntax
+### Fenced code blocks
 
-Across many pages on the Hugo docs, the typical triple-back-tick Markdown syntax (```` ``` ````) is used. If you do not want to take the extra time to implement the following code block shortcodes, please use standard GitHub-flavored Markdown. 
+Include the language when using a fenced code block.
 
-````txt
+````text
 ```go-html-template
-{{ range site.RegularPages }}
-  <h2><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></h2>
+{{ if eq $foo "bar" }}
+  {{ print "foo is bar" }}
 {{ end }}
 ```
 ````
 
-
-### Code Block Shortcode
-
-The Hugo documentation comes with a very robust shortcode for adding interactive code blocks.
-
-{{% note %}}
-With the `code` shortcodes, *you must include triple back ticks and a language declaration*. This was done by design so that the shortcode wrappers were easily added to legacy documentation and will be that much easier to remove if needed in future versions of the Hugo docs.
-{{% /note %}}
-
-### `code`
-
-`code` is the Hugo docs shortcode you'll use most often. `code` requires has only one named parameter: `file`. Here is the pattern:
+Rendered:
 
 ```go-html-template
-{{%/* code file="smart/file/name/with/path.html" download="download.html" copy="true" */%}}
-A whole bunch of coding going on up in here!
-{{%/* /code */%}}
+{{ if eq $foo "bar" }}
+  {{ print "foo is bar" }}
+{{ end }}
 ```
 
-The following are the arguments passed into `code`:
+### The code shortcode
 
-***`file`***
-: the only *required* argument. `file` is needed for styling but also plays an important role in helping users create a mental model around Hugo's directory structure. Visually, this will be displayed as text in the top left of the code block.
+Use the `code` shortcode to include the file name and a copy-to-clipboard button. This shortcode accepts these optional parameters:
 
-`download`
-: if omitted, this will have no effect on the rendered shortcode. When a value is added to `download`, it's used as the filename for a downloadable version of the code block.
+copy
+: (`bool`) If `true`, displays a copy-to-clipboard button. Default is `true`.
 
-`copy`
-: a copy button is added automatically to all `code` shortcodes. If you want to keep the filename and styling of `code` but don't want to encourage readers to copy the code (e.g., a "Do not do" snippet in a tutorial), use `copy="false"`.
+file
+: (`string`) The file name to display. If you do not provide a `lang` parameter, the file extension determines the code language.
 
-#### Example `code` Input
+lang
+: (`string`) The code language. Default is `text`.
 
-This example HTML code block tells Hugo users the following:
-
-1. This file *could* live in `layouts/_default`, as demonstrated by `layouts/_default/single.html` as the value for `file`.
-2. This snippet is complete enough to be downloaded and implemented in a Hugo project, as demonstrated by `download="single.html"`.
-
-```go-html-template
-{{</* code file="layouts/_default/single.html" download="single.html" */>}}
-{{ define "main" }}
-<main>
-    <article>
-        <header>
-            <h1>{{.Title}}</h1>
-            {{with .Params.subtitle}}
-            <span>{{.}}</span>
-        </header>
-        <div>
-            {{.Content}}
-        </div>
-        <aside>
-            {{.TableOfContents}}
-        </aside>
-    </article>
-</main>
+````text
+{{</* code file="layouts/_default_/single.html" */>}}
+{{ if eq $foo "bar" }}
+  {{ print "foo is bar" }}
 {{ end }}
 {{</* /code */>}}
-```
 
-##### Example 'code' Display
-
-The output of this example will render to the Hugo docs as follows:
-
-{{< code file="layouts/_default/single.html" download="single.html" >}}
-{{ define "main" }}
-<main>
-    <article>
-        <header>
-            <h1>{{.Title}}</h1>
-            {{with .Params.subtitle}}
-            <span>{{.}}</span>
-        </header>
-        <div>
-            {{.Content}}
-        </div>
-        <aside>
-            {{.TableOfContents}}
-        </aside>
-    </article>
-</main>
+````
+
+Rendered:
+
+{{< code file="layouts/_default_/single.html" >}}
+{{ if eq $foo "bar" }}
+  {{ print "foo is bar" }}
 {{ end }}
 {{< /code >}}
 
-<!-- #### Output Code Block
+### The code-toggle shortcode
 
-The `output` shortcode is almost identical to the `code` shortcode but only takes and requires `file`. The purpose of `output` is to show *rendered* HTML and therefore almost always follows another basic code block *or* and instance of the `code` shortcode:
+Use the `code-toggle` shortcode to display examples of site configuration, front matter, or data files. This shortcode accepts these optional parameters:
 
-```
-{{%/* output file="posts/my-first-post/index.html" */%}}
-<h1>This is my First Hugo Blog Post</h1>
-<p>I am excited to be using Hugo.</p>
-{{%/* /output */%}}
-```
+copy
+: (`bool`) If `true`, displays a copy-to-clipboard button. Default is `true`.
 
-The preceding `output` example will render as follows to the Hugo docs:
+file
+: (`string`) The file name to display. Omit the file extension for site configuration and data file examples.
 
-{{< output file="posts/my-first-post/index.html" >}}
-<h1>This is my First Hugo Blog Post</h1>
-<p>I am excited to be using Hugo.</p>
-{{< /output >}} -->
+fm
+: (`bool`) If `true`, displays the code as front matter. Default is `false`.
 
-## Blockquotes
+#### Site configuration example
 
-Blockquotes can be added to the Hugo documentation using [typical Markdown blockquote syntax][bqsyntax]:
-
-```md
-> Without the threat of punishment, there is no joy in flight.
+```text
+{{</* code-toggle file="config" */>}}
+baseURL = 'https://example.org'
+languageCode = 'en-US'
+title = "Example Site"
+{{</* /code-toggle */>}}
 ```
 
-The preceding blockquote will render as follows in the Hugo docs:
+Rendered:
 
-> Without the threat of punishment, there is no joy in flight.
+{{< code-toggle file="config" >}}
+baseURL = 'https://example.org'
+languageCode = 'en-US'
+title = "Example Site"
+{{< /code-toggle >}}
 
-However, you can add a quick and easy `<cite>` element (added on the client via JavaScript) by separating your main blockquote and the citation with a hyphen with a single space on each side:
+#### Front matter example
 
-```md
-> Without the threat of punishment, there is no joy in flight. - [Kobo Abe](https://en.wikipedia.org/wiki/Kobo_Abe)
+```text
+{{</* code-toggle file="content/about.md" fm=true */>}}
+title = "About"
+date = 2023-04-02T12:47:24-07:00
+draft = false
+{{</* /code-toggle */>}}
 ```
 
-Which will render as follows in the Hugo docs:
-
-> Without the threat of punishment, there is no joy in flight. - [Kobo Abe][abe]
+Rendered:
 
-{{% note "Blockquotes `!=` Admonitions" %}}
-Previous versions of Hugo documentation used blockquotes to draw attention to text. This is *not* the [intended semantic use of `<blockquote>`](https://html5doctor.com/cite-and-blockquote-reloaded/). Use blockquotes when quoting. To note or warn your user of specific information, use the admonition shortcodes that follow.
-{{% /note %}}
+{{< code-toggle file="content/about.md" fm=true >}}
+title = "About"
+date = 2023-04-02T12:47:24-07:00
+draft = false
+{{< /code-toggle >}}
 
 ## Admonitions
 
-**Admonitions** are common in technical documentation. The most popular is that seen in [reStructuredText Directives][sourceforge]. From the SourceForge documentation:
-
-> Admonitions are specially marked "topics" that can appear anywhere an ordinary body element can. They contain arbitrary body elements. Typically, an admonition is rendered as an offset block in a document, sometimes outlined or shaded, with a title matching the admonition type. - [SourceForge][sourceforge]
-
-The Hugo docs contain three admonitions: `note`, `tip`, and `warning`.
+Use the `note` shortcode to draw attention to content. Use the `{{%/*  */%}}` notation when calling this shortcode.
 
-### `note` Admonition
-
-Use the `note` shortcode when you want to draw attention to information subtly. `note` is intended to be less of an interruption in content than is `warning`.
-
-#### Example `note` Input
-
-{{< code file="note-with-heading.md" >}}
+```text
 {{%/* note */%}}
-Here is a piece of information I would like to draw your **attention** to.
+This is **bold** text.
 {{%/* /note */%}}
-{{< /code >}}
-
-#### Example `note` Output
-
-{{< output file="note-with-heading.html" >}}
-{{% note %}}
-Here is a piece of information I would like to draw your **attention** to.
-{{% /note %}}
-{{< /output >}}
-
-#### Example `note` Display
+```
 
 {{% note %}}
-Here is a piece of information I would like to draw your **attention** to.
-{{% /note %}}
-
-### `tip` Admonition
-
-Use the `tip` shortcode when you want to give the reader advice. `tip`, like `note`, is intended to be less of an interruption in content than is `warning`.
-
-#### Example `tip` Input
-
-{{< code file="using-tip.md" >}}
-{{%/* tip */%}}
-Here's a bit of advice to improve your productivity with Hugo.
-{{%/* /tip */%}}
-{{< /code >}}
-
-#### Example `tip` Output
-
-{{< output file="tip-output.html" >}}
-{{% tip %}}
-Here's a bit of advice to improve your productivity with Hugo.
-{{% /tip %}}
-{{< /output >}}
-
-#### Example `tip` Display
-
-{{% tip %}}
-Here's a bit of advice to improve your productivity with Hugo.
-{{% /tip %}}
-
-### `warning` Admonition
-
-Use the `warning` shortcode when you want to draw the user's attention to something important. A good usage example is for articulating breaking changes in Hugo versions, known bugs, or templating "gotchas."
-
-#### Example `warning` Input
-
-{{< code file="warning-admonition-input.md" >}}
-{{%/* warning */%}}
-This is a warning, which should be reserved for *important* information like breaking changes.
-{{%/* /warning */%}}
-{{< /code >}}
-
-#### Example `warning` Output
-
-{{< output file="warning-admonition-output.html" >}}
-{{% warning %}}
-This is a warning, which should be reserved for *important* information like breaking changes.
-{{% /warning %}}
-{{< /output >}}
-
-#### Example `warning` Display
-
-{{% warning %}}
-This is a warning, which should be reserved for *important* information like breaking changes.
-{{% /warning %}}
-
-{{% note "Pull Requests and Branches" %}}
-Similar to [contributing to Hugo development](/contribute/development/), the Hugo team expects you to create a separate branch/fork when you make your contributions to the Hugo docs.
+This is **bold** text.
 {{% /note %}}
-
-[abe]: https://en.wikipedia.org/wiki/Kobo_Abe
-[archetypes]: /content-management/archetypes/
-[bqsyntax]: https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#blockquotes
-[charcount]: https://www.lettercount.com/
-[`docs/static/images/showcase/`]: https://github.com/gohugoio/hugo/tree/master/docs/static/images/showcase/
-[ghforking]: https://help.github.com/articles/fork-a-repo/
-[hugodev]: /contribute/development/
-[shortcodeparams]: content-management/shortcodes/#shortcodes-without-markdown
-[sourceforge]: https://docutils.sourceforge.io/docs/ref/rst/directives.html#admonitions
-[templating function]: /functions/
index c515d1fcf7408df44f2f09c7e42416ce7191d0d6..adfc38cc2215cdc5638a7f93228c70d7974d1f52 100644 (file)
@@ -2,19 +2,14 @@
 title: Add Your Hugo Theme to the Showcase
 linktitle: Themes
 description: If you've built a Hugo theme and want to contribute back to the Hugo Community, share it with us.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [contribute]
 keywords: [contribute,themes,design]
-authors: [digitalcraftsman]
 menu:
   docs:
-    parent: "contribute"
+    parent: contribute
     weight: 30
 weight: 30
-sections_weight: 30
 aliases: [/contribute/theme/]
-wip: true
 toc: true
 ---
 
index 77cf283faaf00e446731e63cfc381ef643b67d3f..221d7c39299c6459686e2b8d9599f6e07a0a2f38 100644 (file)
@@ -2,17 +2,10 @@
 title: Hugo Documentation
 linktitle: Hugo
 description: Hugo is the world's fastest static website engine. It's written in Go (aka Golang) and developed by bep, spf13 and friends.
-date: 2017-02-01
-publishdate: 2017-02-01
 menu:
   main:
-    parent: "section name"
     weight: 01
-weight: 01     #rem
-draft: false
-slug:
-aliases: []
-toc: false
+weight: 01
 layout: documentation-home
 ---
 
index 6a6262f755d1fd2ef52b841093345a1bc5138263..f4f4405c66513b3e24070621b6e95e3c371d7644 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: .GetPage
 description: "Gets a `Page` of a given `path`."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [sections,lists,indexes]
 signature: [".GetPage PATH"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 `.GetPage` returns a page of a given `path`. Both `Site` and `Page` implements this method. The `Page` variant will, if given a relative path -- i.e. a path without a leading `/` -- try look for the page relative to the current page.
index e4440971fab6863fbd62681585682f950fe4341c..47c914ca4a4c9648e43023650661b9a85a44293f 100644 (file)
@@ -1,11 +1,10 @@
 ---
 title: .RenderString
 description: "Renders markup to HTML."
-date: 2019-12-18
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [markdown,goldmark,render]
 signature: [".RenderString MARKUP"]
 ---
@@ -26,8 +25,8 @@ Some examples:
 {{ $optBlock := dict "display" "block" }}
 {{ $optOrg := dict "markup" "org" }}
 {{ "**Bold Markdown**" | $p.RenderString }}
-{{  "**Bold Block Markdown**" | $p.RenderString  $optBlock }}
-{{  "/italic org mode/" | $p.RenderString  $optOrg }}
+{{ "**Bold Block Markdown**" | $p.RenderString  $optBlock }}
+{{ "/italic org mode/" | $p.RenderString  $optOrg }}
 ```
 
 {{< new-in "0.93.0" >}} **Note**: [markdownify](/functions/markdownify/) uses this function in order to support [Render Hooks](/getting-started/configuration-markup/#markdown-render-hooks).
index fa7974685afcea619f82ad4e722fd5c46d1add56..fd45fb6dd2a623cbc7d751f4ea0e677c2f64d853 100644 (file)
@@ -1,16 +1,11 @@
 ---
 title: Functions Quick Reference
-linktitle: Functions Quick Reference
 description: Comprehensive list of Hugo templating functions, including basic and advanced usage examples.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: []
 menu:
   docs:
-    parent: "functions"
-weight: 01     #rem
-draft: false
+    parent: functions
+weight: 01
 aliases: [/layout/functions/,/templates/functions]
 ---
 
index 116ffa8de548c287076120aa80a0e93fdb433c4f..96a9df833957b9f7e9c3f5ad36a4a220d8d7bf22 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: .AddDate
 description: Returns the time corresponding to adding the given number of years, months, and days to the given time.Time value.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dates,time]
 signature: [".AddDate YEARS MONTHS DAYS"]
-workson: [times]
-hugoversion:
 relatedfuncs: [now]
-deprecated: false
-aliases: []
 ---
 
 ```go-html-template
index 1d513e775f16bf982a382dcbb164de0b974d2321..b608784e3ebf24507b598944f25ebc318732006c 100644 (file)
@@ -1,25 +1,18 @@
 ---
 title: after
 description: "`after` slices an array to only the items after the <em>N</em>th item."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [iteration]
 signature: ["after INDEX COLLECTION"]
-workson: []
-hugoversion:
 relatedfuncs: [last,first,seq]
-deprecated: false
-aliases: []
 ---
 
 The following shows `after` being used in conjunction with the [`slice` function][slice]:
 
-```
+```go-html-template
 {{ $data := slice "one" "two" "three" "four" }}
 {{ range after 2 $data }}
     {{ . }}
@@ -34,27 +27,27 @@ You can use `after` in combination with the [`first` function] and Hugo's [power
 1. The top row is titled "Featured" and shows only the most recently published article (i.e. by `publishdate` in the content files' front matter).
 2. The second row is titled "Recent Articles" and shows only the 2nd- to 4th-most recently published articles.
 
-{{< code file="layouts/section/articles.html" download="articles.html" >}}
+{{< code file="layouts/section/articles.html" >}}
 {{ define "main" }}
 <section class="row featured-article">
-    <h2>Featured Article</h2>
-    {{ range first 1 .Pages.ByPublishDate.Reverse }}
-     <header>
-        <h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
-    </header>
-    <p>{{.Description}}</p>
-    {{ end }}
+  <h2>Featured Article</h2>
+  {{ range first 1 .Pages.ByPublishDate.Reverse }}
+  <header>
+      <h3><a href="{{ . Permalink }}">{{ .Title }}</a></h3>
+  </header>
+  <p>{{ .Description }}</p>
+{{ end }}
 </section>
 <div class="row recent-articles">
-    <h2>Recent Articles</h2>
-    {{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }}
-        <section class="recent-article">
-            <header>
-                <h3><a href="{{.Permalink}}">{{.Title}}</a></h3>
-            </header>
-            <p>{{.Description}}</p>
-        </section>
-    {{ end }}
+  <h2>Recent Articles</h2>
+  {{ range first 3 (after 1 .Pages.ByPublishDate.Reverse) }}
+    <section class="recent-article">
+      <header>
+          <h3><a href="{{ .Permalink }}">{{ .Title }}</a></h3>
+      </header>
+      <p>{{ .Description }}</p>
+    </section>
+  {{ end }}
 </div>
 {{ end }}
 {{< /code >}}
index 5530e193bc38e5df2a99b44e77f914f623b302fb..cf04a964007e1862f2f51b0cdf0eabdd6a287ff2 100644 (file)
@@ -1,15 +1,12 @@
 ---
 title: anchorize
 description: Takes a string and sanitizes it the same way as the [`defaultMarkdownHandler`](https://gohugo.io/getting-started/configuration-markup#configure-markup) does for markdown headers.
-date: 2018-10-13
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [markdown,strings]
 signature: ["anchorize INPUT"]
-hugoversion: "0.39"
-workson: []
 relatedfuncs: [humanize]
 ---
 
index 3e2fc13ccc35677102a374387014755e153f2f38..626bc124251e53c5484b32033fd328a400491640 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: append
 description: "`append` appends one or more values to a slice and returns the resulting slice."
-date: 2018-09-14
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [collections]
 signature: ["COLLECTION | append VALUE [VALUE]...", "COLLECTION | append COLLECTION"]
-workson: []
-hugoversion: "0.49"
 relatedfuncs: [last,first,where,slice]
-aliases: []
 ---
 
 An example appending single values:
index 983e2fdb96360d6d63f2f2fc041380a868fce2de..0bc071e7be616d69da4dc6dbf288c3041e80f43f 100644 (file)
@@ -1,27 +1,15 @@
 ---
 title: apply
 description: Given a map, array, or slice, `apply` returns a new slice with a function applied over it.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [advanced]
 signature: ["apply COLLECTION FUNCTION [PARAM...]"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
-{{< todo >}}
-POTENTIAL NEW CONTENT: see apply/sequence discussion: https://discourse.gohugo.io/t/apply-printf-on-a-sequence/5722;
-{{< /todo >}}
-
 `apply` expects at least three parameters, depending on the function being applied.
 
 1. The first parameter is the sequence to operate on.
@@ -30,15 +18,14 @@ POTENTIAL NEW CONTENT: see apply/sequence discussion: https://discourse.gohugo.i
 
 Here is an example of a content file with `names:` as a front matter field:
 
-```
-+++
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 names: [ "Derek Perkins", "Joe Bergevin", "Tanner Linsley" ]
-+++
-```
+{{< /code-toggle >}}
 
 You can then use `apply` as follows:
 
-```
+```go-html-template
 {{ apply .Params.names "urlize" "." }}
 ```
 
@@ -50,7 +37,7 @@ Which will result in the following:
 
 This is *roughly* equivalent to using the following with [range]:
 
-```
+```go-html-template
 {{ range .Params.names }}{{ . | urlize }}{{ end }}
 ```
 
@@ -58,25 +45,25 @@ However, it is not possible to provide the output of a range to the [`delimit` f
 
 If you have `post-tag-list.html` and `post-tag-link.html` as [partials], you *could* use the following snippets, respectively:
 
-{{< code file="layouts/partials/post-tag-list.html" copy="false" >}}
+{{< code file="layouts/partials/post-tag-list.html" copy=false >}}
 {{ with .Params.tags }}
-<div class="tags-list">
-  Tags:
-  {{ $len := len . }}
-  {{ if eq $len 1 }}
-    {{ partial "post-tag-link.html" (index . 0) }}
-  {{ else }}
-    {{ $last := sub $len 1 }}
-    {{ range first $last . }}
-      {{ partial "post-tag-link.html" . }},
+  <div class="tags-list">
+    Tags:
+    {{ $len := len . }}
+    {{ if eq $len 1 }}
+      {{ partial "post-tag-link.html" (index . 0) }}
+    {{ else }}
+      {{ $last := sub $len 1 }}
+      {{ range first $last . }}
+        {{ partial "post-tag-link.html" . }},
+      {{ end }}
+      {{ partial "post-tag-link.html" (index . $last) }}
     {{ end }}
-    {{ partial "post-tag-link.html" (index . $last) }}
-  {{ end }}
-</div>
+  </div>
 {{ end }}
 {{< /code >}}
 
-{{< code file="layouts/partials/post-tag-link.html" copy="false" >}}
+{{< code file="layouts/partials/post-tag-link.html" copy=false >}}
 <a class="post-tag post-tag-{{ . | urlize }}" href="/tags/{{ . | urlize }}">{{ . }}</a>
 {{< /code >}}
 
@@ -84,27 +71,27 @@ This works, but the complexity of `post-tag-list.html` is fairly high. The Hugo
 
 This first version of `layouts/partials/post-tag-list.html` separates all of the operations for ease of reading. The combined and DRYer version is shown next:
 
-```
+```go-html-template
 {{ with .Params.tags }}
-    <div class="tags-list">
-      Tags:
-      {{ $sort := sort . }}
-      {{ $links := apply $sort "partial" "post-tag-link.html" "." }}
-      {{ $clean := apply $links "chomp" "." }}
-      {{ delimit $clean ", " }}
-    </div>
+  <div class="tags-list">
+    Tags:
+    {{ $sort := sort . }}
+    {{ $links := apply $sort "partial" "post-tag-link.html" "." }}
+    {{ $clean := apply $links "chomp" "." }}
+    {{ delimit $clean ", " }}
+  </div>
 {{ end }}
 ```
 
 Now in the completed version, you can sort the tags, convert the tags to links with `layouts/partials/post-tag-link.html`, [chomp] off stray newlines, and join the tags together in a delimited list for presentation. Here is an even DRYer version of the preceding example:
 
-{{< code file="layouts/partials/post-tag-list.html" download="post-tag-list.html" >}}
-    {{ with .Params.tags }}
-    <div class="tags-list">
-      Tags:
-      {{ delimit (apply (apply (sort .) "partial" "post-tag-link.html" ".") "chomp" ".") ", " }}
-    </div>
-    {{ end }}
+{{< code file="layouts/partials/post-tag-list.html" >}}
+{{ with .Params.tags }}
+  <div class="tags-list">
+    Tags:
+    {{ delimit (apply (apply (sort .) "partial" "post-tag-link.html" ".") "chomp" ".") ", " }}
+  </div>
+{{ end }}
 {{< /code >}}
 
 {{% note %}}
index 54ca0440c255c35afb11c87779ccdbd637946ebc..a6de64bd95fc2185acf3a942ffadecf67279a18f 100644 (file)
@@ -1,40 +1,18 @@
 ---
 title: base64
 description: "`base64Encode` and `base64Decode` let you easily decode content with a base64 encoding and vice versa through pipes."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 relatedfuncs: []
 signature: ["base64Decode INPUT", "base64Encode INPUT"]
-workson: []
-hugoversion:
-deprecated: false
-draft: false
-aliases: []
 ---
 
-An example:
-
-{{< code file="base64-input.html" >}}
-<p>Hello world = {{ "Hello world" | base64Encode }}</p>
-<p>SGVsbG8gd29ybGQ = {{ "SGVsbG8gd29ybGQ=" | base64Decode }}</p>
-{{< /code >}}
-
-{{< output file="base-64-output.html" >}}
-<p>Hello world = SGVsbG8gd29ybGQ=</p>
-<p>SGVsbG8gd29ybGQ = Hello world</p>
-{{< /output >}}
-
-You can also pass other data types as arguments to the template function which tries to convert them. The following will convert *42* from an integer to a string because both `base64Encode` and `base64Decode` always return a string.
-
-```
-{{ 42 | base64Encode | base64Decode }}
-=> "42" rather than 42
+```go-html-template
+{{ "Hugo" | base64Encode }} → "SHVnbw=="
+{{ "SHVnbw==" | base64Decode }} → "Hugo"
 ```
 
 ## `base64` with APIs
@@ -42,8 +20,8 @@ You can also pass other data types as arguments to the template function which t
 Using base64 to decode and encode becomes really powerful if we have to handle
 responses from APIs.
 
-```
-{{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme"  }}
+```go-html-template
+{{ $resp := getJSON "https://api.github.com/repos/gohugoio/hugo/readme" }}
 {{ $resp.content | base64Decode | markdownify }}
 ```
 
index 3e61c8db572ed82b39a93bac5d643cc694210fca..861e7ecc443c6d9ffac3efdbf1f48e2295bef9de 100644 (file)
@@ -2,25 +2,19 @@
 title: chomp
 toc: true
 description: Removes any trailing newline characters.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [trim]
 signature:
   - "chomp INPUT"
   - "strings.Chomp INPUT"
-workson: []
-hugoversion:
 relatedfuncs: [truncate]
-deprecated: false
 ---
 
 Useful in a pipeline to remove newlines added by other processing (e.g., [`markdownify`](/functions/markdownify/)).
 
-```
-{{chomp "<p>Blockhead</p>\n"}} → "<p>Blockhead</p>"
+```go-html-template
+{{ chomp "<p>Blockhead</p>\n" }} → "<p>Blockhead</p>"
 ```
index 91640d8034aff44f729dbcaff41aec3c900d0d36..e4cf01e77969b5560525d40a9c370e09f6472121 100644 (file)
@@ -10,14 +10,13 @@ signature:
 - "complement COLLECTION [COLLECTION]..."
 - "collections.Complement COLLECTION [COLLECTION]..."
 relatedfuncs: [intersect,symdiff,union]
-aliases: []
 ---
 
 To find the elements within `$c3` that do not exist in `$c1` or `$c2`:
 
 ```go-html-template
 {{ $c1 := slice 3 }}
-{{ $c2 := slice 4 5  }}
+{{ $c2 := slice 4 5 }}
 {{ $c3 := slice 1 2 3 4 5 }}
 
 {{ complement $c1 $c2 $c3 }} → [1 2]
index 30b85325198c9bb32f6c205ed99e48262dbb97ff..8f87563d98d606881443f2411849f8c42de27917 100644 (file)
@@ -1,30 +1,26 @@
 ---
-title: "cond"
-date: 2017-09-08
+title: cond
 description: "Return one of two arguments, depending on the value of a third argument."
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["cond CONTROL VAR1 VAR2"]
-hugoversion: 0.27
 relatedfuncs: [default]
-toc: false
-draft: false
 ---
 
 `cond` returns *VAR1* if *CONTROL* is true, or *VAR2* if it is not.
 
 Example:
 
-```
+```go-html-template
 {{ cond (eq (len $geese) 1) "goose" "geese" }}
 ```
 
 Would emit "goose" if the `$geese` array has exactly 1 item, or "geese" otherwise.
 
-{{% warning %}}
+{{% note %}}
 Whenever you use a `cond` function, *both* variable expressions are *always* evaluated. This means that a usage like `cond false (div 1 0) 27` will throw an error because `div 1 0` will be evaluated *even though the condition is false*.
 
 In other words, the `cond` function does *not* provide [short-circuit evaluation](https://en.wikipedia.org/wiki/Short-circuit_evaluation) and does *not* work like a normal [ternary operator](https://en.wikipedia.org/wiki/%3F:) that will pass over the first expression if the condition returns `false`.
-{{% /warning %}}
+{{% /note %}}
index 01ded4d6fdaff2d339681349053ea474bd49e7e0..0d89af857940ba8e44a21b34946f7ff011a7d79d 100644 (file)
@@ -1,26 +1,20 @@
 ---
 title: countrunes
 description: Determines the number of runes in a string excluding any whitespace.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [counting, word count]
 signature:
   - "countrunes INPUT"
   - "strings.CountRunes INPUT"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 In contrast with `countwords` function, which counts every word in a string, the `countrunes` function determines the number of runes in the content and excludes any whitespace. This has specific utility if you are dealing with CJK-like languages.
 
-```
+```go-html-template
 {{ "Hello, 世界" | countrunes }}
 <!-- outputs a content length of 8 runes. -->
 ```
index 17f0fa5c25dcdb85548e70a98c8c411aaec3c2da..33dcbcaef50dcfedd9304b8dcc18098ecc69d206 100644 (file)
@@ -1,24 +1,18 @@
 ---
 title: countwords
 description: Counts the number of words in a string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [counting, word count]
 signature: ["countwords INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [countrunes]
-deprecated: false
 ---
 
 The template function works similar to the [.WordCount page variable][pagevars].
 
-```
+```go-html-template
 {{ "Hugo is a static site generator." | countwords }}
 <!-- outputs a content length of 6 words.  -->
 ```
index dddf7a9aafe8ca0d9ac736b9876a0193c0dc1a5d..9bcfff26fe8b3f198088cadfbbd005269491a13b 100644 (file)
@@ -4,10 +4,9 @@ description: Returns the FNV (Fowler–Noll–Vo) 32 bit hash of a given string.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [crypto hash FNV32 Fowler-Noll-Vo]
 signature: ["crypto.FNV32a STRING"]
-aliases: []
 ---
 
 This function calculates the 32 bit [FNV1a hash](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash) of a given string according to the [specification](https://datatracker.ietf.org/doc/html/draft-eastlake-fnv-12):
index 210913b8717b2ce81b187cd4b2e42d606aaca095..ddfb61296967547db0ef93227fcd25ed9c8e52f5 100644 (file)
@@ -1,21 +1,15 @@
 ---
 title: time.Format
 description: Converts a date/time to a localized string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dates,time,strings]
 signature:
   - "time.Format LAYOUT INPUT"
   - "dateFormat LAYOUT INPUT"
-workson: []
-hugoversion:
 relatedfuncs: [Format,now,Unix,time]
-deprecated: false
 ---
 
 `time.Format` (alias `dateFormat`) converts either a `time.Time` object (e.g. `.Date`) or a timestamp string `INPUT` into the format specified by the `LAYOUT` string.
index c4cc166a78258bbc2b868f3aad96726c7844ad78..b0e517366305a7b04fb3dc856d2f07117aecfe2f 100644 (file)
@@ -2,22 +2,14 @@
 title: default
 description: Allows setting a default value that can be returned if a first value is not set.
 qref: "Returns a default value if a value is not set when checked."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: [defaults]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: ["default DEFAULT INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 `default` checks whether a given value is set and returns a default value if it is not. *Set* in this context means different things depending on the data type:
@@ -42,50 +34,50 @@ newparam:
 
 `default` can be written in more than one way:
 
-```
-{{ index .Params "font" | default "Roboto" }}
-{{ default "Roboto" (index .Params "font") }}
+```go-html-template
+{{ .Params.font | default "Roboto" }}
+{{ default "Roboto" .Params.font }}
 ```
 
 Both of the above `default` function calls return `Roboto`.
 
 A `default` value, however, does not need to be hard coded like the previous example. The `default` value can be a variable or pulled directly from the front matter using dot notation:
 
-{{< code file="variable-as-default-value.html" nocopy="true" >}}
-{{$old := .Params.oldparam }}
+```go-html-template
+{{ $old := .Params.oldparam }}
 <p>{{ .Params.newparam | default $old }}</p>
-{{< /code >}}
+```
 
 Which would return:
 
-```
+```html
 <p>The default function helps make your templating DRYer.</p>
 ```
 
 And then using dot notation
 
-{{< code file="dot-notation-default-value.html" >}}
+```go-html-template
 <title>{{ .Params.seo_title | default .Title }}</title>
-{{< /code >}}
+```
 
 Which would return
 
-{{< output file="dot-notation-default-return-value.html" >}}
+```html
 <title>Sane Defaults</title>
-{{< /output >}}
+```
 
 The following have equivalent return values but are far less terse. This demonstrates the utility of `default`:
 
 Using `if`:
 
-{{< code file="if-instead-of-default.html" nocopy="true" >}}
-<title>{{if .Params.seo_title}}{{.Params.seo_title}}{{else}}{{.Title}}{{end}}</title>
+```go-html-template
+<title>{{ if .Params.seo_title }}{{ .Params.seo_title }}{{ else }}{{ .Title }}{{ end }}</title>
 => Sane Defaults
-{{< /code >}}
+```
 
 Using `with`:
 
-{{< code file="with-instead-of-default.html" nocopy="true" >}}
-<title>{{with .Params.seo_title}}{{.}}{{else}}{{.Title}}{{end}}</title>
+```go-html-template
+<title>{{ with .Params.seo_title }}{{ . }}{{ else }}{{ .Title }}{{ end }}</title>
 => Sane Defaults
-{{< /code >}}
+```
index 533af0523520a62312bb014b36c231eb030a31bf..cc0293526da46907b95790f9a5ab14bc2d3582aa 100644 (file)
@@ -1,62 +1,31 @@
 ---
 title: delimit
 description: Loops through any array, slice, or map and returns a string of all the values separated by a delimiter.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [iteration]
-toc: false
-signature: ["delimit COLLECTION DELIMIT LAST"]
-workson: [lists,taxonomies,terms]
-hugoversion:
+signature: ["delimit COLLECTION DELIMITER [LAST]"]
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
-`delimit` called in your template takes the form of
+Delimit a slice:
 
+```go-html-template
+{{ $s := slice "b" "a" "c" }}
+{{ delimit $s ", " }} → "b, a, c"
+{{ delimit $s ", " " and "}} → "b, a and c"
 ```
-{{ delimit array/slice/map delimiter optionallastdelimiter}}
-```
-
-`delimit` loops through any array, slice, or map and returns a string of all the values separated by a delimiter, the second argument in the function call. There is an optional third parameter that lets you choose a different delimiter to go between the last two values in the loop.
-
-To maintain a consistent output order, maps will be sorted by keys and only a slice of the values will be returned.
-
-The examples of `delimit` that follow all use the same front matter:
-
-{{< code file="delimit-example-front-matter.toml" nocopy="true" >}}
-+++
-title: I love Delimit
-tags: [ "tag1", "tag2", "tag3" ]
-+++
-{{< /code >}}
 
-{{< code file="delimit-page-tags-input.html" >}}
-<p>Tags: {{ delimit .Params.tags ", " }}</p>
-{{< /code >}}
+Delimit a map:
 
-{{< output file="delimit-page-tags-output.html" >}}
-<p>Tags: tag1, tag2, tag3</p>
-{{< /output >}}
+{{% note %}}
+The `delimit` function sorts maps by key, returning the values.
+{{% /note %}}
 
-Here is the same example but with the optional "last" delimiter:
-
-{{< code file="delimit-page-tags-final-and-input.html" >}}
-Tags: {{ delimit .Params.tags ", " ", and " }}
-{{< /code >}}
-
-{{< output file="delimit-page-tags-final-and-output.html" >}}
-<p>Tags: tag1, tag2, and tag3</p>
-{{< /output >}}
-
-
-[lists]: /templates/lists/
-[taxonomies]: /templates/taxonomy-templates/#taxonomy-list-templates
-[terms]: /templates/taxonomy-templates/#terms-list-templates
+```go-html-template
+{{ $m := dict "b" 2 "a" 1 "c" 3 }}
+{{ delimit $m ", " }} → "1, 2, 3"
+{{ delimit $m ", " " and "}} → "1, 2 and 3"
+```
index dd1e2cd5b07e571740e61c062e3aa347b3725ca0..27a786bec60d89409d56109b9418a11181296ef9 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: dict
 description: Creates a dictionary from a list of key and value pairs.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dictionary]
 signature: ["dict KEY VALUE [KEY VALUE]..."]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 `dict` is especially useful for passing more than one value to a partial template.
@@ -30,7 +24,7 @@ The partial below creates an SVG and expects `fill`, `height` and `width` from t
 
 ### Partial definition
 
-{{< code file="layouts/partials/svgs/external-links.svg" download="external-links.svg" >}}
+{{< code file="layouts/partials/svgs/external-links.svg" >}}
 <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
 fill="{{ .fill }}" width="{{ .width }}" height="{{ .height }}" viewBox="0 0 32 32" aria-label="External Link">
 <path d="M25.152 16.576v5.696q0 2.144-1.504 3.648t-3.648 1.504h-14.848q-2.144 0-3.648-1.504t-1.504-3.648v-14.848q0-2.112 1.504-3.616t3.648-1.536h12.576q0.224 0 0.384 0.16t0.16 0.416v1.152q0 0.256-0.16 0.416t-0.384 0.16h-12.576q-1.184 0-2.016 0.832t-0.864 2.016v14.848q0 1.184 0.864 2.016t2.016 0.864h14.848q1.184 0 2.016-0.864t0.832-2.016v-5.696q0-0.256 0.16-0.416t0.416-0.16h1.152q0.256 0 0.416 0.16t0.16 0.416zM32 1.152v9.12q0 0.48-0.352 0.8t-0.8 0.352-0.8-0.352l-3.136-3.136-11.648 11.648q-0.16 0.192-0.416 0.192t-0.384-0.192l-2.048-2.048q-0.192-0.16-0.192-0.384t0.192-0.416l11.648-11.648-3.136-3.136q-0.352-0.352-0.352-0.8t0.352-0.8 0.8-0.352h9.12q0.48 0 0.8 0.352t0.352 0.8z"></path>
index bf771c0a98c190e9ed8deeb237327e2261ba74cb..4dc365ae5bdbf7b60d5026b606a287094c192254 100644 (file)
@@ -4,10 +4,9 @@ description: Returns a `time.Duration` structure, using the given time unit and
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [time duration]
 signature: ["duration TIME_UNIT DURATION_NUMBER"]
-aliases: []
 ---
 
 `time.Duration` converts a given number into a [`time.Duration`](https://pkg.go.dev/time#Duration) structure so you can access its fields. E.g. you can perform [time operations](https://pkg.go.dev/time#Duration) on the returned `time.Duration` value:
index 515b5c449a02120e51659308f22b75d4a06907f1..840acf51c1d5f44069d858d4a4b33d656ad1ddb0 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: echoParam
 description: Prints a parameter if it is set.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["echoParam DICTIONARY KEY"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ echoParam .Params "project_url" }}
 ```
index a323470b774319e8b4939af8f847a0fb4cee608f..45753af134cabea304af959e3ae40820f57f3226 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: emojify
 description: Runs a string through the Emoji emoticons processor.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings,emojis]
 signature: ["emojify INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 `emojify` runs a passed string through the Emoji emoticons processor.
index d342a628a49576ce9b2617d5b8b3a267c1c2eda5..98eca1aa503de6a3190fbef5c24e0ccff9137cae 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: eq
-linktitle: eq
 description: Returns the boolean truth of arg1 == arg2.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["eq ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if eq .Section "blog" }}current{{ end }}
 ```
index 04fd0edb0e1013ff1358a660bfa79a6b00e56e69..b3e0fd2802432a83d8ebc40ce17587d58c4c3dd5 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: errorf and warnf
 description: Log ERROR or WARNING from the templates.
-date: 2017-09-30
-publishdate: 2017-09-30
-lastmod: 2017-09-30
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings, log, error]
 signature: ["errorf FORMAT INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [printf]
-deprecated: false
 ---
 
 `errorf` or `warnf` will evaluate a format string, then output the result to the ERROR or WARNING log (and only once per error message to avoid flooding the log).
@@ -22,11 +16,11 @@ Any ERROR will also cause the build to fail (the `hugo` command will `exit -1`).
 
 Both functions return an empty string, so the messages are only printed to the console.
 
-```
+```go-html-template
 {{ errorf "Failed to handle page %q" .Path }}
 ```
 
-```
+```go-html-template
 {{ warnf "You should update the shortcodes in %q" .Path }}
 ```
 
@@ -38,7 +32,7 @@ Sometimes it may make sense to let the user suppress an ERROR and make the build
 
 You can do this by using the `erroridf` function. This functions takes an error ID as the first argument.
 
-```
+```go-html-template
 {{ erroridf "my-custom-error" "You should consider fixing this." }}
 ```  
 
index 2175453de7fc8e6b5c44683015b0efcba78321a0..5a365b7c14bbf56d4a29cceeafecd30cfa9ddb80 100644 (file)
@@ -1,22 +1,14 @@
 ---
-title: "fileExists"
-linktitle: "fileExists"
-date: 2017-08-31T22:38:22+02:00
+title: fileExists
 description: Checks for file or directory existence.
-publishdate: 2017-08-31T22:38:22+02:00
-lastmod: 2021-11-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["os.FileExists PATH","fileExists PATH"]
-workson: []
-hugoversion:
 relatedfuncs: ['os.ReadDir','os.ReadFile','os.Stat']
-deprecated: false
-aliases: []
 ---
-The `os.FileExists` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional.
+The `os.FileExists` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional.
 
 With this directory structure:
 
index 13d43f896ac31ff76941e63e5be98080d30d4dfe..0b8978ec6af1b640aad9146768b954db6541d46f 100644 (file)
@@ -9,14 +9,25 @@ keywords: [regex]
 signature:
   - "findRE PATTERN INPUT [LIMIT]"
   - "strings.FindRE PATTERN INPUT [LIMIT]"
-relatedfuncs: [replaceRE]
-aliases: []
+relatedfuncs: [findRESubmatch, replaceRE]
 ---
-By default, the `findRE` function finds all matches. You can limit the number of matches with an optional LIMIT parameter.
+By default, `findRE` finds all matches. You can limit the number of matches with an optional LIMIT parameter.
 
 When specifying the regular expression, use a raw [string literal] (backticks) instead of an interpreted string literal (double quotes) to simplify the syntax. With an interpreted string literal you must escape backslashes.
 
-The syntax of the regular expression is the same general syntax used by Perl, Python, and other languages. More precisely, it is the syntax accepted by [RE2] except for `\C`.
+[string literal]: https://go.dev/ref/spec#String_literals
+
+This function uses the [RE2] regular expression library. See the [RE2 syntax documentation] for details. Note that the RE2 `\C` escape sequence is not supported.
+
+[RE2]: https://github.com/google/re2/
+[RE2 syntax documentation]: https://github.com/google/re2/wiki/Syntax/
+
+{{% note %}}
+The RE2 syntax is a subset of that accepted by [PCRE], roughly speaking, and with various [caveats].
+
+[caveats]: https://swtch.com/~rsc/regexp/regexp3.html#caveats
+[PCRE]: https://www.pcre.org/
+{{% /note %}}
 
 This example returns a slice of all second level headings (`h2` elements) within the rendered `.Content`:
 
@@ -35,25 +46,3 @@ To limit the number of matches to one:
 {{% note %}}
 You can write and test your regular expression using [regex101.com](https://regex101.com/). Be sure to select the Go flavor before you begin.
 {{% /note %}}
-
-## findRESubmatch
-
-In Hugo 0.110.0 we added a variant of `findRe` that returns a slice of strings holding the text of the leftmost match of the regular expression in s and the matches, if any, of its subexpressions.
-
-This:
-
-```go-html-template
-{{ findRESubmatch §§<a\s*href="(.+?)">(.+?)</a>§§ §§<li><a href="#foo">Foo</a></li> <li><a href="#bar">Bar</a></li>§§ | print | safeHTML }}
-```
-
-Will print:
-
-```
-[[<a href=\"#foo\">Foo</a> #foo Foo] [<a href=\"#bar\">Bar</a> #bar Bar]]
-```
-
-{{< new-in "0.110.0" >}}
-
-
-[RE2]: https://github.com/google/re2/wiki/Syntax
-[string literal]: https://go.dev/ref/spec#String_literals
diff --git a/content/en/functions/findresubmatch.md b/content/en/functions/findresubmatch.md
new file mode 100644 (file)
index 0000000..e1085a9
--- /dev/null
@@ -0,0 +1,102 @@
+---
+title: findRESubmatch
+description: Returns a slice of all successive matches of the regular expression. Each element is a slice of strings holding the text of the leftmost match of the regular expression and the matches, if any, of its subexpressions.
+categories: [functions]
+menu:
+  docs:
+    parent: functions
+keywords: [regex]
+signature:
+  - "findRESubmatch PATTERN INPUT [LIMIT]"
+  - "strings.FindRESubmatch PATTERN INPUT [LIMIT]"
+relatedfuncs: [findRE, replaceRE]
+---
+
+By default, `findRESubmatch` finds all matches. You can limit the number of matches with an optional LIMIT parameter. A return value of nil indicates no match.
+
+When specifying the regular expression, use a raw [string literal] (backticks) instead of an interpreted string literal (double quotes) to simplify the syntax. With an interpreted string literal you must escape backslashes.
+
+[string literal]: https://go.dev/ref/spec#String_literals
+
+This function uses the [RE2] regular expression library. See the [RE2 syntax documentation] for details. Note that the RE2 `\C` escape sequence is not supported.
+
+[RE2]: https://github.com/google/re2/
+[RE2 syntax documentation]: https://github.com/google/re2/wiki/Syntax/
+
+{{% note %}}
+The RE2 syntax is a subset of that accepted by [PCRE], roughly speaking, and with various [caveats].
+
+[caveats]: https://swtch.com/~rsc/regexp/regexp3.html#caveats
+[PCRE]: https://www.pcre.org/
+{{% /note %}}
+
+## Demonstrative examples
+
+```go-html-template
+{{ findRESubmatch `a(x*)b` "-ab-" }} → [["ab" ""]]
+{{ findRESubmatch `a(x*)b` "-axxb-" }} → [["axxb" "xx"]]
+{{ findRESubmatch `a(x*)b` "-ab-axb-" }} → [["ab" ""] ["axb" "x"]]
+{{ findRESubmatch `a(x*)b` "-axxb-ab-" }} → [["axxb" "xx"] ["ab" ""]]
+{{ findRESubmatch `a(x*)b` "-axxb-ab-" 1 }} → [["axxb" "xx"]]
+```
+
+## Practical example
+
+This markdown:
+
+```text
+- [Example](https://example.org)
+- [Hugo](https://gohugo.io)
+```
+
+Produces this HTML:
+
+```html
+<ul>
+  <li><a href="https://example.org">Example</a></li>
+  <li><a href="https://gohugo.io">Hugo</a></li>
+</ul>
+```
+
+To match the anchor elements, capturing the link destination and text:
+
+```go-html-template
+{{ $regex := `<a\s*href="(.+?)">(.+?)</a>` }}
+{{ $matches := findRESubmatch $regex .Content }}
+```
+
+Viewed as JSON, the data structure of `$matches` in the code above is:
+
+```json
+[
+  [
+    "<a href=\"https://example.org\"></a>Example</a>",
+    "https://example.org",
+    "Example"
+  ],
+  [
+    "<a href=\"https://gohugo.io\">Hugo</a>",
+    "https://gohugo.io",
+    "Hugo"
+  ]
+]
+```
+
+To render the `href` attributes:
+
+```go-html-template
+{{ range $matches }}
+  {{ index . 1 }}
+{{ end }}
+```
+
+Result:
+
+```text
+https://example.org
+https://gohugo.io
+```
+
+{{% note %}}
+You can write and test your regular expression using [regex101.com](https://regex101.com/). Be sure to select the Go flavor before you begin.
+{{% /note %}}
index 98d162617c1c45da0bd997050ab9660e809dafe3..118c9c504d3ef0a8bf6e4c2357ffc4555821b576 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: first
-linktitle: first
 description: "Slices an array to only the first _N_ elements."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [iteration]
 signature: ["first LIMIT COLLECTION"]
-workson: [lists,taxonomies,terms,groups]
-hugoversion:
 relatedfuncs: [after,last]
-deprecated: false
-aliases: []
 ---
 
 `first` works in a similar manner to the [`limit` keyword in
index 1c589e31748e2f6b3b6404ece0f7599a2db74174..e95b3ae5face661f464c0be4c193e9a94a0ad4e2 100644 (file)
@@ -1,25 +1,45 @@
 ---
 title: float
-linktitle: float
-description: Creates a `float` from the argument passed into the function.
-date: 2017-09-28
-publishdate: 2017-09-28
-lastmod: 2017-09-28
+description: Casts a value to a decimal (base 10) floating point value.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
-keywords: [strings,floats]
+    parent: functions
+keywords: [cast,strings,floats]
 signature: ["float INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-Useful for turning strings into floating point numbers.
+With a decimal (base 10) input:
 
+```go-html-template
+{{ float 11 }} → 11 (float64)
+{{ float "11" }} → 11 (float64)
+
+{{ float 11.1 }} → 11.1 (float64)
+{{ float "11.1" }} → 11.1 (float64)
+
+{{ float 11.9 }} → 11.9 (float64)
+{{ float "11.9" }} → 11.9 (float64)
+```
+
+With a binary (base 2) input:
+
+```go-html-template
+{{ float 0b11 }} → 3 (float64)
 ```
-{{ float "1.23" }} → 1.23
+
+With an octal (base 8) input (use either notation):
+
+```go-html-template
+{{ float 011 }} → 9 (float64)
+{{ float "011" }} → 11 (float64)
+
+{{ float 0o11 }} → 9 (float64)
+```
+
+With a hexadecimal (base 16) input:
+
+```go-html-template
+{{ float 0x11 }} → 17 (float64)
 ```
index 5c86714fe2663e2c87789e0021048a794c41563f..af34cbf7e136b5339c3395abfb1f7f7662b84aad 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: .Format
 description: Formats built-in Hugo dates---`.Date`, `.PublishDate`, and `.Lastmod`---according to Go's layout string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dates,time]
 signature: [".Format FORMAT"]
-workson: [times]
-hugoversion:
 relatedfuncs: [dateFormat,now,Unix,time]
-deprecated: false
-aliases: []
 toc: true
 ---
 
@@ -26,7 +19,7 @@ toc: true
 
 Assuming a key-value of `date: 2017-03-03` in a content file's front matter, your can run the date through `.Format` followed by a layout string for your desired output at build time:
 
-```
+```go-html-template
 {{ .PublishDate.Format "January 2, 2006" }} => March 3, 2017
 ```
 
@@ -97,7 +90,7 @@ Spelled-out cardinal numbers (e.g. "one", "two", and "three") are not currently
 
 Use the [`humanize`](/functions/humanize) function to render the day of the month as an ordinal number:
 
-```
+```go-html-template
 {{ humanize .Date.Day }} of {{ .Date.Format "January 2006" }}
 ```
 
index c7256c0e30d1cee9c6cdcbe1d6d13d4b7861de82..8306935f049f1e65c77076731a37ccf220518a47 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: ge
-linktitle: ge
 description: Returns the boolean truth of arg1 >= arg2.
-date: 2017-07-26
-publishdate: 2017-07-26
-lastmod: 2017-07-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["ge ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if ge 10 5 }}true{{ end }}
 ```
index 27f3488076378667f1bd0faabad614f5211ff2fc..561a794c7c39eb94afe19793149b5854ea32f798 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: .Get
 description: Accesses positional and ordered parameters in shortcode declaration.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [shortcodes]
 signature: [".Get INDEX", ".Get KEY"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
-needsexample: true
 ---
 
 `.Get` is specifically used when creating your own [shortcode template][sc], to access the [positional and named](/templates/shortcode-templates/#positional-vs-named-parameters) parameters passed to it. When used with a numeric INDEX, it queries positional parameters (starting with 0). With a string KEY, it queries named parameters.
index 93e93a38258bed7b2d85f4aa7e2edb4723984fcc..e014b7ad5c13e6beec74f75d8f462371efb944ab 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: getenv
 description: Returns the value of an environment variable, or an empty string if the environment variable is not set.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2021-11-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["os.Getenv VARIABLE", "getenv VARIABLE"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 Examples:
 
@@ -43,4 +36,3 @@ And then retrieve the values within a template:
 ```
 
 With Hugo v0.91.0 and later, you must explicitly allow access to environment variables. For details, review [Hugo's Security Policy](/about/security-model/#security-policy). By default, environment variables beginning with `HUGO_` are allowed when using the `os.Getenv` function.
-
index 203498cb11d755595ecd1b8ebf999876048995ec..617dcbb344daf781995bb0cad418adee814c2830 100644 (file)
@@ -1,14 +1,12 @@
 ---
 title: group
 description: "`group` groups a list of pages."
-date: 2018-09-14
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [collections]
 signature: ["PAGES | group KEY"]
-hugoversion: "0.49"
 ---
 
 {{< code file="layouts/partials/groups.html" >}}
index 91203f89069d907fa984f5e963ecbbb9994620f2..dba0d4dfc3d5cbebc67fedc6ebef50e8301cf3d8 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: gt
-linktitle: gt
 description: Returns the boolean truth of arg1 > arg2.
-date: 2017-07-26
-publishdate: 2017-07-26
-lastmod: 2017-07-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["gt ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if gt 10 5 }}true{{ end }}
 ```
diff --git a/content/en/functions/hasPrefix.md b/content/en/functions/hasPrefix.md
deleted file mode 100644 (file)
index 99d5ba8..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
----
-title: hasprefix
-linktitle: hasPrefix
-description: Tests whether a string begins with prefix.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
-categories: [functions]
-menu:
-  docs:
-    parent: "functions"
-keywords: []
-signature: ["hasPrefix STRING PREFIX"]
-workson: []
-hugoversion:
-relatedfuncs: []
-deprecated: false
-aliases: []
----
-
-* `{{ hasPrefix "Hugo" "Hu" }}` → true
index fea980120def7f05cdcffd88168c5d38fcb1f4d8..8605cf34ef2f8e7c2184c8038b8581495e03506b 100644 (file)
@@ -1,22 +1,13 @@
 ---
 title: .HasMenuCurrent
 description:
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [menus]
 signature: ["PAGE.HasMenuCurrent MENU MENUENTRY"]
-workson: [menus]
-hugoversion:
 relatedfuncs: ["IsMenuCurrent"]
-deprecated: false
-toc: false
-draft: false
-aliases: []
 ---
 
 `.HasMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
index 10b1c2d904d6ea28c6dfbce8853ea03c6e84a18f..2ca125467f9bf3255ec728579077c97f776291c4 100644 (file)
@@ -1,18 +1,13 @@
 ---
 title: highlight
-linktitle: highlight
 description: Renders code with a syntax highlighter.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2021-12-06
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [highlighting,code blocks,syntax]
 signature: ["transform.Highlight INPUT LANG [OPTIONS]","highlight INPUT LANG [OPTIONS]"]
 relatedfuncs: []
-deprecated: false
 toc: true
 ---
 The `highlight` function uses the [Chroma] syntax highlighter, supporting over 200 languages with more than 40 available styles.
@@ -101,8 +96,8 @@ Instead of specifying both `lineNos` and `lineNumbersInTable`, you can use the f
 ```
 
 [Chroma]: https://github.com/alecthomas/chroma
-[hugo client]: {{< relref "commands/hugo_gen_chromastyles" >}}
-[options]: {{< relref "#options" >}}
-[site configuration]: {{< relref "getting-started/configuration-markup#highlight">}}
+[hugo client]: /commands/hugo_gen_chromastyles
+[options]: #options
+[site configuration]: /getting-started/configuration-markup#highlight
 [style gallery]: https://xyproto.github.io/splash/docs/
-[supported languages]: {{< relref "content-management/syntax-highlighting#list-of-chroma-highlighting-languages" >}}
+[supported languages]: /content-management/syntax-highlighting#list-of-chroma-highlighting-languages
index b906e5abb0220c390a4970139e2c600859be2d47..3b9675a0b816e586887b55000153ec7d8fac330a 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: hmac
-linktitle: hmac
 description: Returns a cryptographic hash that uses a key to sign a message.
-date: 2020-05-29
-publishdate: 2020-05-29
-lastmod: 2020-05-29
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [hmac,checksum]
 signature: ["crypto.HMAC HASH_TYPE KEY MESSAGE [ENCODING]","hmac HASH_TYPE KEY MESSAGE [ENCODING]" ]
-workson: []
-hugoversion:
 relatedfuncs: [hmac]
-deprecated: false
-aliases: []
 ---
 
 Set the `HASH_TYPE` argument to `md5`, `sha1`, `sha256`, or `sha512`.
index 652492c72d3696baf85763517e7fcc1b669e8f40..0ee8fa4d224a51402dfa168a3289f7aaef290b73 100644 (file)
@@ -1,25 +1,17 @@
 ---
 title: htmlEscape
-linktitle:
 description: Returns the given string with the reserved HTML codes escaped.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings, html]
 signature: ["htmlEscape INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [htmlUnescape]
-deprecated: false
-aliases: []
 ---
 
 In the result `&` becomes `&amp;` and so on. It escapes only: `<`, `>`, `&`, `'` and `"`.
 
-```
+```go-html-template
 {{ htmlEscape "Hugo & Caddy > WordPress & Apache" }} → "Hugo &amp; Caddy &gt; WordPress &amp; Apache"
 ```
index 9533fde90e435d8dfe5a188b82f88d3e6c5f8cfa..e4646b680708c0063f38f40833209845636610bb 100644 (file)
@@ -1,27 +1,19 @@
 ---
 title: htmlUnescape
-linktitle: htmlUnescape
 description: Returns the given string with HTML escape codes un-escaped.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["htmlUnescape INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [htmlEscape]
-deprecated: false
-aliases: []
 ---
 
 `htmlUnescape` returns the given string with HTML escape codes un-escaped.
 
 Remember to pass the output of this to `safeHTML` if fully un-escaped characters are desired. Otherwise, the output will be escaped again as normal.
 
-```
+```go-html-template
 {{ htmlUnescape "Hugo &amp; Caddy &gt; WordPress &amp; Apache" }} → "Hugo & Caddy > WordPress & Apache"
 ```
index 41c7a0322b555ede75b9941b6d66b5f37f191ebc..998c71c37207aca014d16d3fdedf00b15c8b4ab5 100644 (file)
@@ -1,22 +1,14 @@
 ---
 title: hugo
-linktitle: hugo
 description: The `hugo` function provides easy access to Hugo-related data.
-date: 2019-01-31
-publishdate: 2019-01-31
 keywords: []
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: ["hugo"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 `hugo` returns an instance that contains the following functions:
@@ -45,10 +37,6 @@ hugo.IsExtended
 hugo.IsProduction
 : returns true if `hugo.Environment` is set to the production environment
 
-{{% note "Use the Hugo Generator Tag" %}}
-We highly recommend using `hugo.Generator` in your website's `<head>`. `hugo.Generator` is included by default in all themes hosted on [themes.gohugo.io](https://themes.gohugo.io). The generator tag allows the Hugo team to track the usage and popularity of Hugo.
-{{% /note %}}
-
 hugo.Deps
 : See [hugo.Deps](#hugodeps)
 
@@ -97,10 +85,10 @@ An example table listing the dependencies:
     {{ range $index, $element := hugo.Deps }}
     <tr>
       <th scope="row">{{ add $index 1 }}</th>
-      <td>{{ with $element.Owner }}{{.Path }}{{ end }}</td>
+      <td>{{ with $element.Owner }}{{ .Path }}{{ end }}</td>
       <td>
         {{ $element.Path }}
-        {{ with $element.Replace}}
+        {{ with $element.Replace }}
         => {{ .Path }}
         {{ end }}
       </td>
index 18a0875911ed5ee40ce87e37d007071016851c2b..6cbd858370709ff203a0332687a07af77607c780 100644 (file)
@@ -1,29 +1,21 @@
 ---
 title: humanize
-linktitle:
 description: Returns the humanized version of an argument with the first letter capitalized.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings,casing]
 signature: ["humanize INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [anchorize]
-deprecated: false
-aliases: []
 ---
 
 If the input is either an int64 value or the string representation of an integer, humanize returns the number with the proper ordinal appended.
 
 
-```
-{{humanize "my-first-post"}} → "My first post"
-{{humanize "myCamelPost"}} → "My camel post"
-{{humanize "52"}} → "52nd"
-{{humanize 103}} → "103rd"
+```go-html-template
+{{ humanize "my-first-post" }} → "My first post"
+{{ humanize "myCamelPost" }} → "My camel post"
+{{ humanize "52" }} → "52nd"
+{{ humanize 103 }} → "103rd"
 ```
index 8f8c9642c0b49be2750ee50e84a2dbad67599006..13f3a6f8f75fd6cddfdb6c576fdaa152846f6f2f 100644 (file)
@@ -1,33 +1,25 @@
 ---
 title: i18n
-linktitle: i18n
 description: Translates a piece of content based on your i18n configuration files.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [internationalization,i18n,multilingual]
 signature:
   - "i18n KEY"
   - "T KEY"
   - "lang.Translate KEY"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 This translates a piece of content based on your `i18n/en-US.toml` files. You can use the [go-i18n](https://github.com/nicksnyder/go-i18n) tools to manage your translations. The translations can exist in both the theme and at the root of your repository.
 
-```
+```go-html-template
 {{ i18n "translation_id" }}
 ```
 
-{{% note "Alias `T`" %}}
+{{% note %}}
 `T` is an alias to `i18n`. E.g. `{{ T "translation_id" }}`.
 {{% /note %}}
 
@@ -35,7 +27,7 @@ This translates a piece of content based on your `i18n/en-US.toml` files. You ca
 
 Often you will want to use the page variables in the translation strings. To do so, pass the `.` context when calling `i18n`:
 
-```
+```go-html-template
 {{ i18n "wordCount" . }}
 ```
 
index e7fc50f7e8adc5aee258b3e32ba9730f03bf5de0..9cd772e5b8cce67cc29ebfe4c7bee45a7ffed67c 100644 (file)
@@ -1,12 +1,11 @@
 ---
 title: Image Filters
 description: The images namespace provides a list of filters and other image related functions.
-date: 2017-02-01
 categories: [functions]
 aliases: [/functions/imageconfig/]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [images]
 toc: true
 ---
@@ -46,7 +45,7 @@ images.Text TEXT DICT)
 The following example will add the text `Hugo rocks!` to the image with the specified color, size and position.
 
 ```go-html-template
-{{ $img := resources.Get "/images/background.png"}}
+{{ $img := resources.Get "/images/background.png" }}
 {{ $img = $img.Filter (images.Text "Hugo rocks!" (dict
     "color" "#ffffff"
     "size" 60
@@ -61,7 +60,7 @@ You can load a custom font if needed. Load the font as a Hugo `Resource` and set
 ```go-html-template
 
 {{ $font := resources.GetRemote "https://github.com/google/fonts/raw/main/apache/roboto/static/Roboto-Black.ttf" }}
-{{ $img := resources.Get "/images/background.png"}}
+{{ $img := resources.Get "/images/background.png" }}
 {{ $img = $img.Filter (images.Text "Hugo rocks!" (dict
     "font" $font
 ))}}
@@ -222,6 +221,6 @@ images.ImageConfig PATH
 
 ```go-html-template
 {{ with (imageConfig "favicon.ico") }}
-favicon.ico: {{.Width}} x {{.Height}}
+favicon.ico: {{ .Width }} x {{ .Height }}
 {{ end }}
 ```
index 7a8cb33eb901cd3c781628fa2b0f352cd5dbdf13..1baf7ce905af9c6eb54b1b71e7a547df355dd093 100644 (file)
@@ -1,32 +1,24 @@
 ---
 title: in
-linktitle:
 description: Checks if an element is in an array or slice--or a substring in a string---and returns a boolean.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["in SET ITEM"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 The elements supported are strings, integers and floats, although only float64 will match as expected.
 
 In addition, `in` can also check if a substring exists in a string.
 
-```
+```go-html-template
 {{ if in .Params.tags "Git" }}Follow me on GitHub!{{ end }}
 ```
 
 
-```
+```go-html-template
 {{ if in "this string contains a substring" "substring" }}Substring found!{{ end }}
 ```
index 6ee46b4a8ba6bf70a655b3cfac4e8f4120fcd9a3..6fb9f0fec66234cb83608d0ae51e228c60afc247 100644 (file)
@@ -1,22 +1,14 @@
 ---
 title: index
-linktitle: index
 description: Looks up the index(es) or key(s) of the data structure passed into it.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["index COLLECTION INDEXES", "index COLLECTION KEYS"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 aliases: [/functions/index/]
-needsexample: true
 ---
 
 The `index` functions returns the result of indexing its first argument by the following arguments. Each indexed item must be a map or a slice, e.g.:
@@ -61,7 +53,7 @@ Assume you want to add a `location = ""` field to your front matter for every ar
 
 Here is an example:
 
-{{< code-toggle file="data/locations/oslo" >}}
+{{< code-toggle file="data/locations/oslo" copy=false >}}
 website = "https://www.oslo.kommune.no"
 pop_city = 658390
 pop_metro = 1717900
@@ -69,10 +61,10 @@ pop_metro = 1717900
 
 The example we will use will be an article on Oslo, whose front matter should be set to exactly the same name as the corresponding file name in `data/locations/`:
 
-```
+{{< code-toggle file="content/articles/oslo.md" fm=true copy=false >}}
 title = "My Norwegian Vacation"
 location = "oslo"
-```
+{{< /code-toggle >}}
 
 The content of `oslo.toml` can be accessed from your template using the following node path: `.Site.Data.locations.oslo`. However, the specific file you need is going to change according to the front matter.
 
@@ -81,20 +73,20 @@ This is where the `index` function is needed. `index` takes 2 parameters in this
 1. The node path
 2. A string corresponding to the desired data; e.g.&mdash;
 
-```
-{{ index .Site.Data.locations “oslo” }}
+```go-html-template
+{{ index .Site.Data.locations "oslo" }}
 ```
 
 The variable for `.Params.location` is a string and can therefore replace `oslo` in the example above:
 
-```
+```go-html-template
 {{ index .Site.Data.locations .Params.location }}
 => map[website:https://www.oslo.kommune.no pop_city:658390 pop_metro:1717900]
 ```
 
 Now the call will return the specific file according to the location specified in the content's front matter, but you will likely want to write specific properties to the template. You can do this by continuing down the node path via dot notation (`.`):
 
-```
+```go-html-template
 {{ (index .Site.Data.locations .Params.location).pop_city }}
 => 658390
 ```
index 33888e11701e3916438edaf94919774ec791a729..1d91c9fdde6bda877535a35974f7196044a5f270 100644 (file)
@@ -1,50 +1,51 @@
 ---
 title: int
-linktitle: int
-description: Creates an `int` from the argument passed into the function.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Casts a value to a decimal (base 10) integer.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
-keywords: [strings,integers]
+    parent: functions
+keywords: [cast,strings,integers]
 signature: ["int INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-Useful for turning strings into numbers.
+With a decimal (base 10) input:
 
+```go-html-template
+{{ int 11 }} → 11 (int)
+{{ int "11" }} → 11 (int)
+
+{{ int 11.1 }} → 11 (int)
+{{ int 11.9 }} → 11 (int)
 ```
-{{ int "123" }} → 123
+
+With a binary (base 2) input:
+
+```go-html-template
+{{ int 0b11 }} → 3 (int)
+{{ int "0b11" }} → 3 (int)
 ```
 
-{{% note "Usage Note" %}}
-If the input string is supposed to represent a decimal number, and if it has
-leading 0's, then those 0's will have to be removed before passing the string
-to the `int` function, else that string will be tried to be parsed as an octal
-number representation.
+With an octal (base 8) input (use either notation):
 
-The [`strings.TrimLeft` function](/functions/strings.trimleft/) can be used for
-this purpose.
+```go-html-template
+{{ int 011 }} → 9 (int)
+{{ int "011" }} → 9 (int)
 
-```
-{{ int ("0987" | strings.TrimLeft "0") }}
-{{ int ("00987" | strings.TrimLeft "0") }}
+{{ int 0o11 }} → 9 (int)
+{{ int "0o11" }} → 9 (int)
 ```
 
-### Explanation
+With a hexadecimal (base 16) input:
 
-The `int` function eventually calls the `ParseInt` function from the Go library
-`strconv`.
+```go-html-template
+{{ int 0x11 }} → 17 (int)
+{{ int "0x11" }} → 17 (int)
+```
 
-From its [documentation](https://golang.org/pkg/strconv/#ParseInt):
+{{% note %}}
+Values with a leading zero are octal (base 8). When casting a string representation of a decimal (base 10) number, remove leading zeros:
 
-> the base is implied by the string's prefix: base 16 for "0x", base 8 for "0",
-> and base 10 otherwise.
+`{{ strings.TrimLeft "0" "0011" | int }} → 11`
 {{% /note %}}
index 8d4c50fe2ec5248d3fde59700abf7b1cd7e74901..99ab0943e46fffa14d1298888e08c7c1856f427c 100644 (file)
@@ -1,27 +1,19 @@
 ---
 title: intersect
-linktitle: intersect
 description: Returns the common elements of two arrays or slices, in the same order as the first array.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [collections,intersect,union,complement,symdiff]
 signature: ["intersect SET1 SET2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 A useful example is to use it as `AND` filters when combined with where:
 
 ## AND filter in where query
 
-```
+```go-html-template
 {{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
 {{ $pages := $pages | union (where .Site.RegularPages "Params.pinned" true) }}
 {{ $pages := $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }}
index 51c21721b9fb2840e6b5c5683afff0000f5b96f7..a27a174b6a2ea3d6cc3cdd64981ca1868ce84aa3 100644 (file)
@@ -1,22 +1,13 @@
 ---
 title: .IsMenuCurrent
 description:
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [menus]
 signature: ["PAGE.IsMenuCurrent MENU MENUENTRY"]
-workson: [menus]
-hugoversion:
 relatedfuncs: ["HasMenuCurrent"]
-deprecated: false
-draft: false
-aliases: []
-needsexample: true
 ---
 
 `.IsMenuCurrent` is a method in `Page` object returning a _boolean_ value. It
index aa36f6dac60b4d5ec92d9b0408df8f21d0596906..9c00c15fc763404dcdc3d99e20cbd26357abd9fa 100644 (file)
@@ -1,30 +1,22 @@
 ---
 title: isset
-linktitle: isset
 description: Returns true if the parameter is set.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["isset COLLECTION INDEX", "isset COLLECTION KEY"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 Takes either a slice, array, or channel and an index or a map and a key as input.
 
-```
+```go-html-template
 {{ if isset .Params "project_url" }} {{ index .Params "project_url" }}{{ end }}
 ```
 
-{{% warning %}}
-All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{if isset .Site.Params "myparam"}}` and *not* with `{{if isset .Site.Params "myParam"}}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with).
+{{% note %}}
+All site-level configuration keys are stored as lower case. Therefore, a `myParam` key-value set in your [site configuration file](/getting-started/configuration/) needs to be accessed with `{{ if isset .Site.Params "myparam" }}` and *not* with `{{ if isset .Site.Params "myParam" }}`. Note that you can still access the same config key with `.Site.Params.myParam` *or* `.Site.Params.myparam`, for example, when using [`with`](/functions/with).
 This restriction also applies when accessing page-level front matter keys from within [shortcodes](/content-management/shortcodes/).
-{{% /warning %}}
+{{% /note %}}
index 72ec4634bd60e87dc412ae9bdbd46899467d15cd..da40b8fcf0ccb45a4f0dc0422556458ef632b44f 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: jsonify
-linktitle: jsonify
 description: Encodes a given object to JSON.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2020-04-13
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings,json]
 signature: ["jsonify INPUT", "jsonify OPTIONS INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [plainify]
-deprecated: false
-aliases: []
 ---
 
 Jsonify encodes a given object to JSON.
@@ -26,7 +18,7 @@ the output will begin on a new line beginning with *prefix* followed by one or
 more copies of *indent* according to the indentation nesting.
 
 
-```
+```go-html-template
 {{ dict "title" .Title "content" .Plain | jsonify }}
 {{ dict "title" .Title "content" .Plain | jsonify (dict "indent" "  ") }}
 {{ dict "title" .Title "content" .Plain | jsonify (dict "prefix" " " "indent" "  ") }}
index 78d658442094a13c52bb817fda3be12eed733966..ab3e61940e903f08f6d2afec6529909f25d20aa9 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: lang.Merge
 description: "Merge missing translations from other languages."
-date: 2018-03-16
 categories: [functions]
 keywords: [multilingual]
 menu:
   docs:
-    parent: "functions"
-toc: false
+    parent: functions
 signature: ["lang.Merge FROM TO"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 comments:
 ---
 
index 1a4da807ace9372cc4800e87b1a8850e13320862..af55c92bf7e071993ff0c888214c45415d48431d 100644 (file)
@@ -2,15 +2,12 @@
 title: lang
 package: lang
 description: "TODO.."
-date: 2021-07-28
 categories: [functions]
 keywords: [numbers]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["lang.NumFmt PRECISION NUMBER [OPTIONS [DELIMITER]]"]
 aliases: ['/functions/numfmt/']
 type: 'template-func'
-
 ---
-
index 4a752cb826e3832d3c5bff5bf44d19aab40061db..72e6a4c0d1cb6384934d8c49b56ffd8b271d61f6 100644 (file)
@@ -1,27 +1,18 @@
 ---
 title: last
-linktitle: last
 description: "slices an array to only the last <em>N</em>th elements."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: []
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: ["last INDEX COLLECTION"]
-workson: [lists, taxonomies, terms, groups]
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
-```
+```go-html-template
 {{ range last 10 .Pages }}
-    {{ .Render "summary" }}
+  {{ .Render "summary" }}
 {{ end }}
 ```
index 1ff0ac582a47b7837048b345f785b5ac8884a2cd..632e43a0ea0dddd7b42f3e2979d539c726f59b2e 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: le
-linktitle: le
 description: Returns the boolean truth of arg1 <= arg2.
-date: 2017-07-26
-publishdate: 2017-07-26
-lastmod: 2017-07-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["le ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if le 5 10 }}true{{ end }}
 ```
index 9f15d79c7c86bcf3b255a92306559e4013716c90..cdf3cf405556833625e3d050bcc52c06cfd40414 100644 (file)
@@ -1,63 +1,44 @@
 ---
 title: len
-linktitle: len
-description: Returns the length of a variable according to its type.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-04-18
+description: Returns the length of a string, slice, map, or collection.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
-keywords: []
+    parent: functions
+keywords: [length]
 signature: ["len INPUT"]
-workson: [lists,taxonomies,terms]
-hugoversion:
 relatedfuncs: []
-deprecated: false
-toc: false
-aliases: []
 ---
 
-`len` is a built-in function in Go that returns the length of a variable according to its type. From the Go documentation:
+With a string:
 
-> Array: the number of elements in v.
->
-> Pointer to array: the number of elements in *v (even if v is nil).
->
-> Slice, or map: the number of elements in v; if v is nil, len(v) is zero.
->
-> String: the number of bytes in v.
->
-> Channel: the number of elements queued (unread) in the channel buffer; if v is nil, len(v) is zero.
+```go-html-template
+{{ "ab" | len }} → 2
+{{ "" | len }} → 0
+```
 
-`len` is also considered a [fundamental function for Hugo templating].
+With a slice:
 
-## `len` Example 1: Longer Headings
+```go-html-template
+{{ slice "a" "b" | len }} → 2
+{{ slice | len }} → 0
+```
 
-You may want to append a class to a heading according to the length of the string therein. The following templating checks to see if the title's length is greater than 80 characters and, if so, adds a `long-title` class to the `<h1>`:
+With a map:
 
-{{< code file="check-title-length.html" >}}
-<header>
-    <h1{{if gt (len .Title) 80}} class="long-title"{{end}}>{{.Title}}</h1>
-</header>
-{{< /code >}}
+```go-html-template
+{{ dict "a" 1 "b" 2  | len }} → 2
+{{ dict | len }} → 0
+```
 
-## `len` Example 2: Counting Pages with `where`
+With a collection:
 
-The following templating uses [`where`] in conjunction with `len` to
-figure out the total number of content pages in a `posts` [section]:
+```go-html-template
+{{ site.RegularPages | len }} → 42
+```
 
-{{< code file="how-many-posts.html" >}}
-{{ $posts := (where .Site.RegularPages "Section" "==" "posts") }}
-{{ $postCount := len $posts }}
-{{< /code >}}
+You may also determine the number of pages in a collection with:
 
-Note the use of `.RegularPages`, a [site variable] that counts all regular content pages but not the `_index.md` pages used to add front matter and content to [list templates].
-
-
-[fundamental function for Hugo templating]: /templates/introduction/
-[list templates]: /templates/lists/
-[section]: /content-management/sections/
-[site variable]: /variables/site/
-[`where`]: /functions/where/
+```go-html-template
+{{ site.RegularPages.Len }} → 42
+```
index 3fbfc919b8bb3c031989a3b9c458804f24650315..9accf999e23bab879c782bd4388085aea12ef92e 100644 (file)
@@ -1,23 +1,15 @@
 ---
 title: lower
-linktitle: lower
 description: Converts all characters in the provided string to lowercase.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings,casing]
 signature:
   - "lower INPUT"
   - "strings.ToLower INPUT"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
index d2a234986af9e4978478c550a6c6d44f14276352..08cad79045a10068ed856cf34f96eebe4c81ad89 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: lt
-linktitle: lt
 description: Returns the boolean truth of arg1 < arg2.
-date: 2017-07-26
-publishdate: 2017-07-26
-lastmod: 2017-07-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["lt ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if lt 5 10 }}true{{ end }}
 ```
index 8d8726cffe17b72dd08a41ffda6756a35c92ff46..9f1f3329e1f50c41d5edcfaf8f902b6c2918cd88 100644 (file)
@@ -1,29 +1,30 @@
 ---
 title: markdownify
-linktitle: markdownify
-description: Runs the provided string through the Markdown processor.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2023-02-09
+description: Renders markdown to HTML.
 keywords: [markdown,content]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["markdownify INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-
-```
+```go-html-template
 {{ .Title | markdownify }}
 ```
 
-{{< new-in "0.93.0" >}} **Note**: `markdownify` now supports [Render Hooks] just like [`.Page.RenderString`]. However, if you use more complicated [Render Hooks] relying on page context, use [`.Page.RenderString`] instead. See [GitHub issue #9692](https://github.com/gohugoio/hugo/issues/9692) for more details.
+If the resulting HTML is a single paragraph, Hugo removes the wrapping `p` tags to produce inline HTML as required per the example above.
+
+To keep the wrapping `p` tags for a single paragraph, use the [`.Page.RenderString`] method, setting the `display` option to `block`.
+
+If the resulting HTML is two or more paragraphs, Hugo leaves the wrapping `p` tags in place.
 
-[Render Hooks]: /templates/render-hooks/
 [`.Page.RenderString`]: /functions/renderstring/
+
+{{% note %}}
+Although the `markdownify` function honors [markdown render hooks] when rendering markdown to HTML, use the `.Page.RenderString` method instead of `markdownify` if a render hook accesses `.Page` context. See issue [#9692] for details.
+
+[markdown render hooks]: /templates/render-hooks/
+[#9692]: https://github.com/gohugoio/hugo/issues/9692
+{{% /note %}}
index 2d98c4debd4a3892c55a51dabe9f45b717d0b063..e84bb5f1fb431d925c12fafaf52c6371458af4d8 100644 (file)
@@ -1,42 +1,33 @@
 ---
 title: Math
 description: Hugo provides mathematical operators in templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2020-02-23
 keywords: [math, operators]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: []
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
-| Function     | Description                                                                 | Example                          |
-|--------------|-----------------------------------------------------------------------------|----------------------------------|
-| `add`        | Adds two numbers.                                                           | `{{add 1 2}}` &rarr; `3`         |
-|              | *If one of the numbers is a float, the result is a float.*                  | `{{add 1.1 2}}` &rarr; `3.1`     |
-| `sub`        | Subtracts two numbers.                                                      | `{{sub 3 2}}` &rarr; `1`         |
-|              | *If one of the numbers is a float, the result is a float.*                  | `{{sub 3 2.5}}` &rarr; `0.5`     |
-| `mul`        | Multiplies two numbers.                                                     | `{{mul 2 3}}` &rarr; `6`         |
-|              | *If one of the numbers is a float, the result is a float.*                  | `{{mul 2 3.1}}` &rarr; `6.2`     |
-| `div`        | Divides two numbers.                                                        | `{{div 6 3}}` &rarr; `2`         |
-|              |                                                                             | `{{div 6 4}}` &rarr; `1`         |
-|              | *If one of the numbers is a float, the result is a float.*                  | `{{div 6 4.0}}` &rarr; `1.5`     |
-| `mod`        | Modulus of two integers.                                                    | `{{mod 15 3}}` &rarr; `0`        |
-| `modBool`    | Boolean of modulus of two integers. Evaluates to `true` if result equals 0. | `{{modBool 15 3}}` &rarr; `true` |
-| `math.Ceil`  | Returns the least integer value greater than or equal to the given number.  | `{{math.Ceil 2.1}}` &rarr; `3`   |
-| `math.Floor` | Returns the greatest integer value less than or equal to the given number.  | `{{math.Floor 1.9}}` &rarr; `1`  |
-| `math.Log`   | Returns the natural logarithm of the given number.                          | `{{math.Log 42}}` &rarr; `3.737` |
-| `math.Max`   | Returns the greater of two numbers.                                         | `{{math.Max 1 2}}` &rarr; `2`    |
-| `math.Min`   | Returns the smaller of two numbers.                                         | `{{math.Min 1 2}}` &rarr; `1`    |
-| `math.Pow`   | Returns the first number raised to the power of the second number.          | `{{math.Pow 2 3}}` &rarr; `8`    |
-| `math.Round` | Returns the nearest integer, rounding half away from zero.                  | `{{math.Round 1.5}}` &rarr; `2`  |
-| `math.Sqrt`  | Returns the square root of the given number.                                | `{{math.Sqrt 81}}` &rarr; `9`    |
+| Function     | Description                                                                 | Example                             |
+|--------------|-----------------------------------------------------------------------------|-------------------------------------|
+| `add`        | Adds two or more numbers.                                                   | `{{ add 12 3 2 }}` &rarr; `17`      |
+|              | *If one of the numbers is a float, the result is a float.*                  | `{{ add 1.1 2 }}` &rarr; `3.1`      |
+| `sub`        | Subtracts one or more numbers from the first number.                        | `{{ sub 12 3 2 }}` &rarr; `7`       |
+|              | *If one of the numbers is a float, the result is a float.*                  | `{{ sub 3 2.5 }}` &rarr; `0.5`      |
+| `mul`        | Multiplies two or more numbers.                                             | `{{ mul 12 3 2 }}` &rarr; `72`      |
+|              | *If one of the numbers is a float, the result is a float.*                  | `{{ mul 2 3.1 }}` &rarr; `6.2`      |
+| `div`        | Divides the first number by one or more numbers.                            | `{{ div 12 3 2 }}` &rarr; `2`       |
+|              | *If one of the numbers is a float, the result is a float.*                  | `{{ div 6 4.0 }}` &rarr; `1.5`      |
+| `mod`        | Modulus of two integers.                                                    | `{{ mod 15 3 }}` &rarr; `0`         |
+| `modBool`    | Boolean of modulus of two integers. Evaluates to `true` if result equals 0. | `{{ modBool 15 3 }}` &rarr; `true`  |
+| `math.Ceil`  | Returns the least integer value greater than or equal to the given number.  | `{{ math.Ceil 2.1 }}` &rarr; `3`    |
+| `math.Floor` | Returns the greatest integer value less than or equal to the given number.  | `{{ math.Floor 1.9 }}` &rarr; `1`   |
+| `math.Log`   | Returns the natural logarithm of the given number.                          | `{{ math.Log 42 }}` &rarr; `3.737`  |
+| `math.Max`   | Returns the greater of two or more numbers.                                 | `{{ math.Max 12 3 2 }}` &rarr; `12` |  
+| `math.Min`   | Returns the smaller of two or more numbers.                                 | `{{ math.Min 12 3 2 }}` &rarr; `2`  |
+| `math.Pow`   | Returns the first number raised to the power of the second number.          | `{{ math.Pow 2 3 }}` &rarr; `8`     |
+| `math.Round` | Returns the nearest integer, rounding half away from zero.                  | `{{ math.Round 1.5 }}` &rarr; `2`   |
+| `math.Sqrt`  | Returns the square root of the given number.                                | `{{ math.Sqrt 81 }}` &rarr; `9`     |
index 2168034c46d285e2a0b7118f7ebf63f63ea1544c..cc5fd31ea19f43a99d10cf6da30bdbde67cae6f3 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: md5
-linktitle: md5
 description: hashes the given input and returns its MD5 checksum.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["md5 INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [sha]
-deprecated: false
-aliases: []
 ---
 
-```
+```go-html-template
 {{ md5 "Hello world, gophers!" }}
 <!-- returns the string "b3029f756f98f79e7f1b7f1d1f0dd53b" -->
 ```
index 0944815a121e4fd1db14c17b054d6894611760da..68e56145030c72d5ded446e4dff88f558f93f9f1 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: merge
 description: "Returns the result of merging two or more maps."
-date: 2019-08-08
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dictionary]
 signature: ["collections.Merge MAP MAP...", "merge MAP MAP..."]
-workson: []
-hugoversion: "0.56.0"
 relatedfuncs: [dict, append, reflect.IsMap, reflect.IsSlice]
-aliases: []
 ---
 
 Returns the result of merging two or more maps from left to right. If a key already exists, `merge` updates its value. If a key is absent, `merge` inserts the value under the new key.
@@ -67,5 +63,5 @@ Example 4
 ```
 
 {{% note %}}
-Regardless of depth, merging only applies to maps. For slices, use [append]({{< ref "functions/append" >}}).
+Regardless of depth, merging only applies to maps. For slices, use [append](/functions/append).
 {{% /note %}}
index e072993d23f0f96968e0c9832aad14c2aedd0b47..54f66823c87fee50602ae3035f347bcd97432dbd 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: ne
-linktitle: ne
 description: Returns the boolean truth of arg1 != arg2.
-date: 2017-07-26
-publishdate: 2017-07-26
-lastmod: 2017-07-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [operators,logic]
 signature: ["ne ARG1 ARG2"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ if ne .Section "blog" }}current{{ end }}
 ```
index 24e1ab3f713257d010df831935fe096c435d30a8..68d628f119c2709cf6df7dc65fb30de6f565a467 100644 (file)
@@ -1,36 +1,28 @@
 ---
 title: now
-linktitle: now
 description: Returns the current local time 
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-04-30
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dates,time]
 signature: ["now"]
-workson: []
-hugoversion:
 relatedfuncs: [Unix,dateFormat]
-deprecated: false
-aliases: []
 ---
 
 See [`time.Time`](https://godoc.org/time#Time).
 
 For example, building your site on June 24, 2017, with the following templating:
 
-```
+```go-html-template
 <div>
-    <small>&copy; {{ now.Format "2006"}}</small>
+    <small>&copy; {{ now.Format "2006" }}</small>
 </div>
 ```
 
 would produce the following:
 
-```
+```html
 <div>
     <small>&copy; 2017</small>
 </div>
index a56f79735c4ace6f5cddabe9230b08850c54c872..9ace3b8bfbfd574f05cfaa79627c50a4ddcf0e17 100644 (file)
@@ -1,22 +1,15 @@
 ---
 title: os.Stat
 description: Returns a FileInfo structure describing a file or directory.
-date: 2018-08-07
-publishdate: 2018-08-07
-lastmod: 2021-11-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [files]
 signature: ["os.Stat PATH"]
-workson: []
-hugoversion:
 relatedfuncs: ['os.FileExists','os.ReadDir','os.ReadFile']
-deprecated: false
-aliases: []
 ---
-The `os.Stat` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional.
+The `os.Stat` function attempts to resolve the path relative to the root of your project directory. If a matching file or directory is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional.
 
 ```go-html-template
 {{ $f := os.Stat "README.md" }}
index 4f1764814a0782640e39a8c5ec62213148db1ecc..c01bf4a91f56d2317c84636ea9968a96a5a459c2 100644 (file)
@@ -6,8 +6,7 @@ categories: [functions]
 keywords: ['front matter', 'params']
 menu:
   docs:
-    parent: 'functions'
-aliases: []
+    parent: functions
 ---
 
 The `.Param` method on `.Page` looks for the given `KEY` in page parameters, and returns the corresponding value. If it cannot find the `KEY` in page parameters, it looks for the `KEY` in site parameters. If it cannot find the `KEY` in either location, the `.Param` method returns `nil`. 
@@ -25,8 +24,8 @@ display_toc = true
 
 **Content**
 
-{{< code-toggle file="content/about.md" fm=true copy=false >}}
-title = 'About'
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title = 'Example'
 date = 2023-01-01
 draft = false
 display_toc = false
@@ -34,7 +33,7 @@ display_toc = false
 
 **Template**
 
-{{< code file="layouts/_default/single.html" copy="false" >}}
+{{< code file="layouts/_default/single.html" copy=false >}}
 {{ if .Param "display_toc" }}
   {{ .TableOfContents }}
 {{ end }}
@@ -42,6 +41,6 @@ display_toc = false
 
 The `.Param` method returns the value associated with the given `KEY`, regardless of whether the value is truthy or falsy. If you need to ignore falsy values, use this construct instead:
 
-{{< code file="layouts/_default/single.html" copy="false" >}}
+{{< code file="layouts/_default/single.html" copy=false >}}
 {{ or .Params.foo site.Params.foo }}
 {{< /code >}}
index 2e79bb32f7630cc31759031f48007e55f9fd51f1..d443864f2af650e2820b721f9deec55252d315c6 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: partialCached
-linktitle: partialCached
 description: Allows for caching of partials that do not need to be re-rendered on every invocation.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [performance]
 signature: ["partialCached LAYOUT INPUT [VARIANT...]"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 The `partialCached` template function can offer significant performance gains for complex templates that don't need to be re-rendered on every invocation.
@@ -26,7 +18,7 @@ The `partialCached` template function can offer significant performance gains fo
 
 Here is the simplest usage:
 
-```
+```go-html-template
 {{ partialCached "footer.html" . }}
 ```
 
@@ -38,11 +30,10 @@ You can also pass additional parameters to `partialCached` to create *variants*
 
 If you need to pass additional parameters to create unique variants, you can pass as many variant parameters as you need:
 
-```
+```go-html-template
 {{ partialCached "footer.html" . .Params.country .Params.province }}
 ```
 
 Note that the variant parameters are not made available to the underlying partial template. They are only use to create a unique cache key. Since Hugo `0.61.0` you can use any object as cache key(s), not just strings.
 
-
-> See also [The Full Partial Series Part 1: Caching!](https://regisphilibert.com/blog/2019/12/hugo-partial-series-part-1-caching-with-partialcached/)
+See also [The Full Partial Series Part 1: Caching!](https://regisphilibert.com/blog/2019/12/hugo-partial-series-part-1-caching-with-partialcached/).
index a6bfc2bd5da59665d0652b8eef731ed8862601b0..5ea0564fa324d284bc12b0561a23a558c0fa65b4 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: path.Base
 description: Base returns the last element of a path.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, base]
 signature: ["path.Base PATH"]
-workson: []
-hugoversion: "0.40"
 relatedfuncs: [path.BaseName, path.Clean, path.Dir, path.Ext, path.Join, path.Split]
-deprecated: false
 ---
 
 `path.Base` returns the last element of `PATH`.
@@ -22,7 +16,7 @@ If `PATH` is empty, `.` is returned.
 
 **Note:** On Windows, `PATH` is converted to slash (`/`) separators.
 
-```
+```go-html-template
 {{ path.Base "a/news.html" }} → "news.html"
 {{ path.Base "news.html" }} → "news.html"
 {{ path.Base "a/b/c" }} → "c"
index 6a5b9f0a0ebace3245afecb8966d693163654167..95a521a1ab702df0534be22115ef7fe3f5f3706d 100644 (file)
@@ -1,15 +1,13 @@
 ---
 title: path.BaseName
 description: BaseName returns the last element of a path, removing the extension if present.
-date: 2022-06-04
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, base]
 signature: ["path.BaseName PATH"]
 relatedfuncs: [path.Base, path.Clean, path.Dir, path.Ext, path.Join, path.Split]
-deprecated: false
 ---
 
 If `PATH` is empty, `.` is returned.
index 852de65fd5dd2c9de42b139b61ce0c3018337d2b..ce53cc9ff277375a7e1c246dc17a21a2e1d5adb1 100644 (file)
@@ -1,13 +1,10 @@
 ---
 title: path.Clean
 description: Replaces path separators with slashes (`/`) and removes extraneous separators.
-date: 2021-10-08
-# publishdate: 2018-11-28
-# lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, clean]
 signature: ["path.Clean PATH"]
 relatedfuncs: [path.Base, path.BaseName, path.Dir, path.Ext, path.Join, path.Split]
@@ -15,13 +12,13 @@ relatedfuncs: [path.Base, path.BaseName, path.Dir, path.Ext, path.Join, path.Spl
 
 `path.Clean` replaces path separators with slashes (`/`) and removes extraneous separators, including trailing separators.
 
-```
+```go-html-template
 {{ path.Clean "foo//bar" }} → "foo/bar"
 {{ path.Clean "/foo/bar/" }} → "/foo/bar"
 ```
 
 On a Windows system, if `.File.Path` is `foo\bar.md`, then:
 
-```
+```go-html-template
 {{ path.Clean .File.Path }} → "foo/bar.md"
 ```
index 161a0daa825b015c9d1c141dfd4db7e24b677346..0083a1efa67d79a5fc450332fc1cdea7dde0e7e7 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: path.Dir
 description: Dir returns all but the last element of a path.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, dir]
 signature: ["path.Dir PATH"]
-workson: []
-hugoversion: "0.40"
 relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Ext, path.Join, path.Split]
-deprecated: false
 ---
 
 `path.Dir` returns all but the last element of `PATH`, typically `PATH`'s directory.
@@ -23,7 +17,7 @@ If `PATH` is empty, `.` is returned.
 
 **Note:** On Windows, `PATH` is converted to slash (`/`) separators.
 
-```
+```go-html-template
 {{ path.Dir "a/news.html" }} → "a"
 {{ path.Dir "news.html" }} → "."
 {{ path.Dir "a/b/c" }} → "a/b"
index 8c6fe907c3275f3c105066c3691bbfe0bc38e49b..2e1946608c9621921e2bc5d1406b26da7d209ff8 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: path.Ext
 description: Ext returns the file name extension of a path.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, ext, extension]
 signature: ["path.Ext PATH"]
-workson: []
-hugoversion: "0.40"
 relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Join, path.Split]
-deprecated: false
 ---
 
 `path.Ext` returns the file name extension `PATH`.
@@ -23,6 +17,6 @@ it is empty if there is no dot.
 
 **Note:** On Windows, `PATH` is converted to slash (`/`) separators.
 
-```
+```go-html-template
 {{ path.Ext "a/b/c/news.html" }} → ".html"
 ```
index 579e8667e049ec604d6719eac8830b23459fbfff..5ac5ac4693e958a278a407dd76ee40757b48d415 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: path.Join
 description: Join path elements into a single path.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, join]
 signature: ["path.Join ELEMENT..."]
-workson: []
-hugoversion: "0.39"
 relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Ext, path.Split]
-deprecated: false
 ---
 
 `path.Join` joins path elements into a single path, adding a separating slash if necessary.
@@ -21,7 +15,7 @@ All empty strings are ignored.
 
 **Note:** All path elements on Windows are converted to slash ('/') separators.
 
-```
+```go-html-template
 {{ path.Join "partial" "news.html" }} → "partial/news.html"
 {{ path.Join "partial/" "news.html" }} → "partial/news.html"
 {{ path.Join "foo/baz" "bar" }} → "foo/baz/bar"
index 7737b77d39762b0ae1ff9e202f5991b67340a2ea..aa915788e0b36ff6d48405790e8377011fbf9517 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: path.Split
 description: Split path immediately following the final slash.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [path, split]
 signature: ["path.Split PATH"]
-workson: []
-hugoversion: "0.39"
 relatedfuncs: [path.Base, path.BaseName, path.Clean, path.Dir, path.Ext, path.Join]
-deprecated: false
 ---
 
 `path.Split` splits `PATH` immediately following the final slash, separating it into a directory and a base component.
@@ -23,7 +17,7 @@ If there is no slash in `PATH`, it returns an empty directory and the base is se
 
 **Note:** On Windows, `PATH` is converted to slash (`/`) separators.
 
-```
+```go-html-template
 {{ $dirFile := path.Split "a/news.html" }} → $dirFile.Dir → "a/", $dirFile.File → "news.html"
 {{ $dirFile := path.Split "news.html" }} → $dirFile.Dir → "", $dirFile.File → "news.html"
 {{ $dirFile := path.Split "a/b/c" }} → $dirFile.Dir → "a/b/", $dirFile.File →  "c"
index 1258c139a03fead131c5362c3c5c92e7b23eec2c..78f52683bfe3a5c68cc6a6574063c7d7ac95eba6 100644 (file)
@@ -1,24 +1,16 @@
 ---
 title: plainify
-linktitle: plainify
 description: Strips any HTML and returns the plain text version of the provided string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-04-30
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["plainify INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [jsonify]
-deprecated: false
-aliases: []
 ---
 
-```
+```go-html-template
 {{ "<b>BatMan</b>" | plainify }} → "BatMan"
 ```
 
index 9c50409343c15ea2368c717294229b4c4613e86b..bd0860802ac094a9d9cac2be778834e096905b71 100644 (file)
@@ -1,23 +1,15 @@
 ---
 title: pluralize
-linktitle: pluralize
 description: Pluralizes the given word according to a set of common English pluralization rules
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["pluralize INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-```
+```go-html-template
 {{ "cat" | pluralize }} → "cats"
 ```
index 42b8dcb759ecc271d43d64e368782ee92e3c58cd..4af0b6b96c35ce8d006af3b43b120c58b51114df 100644 (file)
@@ -1,25 +1,18 @@
 ---
 title: print
-linktitle: print
 description: Prints the default representation of the given arguments using the standard `fmt.Print` function.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["print INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 See [the go doc](https://golang.org/pkg/fmt/) for additional information.
 
-```
+```go-html-template
 {{ print "foo" }} → "foo"
 {{ print "foo" "bar" }} → "foobar"
 {{ print (slice 1 2 3) }} → [1 2 3]
index 8b12b988317363590ea3af1447a080c751e88969..66f85e159204c919f5b675eb8fb8843655ae2325 100644 (file)
@@ -1,28 +1,21 @@
 ---
 title: printf
-linktitle: printf
 description: Formats a string using the standard `fmt.Sprintf` function.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["printf FORMAT INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 See [the go doc](https://golang.org/pkg/fmt/) for additional information.
 
-```
+```go-html-template
 {{ i18n ( printf "combined_%s" $var ) }}
 ```
 
-```
+```go-html-template
 {{ printf "formatted %.2f" 3.1416 }}
 ```
index 1ea70cbad9e1bb04ab840cff775f92b5f78fa129..6ad57f402eb4762b450b4cb433a1ca51f3a077c0 100644 (file)
@@ -1,24 +1,17 @@
 ---
 title: println
-linktitle: println
 description: Prints the default representation of the given argument using the standard `fmt.Print` function and enforces a linebreak.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["println INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 See [the go doc](https://golang.org/pkg/fmt/) for additional information. `\n` denotes the linebreak but isn't printed in the templates as seen below:
 
-```
+```go-html-template
 {{ println "foo" }} → "foo\n"
 ```
index 9e8c4b83f9eb140f4f79f1af6f188c702331d729..b21b3a0b29d69239b75a043e13f389ec6e5629a0 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: querify
-linktitle: querify
 description: Takes a set or slice of key-value pairs and returns a query string to be appended to URLs.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [urls]
 signature: ["querify KEY VALUE [KEY VALUE]...", "querify COLLECTION"]
-hugoversion:
-deprecated: false
-workson: []
 relatedfuncs: []
-aliases: []
 ---
 
 `querify` takes a set or slice of key-value pairs and returns a [query string](https://en.wikipedia.org/wiki/Query_string) that can be appended to a URL.
index 599e2ad25bebde6d79fd0f98d2c6f33c3c9d4abd..da0a4d7ef8574368baac2cb5ae53b8ca06c874c6 100644 (file)
@@ -1,22 +1,13 @@
 ---
 title: range
-linktitle:
 description: Iterates over a map, array, or slice.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [iteration]
 signature: ["range COLLECTION"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 Just like in the Go programming language, Go and Hugo templates make heavy use of `range` to iterate over a map, array or slice. Other templating languages use a foreach for the equivalent functionality.
index 70fe7b66cc836788cb8c714b5de2fab0ca212bc7..3ad43126afe0f884e65e6894f5795f05c40b33a7 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: readDir
 description: Returns an array of FileInfo structures sorted by filename, one element for each directory entry.
-publishdate: 2017-02-01
-lastmod: 2021-11-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [files]
 signature: ["os.ReadDir PATH", "readDir PATH"]
-workson: []
-hugoversion:
 relatedfuncs: ['os.FileExists','os.ReadFile','os.Stat']
-deprecated: false
-aliases: []
 ---
 The `os.ReadDir` function resolves the path relative to the root of your project directory. A leading path separator (`/`) is optional.
 
@@ -48,4 +42,4 @@ Note that `os.ReadDir` is not recursive.
 
 Details of the `FileInfo` structure are available in the [Go documentation](https://pkg.go.dev/io/fs#FileInfo).
 
-For more information on using `readDir` and `readFile` in your templates, see [Local File Templates]({{< relref "/templates/files" >}}).
+For more information on using `readDir` and `readFile` in your templates, see [Local File Templates](/templates/files).
index b0a88458be2f89e29430abdeb8396c4e4a8562fc..c700d7aa05e17d69df65f7b8d72cc5ba2da49379 100644 (file)
@@ -1,22 +1,15 @@
 ---
 title: readFile
 description: Returns the contents of a file.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2021-11-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [files]
 signature: ["os.ReadFile PATH", "readFile PATH"]
-workson: []
-hugoversion:
 relatedfuncs: ['os.FileExists','os.ReadDir','os.Stat']
-deprecated: false
-aliases: []
 ---
-The `os.ReadFile` function attempts to resolve the path relative to the root of your project directory. If a matching file is not found, it will attempt to resolve the path relative to the [`contentDir`]({{< relref "getting-started/configuration#contentdir">}}). A leading path separator (`/`) is optional.
+The `os.ReadFile` function attempts to resolve the path relative to the root of your project directory. If a matching file is not found, it will attempt to resolve the path relative to the [`contentDir`](/getting-started/configuration#contentdir). A leading path separator (`/`) is optional.
 
 With a file named README.md in the root of your project directory:
 
@@ -38,4 +31,4 @@ This is **bold** text.
 
 Note that `os.ReadFile` returns raw (uninterpreted) content.
 
-For more information on using `readDir` and `readFile` in your templates, see [Local File Templates]({{< relref "/templates/files" >}}).
+For more information on using `readDir` and `readFile` in your templates, see [Local File Templates](/templates/files).
index 3387ce6d0276d3c1f054d85d5a602d64484d781d..32bf79ca138f07e1df0dbe360fc9f10408136a38 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: ref
-linktitle: ref
 description: Returns the absolute permalink to a page.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2020-09-05
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [cross references, anchors]
 signature: ["ref . PAGE"]
-workson: []
-hugoversion:
 relatedfuncs: [relref]
-deprecated: false
-aliases: []
 ---
 
 This function takes two parameters:
index 9ad50b599477b8efd525e84ba4d6d1fd322b105b..aa8da7d538e2eb0afbacc702dce8a490d313f552 100644 (file)
@@ -1,24 +1,18 @@
 ---
 title: reflect.IsMap
 description: Reports if a value is a map.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [reflect, reflection, kind]
 signature: ["reflect.IsMap INPUT"]
-workson: []
-hugoversion: "v0.53"
 relatedfuncs: [reflect.IsSlice]
-deprecated: false
 ---
 
 `reflect.IsMap` reports if `VALUE` is a map.  Returns a boolean.
 
-```
+```go-html-template
 {{ reflect.IsMap (dict "key" "value") }} → true
 {{ reflect.IsMap "yo" }} → false
 ```
index 38640918a5a81ec7c377eb4add01e1d478c54dee..0a29d8f3e2204213ce26e5c9367800b25f0ffdfd 100644 (file)
@@ -1,24 +1,18 @@
 ---
 title: reflect.IsSlice
 description: Reports if a value is a slice.
-date: 2018-11-28
-publishdate: 2018-11-28
-lastmod: 2018-11-28
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [reflect, reflection, kind]
 signature: ["reflect.IsSlice INPUT"]
-workson: []
-hugoversion: "0.53"
 relatedfuncs: [reflect.IsMap]
-deprecated: false
 ---
 
 `reflect.IsSlice` reports if `VALUE` is a slice.  Returns a boolean.
 
-```
+```go-html-template
 {{ reflect.IsSlice (slice 1 2 3) }} → true
 {{ reflect.IsSlice "yo" }} → false
 ```
index 1f32f60a24fdfa14de64a306339ef6c04f611187..f60d5559b2d9d571bc4afd966fa9b158a99cab94 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: relref
-linktitle: relref
 description: Returns the relative permalink to a page.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2020-09-05
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [cross references, anchors]
 signature: ["relref . PAGE"]
-workson: []
-hugoversion:
 relatedfuncs: [ref]
-deprecated: false
-aliases: []
 ---
 
 This function takes two parameters:
index 7e4015bf694aa697d745ba55e360632c882e86d4..4e464865252f0ef19fc3160db128f9dfbd8912d1 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: .Render
 description: Takes a view to apply when rendering content.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [views]
 signature: [".Render LAYOUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 The view is an alternative layout and should be a file name that points to a template in one of the locations specified in the documentation for [Content Views](/templates/views).
@@ -23,9 +16,9 @@ This function is only available when applied to a single piece of content within
 
 This example could render a piece of content using the content view located at `/layouts/_default/summary.html`:
 
-```
+```go-html-template
 {{ range .Pages }}
-    {{ .Render "summary"}}
+  {{ .Render "summary" }}
 {{ end }}
 ```
 
index 36e3920151c88300ae8131ba271487f9437eb594..fea92ab6851ffea53ad52ae67577498f8a2658e7 100644 (file)
@@ -1,22 +1,15 @@
 ---
 title: replace
 description: Replaces all occurrences of the search string with the replacement string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2020-09-07
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [replace]
 signature: 
   - "replace INPUT OLD NEW [LIMIT]"
   - "strings.Replace INPUT OLD NEW [LIMIT]"
-workson: []
-hugoversion:
 relatedfuncs: [replaceRE]
-deprecated: false
-aliases: []
 ---
 
 Replace returns a copy of `INPUT` with all occurrences of `OLD` replaced with `NEW`.
index cc4eb5dc22fca8cfb0390ba489590d233e47745e..22f81a2f58a2732771b964d3acd98151f28bca04 100644 (file)
@@ -5,18 +5,29 @@ categories: [functions]
 menu:
   docs:
     parent: functions
-keywords: [replace regex]
+keywords: [regex]
 signature:
   - "replaceRE PATTERN REPLACEMENT INPUT [LIMIT]"
   - "strings.ReplaceRE PATTERN REPLACEMENT INPUT [LIMIT]"
-relatedfuncs: [replace,findRE]
-aliases: []
+relatedfuncs: [findRE, FindRESubmatch, replace]
 ---
-By default, the `replaceRE` function replaces all matches. You can limit the number of matches with an optional LIMIT parameter.
+By default, `replaceRE` replaces all matches. You can limit the number of matches with an optional LIMIT parameter.
 
 When specifying the regular expression, use a raw [string literal] (backticks) instead of an interpreted string literal (double quotes) to simplify the syntax. With an interpreted string literal you must escape backslashes.
 
-The syntax of the regular expression is the same general syntax used by Perl, Python, and other languages. More precisely, it is the syntax accepted by [RE2] except for `\C`.
+[string literal]: https://go.dev/ref/spec#String_literals
+
+This function uses the [RE2] regular expression library. See the [RE2 syntax documentation] for details. Note that the RE2 `\C` escape sequence is not supported.
+
+[RE2]: https://github.com/google/re2/
+[RE2 syntax documentation]: https://github.com/google/re2/wiki/Syntax/
+
+{{% note %}}
+The RE2 syntax is a subset of that accepted by [PCRE], roughly speaking, and with various [caveats].
+
+[caveats]: https://swtch.com/~rsc/regexp/regexp3.html#caveats
+[PCRE]: https://www.pcre.org/
+{{% /note %}}
 
 This example replaces two or more consecutive hyphens with a single hyphen:
 
index 835ad3065191866cfcdb0213869ce45c41389dff..93595286cba2ed1eb7541bee00b14249d59a598b 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: safeCSS
 description: Declares the provided string as a known "safe" CSS string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-26
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [style,css,strings]
 signature: ["safeCSS INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [safeHTML,safeHTMLAttr,]
-deprecated: false
-aliases: []
 ---
 
 In this context, *safe* means CSS content that matches any of the following:
@@ -29,6 +22,6 @@ Example: Given `style = "color: red;"` defined in the front matter of your `.md`
 * <span class="good">`<p style="{{ .Params.style | safeCSS }}">…</p>` &rarr; `<p style="color: red;">…</p>`</span>
 * <span class="bad">`<p style="{{ .Params.style }}">…</p>` &rarr; `<p style="ZgotmplZ">…</p>`</span>
 
-{{% note "ZgotmplZ" %}}
+{{% note %}}
 "ZgotmplZ" is a special value that indicates that unsafe content reached a CSS or URL context.
 {{% /note %}}
index 5a0aa1e053c052ac4fd472931354c66018ff4c32..182633e46d2051e64c45a64fac83ac6d43bb395a 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: safeHTML
-# linktitle:
 description: Declares a provided string as a "safe" HTML document to avoid escaping by Go templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["safeHTML INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 It should not be used for HTML from a third-party, or HTML with unclosed tags or comments.
@@ -33,7 +26,7 @@ copyright = "© 2015 Jane Doe.  <a href=\"https://creativecommons.org/licenses/b
 
 However, without the `safeHTML` function, html/template assumes `.Site.Copyright` to be unsafe and therefore escapes all HTML tags and renders the whole string as plain text:
 
-```
+```html
 <p>© 2015 Jane Doe.  &lt;a href=&#34;https://creativecommons.org/licenses by/4.0/&#34;&gt;Some rights reserved&lt;/a&gt;.</p>
 ```
 
index 7e730412aac2f23079df3e62d64553a395a6f489..8d1d7efbcf9fc9e8b06e832f838f4ce00d00879c 100644 (file)
@@ -8,7 +8,6 @@ menu:
 keywords: [strings]
 signature: ["safeHTMLAttr INPUT"]
 relatedfuncs: []
-aliases: []
 ---
 
 Given a site configuration that contains this menu entry:
index c67bfa61ccf516d94aa19bdb4a1d8e1ef589192b..48c2c363bbfe9587383e17fba58f6a043f7dacd0 100644 (file)
@@ -1,22 +1,13 @@
 ---
 title: safeJS
-# linktitle:
 description: Declares the provided string as a known safe JavaScript string.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["safeJS INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 In this context, *safe* means the string encapsulates a known safe EcmaScript5 Expression (e.g., `(x + y * z())`).
index 285542ea998fc27fa397d6b34ea59779d490c4c1..4d517bd1e24cb42790565cb0c746c2e6ca52b3ef 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: safeURL
 description: Declares the provided string as a safe URL or URL substring.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: [strings,urls]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["safeURL INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 `safeURL` declares the provided string as a "safe" URL or URL substring (see [RFC 3986]). A URL like `javascript:checkThatFormNotEditedBeforeLeavingPage()` from a trusted source should go in the page, but by default dynamic `javascript:` URLs are filtered out since they are a frequently exploited injection vector.
@@ -23,35 +16,35 @@ Without `safeURL`, only the URI schemes `http:`, `https:` and `mailto:` are cons
 
 The following examples use a [site `config.toml`][configuration] with the following [menu entry][menus]:
 
-{{< code file="config.toml" copy="false" >}}
+{{< code-toggle file="config" copy=false >}}
 [[menu.main]]
-    name = "IRC: #golang at freenode"
-    url = "irc://irc.freenode.net/#golang"
-{{< /code >}}
+name = "IRC: #golang at freenode"
+url = "irc://irc.freenode.net/#golang"
+{{< /code-toggle >}}
 
 The following is an example of a sidebar partial that may be used in conjunction with the preceding front matter example:
 
-{{< code file="layouts/partials/bad-url-sidebar-menu.html" copy="false" >}}
+{{< code file="layouts/partials/bad-url-sidebar-menu.html" copy=false >}}
 <!-- This unordered list may be part of a sidebar menu -->
 <ul>
   {{ range .Site.Menus.main }}
-  <li><a href="{{ .URL }}">{{ .Name }}</a></li>
+    <li><a href="{{ .URL }}">{{ .Name }}</a></li>
   {{ end }}
 </ul>
 {{< /code >}}
 
 This partial would produce the following HTML output:
 
-{{< output file="bad-url-sidebar-menu-output.html" >}}
+```html
 <!-- This unordered list may be part of a sidebar menu -->
 <ul>
-    <li><a href="#ZgotmplZ">IRC: #golang at freenode</a></li>
+  <li><a href="#ZgotmplZ">IRC: #golang at freenode</a></li>
 </ul>
-{{< /output >}}
+```
 
 The odd output can be remedied by adding ` | safeURL` to our `.URL` page variable:
 
-{{< code file="layouts/partials/correct-url-sidebar-menu.html" copy="false" >}}
+{{< code file="layouts/partials/correct-url-sidebar-menu.html" copy=false >}}
 <!-- This unordered list may be part of a sidebar menu -->
 <ul>
     <li><a href="{{ .URL | safeURL }}">{{ .Name }}</a></li>
@@ -60,11 +53,11 @@ The odd output can be remedied by adding ` | safeURL` to our `.URL` page variabl
 
 With the `.URL` page variable piped through `safeURL`, we get the desired output:
 
-{{< output file="correct-url-sidebar-menu-output.html" >}}
+```html
 <ul class="sidebar-menu">
-    <li><a href="irc://irc.freenode.net/#golang">IRC: #golang at freenode</a></li>
+  <li><a href="irc://irc.freenode.net/#golang">IRC: #golang at freenode</a></li>
 </ul>
-{{< /output >}}
+```
 
 [configuration]: /getting-started/configuration/
 [menus]: /content-management/menus/
index 20f1ba14a7b27bfee5793aafef87e2b251194fce..2e00f41bde8389155510aa359919e1250d64e6dc 100644 (file)
@@ -1,21 +1,14 @@
 ---
 title: .Scratch
 description: Acts as a "scratchpad" to store and manipulate data.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: [iteration]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: []
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
 aliases: [/extras/scratch/,/doc/scratch/]
 ---
 
index a880ec2412f9f734db4e38d02af69f64220e5969..75edf5d2dff4450cdee00291c65b239239a57e30 100644 (file)
@@ -1,50 +1,28 @@
 ---
 title: seq
-# linktitle:
-description: Creates a sequence of integers.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Returns a slice of integers.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["seq LAST", "seq FIRST LAST", "seq FIRST INCREMENT LAST"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
-It's named and used in the model of [GNU's seq].
-
-```
-3 → 1, 2, 3
-1 2 4 → 1, 3
--3 → -1, -2, -3
-1 4 → 1, 2, 3, 4
-1 -2 → 1, 0, -1, -2
+```go-html-template
+{{ seq 2 }} → [1 2]
+{{ seq 0 2 }} → [0 1 2]
+{{ seq -2 2 }} → [-2 -1 0 1 2]
+{{ seq -2 2 2 }} → [-2 0 2]
 ```
 
-## Example: `seq` with `range` and `after`
-
-You can use `seq` in combination with `range` and `after`. The following will return 19 elements:
+Iterate over a sequence of integers:
 
-```
-{{ range after 1 (seq 20)}}
+```go-html-template
+{{ $product := 1 }}
+{{ range seq 4 }}
+  {{ $product = mul $product . }}
 {{ end }}
+{{ $product }} → 24
 ```
-
-However, when ranging with an index, the following may be less confusing in that `$indexStartingAt1` and `$num` will return `1,2,3 ... 20`:
-
-```
-{{ range $index, $num := (seq 20) }}
-$indexStartingAt1 := (add $index 1)
-{{ end }}
-```
-
-
-[GNU's seq]: https://www.gnu.org/software/coreutils/manual/html_node/seq-invocation.html#seq-invocation
index 24ad165a87e7cf440439da56d98eea04dbdcc046..1f6cf8da0aabbe12d83771aaa0d24666fccf72f9 100644 (file)
@@ -1,33 +1,26 @@
 ---
 title: sha
-# linktitle: sha
 description: Hashes the given input and returns either an SHA1 or SHA256 checksum.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [sha,checksum]
 signature: ["sha1 INPUT", "sha256 INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: [md5]
-deprecated: false
 aliases: [sha1, sha256]
 ---
 
 `sha1` hashes the given input and returns its SHA1 checksum.
 
-```
+```go-html-template
 {{ sha1 "Hello world, gophers!" }}
 <!-- returns the string "c8b5b0e33d408246e30f53e32b8f7627a7a649d4" -->
 ```
 
 `sha256` hashes the given input and returns its SHA256 checksum.
 
-```
+```go-html-template
 {{ sha256 "Hello world, gophers!" }}
 <!-- returns the string "6ec43b78da9669f50e4e422575c54bf87536954ccd58280219c393f2ce352b46" -->
 ```
index 95a586e44d7c4d46a2c0b6cfaf692739cba0fc9b..4de66da287e3b66088dd5076fbf55b14e63195be 100644 (file)
@@ -1,38 +1,19 @@
 ---
 title: shuffle
-# linktitle:
 description: Returns a random permutation of a given array or slice.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-04-30
 keywords: [ordering]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: ["shuffle COLLECTION"]
-workson: []
-hugoversion:
 relatedfuncs: [seq]
-deprecated: false
-draft: false
-aliases: []
 ---
 
-{{< code file="shuffle-input.html" >}}
-<!-- Shuffled sequence = -->
-<div>{{ shuffle (seq 1 5) }}</div>
-<!-- Shuffled slice =  -->
-<div>{{ shuffle (slice "foo" "bar" "buzz") }}</div>
-{{< /code >}}
 
-This example would return the following:
+```go-html-template
+{{ shuffle (seq 1 2 3) }} → [3 1 2] 
+{{ shuffle (slice "a" "b" "c") }} → [b a c] 
+```
 
-{{< output file="shuffle-output.html" >}}
-<!-- Shuffled sequence =  -->
-<div>2 5 3 1 4</div>
-<!-- Shuffled slice =  -->
-<div>buzz foo bar</div>
-{{< /output >}}
-
-This example also makes use of the [slice](/functions/slice/) and [seq](/functions/seq/) functions.
+The result will vary from one build to the next.
index 8ca46d4330c07e5f345e9c9f3d0df637b8aacfb7..4e56684b9069c2a1b6b6c4b24cc68efe0c757ea7 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: singularize
-# linktitle: singularize
 description: Converts a word according to a set of common English singularization rules.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings,singular]
 signature: ["singularize INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 `{{ "cats" | singularize }}` → "cat"
index d4b8e417ce4a67624903da08773297c48d8d313a..b408f7141f8070ad30af4e6453bbcd103b4302a7 100644 (file)
@@ -1,23 +1,14 @@
 ---
 title: site
-linktitle: site
 description: The `site` function provides global access to the same data as the `.Site` page method.
-date: 2021-02-11
-publishdate: 2021-02-11
-lastmod: 2021-02-11
 keywords: []
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature: ["site"]
-workson: []
-hugoversion:
 relatedfuncs: ["hugo"]
-deprecated: false
-draft: false
-aliases: []
 ---
 
-`site` is a global function which returns the same data as the `.Site` page method. See: [Site Variables]({{< relref "/variables/site" >}}).
+`site` is a global function which returns the same data as the `.Site` page method. See: [Site Variables](/variables/site).
index 9b5580d4446b14aa2691f7ec568121b5b24f1d56..d2ef62861930419c0ccd828660d0228f77754de5 100644 (file)
@@ -1,23 +1,13 @@
 ---
 title: slice
-# linktitle: slice
 description: Creates a slice (array) of all passed arguments.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [slice, array, interface]
 signature: ["slice ITEM..."]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
-toc: false
 ---
 
 One use case is the concatenation of elements in combination with the [`delimit` function]:
index 8164f2720b1a72b845b8f04632e4686cd9b465af..bbdf956969a27d96f7934fc5e3fa38a9d3289e5e 100644 (file)
@@ -1,27 +1,19 @@
 ---
 title: slicestr
-# linktitle:
 description: Creates a slice of a half-open range, including start and end indices.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature:
   - "slicestr STRING START [END]"
   - "strings.SliceString STRING START [END]"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 For example, 1 and 4 creates a slice including elements 1 through 3.
 The `end` index can be omitted; it defaults to the string's length.
 
-* `{{slicestr "BatMan" 3}}` → "Man"
-* `{{slicestr "BatMan" 0 3}}` → "Bat"
+* `{{ slicestr "BatMan" 3 }}` → "Man"
+* `{{ slicestr "BatMan" 0 3 }}` → "Bat"
index b48aad1aaf2b1bc2378e1e3fdc703ee07796ed06..fc147c9fb919b852559cd4c255f04d017a4fffd9 100644 (file)
 ---
 title: sort
-# linktitle: sort
-description: Sorts maps, arrays, and slices and returns a sorted slice.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Sorts slices, maps, and page collections.
 categories: [functions]
+signature: ["sort COLLECTION [KEY] [ORDER]"]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [ordering,sorting,lists]
-signature: []
-workson: [lists,taxonomies,terms,groups]
-hugoversion:
-relatedfuncs: []
-deprecated: false
-aliases: []
+toc: true
 ---
 
-A sorted array of map values will be returned with the keys eliminated. There are two optional arguments: `sortByField` and `sortAsc`. If left blank, sort will sort by keys (for maps) in ascending order as its default behavior.
+The `KEY` is optional when sorting slices in ascending order, otherwise it is required. When sorting slices, use the literal `value` in place of the `KEY`. See examples below.
 
-```
----
-tags: ["tag3", "tag1", "tag2"]
----
+The `ORDER` may be either `asc` (ascending) or `desc` (descending). The default sort order is ascending.
+
+## Sort a slice
+
+The examples below assume this site configuration:
+
+{{< code-toggle file="config" copy=false >}}
+[params]
+grades = ['b','a','c']
+{{< /code-toggle >}}
+
+### Ascending order {#slice-ascending-order}
+
+Sort slice elements in ascending order using either of these constructs:
+
+{{< code file="layouts/_default/single.html" copy=false >}}
+{{ sort site.Params.grades }} → [a b c]
+{{ sort site.Params.grades "value" "asc" }} → [a b c]
+{{< /code >}}
+
+In the examples above, `value` is the `KEY` representing the value of the slice element.
+
+### Descending order {#slice-descending-order}
+
+Sort slice elements in descending order:
+
+{{< code file="layouts/_default/single.html" copy=false >}}
+{{ sort site.Params.grades "value" "desc" }} → [c b a]
+{{< /code >}}
+
+In the example above, `value` is the `KEY` representing the value of the slice element.
 
-// Site config
-+++
-[params.authors]
-  [params.authors.Joe]
-    firstName = "Joe"
-    lastName  = "Bergevin"
-  [params.authors.Derek]
-    firstName = "Derek"
-    lastName  = "Perkins"
-  [params.authors.Tanner]
-    firstName = "Tanner"
-    lastName  = "Linsley"
-+++
+## Sort a map
+
+The examples below assume this site configuration:
+
+{{< code-toggle file="config" copy=false >}}
+[params.authors.a]
+firstName = "Marius"
+lastName  = "Pontmercy"
+[params.authors.b]
+firstName = "Victor"
+lastName  = "Hugo"
+[params.authors.c]
+firstName = "Jean"
+lastName  = "Valjean"
+{{< /code-toggle >}}
+
+{{% note %}}
+When sorting maps, the `KEY` argument must be lowercase.
+{{% /note %}}
+
+### Ascending order {#map-ascending-order}
+
+Sort map objects in ascending order using either of these constructs:
+
+{{< code file="layouts/_default/single.html" copy=false >}}
+{{ range sort site.Params.authors "firstname" }}
+  {{ .firstName }}
+{{ end }}
+
+{{ range sort site.Params.authors "firstname" "asc" }}
+  {{ .firstName }}
+{{ end }}
+{{< /code >}}
+
+These produce:
+
+```text
+Jean Marius Victor
 ```
 
+### Descending order {#map-descending-order}
+
+Sort map objects in descending order:
+
+{{< code file="layouts/_default/single.html" copy=false >}}
+{{ range sort site.Params.authors "firstname" "desc" }}
+  {{ .firstName }}
+{{ end }}
+{{< /code >}}
+
+This produces:
+
+```text
+Victor Marius Jean
 ```
-// Sort by value, ascending (default for lists)
-Tags: {{ range sort .Params.tags }}{{ . }} {{ end }}
 
-→ Outputs Tags: tag1 tag2 tag3
+## Sort a page collection
 
-// Sort by value, descending
-Tags: {{ range sort .Params.tags "value" "desc" }}{{ . }} {{ end }}
+Although you can use the `sort` function to sort a page collection, Hugo provides [built-in methods for sorting page collections] by:
 
-→ Outputs Tags: tag3 tag2 tag1
+- weight
+- linktitle
+- title
+- front matter parameter
+- date
+- expiration date
+- last modified date
+- publish date
+- length
 
-// Sort by key, ascending (default for maps)
-Authors: {{ range sort .Site.Params.authors }}{{ .firstName }} {{ end }}
+In this contrived example, sort the site's regular pages by `.Type` in descending order:
 
-→ Outputs Authors: Derek Joe Tanner
+{{< code file="layouts/_default/home.html" copy=false >}}
+{{ range sort site.RegularPages "Type" "desc" }}
+  <h2><a href="{{ .RelPermalink }}">{{ .Title }}</a></h2>
+{{ end }}
+{{< /code >}}
 
-// Sort by field, descending
-Authors: {{ range sort .Site.Params.authors "lastName" "desc" }}{{ .lastName }} {{ end }}
 
-→ Outputs Authors: Perkins Linsley Bergevin
-```
+[built-in methods for sorting page collections]: /templates/lists/#order-content
index 51d1a64f77187a10425f62ba5f3b5f5ae7b2eae9..d2f3cc8b33a9ce2138d6a6b417e8fd1dc13d2d76 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: split
 description: Returns a slice of strings by splitting STRING by DELIM.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2022-11-06
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["split STRING DELIM"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 Examples:
@@ -26,5 +19,5 @@ Examples:
 
 
 {{% note %}}
-`split` essentially does the opposite of [delimit]({{< ref "functions/delimit" >}}). While `split` creates a slice from a string, `delimit` creates a string from a slice.
+`split` essentially does the opposite of [delimit](/functions/delimit). While `split` creates a slice from a string, `delimit` creates a string from a slice.
 {{% /note %}}
diff --git a/content/en/functions/store.md b/content/en/functions/store.md
new file mode 100644 (file)
index 0000000..d57194d
--- /dev/null
@@ -0,0 +1,105 @@
+---
+title: .Store
+description: Returns a Scratch that is not reset on server rebuilds.
+categories: [functions]
+menu:
+  docs:
+    parent: functions
+keywords: [scratch]
+signature: []
+---
+
+The `.Store` method on `.Page` returns a [Scratch] to store and manipulate data. In contrast to the `.Scratch` method, this Scratch is not reset on server rebuilds.
+
+[Scratch]: /functions/scratch/
+
+### Methods
+
+#### .Set
+
+Sets the value of a given key.
+
+```go-html-template
+{{ .Store.Set "greeting" "Hello" }}
+```
+
+#### .Get
+
+Gets the value of a given key.
+
+```go-html-template
+{{ .Store.Set "greeting" "Hello" }}
+
+{{ .Store.Get "greeting" }} → Hello
+```
+
+#### .Add
+
+Adds a given value to existing value(s) of the given key.
+
+For single values, `Add` accepts values that support Go's `+` operator. If the first `Add` for a key is an array or slice, the following adds will be appended to that list.
+
+```go-html-template
+{{ .Store.Add "greetings" "Hello" }}
+{{ .Store.Add "greetings" "Welcome" }}
+
+{{ .Store.Get "greetings" }} → HelloWelcome
+```
+
+```go-html-template
+{{ .Store.Add "total" 3 }}
+{{ .Store.Add "total" 7 }}
+
+{{ .Store.Get "total" }} → 10
+```
+
+```go-html-template
+{{ .Store.Add "greetings" (slice "Hello") }}
+{{ .Store.Add "greetings" (slice "Welcome" "Cheers") }}
+
+{{ .Store.Get "greetings" }} → []interface {}{"Hello", "Welcome", "Cheers"}
+```
+
+#### .SetInMap
+
+Takes a `key`, `mapKey` and `value` and adds a map of `mapKey` and `value` to the given `key`.
+
+```go-html-template
+{{ .Store.SetInMap "greetings" "english" "Hello" }}
+{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
+
+{{ .Store.Get "greetings" }} → map[french:Bonjour english:Hello]
+```
+
+#### .DeleteInMap
+
+Takes a `key` and `mapKey` and removes the map of `mapKey` from the given `key`.
+
+```go-html-template
+{{ .Store.SetInMap "greetings" "english" "Hello" }}
+{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
+{{ .Store.DeleteInMap "greetings" "english" }}
+
+{{ .Store.Get "greetings" }} → map[french:Bonjour]
+```
+
+#### .GetSortedMapValues
+
+Returns an array of values from `key` sorted by `mapKey`.
+
+```go-html-template
+{{ .Store.SetInMap "greetings" "english" "Hello" }}
+{{ .Store.SetInMap "greetings" "french" "Bonjour" }}
+
+{{ .Store.GetSortedMapValues "greetings" }} → [Hello Bonjour]
+```
+
+#### .Delete
+
+Removes the given key.
+
+```go-html-template
+{{ .Store.Set "greeting" "Hello" }}
+
+{{ .Store.Delete "greeting" }}
+```
index 33a781e45f42b59bfc58ad06841ed70cee8d2e72..df9d071168b1554850e79a006c0cd531e53d605a 100644 (file)
@@ -1,21 +1,48 @@
 ---
 title: string
-# linktitle: string
-description: Creates a string from the argument passed to the function
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Cast a value to a string.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
-keywords: [strings]
+    parent: functions
+keywords: [cast,strings]
 signature: ["string INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-* `{{string "BatMan"}}` → "BatMan"
+With a decimal (base 10) input:
+
+```go-html-template
+{{ string 11 }} → 11 (string)
+{{ string "11" }} → 11 (string)
+
+{{ string 11.1 }} → 11.1 (string)
+{{ string "11.1" }} → 11.1 (string)
+
+{{ string 11.9 }} → 11.9 (string)
+{{ string "11.9" }} → 11.9 (string)
+```
+
+With a binary (base 2) input:
+
+```go-html-template
+{{ string 0b11 }} → 3 (string)
+{{ string "0b11" }} → 0b11 (string)
+```
+
+With an octal (base 8) input (use either notation):
+
+```go-html-template
+{{ string 011 }} → 9 (string)
+{{ string "011" }} → 011 (string)
+
+{{ string 0o11 }} → 9 (string)
+{{ string "0o11" }} → 0o11 (string)
+```
+
+With a hexadecimal (base 16) input:
+
+```go-html-template
+{{ string 0x11 }} → 17 (string)
+{{ string "0x11" }} → 0x11 (string)
+```
index 8ebd9ad3333f3477f11ca31032ebaaa31f4a45a2..44cb73b8143f6dc4b9fb0a79640dbb8fb73ee287 100644 (file)
@@ -4,10 +4,9 @@ description: Reports whether a string contains a substring.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [string strings substring contains]
 signature: ["strings.Contains STRING SUBSTRING"]
-aliases: []
 relatedfuncs: [strings.ContainsAny]
 ---
 
index bfbc2242b688f2b21488a6c08c7214fed518e9f5..36fa8701be0efc2f94b1500603555babe8ccc062 100644 (file)
@@ -4,10 +4,9 @@ description: Reports whether a string contains any character from a given string
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [string strings substring contains any]
 signature: ["strings.ContainsAny STRING CHARACTERS"]
-aliases: []
 relatedfuncs: [strings.Contains]
 ---
 
index c0b11233c26ba3ee4ceb725dd90eb3f7732114ef..7c3945693070641df248fb2c3d41e9ecb52ec688 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: strings.Count
 description: Returns the number of non-overlapping instances of a substring within a string.
-date: 2020-09-07
-publishdate: 2020-09-07
-lastmod: 2020-09-07
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [count, counting, character count]
 signature: ["strings.Count SUBSTR STRING"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 If `SUBSTR` is an empty string, this function returns 1 plus the number of Unicode code points in `STRING`.
index b97d00f294686cec7df3d3fedee361bbb8a6ef13..fab82a2dc631472f1a56a387f55708f427734535 100644 (file)
@@ -4,11 +4,9 @@ description: Capitalizes the first character of a given string.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings capitalize uppercase first]
 signature: ["strings.FirstUpper STRING"]
-hugoversion:
-aliases: []
 ---
 
     {{ strings.FirstUpper "foo" }} → "Foo"
diff --git a/content/en/functions/strings.HasPrefix.md b/content/en/functions/strings.HasPrefix.md
new file mode 100644 (file)
index 0000000..70317a4
--- /dev/null
@@ -0,0 +1,16 @@
+---
+title: strings.HasPrefix
+description: Tests whether a string begins with prefix.
+categories: [functions]
+menu:
+  docs:
+    parent: functions
+keywords: [strings]
+signature: ["hasPrefix STRING PREFIX","strings.HasPrefix STRING PREFIX"]
+relatedfuncs: [hasSuffix]
+aliases: [/functions/hasprefix/]
+---
+
+```go-html-template
+{{ hasPrefix "Hugo" "Hu" }} → true
+```
index 78688a5cbe28839b1efbb257073e885d5f95cdb1..3ead121a3330ae5de2d48e2e0765b7cebf464740 100644 (file)
@@ -1,22 +1,16 @@
 ---
 title: strings.HasSuffix
-description: Determine whether a given string ends with the provided trailing suffix string.
-date: 2019-08-13
-publishdate: 2019-08-13
-lastmod: 2019-08-13
+description: Tests whether a string ends with suffix.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
-signature: ["strings.HasSuffix STRING SUFFIX"]
-workson: []
-hugoversion:
+signature: ["hasSuffix STRING SUFFIX","strings.HasSuffix STRING SUFFIX"]
 relatedfuncs: [hasPrefix]
-deprecated: false
-aliases: []
+aliases: [/functions/hassuffix/]
 ---
 
-    {{ $pdfPath := "/path/to/some.pdf" }}
-    {{ strings.HasSuffix $pdfPath "pdf" }} → true
-    {{ strings.HasSuffix $pdfPath "txt" }} → false
+```go-html-template
+{{ hasSuffix "Hugo" "go" }} → true
+```
index 7cba6d075d9cd582926d4678dc6d7829ad230700..99b2fe5a5e9bfe9c74b69020b5d76244b4b88a32 100644 (file)
@@ -1,23 +1,16 @@
 ---
 title: strings.Repeat
-# linktitle:
 description: Returns INPUT repeated COUNT times.
-date: 2018-05-31
-publishdate: 2018-05-31
-lastmod: 2018-05-31
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["strings.Repeat COUNT INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
-```
+```go-html-template
 {{ strings.Repeat 3 "yo" }} → "yoyoyo"
 {{ "yo" | strings.Repeat 3 }} → "yoyoyo"
 ```
index de335f8623d2f4a4b9d76679441b131f1b48d02a..3a72e339a3bb7abf9627882f163c63fdaa983922 100644 (file)
@@ -1,25 +1,18 @@
 ---
 title: strings.RuneCount
 description: Determines the number of runes in a string.
-date: 2018-06-01
-publishdate: 2018-06-01
-lastmod: 2018-06-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [counting, character count, length, rune length, rune count]
 signature: ["strings.RuneCount INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: ["len", "countrunes"]
-deprecated: false
-aliases: []
 ---
 
 In contrast with `strings.CountRunes` function, which strips HTML and whitespace before counting runes, `strings.RuneCount` simply counts all the runes in a string. It relies on the Go [`utf8.RuneCountInString`] function.
 
-```
+```go-html-template
 {{ "Hello, 世界" | strings.RuneCount }}
 <!-- outputs a content length of 9 runes. -->
 ```
index 2d71a136775e9f3be45f141ede27cd80c1222e54..b0271c8a852a7c97f7da7a5a0d5ad9d1d99f9291 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: strings.TrimLeft
 description: Returns a slice of a given string with all leading characters contained in the cutset removed.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["strings.TrimLeft CUTSET STRING"]
-workson: []
-hugoversion:
 relatedfuncs: [strings.TrimRight]
-deprecated: false
-aliases: []
 ---
 
 Given the string `"abba"`, leading `"a"`'s can be removed a follows:
index a66bbe3dbceeb5e78fb84ab4a257bba1732dee55..c3f7029610ab5c8598d1b4f2e3a2ddcc5827cdcd 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: strings.TrimPrefix
 description: Returns a given string s without the provided leading prefix string. If s doesn't start with prefix, s is returned unchanged.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["strings.TrimPrefix PREFIX STRING"]
-workson: []
-hugoversion:
 relatedfuncs: [strings.TrimSuffix]
-deprecated: false
-aliases: []
 ---
 
 Given the string `"aabbaa"`, the specified prefix is only removed if `"aabbaa"` starts with it:
index 05084a4c0a0ce3c6356ed4a6ff090aba77d06b4a..e61b884cd456f291d8e63e7a3aaff274b7a7fb23 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: strings.TrimRight
 description: Returns a slice of a given string with all trailing characters contained in the cutset removed.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["strings.TrimRight CUTSET STRING"]
-workson: []
-hugoversion:
 relatedfuncs: [strings.TrimRight]
-deprecated: false
-aliases: []
 ---
 
 Given the string `"abba"`, trailing `"a"`'s can be removed a follows:
index 916038054ca4290e495ba405d82a20f6efda50ab..05bb92400aa050c061d1ad66519d4fd3851f203e 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: strings.TrimSuffix
 description: Returns a given string s without the provided trailing suffix string. If s doesn't end with suffix, s is returned unchanged.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature: ["strings.TrimSuffix SUFFIX STRING"]
-workson: []
-hugoversion:
 relatedfuncs: [strings.TrimPrefix]
-deprecated: false
-aliases: []
 ---
 
 Given the string `"aabbaa"`, the specified suffix is only removed if `"aabbaa"` ends with it:
index 4a00b6eb1f01fff4f642cbef762eda044a67024b..6a5f15592eb9fd42f85752fbb3eaf6a7235f0811 100644 (file)
@@ -1,23 +1,15 @@
 ---
 title: substr
-# linktitle:
 description: Extracts parts of a string from a specified character's position and returns the specified number of characters.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
-aliases: []
 signature:
   - "substr STRING START [LENGTH]"
   - "strings.Substr STRING START [LENGTH]"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 It normally takes two parameters: `start` and `length`. It can also take one parameter: `start`, i.e. `length` is omitted, in which case the substring starting from start until the end of the string will be returned.
@@ -26,7 +18,7 @@ To extract characters from the end of the string, use a negative start number.
 
 If `length` is given and is negative, that number of characters will be omitted from the end of string.
 
-```
+```go-html-template
 {{ substr "abcdef" 0 }} → "abcdef"
 {{ substr "abcdef" 1 }} → "bcdef"
 
index bac1f1ffe283d15e7a41651aee00d202d48ee7e3..ffc3094186e4670ff231744f9261c8c4514b1ab8 100644 (file)
@@ -1,15 +1,12 @@
 ---
-title: "symdiff"
+title: symdiff
 description: "`collections.SymDiff` (alias `symdiff`) returns the symmetric difference of two collections."
-date: 2018-11-07
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [collections,intersect,union,complement]
 signature: ["COLLECTION | symdiff COLLECTION" ]
-hugoversion: "0.51"
-aliases: []
 ---
 
 Example:
index 36fa0ea60901e6b3ec12183dfaef0764ad321a27..b9f340c21c481444282af29db70e73369791967c 100644 (file)
@@ -1,24 +1,15 @@
 ---
 title: templates.Exists
-linktitle: ""
 description: "Checks whether a template file exists under the given path relative to the `layouts` directory."
-date: 2018-11-01
-publishdate: 2018-11-01
-lastmod: 2018-11-01
 categories: [functions]
 tags: []
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 ns: ""
 keywords: ["templates", "template", "layouts"]
 signature: ["templates.Exists PATH"]
-workson: []
-hugoversion: "0.46"
-aliases: []
 relatedfuncs: []
-toc: false
-deprecated: false
 ---
 
 A template file is any file living below the `layouts` directories of either the project or any of its theme components including partials and shortcodes.
@@ -32,5 +23,4 @@ The function is particularly handy with dynamic path. The following example ensu
 {{ else }}
   {{ partial "headers/default.html" . }}
 {{ end }}
-
 ```
index aabba601ab4e3f80d39aa790c48af12cc2f2c9cc..0332c1706346b63940e7f39ee154b9f2461a15fd 100644 (file)
@@ -4,11 +4,9 @@ description: Parses a given duration string into a `time.Duration` structure.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [time parse duration]
 signature: ["time.ParseDuration DURATION"]
-hugoversion:
-aliases: []
 ---
 
 `time.ParseDuration` parses a duration string into a [`time.Duration`](https://pkg.go.dev/time#Duration) structure so you can access its fields.
index 175e2dbfe34b9c1fd279042c1e74b7a9a0324fd6..7cb55f6f1684f64cb8b617f8d1c01d85117ea12f 100644 (file)
@@ -1,27 +1,19 @@
 ---
 title: time
-linktitle:
 description: Converts a timestamp string into a `time.Time` structure.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [dates,time,location]
 signature: ["time INPUT [TIMEZONE]"]
-workson: []
-hugoversion: "v0.77.0"
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
 
 `time` converts a timestamp string with an optional default location into a [`time.Time`](https://godoc.org/time#Time) structure so you can access its fields:
 
-```
+```go-html-template
 {{ time "2016-05-28" }} → "2016-05-28T00:00:00Z"
 {{ (time "2016-05-28").YearDay }} → 149
 {{ mul 1000 (time "2016-05-28T10:30:00.00+10:00").Unix }} → 1464395400000, or Unix time in milliseconds
@@ -35,7 +27,7 @@ The list of valid locations may be system dependent, but should include `UTC`, `
 
 If no `TIMEZONE` is set, the `timeZone` from site configuration will be used.
 
-```
+```go-html-template
 {{ time "2020-10-20" }} → 2020-10-20 00:00:00 +0000 UTC
 {{ time "2020-10-20" "America/Los_Angeles" }} → 2020-10-20 00:00:00 -0700 PDT
 {{ time "2020-01-20" "America/Los_Angeles" }} → 2020-01-20 00:00:00 -0800 PST
@@ -48,11 +40,11 @@ The following example takes a UNIX timestamp---set as `utimestamp: "1489276800"`
 The following example may be useful when setting up [multilingual sites][multilingual]:
 
 {{< code file="unix-to-month-integer.html" >}}
-{{$time := time (int .Params.addDate)}}
+{{ $time := time (int .Params.addDate)}}
 => $time = 1489276800
-{{$time.Month}}
+{{ $time.Month }}
 => "March"
-{{$monthindex := printf "%d" $time.Month }}
+{{ $monthindex := printf "%d" $time.Month }}
 => $monthindex = 3
 {{< /code >}}
 
index 6c87d69ac94e5a2a10a91218fec50fa1bec6f717..d8e0f73a494f59bae12f1e6510d41e61307b4ff7 100644 (file)
@@ -1,38 +1,23 @@
 ---
 title: title
-# linktitle:
-description: Converts all characters in the provided string to title case.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Converts the provided string to title case.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature:
-  - "title INPUT"
-  - "strings.Title INPUT"
-workson: []
-hugoversion:
+  - "title STRING"
+  - "strings.Title STRING"
 relatedfuncs: []
-deprecated: false
-aliases: []
 ---
 
-
-```
-{{title "BatMan"}}` → "Batman"
-```
-
-Can be combined in pipes. In the following snippet, the link text is cleaned up using `humanize` to remove dashes and `title` to convert the value of `$name` to Initial Caps.
-
-```
-{{ range $name, $items := .Site.Taxonomies.categories }}
-    <li><a href="{{ printf "%s/%s" "categories" ($name | urlize | lower) | absURL }}">{{ $name | humanize | title }} ({{ len $items }})</a></li>
-{{ end }}
+```go-html-template
+{{ title "table of contents (TOC)" }} → "Table of Contents (TOC)"
 ```
 
-## Configure Title Case
+By default, Hugo adheres to the capitalization rules in the [Associated Press (AP) Stylebook]. Change your [site configuration] if you would prefer to follow the [Chicago Manual of Style], or to use Go's convention of capitalizing every word.
 
-The default is AP Stylebook, but you can [configure it](/getting-started/configuration/#configure-title-case).
+[Associated Press (AP) Stylebook]: https://www.apstylebook.com/
+[Chicago Manual of Style]: https://www.chicagomanualofstyle.org/home.html
+[site configuration]: /getting-started/configuration/#configure-title-case
index 9b380dc578c74aeb8a59da142b392650c31c82e4..d238565e2fffe19cff6dffe228b47edd7921e62d 100644 (file)
@@ -1,15 +1,12 @@
 ---
-title: "transform.Unmarshal"
+title: transform.Unmarshal
 description: "`transform.Unmarshal` (alias `unmarshal`) parses the input and converts it into a map or an array. Supported formats are JSON, TOML, YAML, XML and CSV."
-date: 2018-12-23
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: []
 signature: ["RESOURCE or STRING | transform.Unmarshal [OPTIONS]"]
-hugoversion: "0.53"
-aliases: []
 ---
 
 The function accepts either a `Resource` created in [Hugo Pipes](/hugo-pipes/) or via [Page Bundles](/content-management/page-bundles/), or simply a string. The two examples below will produce the same map:
@@ -52,7 +49,7 @@ As a convenience, Hugo allows you to access XML data in the same way that you ac
 
 To get the contents of `<title>` in the document below, you use `{{ .message.title }}`:
 
-```
+```xml
 <root>
     <message>
         <title>Hugo rocks!</title>
@@ -63,7 +60,7 @@ To get the contents of `<title>` in the document below, you use `{{ .message.tit
 
 The following example lists the items of an RSS feed:
 
-```
+```go-html-template
 {{ with resources.Get "https://example.com/rss.xml" | transform.Unmarshal }}
     {{ range .channel.item }}
         <strong>{{ .title | plainify | htmlUnescape }}</strong><br />
index fec435ec7667249e2c7dfeb68668074430dce4a2..3d664abea9168317cddf7aef4cc761c6636f6b9a 100644 (file)
@@ -1,37 +1,30 @@
 ---
 title: trim
-# linktitle:
 description: Returns a slice of a passed string with all leading and trailing characters from cutset removed.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature:
   - "trim INPUT CUTSET"
   - "strings.Trim INPUT CUTSET"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
-```
+```go-html-template
 {{ trim "++Batman--" "+-" }} → "Batman"
 ```
 
 `trim` *requires* the second argument, which tells the function specifically what to remove from the first argument. There is no default value for the second argument, so **the following usage will not work**:
 
-```
-{{ trim .Inner}}
+```go-html-template
+{{ trim .Inner }}
 ```
 
 Instead, the following example tells `trim` to remove extra new lines from the content contained in the [shortcode `.Inner` variable][shortcodevars]:
 
-```
+```go-html-template
 {{ trim .Inner "\n" }}
 ```
 
index 54cfb361281f3b4ebcd9287b392ee8817b19700a..cf38a2dfda8a4960f91b0cfb6c9eb21c3caaf814 100644 (file)
@@ -1,27 +1,20 @@
 ---
 title: truncate
-# linktitle: truncate
 description: Truncates a text to a max length without cutting words or leaving unclosed HTML tags.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [strings]
 signature:
   - "truncate SIZE [ELLIPSIS] INPUT"
   - "strings.Truncate SIZE [ELLIPSIS] INPUT"
-workson: []
-hugoversion: 19
 relatedfuncs: []
-deprecated: false
 ---
 
 Since Go templates are HTML-aware, `truncate` will intelligently handle normal strings vs HTML strings:
 
-```
+```go-html-template
 {{ "<em>Keep my HTML</em>" | safeHTML | truncate 10 }}` → <em>Keep my …</em>`
 ```
 
index 465abcdd8d05475b3df95b05983954765f4287f6..b73e06d38cd1baf5e84ce9cdeebf44cd227be94e 100644 (file)
@@ -1,26 +1,18 @@
 ---
 title: union
-# linktitle: union
 description: Given two arrays or slices, returns a new array that contains the elements or objects that belong to either or both arrays/slices.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-03-12
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [collections,intersect,union,complement]
 signature: ["union SET1 SET2"]
-workson: []
-hugoversion: 0.20
 relatedfuncs: [intersect,where]
-deprecated: false
-aliases: []
 ---
 
 Given two arrays (or slices) A and B, this function will return a new array that contains the elements or objects that belong to either A or to B or to both. The elements supported are strings, integers, and floats (only float64).
 
-```
+```go-html-template
 {{ union (slice 1 2 3) (slice 3 4 5) }}
 <!-- returns [1 2 3 4 5] -->
 
@@ -38,7 +30,7 @@ Given two arrays (or slices) A and B, this function will return a new array that
 
 This is also very useful to use as `OR` filters when combined with where:
 
-```
+```go-html-template
 {{ $pages := where .Site.RegularPages "Type" "not in" (slice "page" "about") }}
 {{ $pages = $pages | union (where .Site.RegularPages "Params.pinned" true) }}
 {{ $pages = $pages | intersect (where .Site.RegularPages "Params.images" "!=" nil) }}
index 73ca32488cebfae126bb279fbded693d9ddb9c26..4584ec5ad774136cad3c8015ef583e9fdfbc8854 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: uniq
-linktitle: uniq
 description: Takes in a slice or array and returns a slice with duplicate elements removed.
 categories: [functions]
 menu:
@@ -8,11 +7,9 @@ menu:
     parent: functions
 keywords: [multilingual,i18n,urls]
 signature: [uniq SET]
-aliases: []
 ---
 
 
-```
+```go-html-template
 {{ slice 1 3 2 1 | uniq }} --> [1 3 2]
-
 ```
index 98fcc74a4fc83a261ebe4739ad346c4f623ba1cf..60fae9248a072ffe33d1cf73d0620510de15fcfd 100644 (file)
@@ -1,12 +1,11 @@
 ---
 title: .Unix
 description: Converts a time.Time value to the number of seconds elapsed since the Unix epoch, excluding leap seconds. The Unix epoch is 00:00:00&nbsp;UTC on 1 January 1970.
-date: 2017-02-01
 keywords: [dates,time]
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 signature: [".Unix",".UnixMilli",".UnixMicro",".UnixNano"]
 relatedfuncs: [Format,dateFormat,now,time]
 ---
index 02f4cd578816cbf5de6180bc1d4e5160b892412b..e11065f79c1419d1f701a9e8abe71196aa64590b 100644 (file)
@@ -1,25 +1,16 @@
 ---
 title: upper
-# linktitle: upper
 description: Converts all characters in a string to uppercase
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: []
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 toc:
 signature:
   - "upper INPUT"
   - "strings.ToUpper INPUT"
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
-draft: false
-aliases: []
 ---
 
 Note that `upper` can be applied in your templates in more than one way:
index 048946cd377c1091f8aa15ad6278493b97c6dfb8..8c9aeb1c37083e75e7b22df6dea72d6e7830b995 100644 (file)
@@ -1,71 +1,62 @@
 ---
 title: urlize
-# linktitle: urlize
 description: Takes a string, sanitizes it for usage in URLs, and converts spaces to hyphens.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [urls,strings]
 signature: ["urlize INPUT"]
-hugoversion:
-deprecated: false
-workson: []
 relatedfuncs: []
 ---
 
 The following examples pull from a content file with the following front matter:
 
-{{< code file="content/blog/greatest-city.md" copy="false">}}
-+++
+{{< code-toggle file="content/blog/greatest-city.md" fm=true copy=false >}}
 title = "The World's Greatest City"
 location = "Chicago IL"
 tags = ["pizza","beer","hot dogs"]
-+++
-{{< /code >}}
+{{< /code-toggle >}}
 
 The following might be used as a partial within a [single page template][singletemplate]:
 
-{{< code file="layouts/partials/content-header.html" download="content-header.html" >}}
+{{< code file="layouts/partials/content-header.html" >}}
 <header>
-    <h1>{{.Title}}</h1>
+    <h1>{{ .Title }}</h1>
     {{ with .Params.location }}
-        <div><a href="/locations/{{ . | urlize}}">{{.}}</a></div>
+        <div><a href="/locations/{{ . | urlize }}">{{ . }}</a></div>
     {{ end }}
     <!-- Creates a list of tags for the content and links to each of their pages -->
     {{ with .Params.tags }}
     <ul>
-        {{range .}}
+        {{ range .}}
             <li>
                 <a href="/tags/{{ . | urlize }}">{{ . }}</a>
             </li>
-        {{end}}
+        {{ end }}
     </ul>
     {{ end }}
 </header>
 {{< /code >}}
 
-The preceding partial would then output to the rendered page as follows, assuming the page is being built with Hugo's default pretty URLs.
+The preceding partial would then output to the rendered page as follows:
 
-{{< output file="/blog/greatest-city/index.html" >}}
+```html
 <header>
-    <h1>The World&#39;s Greatest City</h1>
-    <div><a href="/locations/chicago-il">Chicago IL</a></div>
-    <ul>
-        <li>
-            <a href="/tags/pizza">pizza</a>
-        </li>
-        <li>
-            <a href="/tags/beer">beer</a>
-        </li>
-        <li>
-            <a href="/tags/hot-dogs">hot dogs</a>
-        </li>
-    </ul>
+  <h1>The World&#39;s Greatest City</h1>
+  <div><a href="/locations/chicago-il">Chicago IL</a></div>
+  <ul>
+    <li>
+      <a href="/tags/pizza">pizza</a>
+    </li>
+    <li>
+      <a href="/tags/beer">beer</a>
+    </li>
+    <li>
+      <a href="/tags/hot-dogs">hot dogs</a>
+    </li>
+  </ul>
 </header>
-{{< /output >}}
+```
 
 [singletemplate]: /templates/single-page-templates/
index ca00e6e6d2f027778c9b5ef050490d37ffbb1e5e..11ada38c44eddaa70cf693638b91f94f6947b36e 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: urlquery
-linktitle: urlquery
 description: Returns the escaped value of the textual representation of its arguments in a form suitable for embedding in a URL query.
-date: 2022-01-18
-publishdate: 2022-01-18
-lastmod: 2022-01-18
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [urls]
 signature: ["urlquery INPUT [INPUT]..."]
-hugoversion:
-deprecated: false
-workson: []
 relatedfuncs: []
-aliases: []
 ---
 
 
index 988ecb3ac017c112e7e9c50dbca410dfbf7abc76..b2d781e7f0f187fffaa8d69701dcedd8adfe6f43 100644 (file)
@@ -1,31 +1,32 @@
 ---
 title: urls.Parse
-description: Parse parses a given URL, which may be relative or absolute, into a URL structure.
-date: 2017-09-25
-publishdate: 2017-09-25
-lastmod: 2017-09-25
+description: Parses a URL into a URL structure.
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [urls]
 signature: ["urls.Parse URL"]
-workson: []
-hugoversion:
-deprecated: false
-aliases: []
 ---
 
-`urls.Parse` takes a url as input
+The `urls.Parse` function parses a URL into a [URL structure](https://godoc.org/net/url#URL). The URL may be relative (a path, without a host) or absolute (starting with a [scheme]). Hugo throws an error when parsing an invalid URL.
 
+[scheme]: https://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml#uri-schemes-1
 
-```go-html-template
-{{ $url := urls.Parse "http://www.gohugo.io" }}
-```
-
-and returns a [URL](https://godoc.org/net/url#URL) structure. The struct fields are accessed via the `.` notation:
 
 ```go-html-template
-{{ $url.Scheme }} → "http"
-{{ $url.Host }} → "www.gohugo.io"
+{{ $url := "https://example.org:123/foo?a=6&b=7#bar" }}
+{{ $u := urls.Parse $url }}
+
+{{ $u.IsAbs }} → true
+{{ $u.Scheme }} → https
+{{ $u.Host }} → example.org:123
+{{ $u.Hostname }} → example.org
+{{ $u.RequestURI }} → /foo?a=6&b=7
+{{ $u.Path }} → /foo
+{{ $u.Query }} → map[a:[6] b:[7]]
+{{ $u.Query.a }} → [6]
+{{ $u.Query.Get "a" }} → 6
+{{ $u.Query.Has "b" }} → true
+{{ $u.Fragment }} → bar
 ```
index b7d31f645e6cca6284783cc1b01da7fbd096dc5a..49882b807a846ef595f44f17cb74544ad70551b2 100644 (file)
@@ -1,22 +1,14 @@
 ---
 title: where
-# linktitle: where
 description: Filters an array to only the elements containing a matching value for a given field.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [filtering]
 signature: ["where COLLECTION KEY [OPERATOR] MATCH"]
-workson: [lists,taxonomies,terms,groups]
-hugoversion:
 relatedfuncs: [intersect,first,after,last]
-deprecated: false
 toc: true
-needsexample: true
 ---
 
 `where` filters an array to only the elements containing a matching
@@ -33,11 +25,10 @@ SQL][wherekeyword].
 
 It can be used by dot-chaining the second argument to refer to a nested element of a value.
 
-```
-+++
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 series: golang
-+++
-```
+{{< /code-toggle >}}
 
 ```go-html-template
 {{ range where .Site.Pages "Params.series" "golang" }}
@@ -85,9 +76,9 @@ The following logical operators are available with `where`:
 ## Use `where` with `Booleans`
 When using booleans you should not put quotation marks.
 ```go-html-template
-{{range where .Pages "Draft" true}}
-        <p>{{.Title}}</p>
-{{end}}
+{{ range where .Pages "Draft" true }}
+        <p>{{ .Title }}</p>
+{{ end }}
 ```
   
 
@@ -115,7 +106,7 @@ You can also put the returned value of the `where` clauses into a variable:
 
 Using `first` and `where` together can be very
 powerful. Below snippet gets a list of posts only from [**main
-sections**]({{< relref "where.md#mainsections" >}}), sorts it using the [default
+sections**](#mainsections), sorts it using the [default
 ordering](/templates/lists/) for lists (i.e., `weight => date`), and
 then ranges through only the first 5 posts in that list:
 
index ae643caf7d365efcb9dd76b9abfa145d1fa2a04d..591aea01ea878c12cf6b40651a0a1cc5879f7f4a 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: with
-# linktitle: with
 description: Rebinds the context (`.`) within its scope and skips the block if the variable is absent or empty.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-03-12
 categories: [functions]
 menu:
   docs:
-    parent: "functions"
+    parent: functions
 keywords: [conditionals]
 signature: ["with INPUT"]
-workson: []
-hugoversion:
 relatedfuncs: []
-deprecated: false
 ---
 
 An alternative way of writing an `if` statement and then referencing the same value is to use `with` instead. `with` rebinds the context (`.`) within its scope and skips the block if the variable is absent, unset or empty.
@@ -26,9 +19,9 @@ If you want to render a block if an index or key is present in a slice, array, c
 The following example checks for a [user-defined site variable](/variables/site/) called `twitteruser`. If the key-value is not set, the following will render nothing:
 
 {{< code file="layouts/partials/twitter.html" >}}
-{{with .Site.Params.twitteruser}}<span class="twitter">
-<a href="https://twitter.com/{{.}}" rel="author">
-<img src="/images/twitter.png" width="48" height="48" title="Twitter: {{.}}"
+{{ with .Site.Params.twitteruser }}<span class="twitter">
+<a href="https://twitter.com/{{ . }}" rel="author">
+<img src="/images/twitter.png" width="48" height="48" title="Twitter: {{ . }}"
  alt="Twitter"></a>
-</span>{{end}}
+</span>{{ end }}
 {{< /code >}}
index f953abb22cdac929dd5959801f23d8fc2c258482..b08a949fb8a271bbe30102ff4ae7fb3f3fbf95d0 100644 (file)
@@ -2,17 +2,14 @@
 title: Get Started
 linktitle: Get Started Overview
 description: Quick start and guides for installing Hugo on your preferred operating system.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [getting started]
 keywords: [usage,docs]
 menu:
   docs:
-    parent: "getting-started"
+    parent: getting-started
     weight: 1
-weight: 0001   #rem
+weight: 0001
 aliases: [/overview/introduction/]
-toc: false
 ---
 
 If this is your first time using Hugo and you've [already installed Hugo on your machine][installed], we recommend the [quick start]. You can also use [external learning resources] to learn Hugo.
index d1d237b2a986dc47c7aaacb7de6567d430ddd704..4ab6b84a03993555df6da53d99a4ff1b775ddc5e 100644 (file)
@@ -1,11 +1,9 @@
 ---
 title: Configure Markup
 description: How to handle Markdown and other markup related configuration.
-date: 2019-11-15
 categories: [getting started,fundamentals]
 keywords: [configuration,highlighting]
 weight: 65
-sections_weight: 65
 slug: configuration-markup
 toc: true
 ---
index 99d11fbb174c058b19d960b75384bc391c7cf967..e47d3c9426fcd0103beb036cfbd457f681f780de 100644 (file)
@@ -2,16 +2,13 @@
 title: Configure Hugo
 linktitle: Configuration
 description: How to configure your Hugo site.
-date: 2013-07-01
-publishdate: 2017-01-02
 categories: [getting started,fundamentals]
 keywords: [configuration,toml,yaml,json]
 menu:
   docs:
-    parent: "getting-started"
+    parent: getting-started
     weight: 60
 weight: 60
-sections_weight: 60
 aliases: [/overview/source-directory/,/overview/configuration/]
 toc: true
 ---
@@ -35,11 +32,9 @@ hugo --config a.toml,b.toml,c.toml
 Multiple site config files can be specified as a comma-separated string to the `--config` switch.
 {{% /note %}}
 
-{{< todo >}}TODO: distinct config.toml and others (the root object files){{< /todo >}}
-
 ## hugo.toml vs config.toml
 
-In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier code editors and build tools to identify this as a Hugo configuration file and project. 
+In Hugo 0.110.0 we changed the default config base filename to `hugo`, e.g. `hugo.toml`. We will still look for `config.toml` etc., but we recommend you eventually rename it (but you need to wait if you want to support older Hugo versions). The main reason we're doing this is to make it easier for code editors and build tools to identify this as a Hugo configuration file and project.
 
 {{< new-in "0.110.0" >}}
 
@@ -88,7 +83,7 @@ Let's take an example to understand this better. Let's say you are using Google
   - `G-SSSSSSSS` for staging
 
 This is how you need to configure your `config.toml` files considering the above scenario:
-1. In `_default/config.toml` you don't need to mention `googleAnalytics` parameter at all. This ensures that no Google Analytics code is loaded in your development server i.e. when you run `hugo serve`. This works since, by default Hugo sets `Environment=development` when you run `hugo serve` which uses the config files from `_default` folder
+1. In `_default/config.toml` you don't need to mention `googleAnalytics` parameter at all. This ensures that no Google Analytics code is loaded in your development server i.e. when you run `hugo server`. This works since, by default Hugo sets `Environment=development` when you run `hugo server` which uses the config files from `_default` folder
 2. In `production/config.toml` you just need to have one line:
 
     ```googleAnalytics = "G-PPPPPPPP"```
@@ -140,7 +135,7 @@ The directory where Hugo finds asset files used in [Hugo Pipes](/hugo-pipes/). {
 
 ### baseURL
 
-Hostname (and path) to the root, e.g. https://bep.is/
+The absolute URL (protocol, host, path, and trailing slash) of your published site (e.g., `https://www.example.org/docs/`).
 
 ### build
 
@@ -321,7 +316,7 @@ See [Configure Media Types](/templates/output-formats/#media-types).
 
 ### menus
 
-See [Add Non-content Entries to a Menu](/content-management/menus/#add-non-content-entries-to-a-menu).
+See [Menus](/content-management/menus/#define-in-site-configuration).
 
 ### minify
 
@@ -419,7 +414,7 @@ Maximum number of items in the RSS feed.
 
 ### sectionPagesMenu
 
-See ["Section Menu for Lazy Bloggers"](/templates/menu-templates/#section-menu-for-lazy-bloggers).
+See [Menus](/content-management/menus/#define-in-site-configuration).
 
 ### security
 
@@ -571,16 +566,22 @@ Setting `force=true` will make a redirect even if there is existing content in t
 
 Hugo will, by default, render all 404 errors when running `hugo server` with the `404.html` template. Note that if you have already added one or more redirects to your [Server Config](#configure-server), you need to add the 404 redirect explicitly, e.g:
 
-```toml
+{{< code-toggle file="config/development/server" copy=false >}}
 [[redirects]]
-    from   = "/**"
-    to     = "/404.html"
-    status = 404
-```
+from   = "/**"
+to     = "/404.html"
+status = 404
+{{< /code-toggle >}}
 
 ## Configure Title Case
 
-Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. It defaults to [AP Stylebook](https://www.apstylebook.com/) for title casing, but you can also set it to `Chicago` or `Go` (every word starts with a capital letter).
+Set `titleCaseStyle` to specify the title style used by the [title](/functions/title/) template function and the automatic section titles in Hugo. 
+
+By default, Hugo adheres to the capitalization rules in the [Associated Press (AP) Stylebook]. Set `titleCaseStyle` to `chicago` if you would prefer to follow the [Chicago Manual of Style], or set if to `go` to use Go's convention of capitalizing every word.
+
+[Associated Press (AP) Stylebook]: https://www.apstylebook.com/
+[Chicago Manual of Style]: https://www.chicagomanualofstyle.org/home.html
+[site configuration]: /getting-started/configuration/#configure-title-case
 
 ## Configuration Environment Variables
 
@@ -629,7 +630,7 @@ $ env HUGO_TITLE="Some Title" hugo
 
 This is really useful if you use a service such as Netlify to deploy your site. Look at the Hugo docs [Netlify configuration file](https://github.com/gohugoio/hugoDocs/blob/master/netlify.toml) for an example.
 
-{{% note "Setting Environment Variables" %}}
+{{% note %}}
 Names must be prefixed with `HUGO_` and the configuration key must be set in uppercase when setting operating system environment variables.
 
 To set config params, prefix the name with `HUGO_PARAMS_`
@@ -645,17 +646,17 @@ Test and document setting params via JSON env var.
 
 **Note:** This works, but we recommend you use the newer and more powerful [includeFiles and excludeFiles](https://gohugo.io/hugo-modules/configuration/#module-config-mounts) mount options.
 
-To exclude specific files from the `content` and `data` directories when rendering your site, set `ignoreFiles` to one or more regular expressions to match against the absolute file path.
+To exclude specific files from the `content`, `data`, and `i18n` directories when rendering your site, set `ignoreFiles` to one or more regular expressions to match against the absolute file path.
 
 To ignore files ending with `.foo` or `.boo`:
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 ignoreFiles = ['\.foo$', '\.boo$']
 {{< /code-toggle >}}
 
 To ignore a file using the absolute file path:
 
-{{< code-toggle copy="false" >}}
+{{< code-toggle copy=false >}}
 ignoreFiles = ['^/home/user/project/content/test\.md$']
 {{< /code-toggle >}}
 
index b8c22b1df95352024bf220b0bb94235be4c93a3a..da0f9c761e893004008055d40cade2663ea742e6 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: Directory Structure
-linktitle: Directory Structure
 description: Hugo's CLI scaffolds a project directory structure and then takes that single directory and uses it as the input to create a complete website.
-date: 2017-01-02
-publishdate: 2017-02-01
 categories: [getting started,fundamentals]
 keywords: [source, organization, directories]
 menu:
   docs:
-    parent: "getting-started"
+    parent: getting-started
     weight: 50
 weight: 50
-sections_weight: 50
 aliases: [/overview/source-directory/]
 toc: true
 ---
@@ -75,7 +71,7 @@ From **Hugo 0.31** you can have multiple static directories.
 : Caches some files to speed up generation. Can be also used by template authors to distribute built Sass files, so you don't have to have the preprocessor installed. Note: resources directory is not created by default.
 
 [archetypes]: /content-management/archetypes/
-[`assets`]: /hugo-pipes/introduction#asset-directory/
+[`assets`]: /hugo-pipes/introduction#asset-directory
 [configuration directives]: /getting-started/configuration/#all-configuration-settings
 [`content`]: /content-management/organization/
 [content section]: /content-management/sections/
@@ -85,7 +81,7 @@ From **Hugo 0.31** you can have multiple static directories.
 [`layouts`]: /templates/
 [`static`]: /content-management/static-files/
 [`resources`]: /getting-started/configuration/#configure-file-caches
-[lists]: /templates/list/
+[lists]: /templates/lists/
 [pagevars]: /variables/page/
 [partials]: /templates/partials/
 [searchconsole]: https://support.google.com/webmasters/answer/9008080#zippy=%2Chtml-file-upload
index 61e7ed649bd206f3457cb9646a0bef5625e5a6aa..7f993736ab0fe36d0c04547b25ce21869da94902 100644 (file)
@@ -1,19 +1,12 @@
 ---
 title: External Learning Resources
-linktitle: External Learning Resources
 description: A list of tutorials and books on Hugo.
-date: 2019-10-20
-publishdate: 2019-10-20
-lastmod: 2019-10-20
 keywords: [books, tutorials, learning, usage]
 menu:
   docs:
-    parent: "getting-started"
+    parent: getting-started
     weight: 70
 weight: 70
-sections_weight: 70
-draft: false
-toc: false
 ---
 
 ## Books
index d49997570a28573fb2edc30e63f4938419472bf8..da35c314c2472ea901eec651a369de64c0581086 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Quick Start
-linktitle: Quick Start
 description: Learn to create a Hugo site in minutes.
 categories: [getting started]
 keywords: [quick start,usage]
index 15cf46cbf60c9edad66c6edd6e482cb4c54388bc..908edca7e6b3b17891a1ec79e67d94e099bf9e4e 100644 (file)
@@ -1,15 +1,13 @@
 ---
 title: Basic usage
-linktitle: Basic usage
 description: Hugo's command line interface (CLI) is fully featured but simple to use, even for those with limited experience working from the command line.
 categories: [getting started]
 keywords: [usage,livereload,command,flags]
 menu:
   docs:
-    parent: "getting-started"
+    parent: getting-started
     weight: 40
 weight: 40
-sections_weight: 40
 aliases: [/overview/usage/,/extras/livereload/,/doc/usage/,/usage/]
 toc: true
 ---
index ea9f60f1793c9e902422fe7a03c8ca13d486b600..0d5ada297ff7bcb2ba93de51f33133c3fdd7e983 100644 (file)
@@ -2,19 +2,13 @@
 title: Hosting & Deployment
 linktitle: Hosting & Deployment Overview
 description: Site builds, automated deployments, and popular hosting solutions.
-date: 2016-11-01
-publishdate: 2016-11-01
-lastmod: 2016-11-01
 categories: [hosting and deployment]
 keywords: []
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 01
-weight: 01     #rem
-draft: false
-aliases: []
-toc: false
+weight: 01
 ---
 
 Because Hugo renders *static* websites, you can host your new Hugo website virtually anywhere. The following represent only a few of the more popular hosting and automated deployment solutions used by the Hugo community.
index 8682787404f6a67260bdf0d41c9dbeae53cbc0d1..27cd312efb901d17f95306535194b43c097ddba9 100644 (file)
@@ -1,23 +1,15 @@
 ---
 title: Deployment with Rclone
-linktitle: Deployment with Rclone
 description: If you have access to your web host with SFTP/FTP/SSH/HTTP(DAV), you can use rclone to incrementally deploy your entire Hugo website.
-date: 2021-08-09
-publishdate: 2021-08-09
-lastmod: 2021-08-09
 categories: [hosting and deployment]
 keywords: [rclone,sftp,deployment]
-authors: [Daniel F. Dickinson]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 80
 weight: 80
-sections_weight: 80
-draft: false
 aliases: [/tutorials/deployment-with-rclone/]
 toc: true
-notesforauthors:
 ---
 
 ## Assumptions
index dec0556cf601f3450e83b1110beb6facd80d90e0..0bb23d04466887e350a775dee1113a4d8dfd98cb 100644 (file)
@@ -1,22 +1,15 @@
 ---
 title: Deployment with Rsync
-linktitle: Deployment with Rsync
 description: If you have access to your web host with SSH, you can use a simple rsync one-liner to incrementally deploy your entire Hugo website.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [hosting and deployment]
 keywords: [rsync,deployment]
-authors: [Adrien Poupin]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 70
 weight: 70
-sections_weight: 70
-draft: false
 aliases: [/tutorials/deployment-with-rsync/]
 toc: true
-notesforauthors:
 ---
 
 ## Assumptions
@@ -37,7 +30,7 @@ As you will see, we'll put this command in a shell script file, which makes buil
 
 To make logging in to your server more secure and less interactive, you can upload your SSH key. If you have already installed your SSH key to your server, you can move on to the next section.
 
-First, install the ssh client. On Debian/Ubuntu/derivates, use the following command:
+First, install the ssh client. On Debian distributions, use the following command:
 
 {{< code file="install-openssh.sh" >}}
 sudo apt-get install openssh-client
index fa5bb41df81e37aac7899c8ecf45756583198119..62eb331a18bbd8018851f319782391c55d014b22 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: Host on 21YunBox
-linktitle: Host on 21YunBox
 description: Host your Hugo site with 21YunBox's blazing fast Chinese CDN, fully-managed SSL and auto deploys from Gitee.
-date: 2021-01-06
-publishdate: 2021-01-06
 categories: [hosting and deployment]
 keywords: [21yunbox,hosting,deployment]
-authors: [Toby Glei]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 10
 weight: 10
-sections_weight: 10
-draft: false
-aliases: []
 toc: true
 ---
 
index 803a73e4683087bd6c29873cd70713b91ff51883..90fb5c083de1061867f041c9179feb1ff787192b 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Host on AWS Amplify
-linktitle: Host on AWS Amplify
 description: Develop and deploy a cloud-powered web app with AWS Amplify.
-date: 2018-01-31
-publishdate: 2018-01-31
 categories: [hosting and deployment]
 keywords: [amplify,hosting,deployment]
-authors: [Nikhil Swaminathan]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 10
 weight: 10
-sections_weight: 10
-aliases: []
 toc: true
 ---
 
index cf06580e78660db34d7e80e83aae517aa1f5ce46..f0d1d5de499618e93ab5510e6d11a4e97934f79d 100644 (file)
@@ -1,21 +1,14 @@
 ---
 title: Hosting on Azure Static Web Apps
-linktitle: Hosting on Azure Static Web Apps
 description: Learn how to deploy a Hugo application to Azure Static Web Apps.
-date: 2022-05-09
-publishdate: 2022-05-09
 categories: [hosting and deployment]
 keywords: [hosting,Azure Static Web Apps]
-authors: [Azure Static Web Apps]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 200
 weight: 200
-sections_weight: 200
-draft: false
 toc: true
-aliases: []
 ---
 
 You can create and deploy a Hugo web application to Azure Static Web Apps. The final result is a new Azure Static Web App with associated GitHub Actions that give you control over how the app is built and published. You'll learn how to create a Hugo app, set up an Azure Static Web App and deploy the Hugo app to Azure.
index fd48ac9ad6a08c2db5cd32844834b82862d57c29..e76957d515a8f25b34b85749a39828954473678c 100644 (file)
@@ -1,18 +1,13 @@
 ---
 title: Host on Azure Static Web Apps
-linktitle: Host on Azure Static Web Apps
-description: Deploy Hugo to Azure Static Web Apps and automate the whole process with Github Action Workflow
-date: 2021-03-12
-publishdate: 2021-03-12
+description: Deploy Hugo to Azure Static Web Apps and automate the whole process with GitHub Action Workflow
 categories: [hosting and deployment]
 keywords: [azure,git,deployment,hosting]
-authors: [Aaron Powell]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 10
 weight: 10
-sections_weight: 10
 toc: true
 ---
 
@@ -24,7 +19,7 @@ _The following documentation covers how to use GitHub Actions for the deployment
 
 1. You have Git 2.8 or greater [installed on your machine][installgit].
 2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free.
-3. You have an Azure account. You can sign up for a [Free Trail][azuretrial].
+3. You have an Azure account. You can sign up for a [Free Trial][azuretrial].
 4. You have a ready-to-publish Hugo website or have at least completed the [Quick Start].
 
 ## Deploy Hugo to Azure Static Web Apps
index f001d8662d0b24d43de1a317d59f2abf27387ca8..2138f4a160f2543e7ad79f8a00414080e582fc8e 100644 (file)
@@ -1,19 +1,15 @@
 ---
 title: Host on Cloudflare Pages
-linktitle: Host on Cloudflare Pages
 description: Cloudflare Pages can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own environment variables.
-date: 2022-04-07
-publishdate: 2022-04-07
 categories: [hosting and deployment]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 50
 weight: 50
-sections_weight: 50
 toc: true
 ---
 
-[Cloudflare Pages](https://developers.cloudflare.com/pages/) are super fast, always up-to-date, and deployed directly from your Git provider (currently supports only GitHub and GitLab).
+[Cloudflare Pages](https://developers.cloudflare.com/pages/) are super fast, always up-to-date, and deployed directly from your [Git provider](https://developers.cloudflare.com/pages/get-started/#connect-your-git-provider-to-pages).
 
 Cloudflare Pages docs have a detailed tutorial on [how to deploy a Hugo site](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/).
index 4e31f1cd0afed0186fc035aa25a5852defd1d501..406f6abc3e3511cd6a4836abf6a623a24fb56f2e 100644 (file)
@@ -1,20 +1,14 @@
 ---
 title: Host on Firebase
-linktitle: Host on Firebase
 description: You can use Firebase's free tier to host your static website; this also gives you access to Firebase's NOSQL API.
-date: 2017-03-12
-publishdate: 2017-03-12
 categories: [hosting and deployment]
 keywords: [hosting,firebase]
-authors: [Michel Racic]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 20
 weight: 20
-sections_weight: 20
 toc: true
-aliases: []
 ---
 
 ## Assumptions
@@ -51,7 +45,7 @@ From here:
 4. Accept the default for the publish directory, which is `public`
 5. Choose "No" in the question if you are deploying a single-page app
 
-## Using Firebase & Github CI/CD
+## Using Firebase & GitHub CI/CD
 
 In new versions of Firebase, some other questions apply:
 
@@ -62,7 +56,7 @@ Here you will be redirected to login in your GitHub account to get permissions.
 7. For which GitHub repository would you like to set up a GitHub workflow? (format: user/repository) 
 
 Include the repository you will use in the format above (Account/Repo)
-Firebase script with retrive credentials, create a service account you can later manage in your github settings.
+Firebase script with retrive credentials, create a service account you can later manage in your GitHub settings.
 
 8. Set up the workflow to run a build script before every deploy? 
 
@@ -78,7 +72,7 @@ After that Firebase has been set in your project with CI/CD. After that run:
 hugo && firebase deploy
 ```
 
-With this you will have the app initialized manually. After that you can manage and fix your github workflow from: https://github.com/your-account/yout-repo/actions
+With this you will have the app initialized manually. After that you can manage and fix your GitHub workflow from: https://github.com/your-account/your-repo/actions
 
 Don't forget to update your static pages before push!
 
diff --git a/content/en/hosting-and-deployment/hosting-on-github.md b/content/en/hosting-and-deployment/hosting-on-github.md
deleted file mode 100644 (file)
index 76de0f3..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
----
-title: Host on GitHub
-linktitle: Host on GitHub
-description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Action Workflow
-date: 2014-03-21
-publishdate: 2014-03-21
-categories: [hosting and deployment]
-keywords: [github,git,deployment,hosting]
-authors: [Spencer Lyon, Gunnar Morling]
-menu:
-  docs:
-    parent: "hosting-and-deployment"
-    weight: 30
-weight: 30
-sections_weight: 30
-toc: true
-aliases: [/tutorials/github-pages-blog/]
----
-
-GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its [GitHub Pages service] and automating development workflows and build with [GitHub Actions].
-
-## Assumptions
-
-1. You have Git 2.8 or greater [installed on your machine][installgit].
-2. You have a GitHub account. [Signing up][ghsignup] for GitHub is free.
-3. You have a ready-to-publish Hugo website or have at least completed the [Quick Start].
-
-## Types of GitHub Pages
-
-There are two types of GitHub Pages:
-
-- User/Organization Pages (`https://<USERNAME|ORGANIZATION>.github.io/`)
-- Project Pages (`https://<USERNAME|ORGANIZATION>.github.io/<PROJECT>/`)
-
-Please refer to the [GitHub Pages documentation][ghorgs] to decide which type of site you would like to create as it will determine which of the below methods to use.
-
-## Branches for GitHub Actions
-
-The GitHub Actions used in these instructions pull source content from the `main` branch and then commit the generated content to the `gh-pages` branch. This applies regardless of what type of GitHub Pages you are using. This is a clean setup as your Hugo files are stored in one branch and your generated files are published into a separate branch.
-
-## GitHub User or Organization Pages
-
-As mentioned in the [GitHub Pages documentation][ghorgs], you can host a user/organization page in addition to project pages. Here are the key differences in GitHub Pages websites for Users and Organizations:
-
-1. You must create a repository named `<USERNAME>.github.io` or `<ORGANIZATION>.github.io` to host your pages
-2. By default, content from the `main` branch is used to publish GitHub Pages - rather than the `gh-pages` branch which is the default for project sites. However, the GitHub Actions in these instructions publish to the `gh-pages` branch. Therefore, if you are publishing GitHub pages for a user or organization, you will need to change the publishing branch to `gh-pages`. See the instructions later in this document.
-
-## Build Hugo With GitHub Action
-
-GitHub executes your software development workflows. Every time you push your code on the GitHub repository, GitHub Actions will build the site automatically.
-
-Create a file in `.github/workflows/gh-pages.yml` containing the following content (based on [actions-hugo](https://github.com/marketplace/actions/hugo-setup)):
-
-```yml
-name: github pages
-
-on:
-  push:
-    branches:
-      - main  # Set a branch that will trigger a deployment
-  pull_request:
-
-jobs:
-  deploy:
-    runs-on: ubuntu-22.04
-    steps:
-      - uses: actions/checkout@v3
-        with:
-          submodules: true  # Fetch Hugo themes (true OR recursive)
-          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod
-
-      - name: Setup Hugo
-        uses: peaceiris/actions-hugo@v2
-        with:
-          hugo-version: 'latest'
-          # extended: true
-
-      - name: Build
-        run: hugo --minify
-
-      - name: Deploy
-        uses: peaceiris/actions-gh-pages@v3
-        if: github.ref == 'refs/heads/main'
-        with:
-          github_token: ${{ secrets.GITHUB_TOKEN }}
-          publish_dir: ./public
-```
-
-For more advanced settings [actions-hugo](https://github.com/marketplace/actions/hugo-setup) and [actions-gh-pages](https://github.com/marketplace/actions/github-pages-action).
-
-## GitHub pages setting
-
-By default, the GitHub action pushes the generated content to the `gh-pages` branch. This means GitHub has to serve your `gh-pages` branch as a GitHub Pages branch. You can change this setting by going to Settings > GitHub Pages, and change the source branch to `gh-pages`.
-
-## Change baseURL in config.toml
-
-Don't forget to rename your `baseURL` in `config.toml` with the value `https://<USERNAME>.github.io` for your user repository or `https://<USERNAME>.github.io/<REPOSITORY_NAME>` for a project repository.
-
-Unless this is present in your `config.toml`, your website won't work.
-
-## Use a Custom Domain
-
-If you'd like to use a custom domain for your GitHub Pages site, create a file `static/CNAME`. Your custom domain name should be the only contents inside `CNAME`. Since it's inside `static`, the published site will contain the CNAME file at the root of the published site, which is a requirement of GitHub Pages.
-
-Refer to the [official documentation for custom domains][domains] for further information.
-
-[config]: /getting-started/configuration/
-[domains]: https://help.github.com/articles/using-a-custom-domain-with-github-pages/
-[ghorgs]: https://help.github.com/articles/user-organization-and-project-pages/#user--organization-pages
-[ghpfromdocs]: https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/
-[ghsignup]: https://github.com/join
-[GitHub Pages service]: https://help.github.com/articles/what-is-github-pages/
-[installgit]: https://git-scm.com/downloads
-[orphan branch]: https://git-scm.com/docs/git-checkout/#Documentation/git-checkout.txt---orphanltnewbranchgt
-[Quick Start]: /getting-started/quick-start/
-[submodule]: https://github.com/blog/2104-working-with-submodules
-[worktree feature]: https://git-scm.com/docs/git-worktree
-[GitHub Actions]: https://docs.github.com/en/actions
diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png
new file mode 100644 (file)
index 0000000..29912f2
Binary files /dev/null and b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-1.png differ
diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-2.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-2.png
new file mode 100644 (file)
index 0000000..0050d33
Binary files /dev/null and b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-2.png differ
diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png
new file mode 100644 (file)
index 0000000..d2904ca
Binary files /dev/null and b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-3.png differ
diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png
new file mode 100644 (file)
index 0000000..7577446
Binary files /dev/null and b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-4.png differ
diff --git a/content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png
new file mode 100644 (file)
index 0000000..efe2612
Binary files /dev/null and b/content/en/hosting-and-deployment/hosting-on-github/gh-pages-5.png differ
diff --git a/content/en/hosting-and-deployment/hosting-on-github/index.md b/content/en/hosting-and-deployment/hosting-on-github/index.md
new file mode 100644 (file)
index 0000000..e5cbe19
--- /dev/null
@@ -0,0 +1,180 @@
+---
+title: Host on GitHub
+description: Deploy Hugo as a GitHub Pages project or personal/organizational site and automate the whole process with Github Actions
+categories: [hosting and deployment]
+keywords: [github,git,deployment,hosting]
+menu:
+  docs:
+    parent: hosting-and-deployment
+    weight: 30
+weight: 30
+toc: true
+aliases: [/tutorials/github-pages-blog/]
+---
+
+GitHub provides free and fast static hosting over SSL for personal, organization, or project pages directly from a GitHub repository via its GitHub Pages service and automating development workflows and build with GitHub Actions.
+
+## Prerequisites
+
+1. [Create a GitHub account]
+2. [Install Git]
+3. [Create a Hugo site] and test it locally with `hugo server`.
+
+[Create a GitHub account]: https://github.com/signup
+[Install Git]: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
+[Create a Hugo site]: /getting-started/quick-start/
+
+## Types of sites
+
+There are three types of GitHub Pages sites: project, user, and organization. Project sites are connected to a specific project hosted on GitHub. User and organization sites are connected to a specific account on GitHub.com.
+
+{{% note %}}
+See the [GitHub Pages documentation] to understand the requirements for repository ownership and naming.
+
+[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites
+{{% /note %}}
+
+
+[GitHub Pages documentation]: https://docs.github.com/en/pages/getting-started-with-github-pages/about-github-pages#types-of-github-pages-sites
+
+## Procedure
+
+Step 1
+: Create a GitHub repository.
+
+Step 2
+: Push your local repository to GitHub.
+
+Step 3
+: Visit your GitHub repository. From the main menu choose **Settings**&nbsp;>&nbsp;**Pages**. In then center of your screen you will see this:
+
+![screen capture](gh-pages-1.png)
+{style="max-width: 280px"}
+
+Step 4
+: Change the **Source** to `GitHub Actions`. The change is immediate; you do not have to press a Save button.
+
+![screen capture](gh-pages-2.png)
+{style="max-width: 280px"}
+
+Step 5
+: Create an empty file in your local repository.
+
+```text
+.github/workflows/hugo.yaml
+```
+
+Step 6
+: Copy and paste the YAML below into the file you created. Change the branch name and Hugo version as needed.
+
+{{< code file=".github/workflows/hugo.yaml" >}}
+# Sample workflow for building and deploying a Hugo site to GitHub Pages
+name: Deploy Hugo site to Pages
+
+on:
+  # Runs on pushes targeting the default branch
+  push:
+    branches:
+      - main
+
+  # Allows you to run this workflow manually from the Actions tab
+  workflow_dispatch:
+
+# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+permissions:
+  contents: read
+  pages: write
+  id-token: write
+
+# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+concurrency:
+  group: "pages"
+  cancel-in-progress: false
+
+# Default to bash
+defaults:
+  run:
+    shell: bash
+
+jobs:
+  # Build job
+  build:
+    runs-on: ubuntu-latest
+    env:
+      HUGO_VERSION: 0.111.3
+    steps:
+      - name: Install Hugo CLI
+        run: |
+          wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
+          && sudo dpkg -i ${{ runner.temp }}/hugo.deb
+      - name: Install Dart Sass Embedded
+        run: sudo snap install dart-sass-embedded
+      - name: Checkout
+        uses: actions/checkout@v3
+        with:
+          submodules: recursive
+          fetch-depth: 0
+      - name: Setup Pages
+        id: pages
+        uses: actions/configure-pages@v3
+      - name: Install Node.js dependencies
+        run: "[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
+      - name: Build with Hugo
+        env:
+          # For maximum backward compatibility with Hugo modules
+          HUGO_ENVIRONMENT: production
+          HUGO_ENV: production
+        run: |
+          hugo \
+            --gc \
+            --minify \
+            --baseURL "${{ steps.pages.outputs.base_url }}/"
+      - name: Upload artifact
+        uses: actions/upload-pages-artifact@v1
+        with:
+          path: ./public
+
+  # Deployment job
+  deploy:
+    environment:
+      name: github-pages
+      url: ${{ steps.deployment.outputs.page_url }}
+    runs-on: ubuntu-latest
+    needs: build
+    steps:
+      - name: Deploy to GitHub Pages
+        id: deployment
+        uses: actions/deploy-pages@v2
+{{< /code >}}
+
+Step 7
+: Commit the change to your local repository with a commit message of something like "Add workflow", and push to GitHub.
+
+Step 8
+: From GitHub's main menu, choose **Actions**. You will see something like this:
+
+![screen capture](gh-pages-3.png)
+{style="max-width: 350px"}
+
+Step 9
+: When GitHub has finished building and deploying your site, the color of the status indicator will change to green.
+
+![screen capture](gh-pages-4.png)
+{style="max-width: 350px"}
+
+Step 10
+: Click on the commit message as shown above. You will see this:
+
+![screen capture](gh-pages-5.png)
+{style="max-width: 611px"}
+
+Under the deploy step, you will see a link to your live site.
+
+In the future, whenever you push a change from your local repository, GitHub will rebuild your site and deploy the changes.
+
+## Additional resources
+
+- [Learn more about GitHub Actions](https://docs.github.com/en/actions)
+- [Caching dependencies to speed up workflows](https://docs.github.com/en/actions/using-workflows/caching-dependencies-to-speed-up-workflows)
+- [Manage a custom domain for your GitHub Pages site](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/about-custom-domains-and-github-pages)
index 6eb816171d60379e12085669a3583065f1d20697..1e43e5975dbde497781a80fb025d296f70a20244 100644 (file)
@@ -1,22 +1,14 @@
 ---
 title: Host on GitLab
-linktitle: Host on GitLab
 description: GitLab makes it easy to build, deploy, and host your Hugo website via their free GitLab Pages service, which provides native support for Hugo.
-date: 2016-06-23
-publishdate: 2016-06-23
-lastmod: 2017-11-16
 categories: [hosting and deployment]
 keywords: [hosting,deployment,git,gitlab]
-authors: [Riku-Pekka Silvola]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 40
 weight: 40
-sections_weight: 40
-draft: false
 toc: true
-wip: false
 aliases: [/tutorials/hosting-on-gitlab/]
 ---
 
index 85a5ab5f48a03da2fa5f4f8d4072c5298fc193a5..bf6565899162f1f5c0d4baec21723969e2c1de33 100644 (file)
@@ -1,16 +1,12 @@
 ---
 title: "Host on KeyCDN"
-date: 2017-09-12
 description: "Accelerate your Hugo site globally with a KeyCDN integration. This tutorial shows you how to set up your static site as a GitLab page behind a KeyCDN pull zone."
 categories: [hosting and deployment]
 keywords: [keycdn,hosting,deployment,cdn]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 40
-slug: ""
-aliases: []
-toc: false
 ---
 
 [KeyCDN](https://www.keycdn.com/) provides a multitude of features to help accelerate and secure your Hugo site globally including Brotli compression, Let's Encrypt support, Origin Shield, and more.
@@ -86,7 +82,7 @@ git remote add origin git@gitlab.com:youruser/ci-example.git
 git push -u origin master
 ```
 
-You can watch the progress and CI job output in your Gitlab project under “Pipelines”.
+You can watch the progress and CI job output in your GitLab project under “Pipelines”.
 
 After verifying your CI job ran without issues, first check that your GitLab page shows up under `https://youruser.gitlab.io/reponame/` (it might look broken depending on your browser settings as all links point to your KeyCDN zone – don’t worry about that) and then by heading to whatever Zone alias / Zone URL you defined.
 
index 7aa9283f8c802adec703c45394b9f4c8701bba13..7d620f11abfc162d7afc88d10b73715eb73905fb 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Host on Netlify
-linktitle: Host on Netlify
 description: Netlify can host your Hugo site with CDN, continuous deployment, 1-click HTTPS, an admin GUI, and its own CLI.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [hosting and deployment]
 keywords: [netlify,hosting,deployment]
-authors: [Ryan Watters, Seth MacLeod]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 10
 weight: 10
-sections_weight: 10
-aliases: []
 toc: true
 ---
 
@@ -63,23 +57,21 @@ You can [set Hugo version](https://www.netlify.com/blog/2017/04/11/netlify-plus-
 
 For production:
 
-{{< code file="netlify.toml" codeLang="toml" >}}
+{{< code file="netlify.toml" >}}
 [context.production.environment]
   HUGO_VERSION = "0.99.1"
 {{< /code >}}
 
 For testing:
 
-{{< code file="netlify.toml" codeLang="toml" >}}
+{{< code file="netlify.toml" >}}
 [context.deploy-preview.environment]
   HUGO_VERSION = "0.99.1"
 {{< /code >}}
 
 The Netlify configuration file can be a little hard to understand and get right for the different environment, and you may get some inspiration and tips from this site's `netlify.toml`:
 
-{{< code file="netlify.toml" nocode="true" >}}
 {{< readfile file="netlify.toml" highlight="toml" >}}
-{{< /code >}}
 
 ## Build and Deploy Site
 
@@ -101,7 +93,7 @@ See [this blog post](https://www.netlify.com/blog/2017/04/11/netlify-plus-hugo-0
 
 ## Use Hugo Themes with Netlify
 
-The [`git clone` method for installing themes][installthemes] is not supported by Netlify. If you were to use `git clone`, it would require you to recursively remove the `.git` subdirectory from the theme folder and would therefore prevent compatibility with future versions of the theme.
+The `git clone` method for installing themes is not supported by Netlify. If you were to use `git clone`, it would require you to recursively remove the `.git` subdirectory from the theme folder and would therefore prevent compatibility with future versions of the theme.
 
 A *better* approach is to install a theme as a proper git submodule. You can [read the GitHub documentation for submodules][ghsm] or those found on [Git's website][gitsm] for more information, but the command is similar to that of `git clone`:
 
@@ -141,13 +133,12 @@ You now have a live website served over HTTPS, distributed through CDN, and conf
 3. [Redirects and Rewrite Rules]
 
 [app.netlify.com]: https://app.netlify.com
-[build command]: /getting-started/usage/#the-hugo-command
+[build command]: /getting-started/usage/#build-your-site
 [config]: /getting-started/configuration/
 [ghsm]: https://github.com/blog/2104-working-with-submodules
 [gitsm]: https://git-scm.com/book/en/v2/Git-Tools-Submodules
 [httpscustom]: https://www.netlify.com/docs/ssl/
 [hugoversions]: https://github.com/netlify/build-image/blob/master/Dockerfile#L216
-[installthemes]: /themes/installing/
 [netlify]: https://www.netlify.com/
 [netlifysignup]: https://app.netlify.com/signup
 [Quick Start]: /getting-started/quick-start/
index f099f2168835e4c4528437afe2534e7d4335f186..d8f03c3e7808e6a9d33de39d84b695bde91f6e35 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: Host on Render
-linktitle: Host on Render
 description: Host your Hugo site for free with Render's global CDN, fully-managed SSL and auto deploys from GitHub.
-date: 2019-06-06
-publishdate: 2019-06-06
 categories: [hosting and deployment]
 keywords: [hosting,deployment]
-authors: [Anurag Goel]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 10
 weight: 10
-sections_weight: 10
-draft: false
-aliases: []
 toc: true
 ---
 
@@ -45,7 +38,7 @@ Static sites are **completely free** on Render and include the following:
 
 You can set up a Hugo site on Render in two quick steps:
 
-1. Create a new **Static Site** on Render, and give Render permission to access your GitHub/Gitlab repo.
+1. Create a new **Static Site** on Render, and give Render permission to access your GitHub/GitLab repo.
 2. Use the following values during creation:
 
   Field                | Value
@@ -57,7 +50,7 @@ That's it! Your site will be live on your Render URL (which looks like `yoursite
 
 ## Continuous Deploys
 
-Now that Render is connected to your repo, it will **automatically build and publish your site** any time you push to your GitHub/Gitlab.
+Now that Render is connected to your repo, it will **automatically build and publish your site** any time you push to your GitHub/GitLab.
 
 You can choose to disable auto deploys under the **Settings** section for your site and deploy it manually from the Render dashboard.
 
index 02a23fe121be821e8b1c74994ac9f8d25b8921c9..e0c98de2a1e85042d1e3c7b0083d147b202665dd 100644 (file)
@@ -1,21 +1,13 @@
 ---
 title: Hugo Deploy
-linktitle: Hugo Deploy
 description: You can upload your site to GCS, S3, or Azure using the Hugo CLI.
-date: 2019-05-30
-publishdate: 2019-05-30
-lastmod: 2021-05-03
 categories: [hosting and deployment]
 keywords: [s3,gcs,azure,hosting,deployment]
-authors: [Robert van Gent]
 menu:
   docs:
-    parent: "hosting-and-deployment"
+    parent: hosting-and-deployment
     weight: 2
 weight: 2
-sections_weight: 2
-draft: false
-aliases: []
 toc: true
 ---
 
index b2951da9a2a713015bb72894ec291535346f50a2..76f21d43fd7722e86b3dda36f560eaa86b6778ef 100644 (file)
@@ -2,17 +2,13 @@
 title: Hugo Modules
 linktitle: Hugo Modules Overview
 description: How to use Hugo Modules.
-date: 2017-02-01
-publishdate: 2017-02-01
 menu:
   docs:
-    parent: "modules"
+    parent: modules
     weight: 01
 weight: 01
-sections_weight: 01
 categories: [hugo modules]
 keywords: [themes,modules]
-draft: false
 aliases: [/themes/overview/,/themes/]
 toc: true
 ---
index 5b19d2419f3dc3a6057a5e32b4db253d707e19e3..8620314d08a96b2c594595d92aaadef10bbaebf9 100644 (file)
@@ -1,16 +1,13 @@
 ---
 title: Configure Modules
-linktitle: Configure Modules
 description: This page describes the configuration options for a module.
-date: 2019-07-24
 categories: [hugo modules]
 keywords: [themes, source, organization, directories]
 menu:
   docs:
-    parent: "modules"
+    parent: modules
     weight: 10
 weight: 10
-sections_weight: 10
 toc: true
 ---
 
@@ -45,7 +42,7 @@ workspace
 : The workspace file to use. This enables Go workspace mode. Note that this can also be set via OS env, e.g. `export HUGO_MODULE_WORKSPACE=/my/hugo.work` This only works with Go 1.18+. In Hugo `v0.109.0` we changed the default to `off` and we now resolve any relative work filenames relative to the working directory.
 
 replacements
-: A comma separated (or a slice) list of module path to directory replacement mapping, e.g. `github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path`. This is mostly useful for temporary locally development of a module, and then it makes sense to set it as an OS environment variable, e.g: `env HUGO_MODULE_REPLACEMENTS="github.com/bep/my-theme -> ../.."`. Any relative path is relate to [themesDir](https://gohugo.io/getting-started/configuration/#all-configuration-settings), and absolute paths are allowed.
+: A comma-separated list of mappings from module paths to directories, e.g. `github.com/bep/my-theme -> ../..,github.com/bep/shortcodes -> /some/path`. This is mostly useful for temporary local development of a module, in which case you might want to save it as an environment variable, e.g: `env HUGO_MODULE_REPLACEMENTS="github.com/bep/my-theme -> ../.."`. Relative paths are relative to [themesDir](https://gohugo.io/getting-started/configuration/#all-configuration-settings). Absolute paths are allowed.
 
 Note that the above terms maps directly to their counterparts in Go Modules. Some of these setting may be natural to set as OS environment variables. To set the proxy server to use, as an example:
 
@@ -118,9 +115,9 @@ noVendor
 When the `mounts` config was introduced in Hugo 0.56.0, we were careful to preserve the existing `contentDir`, `staticDir`, and similar configuration to make sure all existing sites just continued to work. But you should not have both: if you add a `mounts` section you should remove the old `contentDir`, `staticDir`, etc. settings.
 {{% /note %}}
 
-{{% warning %}}
+{{% note %}}
 When you add a mount, the default mount for the concerned target root is ignored: be sure to explicitly add it.
-{{% /warning %}}
+{{% /note %}}
 
 **Default mounts**
 {{< code-toggle file="config">}}
@@ -166,3 +163,18 @@ The search is case-insensitive.
 
 excludeFiles (string or slice)
 : One or more glob patterns matching files to exclude.
+
+**Example**
+{{< code-toggle file="config">}}
+[module]
+[[module.mounts]]
+    source="content"
+    target="content"
+    excludeFiles="docs/*"
+[[module.mounts]]
+    source="node_modules"
+    target="assets"
+[[module.mounts]]
+    source="assets"
+    target="assets"
+{{< /code-toggle >}}
index 5b01e98e960052eacf21101623b94accd92d16fd..10aa1277fd50192eb131e461c20261edb6f43184 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: Theme Components
-linktitle: Theme Components
 description: Hugo provides advanced theming support with Theme Components.
-date: 2017-02-01
 categories: [hugo modules]
 keywords: [themes, theme, source, organization, directories]
 menu:
   docs:
-    parent: "modules"
+    parent: modules
     weight: 50
 weight: 50
-sections_weight: 50
-draft: false
 aliases: [/themes/customize/,/themes/customizing/]
 toc: true
 ---
index 977a52bd6e24467d09f143a750124ffac9b600db..99c1229b583111f29ec2121152ae1060f40d0f1a 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: Use Hugo Modules
-linktitle: Use Hugo Modules
 description: How to use Hugo Modules to build and manage your site.
-date: 2019-07-24
 categories: [hugo modules]
 keywords: [install, themes, source, organization, directories,usage,modules]
 menu:
   docs:
-    parent: "modules"
+    parent: modules
     weight: 20
 weight: 20
-sections_weight: 20
-draft: false
 aliases: [/themes/usage/,/themes/installing/,/installing-and-using-themes/]
 toc: true
 ---
@@ -164,4 +160,3 @@ HUGO_MODULE_WORKSPACE=hugo.work hugo server --ignoreVendorPaths "**"
 ```
 
 The `--ignoreVendorPaths` flag is added above to ignore any of the vendored dependencies inside `_vendor`. If you don't use vendoring, you don't need that flag. But now the server is set up watching the files and directories in the workspace and you can see your local edits reloaded.
-
index 078e1f18602852aaacd74c1a3dce520daaaa8dd7..438ee2fe016528b8ceefcf1263895c076c2e8a44 100755 (executable)
@@ -1,13 +1,10 @@
 ---
 title: Hugo Pipes Overview
-date: 2018-07-14
-publishdate: 2018-07-14
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 10
 weight: 10
-sections_weight: 10
----
\ No newline at end of file
+---
index 48db15c8dbce558a5def37f06312c69ae69f7464..1762f85e562ab32fb15927ba35da438eddc154ea 100755 (executable)
@@ -1,18 +1,18 @@
 ---
 title: Babel
 description: Hugo Pipes can process JS files with Babel.
-date: 2019-03-21
-publishdate: 2019-03-21
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 48
 weight: 48
-sections_weight: 48
+signature: ["resources.Babel RESOURCE [OPTIONS]", "babel RESOURCE [OPTIONS]"]
 ---
 
+## Usage
+
 Any JavaScript resource file can be transpiled to another JavaScript version using `resources.Babel` which takes for argument the resource object and an optional dict of options listed below. Babel uses the [babel cli](https://babeljs.io/docs/en/babel-cli).
 
 
index 227c7b1a32612d6da5ea622ddd4e6f786a6f4282..ae625537a2d2f9ca18e3bcd98e02fd8ef040274c 100755 (executable)
@@ -1,20 +1,20 @@
 ---
-title: Asset bundling
-description: Hugo Pipes can bundle any number of assets together.
-date: 2018-07-14
-publishdate: 2018-07-14
-lastmod: 2018-07-14
+title: Concat
+linkTitle: Concatenating assets
+description: Bundle any number of assets into one resource.
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 60
 weight: 60
-sections_weight: 60
+signature: ["resources.Concat TARGET_PATH SLICE_RESOURCES"]
 ---
 
-Asset files of the same MIME type can be bundled into one resource using `resources.Concat` which takes two arguments, a target path and a slice of resource objects.
+## Usage
+
+Asset files of the same MIME type can be bundled into one resource using `resources.Concat` which takes two arguments, the target path for the created resource bundle and a slice of resource objects to be concatenated.
 
 ```go-html-template
 {{ $plugins := resources.Get "js/plugins.js" }}
index f27ef7b5526028c0ded0328c4be1fd5b3c1754bc..d002dd3e21230440097178c5b2d23f92f64cd7bb 100755 (executable)
@@ -1,23 +1,24 @@
 ---
-title: Fingerprinting and SRI
-description: Hugo Pipes allows Fingerprinting and Subresource Integrity.
-date: 2018-07-14
-publishdate: 2018-07-14
+title: Fingerprint
+linkTitle: Fingerprinting and SRI
+description: Process a given resource, adding a hash string of the resource's content.
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 70
 weight: 70
-sections_weight: 70
+signature: ["resources.Fingerprint RESOURCE [ALGORITHM]", "fingerprint RESOURCE [ALGORITHM]"]
 ---
 
-Fingerprinting and [SRI](https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity) can be applied to any asset file using `resources.Fingerprint` which takes two arguments, the resource object and a [hash function](https://en.wikipedia.org/wiki/Cryptographic_hash_function).
+## Usage
 
-The default hash function is `sha256`. Other available functions are `sha384` (from Hugo `0.55`), `sha512` and `md5`.
+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).
 
-Any so processed asset will bear a `.Data.Integrity` property containing an integrity string, which is made up of the name of the hash function, one hyphen and the base64-encoded hash sum.
+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" }}
index e83741f7430894aa4a8a4832f6b9d52c1b70d26f..c551dad61f330d9174e00a7501b8de727858796b 100755 (executable)
@@ -2,17 +2,13 @@
 title: Hugo Pipes Introduction
 linkTitle: Hugo Pipes
 description: Hugo Pipes is Hugo's asset processing set of functions.
-date: 2018-07-14
-publishdate: 2018-07-14
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 20
 weight: 01
-sections_weight: 01
-draft: false
 toc: true
 aliases: [/assets/]
 ---
@@ -63,18 +59,6 @@ ContentLength
 ContentType
 : The content type, e.g. "text/html"
 
-
-## Copy a Resource
-
-{{< new-in "0.100.0" >}}
-
-`resources.Copy` allows you to copy almost any Hugo `Resource` (the one exception is the `Page`), possibly most useful for renaming things:
-
-```go-html-template
-{{ $resized := $image.Resize "400x400" |  resources.Copy "images/mynewname.jpg" }}
-<img src="{{ $resized.RelPermalink }}">
-```
-
 ### Caching
 
 By default, Hugo calculates a cache key based on the `URL` and the `options` (e.g. headers) given.
@@ -105,16 +89,16 @@ Note that if you do not handle `.Err` yourself, Hugo will fail the build the fir
 
 ### Remote Options
 
-When fetching a remote `Resource`, `resources.GetRemote` takes an optional options map as the last argument, e.g.:
+When fetching a remote `Resource`, `resources.GetRemote` takes an optional options map as the second argument, e.g.:
 
 ```go-html-template
-{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd"))  }}
+{{ $resource := resources.GetRemote "https://example.org/api" (dict "headers" (dict "Authorization" "Bearer abcd")) }}
 ```
 
 If you need multiple values for the same header key, use a slice:
 
 ```go-html-template
-{{ $resource := resources.GetRemote "https://example.org/api"  (dict "headers" (dict "X-List" (slice "a" "b" "c")))  }}
+{{ $resource := resources.GetRemote "https://example.org/api"  (dict "headers" (dict "X-List" (slice "a" "b" "c"))) }}
 ```
 
 You can also change the request method and set the request body:
@@ -133,7 +117,6 @@ You can also change the request method and set the request body:
 
 Remote resources fetched with `resources.GetRemote` will be cached on disk. See [Configure File Caches](/getting-started/configuration/#configure-file-caches) for details.
 
-
 ## Copy a Resource
 
 {{< new-in "0.100.0" >}}
index 6905a6555a1bd4203e074139035788fbabc3ad0e..c880ac6fa78d8834b9560e27c7ac890624c614d5 100644 (file)
@@ -1,18 +1,19 @@
 ---
-title: JavaScript Building
-description: Hugo Pipes can process JavaScript files with [ESBuild](https://github.com/evanw/esbuild).
-date: 2020-07-20
-publishdate: 2020-07-20
+title: js.Build
+linkTitle: JavaScript Building
+description: Process a JavaScript file with [ESBuild](https://github.com/evanw/esbuild).
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 45
 weight: 45
-sections_weight: 45
+signature: ["js.Build RESOURCE [OPTIONS]"]
 ---
 
+## Usage
+
 Any JavaScript resource file can be transpiled and "tree shaken" using `js.Build` which takes for argument either a string for the filepath or a dict of options listed below.
 
 ### Options
index 6e539e0e71aba26424459973cb84c8e14bc7cf6a..100bd3353e8be0d8da4bfe4e7dee713445284341 100755 (executable)
@@ -1,19 +1,20 @@
 ---
-title: Asset minification
-description: Hugo Pipes allows the minification of any CSS, JS, JSON, HTML, SVG or XML resource.
-date: 2018-07-14
-publishdate: 2018-07-14
+title: Minify
+linkTitle: Asset minification
+description: Minifies a given resource.
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 50
 weight: 50
-sections_weight: 50
+signature: ["resources.Minify RESOURCE", "minify RESOURCE"]
 ---
 
-Any resource of the aforementioned types can be minified using `resources.Minify` which takes for argument the resource object.
+## Usage
+
+Any CSS, JS, JSON, HTML, SVG or XML resource can be minified using `resources.Minify` which takes for argument the resource object.
 
 ```go-html-template
 {{ $css := resources.Get "css/main.css" }}
index caf575c177e315ea3263126d4ad7743d9c987202..0804c1072ba52781f43646a6bdf87de38e7bd4c9 100755 (executable)
 ---
 title: PostCSS
-description: Hugo Pipes can process CSS files with PostCSS.
+description: Process CSS files with PostCSS, using any of the available plugins.
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 40
+toc: true
 weight: 40
+signature: ["resources.PostCSS RESOURCE [OPTIONS]", "postCSS RESOURCE [OPTIONS]"]
 ---
 
-Any asset file can be processed using `resources.PostCSS` which takes for argument the resource object and a slice of options listed below.
+## Setup
 
-The resource will be processed using the project's or theme's own `postcss.config.js` or any file set with the `config` option.
+Follow the steps below to transform CSS using any of the [available PostCSS plugins](https://www.postcss.parts/).
 
-```go-html-template
-{{ $css := resources.Get "css/main.css" }}
-{{ $style := $css | resources.PostCSS }}
-```
+Step 1
+: Install [Node.js](https://nodejs.org/en/download).
 
-You must install the required Node.js packages to use the PostCSS feature. For example, to use the `autoprefixer` package, run these commands from the root of your project:
+Step 2
+: Install the required Node.js packages in the root of your project. For example, to add vendor prefixes to CSS rules:
 
-```text
+```bash
 npm install postcss postcss-cli autoprefixer
 ```
 
-### Options
+Step 3
+: Create a PostCSS configuration file in the root of your project. You must name this file `postcss.config.js` or one of the other [supported file names]. For example:
+
+[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 `resources.PostCSS` (alias `postCSS`):
 
-config [string]
-: Set a custom directory to look for a config file
+{{< code file="layouts/partials/css.html" >}}
+{{ with resources.Get "css/main.css" | postCSS }}
+  <link rel="stylesheet" href="{{ .RelPermalink }}">
+{{ end }}
+{{< /code >}}
 
-noMap [bool]
-: Default is `false`. Disable the default inline sourcemaps
+If starting with a Sass file within the `assets` directory:
 
-inlineImports [bool]
-: Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once.
+{{< code file="layouts/partials/css.html" >}}
+{{ with resources.Get "sass/main.scss" | toCSS | postCSS }}
+  <link rel="stylesheet" href="{{ .RelPermalink }}">
+{{ end }}
+{{< /code >}}
+
+## Options
+
+The `resources.PostCSS` method takes an optional map of options.
+
+config
+: (`string`) The directory that contains the PostCSS configuration file. Default is the root of the project directory.
+
+noMap
+: (`bool`) Default is `false`. If `true`, disables inline sourcemaps.
+
+inlineImports
+: (`bool`) Default is `false`. Enable inlining of @import statements. It does so recursively, but will only import a file once.
 URL imports (e.g. `@import url('https://fonts.googleapis.com/css?family=Open+Sans&display=swap');`) and imports with media queries will be ignored.
 Note that this import routine does not care about the CSS spec, so you can have @import anywhere in the file.
 Hugo will look for imports relative to the module mount and will respect theme overrides.
 
-skipInlineImportsNotFound [bool] {{< new-in "0.99.0" >}}
-: Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true.
+skipInlineImportsNotFound {{< new-in "0.99.0" >}}
+: (`bool`) Default is `false`. Before Hugo 0.99.0 when `inlineImports` was enabled and we failed to resolve an import, we logged it as a warning. We now fail the build. If you have regular CSS imports in your CSS that you want to preserve, you can either use imports with URL or media queries (Hugo does not try to resolve those) or set `skipInlineImportsNotFound` to true.
 
-_If no configuration file is used:_
+{{< code file="layouts/partials/css.html" >}}
+{{ $opts := dict "config" "config-directory" "noMap" true }}
+{{ with resources.Get "css/main.css" | postCSS $opts }}
+  <link rel="stylesheet" href="{{ .RelPermalink }}">
+{{ end }}
+{{< /code >}}
 
-use [string]
-: Space-delimited list of PostCSS plugins to use
+## No configuration file
 
-parser [string]
-: Custom PostCSS parser
+To avoid using a PostCSS configuration file, you can specify a minimal configuration using the options map.
 
-stringifier [string]
-: Custom PostCSS stringifier
+use
+: (`string`) A space-delimited list of PostCSS plugins to use.
 
-syntax [string]
-: Custom postcss syntax
+parser
+: (`string`) A custom PostCSS parser.
 
-```go-html-template
-{{ $options := dict "config" "/path/to/custom-config-directory" "noMap" true }}
-{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }}
+stringifier
+: (`string`) A custom PostCSS stringifier.
 
-{{ $options := dict "use" "autoprefixer postcss-color-alpha" }}
-{{ $style := resources.Get "css/main.css" | resources.PostCSS $options }}
-```
+syntax
+: (`string`) Custom postcss syntax.
 
-## Check Hugo Environment from postcss.config.js
+{{< code file="layouts/partials/css.html" >}}
+{{ $opts := dict "use" "autoprefixer postcss-color-alpha" }}
+{{ with resources.Get "css/main.css" | postCSS $opts }}
+  <link rel="stylesheet" href="{{ .RelPermalink }}">
+{{ end }}
+{{< /code >}}
+
+## Check Hugo environment
 
 The current Hugo environment name (set by `--environment` or in config or OS environment) is available in the Node context, which allows constructs like this:
 
-```js
+{{< code file="postcss.config.js" >}}
 module.exports = {
   plugins: [
     require('autoprefixer'),
@@ -77,4 +125,4 @@ module.exports = {
       : []
   ]
 }
-```
+{{< /code >}}
index 55552d105575cebd86b3cc4fb347e99fa70874cc..b9e5c62c6d8ec5b2b04d41f8bb839b09447bea85 100755 (executable)
@@ -1,17 +1,18 @@
 ---
 title: PostProcess
 description: Allows delaying of resource transformations to after the build.
-date: 2020-04-09
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 39
 weight: 39
-sections_weight: 39
+signature: ["resources.PostProcess RESOURCE"]
 ---
 
+## 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).
@@ -80,7 +81,7 @@ HUGO_ENVIRONMENT (and the alias HUGO_ENV)
 : The value e.g. set with `hugo -e production` (defaults to `production` for `hugo` and `development` for `hugo server`).
 
 HUGO_PUBLISHDIR
-: {{ new-in "0.109.0" }} 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 folder from PostCSS when running the server, you could run the server with one of these flags:
+: {{< new-in "0.109.0" >}} 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 folder from PostCSS when running the server, you could run the server with one of these flags:
 
 ```
 hugo server --renderToDisk
@@ -89,9 +90,8 @@ hugo server --renderStaticToDisk
 
 Also, Hugo will add environment variables for all files mounted below `assets/_jsconfig`. A default mount will be set up with files in the project root matching this regexp: `(babel|postcss|tailwind)\.config\.js`.
 
-These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you do do this and similar:
+These will get environment variables named on the form `HUGO_FILE_:filename:` where `:filename:` is all upper case with periods replaced with underscore. This allows you to do this and similar:
 
 ```js
 let tailwindConfig = process.env.HUGO_FILE_TAILWIND_CONFIG_JS || './tailwind.config.js';
 ```
-
index ae7598ebec24ce6a116909c872a517cfeaa1617b..221898dba98f673c51dec4688f5ce8b00b3879bc 100755 (executable)
@@ -1,20 +1,20 @@
 ---
-title: Creating a resource from a string
+title: FromString
 linkTitle: Resource from String
-description: Hugo Pipes allows the creation of a resource from a string.
-date: 2018-07-14
-publishdate: 2018-07-14
+description: Creates a resource from a string.
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 90
 weight: 90
-sections_weight: 90
+signature: ["resources.FromString TARGET_PATH CONTENT"]
 ---
 
-It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the given string and the resource target path.
+## Usage
+
+It is possible to create a resource directly from the template using `resources.FromString` which takes two arguments, the target path for the created resource and the given content string.
 
 The following example creates a resource file containing localized variables for every project's languages.
 
index bb0fdb2c287e0dabaadc6834b5b112c5e4242088..778eb03419dd808bfca58b96f8bacdc2dc441d31 100755 (executable)
@@ -1,22 +1,22 @@
 ---
-title: Creating a resource from template
+title: ExecuteAsTemplate
 linkTitle: Resource from Template
-description: Hugo Pipes allows the creation of a resource from an asset file using Go Template.
-date: 2018-07-14
-publishdate: 2018-07-14
+description: Creates a resource from a template
 categories: [asset management]
 keywords: []
 menu:
   docs:
-    parent: "pipes"
+    parent: pipes
     weight: 80
 weight: 80
-sections_weight: 80
+signature: ["resources.ExecuteAsTemplate TARGET_PATH CONTEXT RESOURCE"]
 ---
 
+## Usage
+
 In order to use Hugo Pipes function on an asset file containing Go Template magic the function `resources.ExecuteAsTemplate` must be used.
 
-The function takes three arguments: the resource target path, the template context, and the resource object.
+The function takes three arguments: the target path for the created resource, the template context, and the resource object.
 
 ```go-html-template
 // assets/sass/template.scss
diff --git a/content/en/hugo-pipes/scss-sass.md b/content/en/hugo-pipes/scss-sass.md
deleted file mode 100755 (executable)
index 4e39207..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
----
-title: Sass / SCSS
-description: Hugo Pipes allows the processing of Sass and SCSS files.
-date: 2018-07-14
-publishdate: 2018-07-14
-categories: [asset management]
-keywords: []
-menu:
-  docs:
-    parent: "pipes"
-    weight: 30
-weight: 02
-sections_weight: 02
----
-
-Any Sass or SCSS file can be transformed into a CSS file using `resources.ToCSS` which takes two arguments, the resource object and a map of options listed below.
-
-```go-html-template
-{{ $sass := resources.Get "sass/main.scss" }}
-{{ $style := $sass | resources.ToCSS }}
-```
-
-### Options
-
-transpiler [string]
-
-: The `transpiler` to use, valid values are `libsass` (default) and `dartsass`. If you want to use Hugo with Dart Sass you need to download a release binary from [Embedded Dart Sass](https://github.com/sass/dart-sass-embedded/releases) and make sure it's in your PC's `$PATH` (or `%PATH%` on Windows).
-
-targetPath [string]
-: If not set, the resource's target path will be the asset file original path with its extension replaced by `.css`.
-
-vars [map]
-: Map of key/value pairs that will be available in the `hugo:vars` namespace, e.g. with `@use "hugo:vars" as v;` or (globally) with `@import "hugo:vars";` {{< new-in "0.109.0" >}}
-
-outputStyle [string]
-: Default is `nested` (LibSass) and `expanded` (Dart Sass). Other available output styles for LibSass are `expanded`, `compact` and `compressed`. Dart Sass only supports `expanded` and `compressed`.
-
-precision [int]
-: Precision of floating point math. **Note:** This option is not supported by Dart Sass.
-
-enableSourceMap [bool]
-: When enabled, a source map will be generated.
-
-sourceMapIncludeSources [bool]
-: When enabled, sources will be embedded in the generated source map. (Dart Sass only). {{< new-in "0.108.0" >}}
-
-includePaths [string slice]
-: Additional SCSS/Sass include paths. Paths must be relative to the project directory.
-
-```go-html-template
-{{ $options := (dict "targetPath" "style.css" "outputStyle" "compressed" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules/myscss")) }}
-{{ $style := resources.Get "sass/main.scss" | resources.ToCSS $options }}
-```
-
-{{% note %}}
-Setting `outputStyle` to `compressed` will handle Sass/SCSS files minification better than the more generic [`resources.Minify`]({{< ref "minification">}}).
-{{% /note %}}
diff --git a/content/en/hugo-pipes/transform-to-css.md b/content/en/hugo-pipes/transform-to-css.md
new file mode 100644 (file)
index 0000000..9af649a
--- /dev/null
@@ -0,0 +1,58 @@
+---
+title: ToCSS
+linkTitle: Transpile Sass to SCSS
+description: Transpile Sass to CSS.
+categories: [asset management]
+keywords: []
+menu:
+  docs:
+    parent: pipes
+    weight: 30
+weight: 02
+signature: ["resources.ToCSS RESOURCE [OPTIONS]", "toCSS RESOURCE [OPTIONS]"]
+---
+
+## Usage
+
+Any Sass or SCSS file can be transformed into a CSS file using `resources.ToCSS` which takes two arguments, the resource object and a map of options listed below.
+
+```go-html-template
+{{ $sass := resources.Get "sass/main.scss" }}
+{{ $style := $sass | resources.ToCSS }}
+```
+
+### Options
+
+transpiler [string]
+
+: The `transpiler` to use, valid values are `libsass` (default) and `dartsass`. If you want to use Hugo with Dart Sass you need to download a release binary from [Embedded Dart Sass](https://github.com/sass/dart-sass-embedded/releases) and make sure it's in your PC's `$PATH` (or `%PATH%` on Windows).
+
+targetPath [string]
+: If not set, the transformed resource's target path will be the asset file original path with its extension replaced by `.css`.
+
+vars [map]
+: Map of key/value pairs that will be available in the `hugo:vars` namespace, e.g. with `@use "hugo:vars" as v;` or (globally) with `@import "hugo:vars";` {{< new-in "0.109.0" >}}
+
+outputStyle [string]
+: Default is `nested` (LibSass) and `expanded` (Dart Sass). Other available output styles for LibSass are `expanded`, `compact` and `compressed`. Dart Sass only supports `expanded` and `compressed`.
+
+precision [int]
+: Precision of floating point math. **Note:** This option is not supported by Dart Sass.
+
+enableSourceMap [bool]
+: When enabled, a source map will be generated.
+
+sourceMapIncludeSources [bool]
+: When enabled, sources will be embedded in the generated source map. (Dart Sass only). {{< new-in "0.108.0" >}}
+
+includePaths [string slice]
+: Additional SCSS/Sass include paths. Paths must be relative to the project directory.
+
+```go-html-template
+{{ $options := (dict "targetPath" "style.css" "outputStyle" "compressed" "enableSourceMap" (not hugo.IsProduction) "includePaths" (slice "node_modules/myscss")) }}
+{{ $style := resources.Get "sass/main.scss" | resources.ToCSS $options }}
+```
+
+{{% note %}}
+Setting `outputStyle` to `compressed` will handle Sass/SCSS files minification better than the more generic [`resources.Minify`](/hugo-pipes/minification).
+{{% /note %}}
index e5a34b1f2e5ad424a260b170917d1196c7ff764c..3a7713dd5a2bdcc5a9173275c7facff9a3e8c6ad 100644 (file)
@@ -9,7 +9,6 @@ menu:
   docs:
     parent: installation
     weight: 10
-toc: false
 ---
 
 {{% param "description" %}}
index 2728e91cbf1b245083926fdcb787222d9c8ad2b1..5fbc4bfad6374f39cd1ff7c23ff2ee1c29363985 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: BSD
-linkTitle: BSD
 description: Install Hugo on BSD derivatives.
 categories: [installation]
 menu:
index 03ffe9430dd3b023218c2c36258d292835582abb..eafbe21259dd4ad52b11a4ca5bb532fdc153ed0a 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Linux
-linkTitle: Linux
 description: Install Hugo on Linux.
 categories: [installation]
 menu:
@@ -20,13 +19,18 @@ weight: 30
 
 ### Snap
 
-[Snap] is a free and open source package manager for Linux. Available for [most distributions], Snap packages are simple to install and are automatically updated. This will install the extended edition of Hugo:
+[Snap] is a free and open source package manager for Linux. Available for [most distributions], snap packages are simple to install and are automatically updated.
+
+The Hugo snap package is [strictly confined]. Strictly confined snaps run in complete isolation, up to a minimal access level that’s deemed always safe. The sites you create and build must be located within your home directory, or on removable media.
+
+This will install the extended edition of Hugo:
 
 ```sh
 sudo snap install hugo
 ```
 
 [most distributions]: https://snapcraft.io/docs/installing-snapd
+[strictly confined]: https://snapcraft.io/docs/snap-confinement
 [Snap]: https://snapcraft.io/
 
 {{% readfile file="/installation/common/homebrew.md" %}}
@@ -104,7 +108,7 @@ The [Solus] distribution of Linux includes Hugo in its package repository. This
 sudo eopkg install hugo
 ```
 
-[Solus]: https://getsol.us/home/
+[Solus]: https://getsol.us/
 
 {{% readfile file="/installation/common/04-docker.md" %}}
 
index c614f39bad65b847bbf7b7dcc6e345ed062d974a..9d10642de4ebe7312c5ef583636beb2db1baf9d6 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: macOS
-linkTitle: macOS
 description: Install Hugo on macOS.
 categories: [installation]
 menu:
index 6ef17acd40bf370f1a5a2601f8ab7aa1dac27795..9959f590a56e5a312eb4caecb5393ee0786d278e 100644 (file)
@@ -1,6 +1,5 @@
 ---
 title: Windows
-linkTitle: Windows
 description: Install Hugo on Windows.
 categories: [installation]
 menu:
@@ -38,6 +37,16 @@ scoop install hugo-extended
 
 [Scoop]: https://scoop.sh/
 
+### Winget
+
+[Winget] is Microsoft's official free and open source package manager for Windows. This will install the extended edition of Hugo:
+
+```sh
+winget install Hugo.Hugo.Extended
+```
+
+[Winget]: https://learn.microsoft.com/en-us/windows/package-manager/
+
 {{% readfile file="/installation/common/04-docker.md" %}}
 
 {{% readfile file="/installation/common/05-build-from-source.md" %}}
index 691a5d47ce07e1ac4b25f0211ea00d3bb0db5fd9..fd8828bb2c021f6eecf63a28aa60d735399b0a2d 100644 (file)
@@ -1,14 +1,10 @@
 ---
 title: Maintenance
 description: Some lists useful for the maintenance of the Hugo docs site.
-date: 2018-02-09
 categories: [maintenance]
 keywords: [maintenance]
 menu:
   docs:
     weight: 200
-slug:
-aliases: []
 toc: true
 ---
-
index dc4115fe0af5cf4cbf4de731af23eda2a8fb0c37..884e43449548c5c97cff81f3dc741131c9aec918 100644 (file)
@@ -9,15 +9,15 @@ categories: ["Releases"]
 - [Live Reload](/getting-started/usage/#livereload). Hugo will automatically reload the browser when the build is complete
 - Theme engine w/[Theme Repository](http://github.com/spf13/hugoThemes)
 - [Menu system](/content-management/menus/) with support for active page
-- [Builders](/extras/builders) to quickly create a new site, content or theme
-- [XML sitemap](/templates/sitemap) generation
-- [Integrated Disqus](/extras/comments) support
-- Streamlined [template organization](/templates/overview)
+- [Builders](/commands/hugo_new) to quickly create a new site, content or theme
+- [XML sitemap](/templates/sitemap-template) generation
+- [Integrated Disqus](/content-management/comments) support
+- Streamlined [template organization](/templates/introduction)
 - Brand new docs site
 - Support for publishDate which allows for posts to be dated in the future
-- More [sort](/functions/sort/#readout) options
+- More [sort](/functions/sort) options
 - Logging support
 - Much better error handling
 - More informative verbose output
-- Renamed Indexes > [Taxonomies](/taxonomies/overview)
+- Renamed Indexes > [Taxonomies](/content-management/taxonomies/)
 - Renamed Chrome > [Partials](/templates/partials)
index 0c62ea5b139e6061fa70bd0cc8b94b2148430132..0209c5811db2546fbe050635d31d3fd1209b1863 100644 (file)
@@ -14,16 +14,16 @@ This release represents over 90 code commits from 28 different contributors.
 - 10 [new themes](https://github.com/spf13/hugoThemes) created by the community
 - fully themable [partials](/templates/partials/)
 - [404 template](/templates/404/) support in themes
-- [shortcode](/extras/shortcodes/) support in themes
+- [shortcode](/content-management/shortcodes/) support in themes
 - [views](/templates/views/) support in themes
-- inner [shortcode](/extras/shortcodes/) content now treated as markdown
+- inner [shortcode](/content-management/shortcodes) content now treated as markdown
 - support for header ids in markdown (# header {#myid})
 - [where](/functions/where/) template function to filter lists of content, taxonomies, etc.
-- [groupby](/templates/list) & [groupbydate](/templates/list) methods to group pages
-- taxonomy [pages list](/taxonomies/methods/) now sortable, filterable, limitable & groupable
+- [groupby](/templates/lists#by-page-field) & [groupbydate](/templates/lists/#by-date-1) methods to group pages
+- taxonomy [pages list](/templates/taxonomy-templates#taxonomy-methods) now sortable, filterable, limitable & groupable
 - general cleanup to taxonomies & documentation to make it more clear and consistent
 - [showcase](/showcase/) returned and has been expanded
 - pretty links now always have trailing slashes
-- [baseurl](/overview/configuration/) can now include a subdirectory
+- [baseurl](/getting-started/configuration#baseurl) can now include a subdirectory
 - better feedback about draft & future post rendering
 - a variety of improvements to [the website](/)
index 9b7928b47e795dd90c562c8bda64ebc11450ae79..d70d217eb25bb4642ae255bf43999f501d022d15 100644 (file)
@@ -16,7 +16,7 @@ This release represents over **240 contributions by 36 contributors** to the mai
 Big shout out to [@bep](https://github.com/bep) who led the development of Hugo this release, [@anthonyfok](https://github.com/anthonyfok), [@eparis](https://github.com/eparis), [@SchumacherFM](https://github.com/SchumacherFM), [@RickCogley](https://github.com/RickCogley) & [@mdhender](https://github.com/mdhender) for their significant contributions and [@tatsushid](https://github.com/tatsushid) for his continuous improvements to the templates. Also a big thanks to all the theme creators. 11 new themes have been added since last release and the [hugoThemes repo now has previews of all of them](https://github.com/spf13/hugoThemes/blob/master/README.md#theme-list).
 
 Hugo also depends on a lot of other great projects. A big thanks to all of our dependencies inclding:
-[cobra](https://github.com/spf13/cobra), [viper](https://github.com/spf13/viper), [blackfriday](https://github.com/russross/blackfriday), [pflag](https://github.com/spf13/pflag), [HugoThemes](https://github.com/spf13/hugothemes), [BurntSushi/Toml](github.com/BurntSushi/toml), [goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library.
+[cobra](https://github.com/spf13/cobra), [viper](https://github.com/spf13/viper), [blackfriday](https://github.com/russross/blackfriday), [pflag](https://github.com/spf13/pflag), [HugoThemes](https://github.com/spf13/hugothemes), [BurntSushi/Toml](https://github.com/BurntSushi/toml), [goYaml](https://github.com/go-yaml/yaml/tree/v2), and the Go standard library.
 
 ## New features
 - Support for all file types in content directory.
index 034e8e891559214fc481ad58efd3fb4deb7e6b9e..d2f9068a9b57afe98124062bac3597eb7109b39b 100644 (file)
@@ -1,11 +1,9 @@
 ---
-author: bep
 categories: ["Releases"]
 date: 2016-10-07T13:54:06-04:00
 description: "Hugo now supports multilingual sites with the most simple and elegant experience."
 link: ""
 title: "0.17: Hugo is going global"
-draft: false
 aliases: [/0-17/]
 ---
 Hugo is going global with our 0.17 release.  We put a lot of thought into how we could extend Hugo
index 5aaab9ffe071f79bf630f2ffc41ccc1561a340f8..3720c7929567d0751b7be906dc3b61c20fc470de 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "The primary new feature in Hugo 0.18 is that every piece of content is now a Page."
 link: ""
 title: "Hugo 0.18"
-draft: false
-author: bep
 aliases: [/0-18/]
 ---
 
index 073b474957b98411747e484466d70af195672cbc..7068020b81e334e8828d1ebd1af4f2627fa8e7cf 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.19 brings native Emacs Org-mode content support, and Hugo has its own Twitter account"
 link: ""
 title: "Hugo 0.19"
-draft: false
-author: budparr
 aliases: [/0-19/]
 ---
 
index 27e4d48f70446599f620760a310060412b44a627..239230d6bd9cdb615fe2ae20a2e681ce4f3bd12e 100644 (file)
@@ -4,12 +4,10 @@ categories: ["Releases"]
 description: "Hugo 0.20 introduces the powerful and long sought after feature Custom Output Formats"
 link: ""
 title: "Hugo 0.20"
-draft: false
-author: bep
 aliases: [/0-20/]
 ---
 
-Hugo `0.20` introduces the powerful and long sought after feature [Custom Output Formats](http://gohugo.io/extras/output-formats/); Hugo isn’t just that “static HTML with an added RSS feed” anymore. _Say hello_ to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few ( [#2828](//github.com/gohugoio/hugo/issues/2828) ).
+Hugo `0.20` introduces the powerful and long sought after feature [Custom Output Formats](http://gohugo.io/extras/output-formats/); Hugo isn’t just that “static HTML with an added RSS feed” anymore. _Say hello_ to calendars, e-book formats, Google AMP, and JSON search indexes, to name a few ( [#2828](https://github.com/gohugoio/hugo/issues/2828) ).
 
 This release represents **over 180 contributions by over 30 contributors** to the main Hugo code base. Since last release Hugo has **gained 1100 stars, 20 new contributors and 5 additional themes.**
 
@@ -19,15 +17,15 @@ Hugo now has:
 *   495+ contributors
 *   156+ themes
 
-[@bep](//github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. Also a big shoutout to [@digitalcraftsman](//github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition, and [@moorereason](//github.com/moorereason) and [@bogem](//github.com/bogem) for their ongoing contributions.
+[@bep](https://github.com/bep) still leads the Hugo development with his witty Norwegian humor, and once again contributed a significant amount of additions. Also a big shoutout to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the documentation and the themes site in pristine condition, and [@moorereason](https://github.com/moorereason) and [@bogem](https://github.com/bogem) for their ongoing contributions.
 
 ## Other Highlights
 
-[@bogem](//github.com/bogem) has also contributed TOML as an alternative and much simpler format for language/i18n files ([#3200](//github.com/gohugoio/hugo/issues/3200)). A feature you will appreciate when you start to work on larger translations.
+[@bogem](https://github.com/bogem) has also contributed TOML as an alternative and much simpler format for language/i18n files ([#3200](https://github.com/gohugoio/hugo/issues/3200)). A feature you will appreciate when you start to work on larger translations.
 
-Also, there have been some important updates in the Emacs Org-mode handling: [@chaseadamsio](//github.com/chaseadamsio) has fixed the newline-handling ( [#3126](//github.com/gohugoio/hugo/issues/3126) ) and [@clockoon](//github.com/clockoon) has added basic footnote support.
+Also, there have been some important updates in the Emacs Org-mode handling: [@chaseadamsio](https://github.com/chaseadamsio) has fixed the newline-handling ( [#3126](https://github.com/gohugoio/hugo/issues/3126) ) and [@clockoon](https://github.com/clockoon) has added basic footnote support.
 
-Worth mentioning is also the ongoing work that [@rdwatters](//github.com/rdwatters) and [@budparr](//github.com/budparr) is doing to re-do the [gohugo.io](https://gohugo.io/) site, including a total restructuring and partial rewrite of the documentation. It is getting close to finished, and it looks fantastic!
+Worth mentioning is also the ongoing work that [@rdwatters](https://github.com/rdwatters) and [@budparr](https://github.com/budparr) is doing to re-do the [gohugo.io](https://gohugo.io/) site, including a total restructuring and partial rewrite of the documentation. It is getting close to finished, and it looks fantastic!
 
 ## Notes
 
@@ -35,38 +33,38 @@ Worth mentioning is also the ongoing work that [@rdwatters](//github.com/rdwatte
 *   The deprecated `.RSSlink` is now removed. Use `.RSSLink`.
 *   `RSSUri` is deprecated and will be removed in a future Hugo version, replace it with an output format definition.
 *   The deprecated `.Site.GetParam` is now removed, use `.Site.Param`.
-*   Hugo does no longer append missing trailing slash to `baseURL` set as a command line parameter, making it consistent with how it behaves from site config. [#3262](//github.com/gohugoio/hugo/issues/3262)
+*   Hugo does no longer append missing trailing slash to `baseURL` set as a command line parameter, making it consistent with how it behaves from site config. [#3262](https://github.com/gohugoio/hugo/issues/3262)
 
 ## Enhancements
 
 *   Hugo `0.20` is built with Go 1.8.1.
-*   Add `.Site.Params.mainSections` that defaults to the section with the most pages. Plan is to get themes to use this instead of the hardcoded `blog` in `where` clauses. [#3206](//github.com/gohugoio/hugo/issues/3206)
-*   File extension is now configurable. [#320](//github.com/gohugoio/hugo/issues/320)
-*   Improve `markdownify` template function performance. [#3292](//github.com/gohugoio/hugo/issues/3292)
-*   Add taxonomy terms’ pages to `.Data.Pages` [#2826](//github.com/gohugoio/hugo/issues/2826)
+*   Add `.Site.Params.mainSections` that defaults to the section with the most pages. Plan is to get themes to use this instead of the hardcoded `blog` in `where` clauses. [#3206](https://github.com/gohugoio/hugo/issues/3206)
+*   File extension is now configurable. [#320](https://github.com/gohugoio/hugo/issues/320)
+*   Improve `markdownify` template function performance. [#3292](https://github.com/gohugoio/hugo/issues/3292)
+*   Add taxonomy terms’ pages to `.Data.Pages` [#2826](https://github.com/gohugoio/hugo/issues/2826)
 *   Change `RSS` description from full `.Content` to `.Summary`.
-*   Ignore “.” dirs in `hugo --cleanDestinationDir` [#3202](//github.com/gohugoio/hugo/issues/3202)
-*   Allow `jekyll import` to accept both `2006-01-02` and `2006-1-2` date format [#2738](//github.com/gohugoio/hugo/issues/2738)
-*   Raise the default `rssLimit` [#3145](//github.com/gohugoio/hugo/issues/3145)
-*   Unify section list vs single template lookup order [#3116](//github.com/gohugoio/hugo/issues/3116)
-*   Allow `apply` to be used with the built-in Go template funcs `print`, `printf` and `println`. [#3139](//github.com/gohugoio/hugo/issues/3139)
+*   Ignore “.” dirs in `hugo --cleanDestinationDir` [#3202](https://github.com/gohugoio/hugo/issues/3202)
+*   Allow `jekyll import` to accept both `2006-01-02` and `2006-1-2` date format [#2738](https://github.com/gohugoio/hugo/issues/2738)
+*   Raise the default `rssLimit` [#3145](https://github.com/gohugoio/hugo/issues/3145)
+*   Unify section list vs single template lookup order [#3116](https://github.com/gohugoio/hugo/issues/3116)
+*   Allow `apply` to be used with the built-in Go template funcs `print`, `printf` and `println`. [#3139](https://github.com/gohugoio/hugo/issues/3139)
 
 ## Fixes
 
-*   Fix deadlock in `getJSON` [#3211](//github.com/gohugoio/hugo/issues/3211)
-*   Make sure empty terms pages are created. [#2977](//github.com/gohugoio/hugo/issues/2977)
-*   Fix base template lookup order for sections [#2995](//github.com/gohugoio/hugo/issues/2995)
+*   Fix deadlock in `getJSON` [#3211](https://github.com/gohugoio/hugo/issues/3211)
+*   Make sure empty terms pages are created. [#2977](https://github.com/gohugoio/hugo/issues/2977)
+*   Fix base template lookup order for sections [#2995](https://github.com/gohugoio/hugo/issues/2995)
 *   `URL` fixes:
-    *   Fix pagination URLs with `baseURL` with sub-root and `canonifyUrls=false` [#1252](//github.com/gohugoio/hugo/issues/1252)
-    *   Fix pagination URL for resources with “.” in name [#2110](//github.com/gohugoio/hugo/issues/2110) [#2374](//github.com/gohugoio/hugo/issues/2374) [#1885](//github.com/gohugoio/hugo/issues/1885)
-    *   Handle taxonomy names with period [#3169](//github.com/gohugoio/hugo/issues/3169)
-    *   Handle `uglyURLs` ambiguity in `Permalink` [#3102](//github.com/gohugoio/hugo/issues/3102)
-    *   Fix `Permalink` for language-roots wrong when `uglyURLs` is `true` [#3179](//github.com/gohugoio/hugo/issues/3179)
-    *   Fix misc case issues for `URLs` [#1641](//github.com/gohugoio/hugo/issues/1641)
-    *   Fix for taxonomies URLs when `uglyUrls=true` [#1989](//github.com/gohugoio/hugo/issues/1989)
-    *   Fix empty `RSSLink` for list pages with content page. [#3131](//github.com/gohugoio/hugo/issues/3131)
-*   Correctly identify regular pages on the form “my_index_page.md” [#3234](//github.com/gohugoio/hugo/issues/3234)
-*   `Exit -1` on `ERROR` in global logger [#3239](//github.com/gohugoio/hugo/issues/3239)
-*   Document hugo `help command` [#2349](//github.com/gohugoio/hugo/issues/2349)
-*   Fix internal `Hugo` version handling for bug fix releases. [#3025](//github.com/gohugoio/hugo/issues/3025)
-*   Only return `RSSLink` for pages that actually have a RSS feed. [#1302](//github.com/gohugoio/hugo/issues/1302)
\ No newline at end of file
+    *   Fix pagination URLs with `baseURL` with sub-root and `canonifyUrls=false` [#1252](https://github.com/gohugoio/hugo/issues/1252)
+    *   Fix pagination URL for resources with “.” in name [#2110](https://github.com/gohugoio/hugo/issues/2110) [#2374](https://github.com/gohugoio/hugo/issues/2374) [#1885](https://github.com/gohugoio/hugo/issues/1885)
+    *   Handle taxonomy names with period [#3169](https://github.com/gohugoio/hugo/issues/3169)
+    *   Handle `uglyURLs` ambiguity in `Permalink` [#3102](https://github.com/gohugoio/hugo/issues/3102)
+    *   Fix `Permalink` for language-roots wrong when `uglyURLs` is `true` [#3179](https://github.com/gohugoio/hugo/issues/3179)
+    *   Fix misc case issues for `URLs` [#1641](https://github.com/gohugoio/hugo/issues/1641)
+    *   Fix for taxonomies URLs when `uglyUrls=true` [#1989](https://github.com/gohugoio/hugo/issues/1989)
+    *   Fix empty `RSSLink` for list pages with content page. [#3131](https://github.com/gohugoio/hugo/issues/3131)
+*   Correctly identify regular pages on the form “my_index_page.md” [#3234](https://github.com/gohugoio/hugo/issues/3234)
+*   `Exit -1` on `ERROR` in global logger [#3239](https://github.com/gohugoio/hugo/issues/3239)
+*   Document hugo `help command` [#2349](https://github.com/gohugoio/hugo/issues/2349)
+*   Fix internal `Hugo` version handling for bug fix releases. [#3025](https://github.com/gohugoio/hugo/issues/3025)
+*   Only return `RSSLink` for pages that actually have a RSS feed. [#1302](https://github.com/gohugoio/hugo/issues/1302)
index 109737bb355b55e763d77fc9b36dd73e2a9ffbc8..9e1a963731dd95487d0aa735449d9a73e733fda9 100644 (file)
@@ -4,12 +4,10 @@ categories: ["Releases"]
 description: "Hugo 0.20.1 is a bug fix release, fixing some important regressions introduced in 0.20"
 link: ""
 title: "Hugo 0.20.1"
-draft: false
-author: bep
 aliases: [/0-20-1/]
 ---
 
-*   Fix logic for base template in work dir vs in the theme [#3323](//github.com/gohugoio/hugo/issues/3323)
-*   camelCased templates (partials, shortcodes etc.) not found [#3333](//github.com/gohugoio/hugo/issues/3333)
-*   Live-reload fails with `_index.md` with paginator [#3315](//github.com/gohugoio/hugo/issues/3315)
-*   `rssURI` WARNING always shown [#3319](//github.com/gohugoio/hugo/issues/3319)
\ No newline at end of file
+*   Fix logic for base template in work dir vs in the theme [#3323](https://github.com/gohugoio/hugo/issues/3323)
+*   camelCased templates (partials, shortcodes etc.) not found [#3333](https://github.com/gohugoio/hugo/issues/3333)
+*   Live-reload fails with `_index.md` with paginator [#3315](https://github.com/gohugoio/hugo/issues/3315)
+*   `rssURI` WARNING always shown [#3319](https://github.com/gohugoio/hugo/issues/3319)
index 2e67d20eaf95bc1b80d7f7cade57a48f63453876..584a0f78831721ac0dd047d6b154e98cb4555aeb 100644 (file)
@@ -4,12 +4,10 @@ categories: ["Releases"]
 description: "Hugo 0.20.2 adds support for plain text partials included into HTML templates"
 link: ""
 title: "Hugo 0.20.2"
-draft: false
-author: bep
 aliases: [/0-20-2/]
 ---
 
-Hugo `0.20.2` adds support for plain text partials included into `HTML` templates. This was a side-effect of the big new [Custom Output Format](https://gohugo.io/extras/output-formats/) feature in `0.20`, and while the change was intentional and there was an ongoing discussion about fixing it in [#3273](//github.com/gohugoio/hugo/issues/3273), it did break some themes. There were valid workarounds for these themes, but we might as well get it right.
+Hugo `0.20.2` adds support for plain text partials included into `HTML` templates. This was a side-effect of the big new [Custom Output Format](https://gohugo.io/extras/output-formats/) feature in `0.20`, and while the change was intentional and there was an ongoing discussion about fixing it in [#3273](https://github.com/gohugoio/hugo/issues/3273), it did break some themes. There were valid workarounds for these themes, but we might as well get it right.
 
 The most obvious use case for this is inline `CSS` styles, which you now can do without having to name your partials with a `html` suffix.
 
@@ -44,4 +42,4 @@ Add “CSS” to your home page’s `outputs` list, create the template `/layout
 
     {{ with  .OutputFormats.Get "css" }}
     <link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink |  safeURL }}">
-    {{ end }}`
\ No newline at end of file
+    {{ end }}`
index c79d9b202a0a0a0ac1ae70b74e6236ca22653f8a..77a3511f2fc0e96f32d6d7155f2007d74780cc9f 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "This is a bug-fix release with one important fix. But it also adds some harness around GoReleaser"
 link: ""
 title: "Hugo 0.20.3"
-draft: false
-author: bep
 aliases: [/0-20-3/]
 ---
 
@@ -23,4 +21,4 @@ Hugo now has:
 
 ## Fix
 
-* Fix handling of zero-length files [9bf5c381](https://github.com/gohugoio/hugo/commit/9bf5c381b6b3e69d4d8dbfd7a40074ac44792bbf) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355) 
\ No newline at end of file
+* Fix handling of zero-length files [9bf5c381](https://github.com/gohugoio/hugo/commit/9bf5c381b6b3e69d4d8dbfd7a40074ac44792bbf) [@bep](https://github.com/bep) [#3355](https://github.com/gohugoio/hugo/issues/3355) 
index 2fde30e14ab1f2abcbcee06464043fb4cb7270c9..59903b8164d0bcd1ec9b985ccc737727987f17b2 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "This is the second bug-fix release of the day, fixing a couple of issues related to the new release scripts"
 link: ""
 title: "Hugo 0.20.4"
-draft: false
-author: bep
 aliases: [/0-20-4/]
 ---
 
@@ -21,4 +19,4 @@ Hugo now has:
 
 * Fix statically linked binaries [275bcf56](https://github.com/gohugoio/hugo/commit/275bcf566c7cb72367d4423cf4810319311ff680) [@munnerz](https://github.com/munnerz) [#3382](https://github.com/gohugoio/hugo/issues/3382) 
 * Filename change in Hugo 0.20.3 binaries [#3385](https://github.com/gohugoio/hugo/issues/3385)
-* Fix version calculation [cb3c6b6f](https://github.com/gohugoio/hugo/commit/cb3c6b6f7670f85189a4a3637e7132901d1ed6e9) [@bep](https://github.com/bep) 
\ No newline at end of file
+* Fix version calculation [cb3c6b6f](https://github.com/gohugoio/hugo/commit/cb3c6b6f7670f85189a4a3637e7132901d1ed6e9) [@bep](https://github.com/bep) 
index eaed2783289f078489f01ca54d1091396cbb1c00..86a2601613012c62babf8882d425c3fb4ebacdd5 100644 (file)
@@ -4,9 +4,7 @@ categories: ["Releases"]
 description: ""
 link: ""
 title: "Hugo 0.20.5"
-draft: false
-author: bep
 aliases: [/0-20-5/]
 ---
 
-This is a bug-fix release which fixes the version number of `0.20.4` (which wrongly shows up as `0.21-DEV`) ([#3388](https://github.com/gohugoio/hugo/issues/3388)).
\ No newline at end of file
+This is a bug-fix release which fixes the version number of `0.20.4` (which wrongly shows up as `0.21-DEV`) ([#3388](https://github.com/gohugoio/hugo/issues/3388)).
index 52189092a78b5fbb0f4323747ed58190ad544207..848eb1347670f1a9fa0204f5b952b131a9a10f3e 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: ""
 link: ""
 title: "Hugo 0.20.6"
-draft: false
-author: bep
 aliases: [/0-20-6/]
 ---
 
@@ -21,4 +19,4 @@ Hugo now has:
 
 * Avoid index.md in /index/index.html [#3396](https://github.com/gohugoio/hugo/issues/3396) 
 * Make missing GitInfo a WARNING [b30ca4be](https://github.com/gohugoio/hugo/commit/b30ca4bec811dbc17e9fd05925544db2b75e0e49) [@bep](https://github.com/bep) [#3376](https://github.com/gohugoio/hugo/issues/3376) 
-* Fix some of the fpm fields for deb [3bd1d057](https://github.com/gohugoio/hugo/commit/3bd1d0571d5f2f6bf0dc8f90a8adf2dbfcb2fdfd) [@anthonyfok](https://github.com/anthonyfok) 
\ No newline at end of file
+* Fix some of the fpm fields for deb [3bd1d057](https://github.com/gohugoio/hugo/commit/3bd1d0571d5f2f6bf0dc8f90a8adf2dbfcb2fdfd) [@anthonyfok](https://github.com/anthonyfok) 
index 50ac365d5b0c50880d7a9e5ca365f4a32ef24275..ff64602349c6dd1cbdbe26555868915e9925f806 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "This just fixes an issue with the release scripts, no change in the binaries"
 link: ""
 title: "Hugo 0.20.7"
-draft: false
-author: bep
 aliases: [/0-20-7/]
 ---
 
@@ -20,4 +18,4 @@ Hugo now has:
 
 ## Fix
 
-* Push the tag before goreleaser is run [3682bf52](https://github.com/gohugoio/hugo/commit/3682bf527989e86d9da32d76809306cb576383e8) [@bep](https://github.com/bep) [#3405](https://github.com/gohugoio/hugo/issues/3405) 
\ No newline at end of file
+* Push the tag before goreleaser is run [3682bf52](https://github.com/gohugoio/hugo/commit/3682bf527989e86d9da32d76809306cb576383e8) [@bep](https://github.com/bep) [#3405](https://github.com/gohugoio/hugo/issues/3405) 
index aae1fd0b4b878693f7d002ebe0f13b0585eb8316..444b819cbe48f571130fa393ab62e8821d31151e 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.21 brings full support for shortcodes per Output Format, the last vital piece of that puzzle"
 link: ""
 title: "Hugo 0.21"
-draft: false
-author: bep
 aliases: [/0-21/]
 ---
 
@@ -102,4 +100,4 @@ On a more technical side, [@moorereason](https://github.com/moorereason) and [@b
 ### Other
 
 * Fix data race in live-reload close, avoiding some rare panics [355736ec](https://github.com/gohugoio/hugo/commit/355736ec357c81dfb2eb6851ee019d407090c5ec) [@bep](https://github.com/bep) [#2625](https://github.com/gohugoio/hugo/issues/2625) 
-* Skip `.git` directories in file scan [94b5be67](https://github.com/gohugoio/hugo/commit/94b5be67fc73b87d114d94a7bb1a33ab997f30f1) [@bogem](https://github.com/bogem) [#3468](https://github.com/gohugoio/hugo/issues/3468) 
\ No newline at end of file
+* Skip `.git` directories in file scan [94b5be67](https://github.com/gohugoio/hugo/commit/94b5be67fc73b87d114d94a7bb1a33ab997f30f1) [@bogem](https://github.com/bogem) [#3468](https://github.com/gohugoio/hugo/issues/3468) 
index fefb501f6475b2346be9b8b9ee49fbb319ab3b13..db8d5de85db6c460fb8f4cd68535fc62623dfe96 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.22 brings nested sections, by popular demand and a long sought after feature"
 link: ""
 title: "Hugo 0.22"
-draft: false
-author: bep
 aliases: [/0-22/]
 ---
 
@@ -86,4 +84,4 @@ Also, considerable work has been put into writing automated benchmark tests for
 
 ### Docs
 
-* Fix parameter name in `YouTube` shortcode section [37e37877](https://github.com/gohugoio/hugo/commit/37e378773fbc127863f2b7a389d5ce3a14674c73) [@zivbk1](https://github.com/zivbk1) 
\ No newline at end of file
+* Fix parameter name in `YouTube` shortcode section [37e37877](https://github.com/gohugoio/hugo/commit/37e378773fbc127863f2b7a389d5ce3a14674c73) [@zivbk1](https://github.com/zivbk1) 
index ceb207d70d13a3447a23bd52e11bac7a66fde407..3b076fd0bc56e6c97614db1fdeaea32ca6948ed7 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.22.1 fixes a couple of issues reported after the 0.22 release"
 link: ""
 title: "Hugo 0.22.1"
-draft: false
-author: bep
 aliases: [/0-22-1/]
 ---
 
@@ -34,4 +32,4 @@ blog = ":sections/:title"
 * Support sub-sections in permalink settings [1f26420d](https://github.com/gohugoio/hugo/commit/1f26420d392a5ab4c7b7fe1911c0268b45d01ab8) [@bep](https://github.com/bep) [#3580](https://github.com/gohugoio/hugo/issues/3580) 
 * Adjust rlimit to 64000 [ff54b6bd](https://github.com/gohugoio/hugo/commit/ff54b6bddcefab45339d8dc2b13776b92bdc04b9) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) 
 * Make error on setting rlimit a warning only [629e1439](https://github.com/gohugoio/hugo/commit/629e1439e819a7118ae483381d4634f16d3474dd) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582) 
-* Revert: Remove the rlimit tweaking on macOS [26aa06a3](https://github.com/gohugoio/hugo/commit/26aa06a3db57ab7134a900d641fa2976f7971520) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582)
\ No newline at end of file
+* Revert: Remove the rlimit tweaking on macOS [26aa06a3](https://github.com/gohugoio/hugo/commit/26aa06a3db57ab7134a900d641fa2976f7971520) [@bep](https://github.com/bep) [#3582](https://github.com/gohugoio/hugo/issues/3582)
index fdf6e9e73e48c1466044968746993f5736467b6a..e0e500d3867e36fcdbd337f266667a9ce4e23686 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.23 is mainly a release that handles all the small changes needed to get Hugo moved to a GitHub organisation"
 link: ""
 title: "Hugo 0.23"
-draft: false
-author: bep
 aliases: [/0-23/]
 ---
 
@@ -43,4 +41,4 @@ Hugo now has:
 * Update README to point to gohugoio/hugo [93643860](https://github.com/gohugoio/hugo/commit/93643860c9db10c6c32176b17cc83f1c317279bd) [@bep](https://github.com/bep) 
 * Update examples to point to gohugoio/hugo [db46bcf8](https://github.com/gohugoio/hugo/commit/db46bcf82d060656d4bc731550e63ec9cf8576f2) [@bep](https://github.com/bep) 
 * Update textual references in Go source to point to gohugoio/hugo [c17ad675](https://github.com/gohugoio/hugo/commit/c17ad675e8fcdb2db40fc50816b8f016bc14294c) [@bep](https://github.com/bep) 
-* Update import paths to gohugoio/hugo [d8717cd4](https://github.com/gohugoio/hugo/commit/d8717cd4c74e80ea8e20adead9321412a2d76022) [@bep](https://github.com/bep) 
\ No newline at end of file
+* Update import paths to gohugoio/hugo [d8717cd4](https://github.com/gohugoio/hugo/commit/d8717cd4c74e80ea8e20adead9321412a2d76022) [@bep](https://github.com/bep) 
index ec71e246fe8dea29a8703a401185b27a5aa10b7d..458b9dded0a6446bd6ce1614cd8d90653d7a84c9 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "The Revival of the Archetypes!"
 link: ""
 title: "Hugo 0.24"
-draft: false
-author: bep
 aliases: [/0-24/]
 ---
 
@@ -71,4 +69,4 @@ Hugo now has:
 ## Fixes
 
 * Fix error handling for `JSON` front matter [fb53987a](https://github.com/gohugoio/hugo/commit/fb53987a4ff2acb9da8dec6ec7b11924d37352ce) [@bep](https://github.com/bep) [#3610](https://github.com/gohugoio/hugo/issues/3610) 
-* Fix handling of quoted brackets in `JSON` front matter [3183b9a2](https://github.com/gohugoio/hugo/commit/3183b9a29d8adac962fbc73f79b04542f4c4c55d) [@bep](https://github.com/bep) [#3511](https://github.com/gohugoio/hugo/issues/3511) 
\ No newline at end of file
+* Fix handling of quoted brackets in `JSON` front matter [3183b9a2](https://github.com/gohugoio/hugo/commit/3183b9a29d8adac962fbc73f79b04542f4c4c55d) [@bep](https://github.com/bep) [#3511](https://github.com/gohugoio/hugo/issues/3511) 
index 2ec2cef55f388aa8bc6037b9d37b595ba2e4d19d..19e69ce0a28b145e7c2e17e61011b897d0de4740 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "This release fixes some important archetype-related regressions from Hugo 0.24"
 link: ""
 title: "Hugo 0.24.1"
-draft: false
-author: bep
 aliases: [/0-24-1/]
 ---
 
@@ -19,4 +17,4 @@ This release fixes some important **archetype-related regressions** from the rec
 
 ## Enhancements
 
-* Create default archetype on new site [bfa336d9](https://github.com/gohugoio/hugo/commit/bfa336d96173377b9bbe2298dbd101f6a718c174) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626) 
\ No newline at end of file
+* Create default archetype on new site [bfa336d9](https://github.com/gohugoio/hugo/commit/bfa336d96173377b9bbe2298dbd101f6a718c174) [@bep](https://github.com/bep) [#3626](https://github.com/gohugoio/hugo/issues/3626) 
index 9527c911a9ea25be9a9660ec6f0f39ca23cb003d..6ceef445d31e174c65e274d269ec8f11283f941c 100644 (file)
@@ -4,8 +4,6 @@ categories: ["Releases"]
 description: "Hugo 0.25 automatically opens the page you&#39;re working on in the browser"
 link: ""
 title: "Hugo 0.25"
-draft: false
-author: bep
 aliases: [/0-25/]
 ---
 
@@ -75,4 +73,4 @@ Hugo now has:
 ### Other
 
 * Fix handling of `JSON` front matter with escaped quotes [e10e51a0](https://github.com/gohugoio/hugo/commit/e10e51a00827b9fdc1bee51439fef05afc529831) [@bep](https://github.com/bep) [#3661](https://github.com/gohugoio/hugo/issues/3661)
-* Fix typo in code comment [56d82aa0](https://github.com/gohugoio/hugo/commit/56d82aa025f4d2edb1dc6315132cd7ab52df649a) [@dvic](https://github.com/dvic) 
\ No newline at end of file
+* Fix typo in code comment [56d82aa0](https://github.com/gohugoio/hugo/commit/56d82aa025f4d2edb1dc6315132cd7ab52df649a) [@dvic](https://github.com/dvic) 
index 7d70d87a5e29c3351624d38e66c9d0317c2f05d9..16f5892b7a6b8c22ec24e81766b36e0617d4bde1 100644 (file)
@@ -1,11 +1,8 @@
 ---
-date: 2017-07-10T17:53:58-04:00
 categories: ["Releases"]
 description: "This is a bug-fix release with a couple of important fixes"
 link: ""
 title: "Hugo 0.25.1"
-draft: false
-author: bep
 aliases: [/0-25-1/]
 ---
 
@@ -22,4 +19,4 @@ Hugo now has:
 * Fix union when the first slice is empty [dbbc5c48](https://github.com/gohugoio/hugo/commit/dbbc5c4810a04ac06fad7500d88cf5c3bfe0c7fd) [@bep](https://github.com/bep) [#3686](https://github.com/gohugoio/hugo/issues/3686)
 * Navigate to changed on CREATE When working with content from IntelliJ IDE, like WebStorm, every file save is followed by two events: "RENAME" and then "CREATE". [7bcc1ce6](https://github.com/gohugoio/hugo/commit/7bcc1ce659710f2220b400ce3b76e50d2e48b241) [@miltador](https://github.com/miltador) 
 * Final (!) fix for issue with escaped JSON front matter [7f82b41a](https://github.com/gohugoio/hugo/commit/7f82b41a24af0fd04d28fbfebf9254766a3c6e6f) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682)
-* Fix issue with escaped JSON front matter [84db6c74](https://github.com/gohugoio/hugo/commit/84db6c74a084d2b52117b999d4ec343cd3389a68) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682)
\ No newline at end of file
+* Fix issue with escaped JSON front matter [84db6c74](https://github.com/gohugoio/hugo/commit/84db6c74a084d2b52117b999d4ec343cd3389a68) [@bep](https://github.com/bep) [#3682](https://github.com/gohugoio/hugo/issues/3682)
index 1a7552d096d0ab6ca364ce33b6d1f3bc4656a0d8..98fe5d088a290a93276b017f78a31d6dfe2aec26 100644 (file)
@@ -19,13 +19,13 @@ See [Image Processing Options](https://gohugo.io/content-management/image-proces
 Another useful addon is the `$pages.Next` and `$pages.Prev` methods on the core page collections in Hugo. These works the same way as the built-in static variants one `Page`, e.g. `.Next` and `.NextInSection`:
 
 ```
-{{with .Site.RegularPages.Next . }}{{.RelPermalink}}{{end}}
+{{ with .Site.RegularPages.Next . }}{{ .RelPermalink }}{{ end }}
 ```
 
 The above is a functionally equivalent (but slightly slower) variant of:
 
 ```
-{{with .Next }}{{.RelPermalink}}{{end}}
+{{ with .Next }}{{ .RelPermalink }}{{ end }}
 ```
 
 See [Pages Methods](https://gohugo.io/variables/pages/) for more information.
@@ -113,8 +113,3 @@ Hugo now has:
 * Fix cache key transformed resources [6dec671f](https://github.com/gohugoio/hugo/commit/6dec671fb930029e18ba9aa5135b3a27adcddb21) [@bep](https://github.com/bep) [#6348](https://github.com/gohugoio/hugo/issues/6348)
 * Fix cache keys for bundled resoures in transform.Unmarshal [c0d75736](https://github.com/gohugoio/hugo/commit/c0d7573677e9726c14749ccd432dccb75e0d194d) [@bep](https://github.com/bep) [#6327](https://github.com/gohugoio/hugo/issues/6327)
 * Fix concat with fingerprint regression [3be2c253](https://github.com/gohugoio/hugo/commit/3be2c25351b421a26ee1ff2a38cbab00280c0583) [@bep](https://github.com/bep) [#6309](https://github.com/gohugoio/hugo/issues/6309)
-
-
-
-
-
index 899dfdb39d084b8630f206de96db8a24f625a0d3..2410d3dcd03e4b655471538cfac56367fa47a074 100644 (file)
@@ -6,8 +6,6 @@ description: "In Hugo 0.63 we have improved the base template lookup logic, and
 categories: ["Releases"]
 ---
 
-**Note:** There is already a [patch release](/news/0.63.1-relnotes/) with some fixes.
-
 Hugo `0.63` is, in general, **considerably faster and more memory effective** (see the site-building benchmarks below comparing it to `v0.62`). Not that we are particularly concerned about Hugo's build speed. We leave that to others. But we would hate if it got slower, so we have a comprehensive benchmark suite. And when we needed to simplify the template handling code to solve a concurrency issue, it also became more effective. And as a bonus, we also finally got the [base template lookup order](https://gohugo.io/templates/base/#base-template-lookup-order) that you really, really wanted!
 
 ```bash
@@ -119,8 +117,3 @@ Hugo now has:
 
 * Fix 0.62.1 server rebuild slowdown regression [17af79a0](https://github.com/gohugoio/hugo/commit/17af79a03e249a731cf5634ffea23ca00774333d) [@bep](https://github.com/bep) [#6784](https://github.com/gohugoio/hugo/issues/6784)
 * Fix blog not building [d61bee5e](https://github.com/gohugoio/hugo/commit/d61bee5e0916b5d2b388e66ef85c336312a21a06) [@colonelpopcorn](https://github.com/colonelpopcorn) [#6752](https://github.com/gohugoio/hugo/issues/6752)
-
-
-
-
-
index 1c390b6858db43a552db50174af29518d17430c8..4c78db3ad54a1a7c53940d94c74cc61daf899dff 100644 (file)
@@ -6,7 +6,7 @@ description: "This release brings Dart Sass support, a new image overlay functio
 categories: ["Releases"]
 ---
 
-The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/scss-sass/#options) support.
+The last Hugo release of the year brings a new [images.Overlay](https://gohugo.io/functions/images/#overlay) filter to overlay an image on top of another, e.g. for watermarking, and [Dart Sass](https://gohugo.io/hugo-pipes/toCSS/#options) support.
 
 This release represents **29 contributions by 12 contributors** to the main Hugo code base. [@bep](https://github.com/bep) leads the Hugo development with a significant amount of contributions, but also a big shoutout to [@moorereason](https://github.com/moorereason), and [@davidsneighbour](https://github.com/davidsneighbour) for their ongoing contributions.
 And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) for his relentless work on keeping the themes site in pristine condition and to [@davidsneighbour](https://github.com/davidsneighbour), [@coliff](https://github.com/coliff) and [@kaushalmodi](https://github.com/kaushalmodi) for all the great work on the documentation site.
index ebcbb5ac71b0bcfd28479bc3aa3be0a815fd49cb..8b4048c60147bc00294c737f2806d2319db5ac0a 100644 (file)
@@ -154,7 +154,7 @@ Hugo now has:
 
 ## Notes
 
-* We have updated to Beta 6 of the Dart Sass Protocol which is not backwards compatible, so if you use Dart Sass you need to also update [that binary](https://gohugo.io/hugo-pipes/scss-sass/#options).
+* We have updated to Beta 6 of the Dart Sass Protocol which is not backwards compatible, so if you use Dart Sass you need to also update [that binary](https://gohugo.io/hugo-pipes/toCSS/#options).
 * `hugo gen autocomplete` now default to `stdout`; you can change this by setting `--completionfile`. As an added bonus we now also support auto completion for zsh, fish and powershell.
 
 ## Changelog
index 9912027b5d65e3e90a914048db1f316c76aad81a..a54f01115178eb8fea853b67a4775f1ebb5a0959 100644 (file)
@@ -3,7 +3,6 @@ date: 2018-07-04
 title: "Let’s celebrate Hugo’s 5th birthday"
 description: "How a side project became one of the most popular frameworks for building websites."
 categories: [blog]
-author: bep
 ---
 
 _By Bjørn Erik Pedersen ([@bepsays](https://twitter.com/bepsays) / [@bep](https://github.com/bep)), Hugo Lead_
@@ -78,7 +77,7 @@ Related to this is also to add a configurable "Markdown URL rewriter", which sho
 These are the items that first come to mind if you ask me to think even further ahead:
 
 Dependency manager for Theme Components
-: In Hugo `0.42` we added [Theme Components](/themes/theme-components/) and Theme Inheritance. With SCSS support in Hugo `0.43`, which also follows the same project/themes precedence order (add `_variables.scss` to your project, configure SASS colour variables in `config.toml`), we have a solid foundation for creating easy to use and extensible themes. But we are missing some infrastructure around this. We have a site with 235+ [themes](https://themes.gohugo.io/)[^themes] listed, but you currently need to do some added work to get the theme up and running for your site. In the Go world, we don't have NPM to use, which is a curse and a blessing, but I have some ideas about building a simple dependency manager into Hugo, modelled after how Go is doing it (`hugo install`). You should be able to configure what theme and theme components you want to use, and Hugo should handle the installation of the correct versions. This should make it easier for the user, but it would also enable community driven and even commercial "theme stores".
+: In Hugo `0.42` we added [Theme Components](/hugo-modules/theme-components) and Theme Inheritance. With SCSS support in Hugo `0.43`, which also follows the same project/themes precedence order (add `_variables.scss` to your project, configure SASS colour variables in `config.toml`), we have a solid foundation for creating easy to use and extensible themes. But we are missing some infrastructure around this. We have a site with 235+ [themes](https://themes.gohugo.io/)[^themes] listed, but you currently need to do some added work to get the theme up and running for your site. In the Go world, we don't have NPM to use, which is a curse and a blessing, but I have some ideas about building a simple dependency manager into Hugo, modelled after how Go is doing it (`hugo install`). You should be able to configure what theme and theme components you want to use, and Hugo should handle the installation of the correct versions. This should make it easier for the user, but it would also enable community driven and even commercial "theme stores".
 
 
 {{< imgproc graph-themes Fit "600x400" >}}
index 5e5e454fb9d11d99842462d4c7946cfd8060ad41..0a8d7b212ad256bad0ab9ec59b686b34a97ca9fa 100644 (file)
@@ -61,13 +61,13 @@ Spelled-out cardinal numbers (e.g. "one", "two", and "three") and ordinal abbrev
 To continue with the example above:
 
 ```go-html-template
-{{.Date.Format "Jan 2nd 2006"}}
+{{ .Date.Format "Jan 2nd 2006" }}
 ```
 
 Hugo assumes you want to append `nd` as a string to the day of the month and outputs the following:
 
 ```txt
-Mar 3nd 2017
+Mar 2nd 2017
 ```
 
 ### Use `.Local` and `.UTC`
index f0d2ecd9a4a4f1173912c2c856b46e403bee3b53..05bfb71a853e8a79b9b6226e06772bf3b562fdd9 100644 (file)
@@ -2,18 +2,13 @@
 title: Custom 404 Page
 linktitle: 404 Page
 description: If you know how to create a single page template, you have unlimited options for creating a custom 404.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [templates]
 keywords: [404, page not found]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 120
-weight: 120    #rem
-draft: false
-aliases: []
-toc: false
+weight: 120
 ---
 
 When using Hugo with [GitHub Pages](https://pages.github.com/), you can provide your own template for a [custom 404 error page](https://docs.github.com/en/pages/getting-started-with-github-pages/creating-a-custom-404-page-for-your-github-pages-site) by creating a 404.html template file in the root of your `layouts` folder. When Hugo generates your site, the `404.html` file will be placed in the root.
@@ -31,13 +26,13 @@ In addition to the standard page variables, the 404 page has access to all site
 
 This is a basic example of a 404.html template:
 
-{{< code file="layouts/404.html" download="404.html" >}}
-{{ define "main"}}
-    <main id="main">
-      <div>
-       <h1 id="title"><a href="{{ "" | relURL }}">Go Home</a></h1>
-      </div>
-    </main>
+{{< code file="layouts/404.html" >}}
+{{ define "main" }}
+  <main id="main">
+    <div>
+      <h1 id="title"><a href="{{ "" | relURL }}">Go Home</a></h1>
+    </div>
+  </main>
 {{ end }}
 {{< /code >}}
 
@@ -45,7 +40,7 @@ This is a basic example of a 404.html template:
 
 Your 404.html file can be set to load automatically when a visitor enters a mistaken URL path, dependent upon the web serving environment you are using. For example:
 
-* [GitHub Pages](/hosting-and-deployment/hosting-on-github/) and [GitLab Pages](/hosting-and-deployment/hosting-on-gitlab/). The 404 page is automatic.
+* [GitHub Pages](/hosting-and-deployment/hosting-on-github/), [GitLab Pages](/hosting-and-deployment/hosting-on-gitlab/) and [Cloudflare Pages](/hosting-and-deployment/hosting-on-cloudflare-pages/). The 404 page is automatic.
 * Apache. You can specify `ErrorDocument 404 /404.html` in an `.htaccess` file in the root of your site.
 * Nginx. You might specify `error_page 404 /404.html;` in your `nginx.conf` file. [Details here](https://nginx.org/en/docs/http/ngx_http_core_module.html#error_page).
 * Amazon AWS S3. When setting a bucket up for static web serving, you can specify the error file from within the S3 GUI.
@@ -57,10 +52,4 @@ Your 404.html file can be set to load automatically when a visitor enters a mist
 * DigitalOcean App Platform. You can specify `error_document` in your app specification file or use control panel to set up error document. [Details here](https://docs.digitalocean.com/products/app-platform/how-to/manage-static-sites/#configure-a-static-site).
 * [Firebase Hosting](https://firebase.google.com/docs/hosting/full-config#404): `/404.html` automatically gets used as the 404 page.
 
-{{% note %}}
-`hugo server` will not automatically load your custom `404.html` file, but you
-can test the appearance of your custom "not found" page by navigating your
-browser to `/404.html`.
-{{% /note %}}
-
 [pagevars]: /variables/page/
index 18ae40eaca784991d56169004677996b32dc7a3c..aad680a762b9ca3a80430f362cbb9a3804e2534c 100644 (file)
@@ -2,18 +2,12 @@
 title: Templates
 linktitle: Templates Overview
 description: Go templating, template types and lookup order, shortcodes, and data.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 01
-weight: 01     #rem
+weight: 01
 categories: [templates]
 keywords: []
-draft: false
 aliases: [/templates/overview/,/templates/content]
-toc: false
-notesforauthors:
 ---
index c82cc09a1666181465b60d81d29a8b4bf98bac71..acfc7824af9e0ae09c7fc1e7d218de9db5b3df0d 100644 (file)
@@ -1,18 +1,13 @@
 ---
 title: Base Templates and Blocks
-linktitle:
 description: The base and block constructs allow you to define the outer shell of your master templates (i.e., the chrome of the page).
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [templates,fundamentals]
 keywords: [blocks,base]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 20
 weight: 20
-sections_weight: 20
-draft: false
 aliases: [/templates/blocks/,/templates/base-templates-and-blocks/]
 toc: true
 ---
@@ -31,7 +26,7 @@ See [Template Lookup Order](/templates/lookup-order/) for details and examples.
 
 The following defines a simple base template at `_default/baseof.html`. As a default template, it is the shell from which all your pages will be rendered unless you specify another `*baseof.html` closer to the beginning of the lookup order.
 
-{{< code file="layouts/_default/baseof.html" download="baseof.html" >}}
+{{< code file="layouts/_default/baseof.html" >}}
 <!DOCTYPE html>
 <html>
   <head>
@@ -57,7 +52,7 @@ The following defines a simple base template at `_default/baseof.html`. As a def
 
 From the above base template, you can define a [default list template][hugolists]. The default list template will inherit all of the code defined above and can then implement its own `"main"` block from:
 
-{{< code file="layouts/_default/list.html" download="list.html" >}}
+{{< code file="layouts/_default/list.html" >}}
 {{ define "main" }}
   <h1>Posts</h1>
   {{ range .Pages }}
@@ -71,7 +66,7 @@ From the above base template, you can define a [default list template][hugolists
 
 This replaces the contents of our (basically empty) "main" block with something useful for the list template. In this case, we didn't define a `"title"` block, so the contents from our base template remain unchanged in lists.
 
-{{% warning %}}
+{{% note %}}
 Code that you put outside the block definitions *can* break your layout. This even includes HTML comments. For example:
 
 ```go-html-template
@@ -81,13 +76,13 @@ Code that you put outside the block definitions *can* break your layout. This ev
 {{ end }}
 ```
 [See this thread from the Hugo discussion forums.](https://discourse.gohugo.io/t/baseof-html-block-templates-and-list-types-results-in-empty-pages/5612/6)
-{{% /warning %}}
+{{% /note %}}
 
 The following shows how you can override both the `"main"` and `"title"` block areas from the base template with code unique to your [default single page template][singletemplate]:
 
-{{< code file="layouts/_default/single.html" download="single.html" >}}
+{{< code file="layouts/_default/single.html" >}}
 {{ define "title" }}
-  <!-- This will override the default value set in baseof.html; i.e., "{{.Site.Title}}" in the original example-->
+  <!-- This will override the default value set in baseof.html; i.e., "{{ .Site.Title }}" in the original example-->
   {{ .Title }} &ndash; {{ .Site.Title }}
 {{ end }}
 {{ define "main" }}
index 1586d3a54e232fc828bfe487e7364bc9fdbf8583..ee44fb60ebe19879d1e2b1db3c01930545a8b943 100644 (file)
@@ -1,17 +1,13 @@
 ---
 title: Data Templates
-linktitle:
 description: In addition to Hugo's built-in variables, you can specify your own custom data in templates or shortcodes that pull from both local and dynamic sources.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [templates]
 keywords: [data,dynamic,csv,json,toml,yaml,xml]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 80
 weight: 80
-sections_weight: 80
 aliases: [/extras/datafiles/,/extras/datadrivencontent/,/doc/datafiles/]
 toc: true
 ---
@@ -52,7 +48,7 @@ Data file|Template code
 
 ## Data Files in Themes
 
-Data Files can also be used in [Hugo themes][themes].
+Data Files can also be used in themes.
 
 However, note that the theme data files are merged with the project directory taking precedence. That is, Given two files with the same name and relative path, the data in the file in the root project `data` directory will override the data from the file in the `themes/<THEME>/data` directory *for keys that are duplicated*).
 
@@ -131,7 +127,7 @@ Achievements:
 You can use the following code to render the `Short Description` in your layout:
 
 ```go-html-template
-<div>Short Description of {{.Site.Data.User0123.Name}}: <p>{{ index .Site.Data.User0123 "Short Description" | markdownify }}</p></div>
+<div>Short Description of {{ .Site.Data.User0123.Name }}: <p>{{ index .Site.Data.User0123 "Short Description" | markdownify }}</p></div>
 ```
 
 Note the use of the [`markdownify` template function][markdownify]. This will send the description through the Markdown rendering engine.
@@ -173,13 +169,13 @@ This will resolve internally to the following:
 Both `getJSON` and `getCSV` takes an optional map as the last argument, e.g.:
 
 ```go-html-template
-{{ $data := getJSON "https://example.org/api" (dict "Authorization" "Bearer abcd")  }}
+{{ $data := getJSON "https://example.org/api" (dict "Authorization" "Bearer abcd") }}
 ```
 
 If you need multiple values for the same header key, use a slice:
 
 ```go-html-template
-{{ $data := getJSON "https://example.org/api" (dict "X-List" (slice "a" "b" "c"))  }}
+{{ $data := getJSON "https://example.org/api" (dict "X-List" (slice "a" "b" "c")) }}
 ```
 
 ### Example for CSV files
@@ -209,7 +205,7 @@ For `getCSV`, the one-character-long separator must be placed in the first posit
   </table>
 {{< /code >}}
 
-The expression `{{index $r number}}` must be used to output the nth-column from the current row.
+The expression `{{ index $r number }}` must be used to output the nth-column from the current row.
 
 ### Cache URLs
 
@@ -241,7 +237,7 @@ There is no chance to trigger a [LiveReload] when the content of a URL changes.
 
 {{% warning "URL Data and LiveReload" %}}
 If you change any local file and the LiveReload is triggered, Hugo will read the data-driven (URL) content from the cache. If you have disabled the cache (i.e., by running the server with `hugo server --ignoreCache`), Hugo will re-download the content every time LiveReload triggers. This can create *huge* traffic. You may reach API limits quickly.
-{{% /warning %}}
+{{% /note %}}
 
 ## Examples of Data-driven Content
 
@@ -258,14 +254,13 @@ If you change any local file and the LiveReload is triggered, Hugo will read the
 
 [config]: /getting-started/configuration/
 [csv]: https://tools.ietf.org/html/rfc4180
-[customize]: /themes/customizing/
+[customize]: /hugo-modules/theme-components/
 [json]: https://www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf "Specification for JSON, JavaScript Object Notation"
 [LiveReload]: /getting-started/usage/#livereload
 [lookup]: /templates/lookup-order/
 [markdownify]: /functions/markdownify/
 [OAuth]: https://en.wikipedia.org/wiki/OAuth
 [partials]: /templates/partials/
-[themes]: /themes/
 [toml]: https://github.com/toml-lang/toml
 [variadic]: https://en.wikipedia.org/wiki/Variadic_function
 [vars]: /variables/
index 697863c4cd59dffe0e0218c6d9545d3565f53bd5..1f40b7af8cf2e0575ec85c6e1644fdbaf545e6cb 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Local File Templates
-linktitle: Local File Templates
 description: Hugo's `readDir` and `readFile` functions make it easy to traverse your project's directory structure and write file contents to your templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [files,directories]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 110
 weight: 110
-sections_weight: 110
-draft: false
 aliases: [/extras/localfiles/,/templates/local-files/]
 toc: true
 ---
@@ -49,12 +43,11 @@ As `readFile` is a function, it is only available to you in your templates and n
 {{</* readfile file="/path/to/local/file.txt" markdown="true" */>}}
 ```
 
-{{% warning %}}
+{{% note %}}
 If you are going to create [custom shortcodes](/templates/shortcode-templates/) with `readFile` for a theme, note that usage of the shortcode will refer to the project root and *not* your `themes` directory.
-{{% /warning %}}
+{{% /note %}}
 
 [called directly in the Hugo docs]: https://github.com/gohugoio/hugoDocs/blob/master/content/en/templates/files.md
-[dirindex]: https://github.com/gohugoio/hugo/blob/master/docs/layouts/shortcodes/directoryindex.html
 [osfileinfo]: https://golang.org/pkg/os/#FileInfo
 [readDir]: /functions/readdir/
 [readFile]: /functions/readfile/
index ace3f259bf98d2218484690013fd796cd62e1a08..0bab21ed5eb1028c263592926db10044b4471945 100644 (file)
@@ -2,25 +2,20 @@
 title: Homepage Template
 linktitle: Homepage Template
 description: The homepage of a website is often formatted differently than the other pages. For this reason, Hugo makes it easy for you to define your new site's homepage as a unique template.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [homepage]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 30
 weight: 30
-sections_weight: 30
-draft: false
 aliases: [/layout/homepage/,/templates/homepage-template/]
 toc: true
 ---
 
 Homepage is a `Page` and therefore has all the [page variables][pagevars] and [site variables][sitevars] available for use.
 
-{{% note "The Only Required Template" %}}
+{{% note %}}
 The homepage template is the *only* required template for building a site and therefore useful when bootstrapping a new site and template. It is also the only required template if you are developing a single-page website.
 {{% /note %}}
 
@@ -38,27 +33,27 @@ See the homepage template below or [Content Organization][contentorg] for more i
 
 ## Example Homepage Template
 
-The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{.Title}}` and `{{.Content}}` [page variables][pagevars].
+The following is an example of a homepage template that uses [partial][partials], [base] templates, and a content file at `content/_index.md` to populate the `{{ .Title }}` and `{{ .Content }}` [page variables][pagevars].
 
-{{< code file="layouts/index.html" download="index.html" >}}
+{{< code file="layouts/index.html" >}}
 {{ define "main" }}
-    <main aria-role="main">
-      <header class="homepage-header">
-        <h1>{{.Title}}</h1>
-        {{ with .Params.subtitle }}
-        <span class="subtitle">{{.}}</span>
-        {{ end }}
-      </header>
-      <div class="homepage-content">
-        <!-- Note that the content for index.html, as a sort of list page, will pull from content/_index.md -->
-        {{.Content}}
-      </div>
-      <div>
-        {{ range first 10 .Site.RegularPages }}
-            {{ .Render "summary"}}
-        {{ end }}
-      </div>
-    </main>
+  <main aria-role="main">
+    <header class="homepage-header">
+      <h1>{{ .Title }}</h1>
+      {{ with .Params.subtitle }}
+      <span class="subtitle">{{ . }}</span>
+      {{ end }}
+    </header>
+    <div class="homepage-content">
+      <!-- Note that the content for index.html, as a sort of list page, will pull from content/_index.md -->
+      {{ .Content }}
+    </div>
+    <div>
+      {{ range first 10 .Site.RegularPages }}
+          {{ .Render "summary" }}
+      {{ end }}
+    </div>
+  </main>
 {{ end }}
 {{< /code >}}
 
index 05a6c862f8b46fda6e72c22588e55114ff31c69a..52e40b5a11835b1bb4973e0ea659291728d2c747 100644 (file)
@@ -1,29 +1,21 @@
 ---
 title: Internal Templates
-linktitle: Internal Templates
 description: Hugo ships with a group of boilerplate templates that cover the most common use cases for static websites.
-date: 2017-03-06
-publishdate: 2017-03-06
-lastmod: 2017-03-06
 categories: [templates]
 keywords: [internal, analytics,]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 168
 weight: 168
-sections_weight: 168
-draft: false
-aliases: []
 toc: true
-wip: true
 ---
 <!-- reference: https://discourse.gohugo.io/t/lookup-order-for-partials/5705/6
 code: https://github.com/gohugoio/hugo/blob/e445c35d6a0c7f5fc2f90f31226cd1d46e048bbc/tpl/template_embedded.go#L147 -->
 
-{{% warning %}}
+{{% note %}}
 While the following internal templates are called similar to partials, they do *not* observe the partial template lookup order.
-{{% /warning %}}
+{{% /note %}}
 
 ## Google Analytics
 
@@ -98,7 +90,7 @@ Users have noticed that enabling Disqus comments when running the Hugo web serve
 
 You can create the following `layouts/partials/disqus.html`:
 
-{{< code file="layouts/partials/disqus.html" download="disqus.html" >}}
+{{< code file="layouts/partials/disqus.html" >}}
 <div id="disqus_thread"></div>
 <script type="text/javascript">
 
index 5145b04be47bfe8c6e1c702b23c5b44418493d09..f02f1dfce0b28f19a85582810d1e3d2edc1192c9 100644 (file)
@@ -2,18 +2,13 @@
 title: Introduction to Hugo Templating
 linktitle: Templating
 description: Hugo uses Go's `html/template` and `text/template` libraries as the basis for the templating.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2022-09-20
 categories: [templates,fundamentals]
 keywords: [go]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 10
 weight: 10
-sections_weight: 10
-draft: false
 aliases: [/layouts/introduction/,/layout/introduction/, /templates/go-templates/]
 toc: true
 ---
@@ -31,8 +26,7 @@ Go Templates are HTML files with the addition of [variables][variables] and [fun
 ### Access a Predefined Variable
 
 A _predefined variable_ could be a variable already existing in the
-current scope (like the `.Title` example in the [Variables]({{< relref
-"#variables" >}}) section below) or a custom variable (like the
+current scope (like the `.Title` example in the [Variables](#variables) section below) or a custom variable (like the
 `$address` example in that same section).
 
 
@@ -142,7 +136,7 @@ Go Templates only ship with a few basic functions but also provide a mechanism f
 
 Note that both examples make use of Go Template's [math][math] functions.
 
-{{% note "Additional Boolean Operators" %}}
+{{% note %}}
 There are more boolean operators than those listed in the Hugo docs in the [Go Template documentation](https://golang.org/pkg/text/template/#hdr-Functions).
 {{% /note %}}
 
@@ -242,7 +236,7 @@ If the _map_, _array_, or _slice_ passed into the range is zero-length then the
 ```go-html-template
 {{ range $array }}
     {{ . }}
-{{else}}
+{{ else }}
     <!-- This is only evaluated if $array is empty -->
 {{ end }}
 ```
@@ -415,7 +409,7 @@ The following shows how to define a variable independent of the context.
 {{< /code >}}
 
 {{% note %}}
-Notice how once we have entered the loop (i.e. `range`), the value of `{{ . }}` has changed. We have defined a variable outside the loop (`{{$title}}`) that we've assigned a value so that we have access to the value from within the loop as well.
+Notice how once we have entered the loop (i.e. `range`), the value of `{{ . }}` has changed. We have defined a variable outside the loop (`{{ $title }}`) that we've assigned a value so that we have access to the value from within the loop as well.
 {{% /note %}}
 
 ### 2. Use `$.` to Access the Global Context
@@ -435,7 +429,7 @@ Notice how once we have entered the loop (i.e. `range`), the value of `{{ . }}`
 
 {{% warning "Don't Redefine the Dot" %}}
 The built-in magic of `$` would cease to work if someone were to mischievously redefine the special character; e.g. `{{ $ := .Site }}`. *Don't do it.* You may, of course, recover from this mischief by using `{{ $ := . }}` in a global context to reset `$` to its default value.
-{{% /warning %}}
+{{% /note %}}
 
 ## Whitespace
 
@@ -529,7 +523,7 @@ The templating engine will strip the content within the HTML comment, but will f
 
 ## Hugo Parameters
 
-Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format]({{< ref "front-matter.md#front-matter-formats" >}}).
+Hugo provides the option of passing values to your template layer through your [site configuration][config] (i.e. for site-wide values) or through the metadata of each specific piece of content (i.e. the [front matter]). You can define any values of any type and use them however you want in your templates, as long as the values are supported by the [front matter format](/content-management/front-matter#front-matter-formats).
 
 ## Use Content (`Page`) Parameters
 
@@ -537,28 +531,24 @@ You can provide variables to be used by templates in individual content's [front
 
 An example of this is used in the Hugo docs. Most of the pages benefit from having the table of contents provided, but sometimes the table of contents doesn't make a lot of sense. We've defined a `notoc` variable in our front matter that will prevent a table of contents from rendering when specifically set to `true`.
 
-Here is the example front matter (YAML):
+Here is the example front matter:
 
-```yml
----
-title: Roadmap
-lastmod: 2017-03-05
-date: 2013-11-18
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 notoc: true
----
-```
+{{< /code-toggle >}}
 
 Here is an example of corresponding code that could be used inside a `toc.html` [partial template][partials]:
 
-{{< code file="layouts/partials/toc.html" download="toc.html" >}}
+{{< code file="layouts/partials/toc.html" >}}
 {{ if not .Params.notoc }}
 <aside>
   <header>
-    <a href="#{{.Title | urlize}}">
-    <h3>{{.Title}}</h3>
+    <a href="#{{ .Title | urlize }}">
+    <h3>{{ .Title }}</h3>
     </a>
   </header>
-  {{.TableOfContents}}
+  {{ .TableOfContents }}
 </aside>
 <a href="#" id="toc-toggle"></a>
 {{ end }}
@@ -584,7 +574,7 @@ Within a footer layout, you might then declare a `<footer>` that is only rendere
 ```go-html-template
 {{ if .Site.Params.copyrighthtml }}
     <footer>
-        <div class="text-center">{{.Site.Params.CopyrightHTML | safeHTML}}</div>
+        <div class="text-center">{{ .Site.Params.CopyrightHTML | safeHTML }}</div>
     </footer>
 {{ end }}
 ```
@@ -594,8 +584,8 @@ An alternative way of writing the "`if`" and then referencing the same value is
 {{< code file="layouts/partials/twitter.html" >}}
 {{ with .Site.Params.twitteruser }}
     <div>
-        <a href="https://twitter.com/{{.}}" rel="author">
-        <img src="/images/twitter.png" width="48" height="48" title="Twitter: {{.}}" alt="Twitter"></a>
+        <a href="https://twitter.com/{{ . }}" rel="author">
+        <img src="/images/twitter.png" width="48" height="48" title="Twitter: {{ . }}" alt="Twitter"></a>
     </div>
 {{ end }}
 {{< /code >}}
@@ -607,7 +597,7 @@ Finally, you can pull "magic constants" out of your layouts as well. The followi
   <h1>Recent Posts</h1>
   <ul>
   {{- range first .Site.Params.SidebarRecentLimit .Site.Pages -}}
-      <li><a href="{{.RelPermalink}}">{{.Title}}</a></li>
+      <li><a href="{{ .RelPermalink }}">{{ .Title }}</a></li>
   {{- end -}}
   </ul>
 </nav>
@@ -625,7 +615,7 @@ content/
     └── event-3.md
 ```
 
-{{< code-toggle file="content/events/event-1.md" copy="false" >}}
+{{< code-toggle file="content/events/event-1.md" copy=false >}}
 title = 'Event 1'
 date = 2021-12-06T10:37:16-08:00
 draft = false
@@ -663,19 +653,19 @@ If you restrict front matter to the TOML format, and omit quotation marks surrou
 </ul>
 {{< /code >}}
 
-[config]: {{< relref "getting-started/configuration" >}}
 [dotdoc]: https://golang.org/pkg/text/template/#hdr-Variables
-[first]: {{< relref "functions/first" >}}
-[front matter]: {{< relref "content-management/front-matter" >}}
-[functions]: {{< relref "functions" >}}
-[internal templates]: {{< relref "templates/internal" >}}
-[isset]: {{< relref "functions/isset" >}}
-[math]: {{< relref "functions/math" >}}
-[pagevars]: {{< relref "variables/page" >}}
-[param]: {{< relref "functions/param" >}}
-[partials]: {{< relref "templates/partials" >}}
-[relpermalink]: {{< relref "variables/page#page-variables" >}}
-[safehtml]: {{< relref "functions/safehtml" >}}
-[sitevars]: {{< relref "variables/site" >}}
-[variables]: {{< relref "variables" >}}
-[with]: {{< relref "functions/with" >}}
+[config]: /getting-started/configuration
+[first]: /functions/first
+[front matter]: /content-management/front-matter
+[functions]: /functions
+[internal templates]: /templates/internal
+[isset]: /functions/isset
+[math]: /functions/math
+[pagevars]: /variables/page
+[param]: /functions/param
+[partials]: /templates/partials
+[relpermalink]: /variables/page#page-variables
+[safehtml]: /functions/safehtml
+[sitevars]: /variables/site
+[variables]: /variables
+[with]: /functions/with
diff --git a/content/en/templates/lists.md b/content/en/templates/lists.md
deleted file mode 100644 (file)
index 0384770..0000000
+++ /dev/null
@@ -1,600 +0,0 @@
----
-title: Lists of Content in Hugo
-linktitle: List Templates
-description: Lists have a specific meaning and usage in Hugo when it comes to rendering your site homepage, section page, taxonomy list, or taxonomy terms list.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
-categories: [templates]
-keywords: [lists,sections,rss,taxonomies,terms]
-menu:
-  docs:
-    parent: "templates"
-    weight: 22
-weight: 22
-sections_weight: 22
-draft: false
-aliases: [/templates/list/,/layout/indexes/]
-toc: true
----
-
-## What is a List Page Template?
-
-{{< youtube 8b2YTSMdMps >}}
-
-A list page template is a template used to render multiple pieces of content in a single HTML page. The exception to this rule is the homepage, which is still a list but has its own [dedicated template][homepage].
-
-Hugo uses the term *list* in its truest sense; i.e. a sequential arrangement of material, especially in alphabetical or numerical order. Hugo uses list templates on any output HTML page where content is traditionally listed:
-
-* [Taxonomy terms pages][taxterms]
-* [Taxonomy list pages][taxlists]
-* [Section list pages][sectiontemps]
-* [RSS][rss]
-
-For template lookup order, see [Template Lookup](/templates/lookup-order/).
-
-The idea of a list page comes from the [hierarchical mental model of the web][mentalmodel] and is best demonstrated visually:
-
-[![Image demonstrating a hierarchical website sitemap.](/images/site-hierarchy.svg)](/images/site-hierarchy.svg)
-
-## List Defaults
-
-### Default Templates
-
-Since section lists and taxonomy lists (N.B., *not* [taxonomy terms lists][taxterms]) are both *lists* with regards to their templates, both have the same terminating default of `_default/list.html` or `themes/<THEME>/layouts/_default/list.html` in their lookup order. In addition, both [section lists][sectiontemps] and [taxonomy lists][taxlists] have their own default list templates in `_default`.
-
-See [Template Lookup Order](/templates/lookup-order/) for the complete reference.
-
-## Add Content and Front Matter to List Pages
-
-Since v0.18, [everything in Hugo is a `Page`][bepsays]. This means list pages and the homepage can have associated content files (i.e. `_index.md`) that contain page metadata (i.e., front matter) and content.
-
-This new model allows you to include list-specific front matter via `.Params` and also means that list templates (e.g., `layouts/_default/list.html`) have access to all [page variables][pagevars].
-
-{{% note %}}
-It is important to note that all `_index.md` content files will render according to a *list* template and not according to a [single page template](/templates/single-page-templates/).
-{{% /note %}}
-
-### Example Project Directory
-
-The following is an example of a typical Hugo project directory's content:
-
-```txt
-.
-...
-├── content
-|   ├── posts
-|   |   ├── _index.md
-|   |   ├── post-01.md
-|   |   └── post-02.md
-|   └── quote
-|   |   ├── quote-01.md
-|   |   └── quote-02.md
-...
-```
-
-Using the above example, let's assume you have the following in `content/posts/_index.md`:
-
-{{< code file="content/posts/_index.md" >}}
----
-title: My Go Journey
-date: 2017-03-23
-publishdate: 2017-03-24
----
-
-I decided to start learning Go in March 2017.
-
-Follow my journey through this new blog.
-{{< /code >}}
-
-You can now access this `_index.md`'s' content in your list template:
-
-{{< code file="layouts/_default/list.html" download="list.html" >}}
-{{ define "main" }}
-<main>
-    <article>
-        <header>
-            <h1>{{.Title}}</h1>
-        </header>
-        <!-- "{{.Content}}" pulls from the markdown content of the corresponding _index.md -->
-        {{.Content}}
-    </article>
-    <ul>
-    <!-- Ranges through content/posts/*.md -->
-    {{ range .Pages }}
-        <li>
-            <a href="{{.Permalink}}">{{.Date.Format "2006-01-02"}} | {{.Title}}</a>
-        </li>
-    {{ end }}
-    </ul>
-</main>
-{{ end }}
-{{< /code >}}
-
-This above will output the following HTML:
-
-{{< code file="example.com/posts/index.html" copy="false" >}}
-<!--top of your baseof code-->
-<main>
-    <article>
-        <header>
-            <h1>My Go Journey</h1>
-        </header>
-        <p>I decided to start learning Go in March 2017.</p>
-        <p>Follow my journey through this new blog.</p>
-    </article>
-    <ul>
-        <li><a href="/posts/post-01/">Post 1</a></li>
-        <li><a href="/posts/post-02/">Post 2</a></li>
-    </ul>
-</main>
-<!--bottom of your baseof-->
-{{< /code >}}
-
-### List Pages Without `_index.md`
-
-You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{.Content}}` and only the default values for `.Title` etc.
-
-Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from:
-
-{{< code file="example.com/quote/index.html" copy="false" >}}
-<!--baseof-->
-<main>
-    <article>
-        <header>
-        <!-- Hugo assumes that .Title is the name of the section since there is no _index.md content file from which to pull a "title:" field -->
-            <h1>Quotes</h1>
-        </header>
-    </article>
-    <ul>
-        <li><a href="https://example.com/quote/quotes-01/">Quote 1</a></li>
-        <li><a href="https://example.com/quote/quotes-02/">Quote 2</a></li>
-    </ul>
-</main>
-<!--baseof-->
-{{< /code >}}
-
-{{% note %}}
-The default behavior of Hugo is to pluralize list titles; hence the inflection of the `quote` section to "Quotes" when called with the `.Title` [page variable](/variables/page/). You can change this via the `pluralizeListTitles` directive in your [site configuration](/getting-started/configuration/).
-{{% /note %}}
-
-## Example List Templates
-
-### Section Template
-
-This list template has been modified slightly from a template originally used in [spf13.com](https://spf13.com/). It makes use of [partial templates][partials] for the chrome of the rendered page rather than using a [base template][base]. The examples that follow also use the [content view templates][views] `li.html` or `summary.html`.
-
-{{< code file="layouts/section/posts.html" >}}
-{{ partial "header.html" . }}
-{{ partial "subheader.html" . }}
-<main>
-  <div>
-   <h1>{{ .Title }}</h1>
-        <ul>
-        <!-- Renders the li.html content view for each content/posts/*.md -->
-            {{ range .Pages }}
-                {{ .Render "li"}}
-            {{ end }}
-        </ul>
-  </div>
-</main>
-{{ partial "footer.html" . }}
-{{< /code >}}
-
-### Taxonomy Template
-
-{{< code file="layouts/_default/taxonomy.html" download="taxonomy.html" >}}
-{{ define "main" }}
-<main>
-  <div>
-   <h1>{{ .Title }}</h1>
-   <!-- ranges through each of the content files associated with a particular taxonomy term and renders the summary.html content view -->
-    {{ range .Pages }}
-        {{ .Render "summary"}}
-    {{ end }}
-  </div>
-</main>
-{{ end }}
-{{< /code >}}
-
-## Order Content
-
-Hugo lists render the content based on metadata you provide in [front matter]. In addition to sane defaults, Hugo also ships with multiple methods to make quick work of ordering content inside list templates:
-
-### Default: Weight > Date > LinkTitle > FilePath
-
-{{< code file="layouts/partials/default-order.html" >}}
-<ul>
-    {{ range .Pages }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Weight
-
-Lower weight gets higher precedence. So content with lower weight will come first.
-
-{{< code file="layouts/partials/by-weight.html" >}}
-<ul>
-    {{ range .Pages.ByWeight }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Date
-
-{{< code file="layouts/partials/by-date.html" >}}
-<ul>
-    <!-- orders content according to the "date" field in front matter -->
-    {{ range .Pages.ByDate }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Publish Date
-
-{{< code file="layouts/partials/by-publish-date.html" >}}
-<ul>
-    <!-- orders content according to the "publishdate" field in front matter -->
-    {{ range .Pages.ByPublishDate }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Expiration Date
-
-{{< code file="layouts/partials/by-expiry-date.html" >}}
-<ul>
-    {{ range .Pages.ByExpiryDate }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Last Modified Date
-
-{{< code file="layouts/partials/by-last-mod.html" >}}
-<ul>
-    <!-- orders content according to the "lastmod" field in front matter -->
-    {{ range .Pages.ByLastmod }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Length
-
-{{< code file="layouts/partials/by-length.html" >}}
-<ul>
-    <!-- orders content according to content length in ascending order (i.e., the shortest content will be listed first) -->
-    {{ range .Pages.ByLength }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Title
-
-{{< code file="layouts/partials/by-title.html" >}}
-<ul>
-    <!-- ranges through content in ascending order according to the "title" field set in front matter -->
-    {{ range .Pages.ByTitle }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Link Title
-
-{{< code file="layouts/partials/by-link-title.html" >}}
-<ul>
-    <!-- ranges through content in ascending order according to the "linktitle" field in front matter. If a "linktitle" field is not set, the range will start with content that only has a "title" field and use that value for .LinkTitle -->
-    {{ range .Pages.ByLinkTitle }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-### By Parameter
-
-Order based on the specified front matter parameter. Content that does not have the specified front matter field  will use the site's `.Site.Params` default. If the parameter is not found at all in some entries, those entries will appear together at the end of the ordering.
-
-{{< code file="layouts/partials/by-rating.html" >}}
-<!-- Ranges through content according to the "rating" field set in front matter -->
-{{ range (.Pages.ByParam "rating") }}
-  <!-- ... -->
-{{ end }}
-{{< /code >}}
-
-If the targeted front matter field is nested beneath another field, you can access the field using dot notation.
-
-{{< code file="layouts/partials/by-nested-param.html" >}}
-{{ range (.Pages.ByParam "author.last_name") }}
-  <!-- ... -->
-{{ end }}
-{{< /code >}}
-
-### Reverse Order
-
-Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
-
-{{< code file="layouts/partials/by-date-reverse.html" >}}
-<ul>
-    {{ range .Pages.ByDate.Reverse }}
-        <li>
-            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
-            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
-        </li>
-    {{ end }}
-</ul>
-{{< /code >}}
-
-## Group Content
-
-Hugo provides some functions for grouping pages by Section, Type, Date, etc.
-
-### By Page Field
-
-{{< code file="layouts/partials/by-page-field.html" >}}
-<!-- Groups content according to content section. The ".Key" in this instance will be the section's title. -->
-{{ range .Pages.GroupBy "Section" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-In the above example, you may want `{{.Title}}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]:
-
-{{< code file="layouts/partials/by-page-field.html" >}}
-<!-- Groups content according to content section.-->
-{{ range .Pages.GroupBy "Section" }}
-<!-- Checks for existence of _index.md for a section; if available, pulls from "title" in front matter -->
-{{ with $.Site.GetPage "section" .Key }}
-<h3>{{.Title}}</h3>
-{{ else }}
-<!-- If no _index.md is available, ".Key" defaults to the section title and filters to title casing -->
-<h3>{{ .Key | title }}</h3>
-{{ end }}
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-### By Date
-
-{{< code file="layouts/partials/by-page-date.html" >}}
-<!-- Groups content by month according to the "date" field in front matter -->
-{{ range .Pages.GroupByDate "2006-01" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
-
-### By Publish Date
-
-{{< code file="layouts/partials/by-page-publish-date.html" >}}
-<!-- Groups content by month according to the "publishDate" field in front matter -->
-{{ range .Pages.GroupByPublishDate "2006-01" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
-
-### By Lastmod
-
-{{< code file="layouts/partials/by-page-lastmod.html" >}}
-<!-- Groups content by month according to the "lastMod" field in front matter -->
-{{ range .Pages.GroupByLastmod "2006-01" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Lastmod.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
-
-### By Expiry Date
-
-{{< code file="layouts/partials/by-page-expiry-date.html" >}}
-<!-- Groups content by month according to the "expiryDate" field in front matter -->
-{{ range .Pages.GroupByExpiryDate "2006-01" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .ExpiryDate.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
-
-### By Page Parameter
-
-{{< code file="layouts/partials/by-page-param.html" >}}
-<!-- Groups content according to the "param_key" field in front matter -->
-{{ range .Pages.GroupByParam "param_key" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-### By Page Parameter in Date Format
-
-The following template takes grouping by `date` a step further and uses Go's layout string. See the [`Format` function] for more examples of how to use Go's layout string to format dates in Hugo.
-
-{{< code file="layouts/partials/by-page-param-as-date.html" >}}
-<!-- Groups content by month according to the "param_key" field in front matter -->
-{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-### Reverse Key Order
-
-Ordering of groups is performed by keys in alphanumeric order (A–Z, 1–100) and in reverse chronological order (i.e., with the newest first) for dates.
-
-While these are logical defaults, they are not always the desired order. There are two different syntaxes to change Hugo's default ordering for groups, both of which work the same way.
-
-#### 1. Adding the Reverse Method
-
-```go-html-template
-{{ range (.Pages.GroupBy "Section").Reverse }}
-```
-
-```go-html-template
-{{ range (.Pages.GroupByDate "2006-01").Reverse }}
-```
-
-#### 2. Providing the Alternate Direction
-
-```go-html-template
-{{ range .Pages.GroupByDate "2006-01" "asc" }}
-```
-
-```go-html-template
-{{ range .Pages.GroupBy "Section" "desc" }}
-```
-
-### Order Within Groups
-
-Because Grouping returns a `{{.Key}}` and a slice of pages, all the ordering methods listed above are available.
-
-Here is the ordering for the example that follows:
-
-1. Content is grouped by month according to the `date` field in front matter.
-2. Groups are listed in ascending order (i.e., the oldest groups first)
-3. Pages within each respective group are ordered alphabetically according to the `title`.
-
-{{< code file="layouts/partials/by-group-by-page.html" >}}
-{{ range .Pages.GroupByDate "2006-01" "asc" }}
-<h3>{{ .Key }}</h3>
-<ul>
-    {{ range .Pages.ByTitle }}
-    <li>
-    <a href="{{ .Permalink }}">{{ .Title }}</a>
-    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
-    </li>
-    {{ end }}
-</ul>
-{{ end }}
-{{< /code >}}
-
-## Filtering and Limiting Lists {#filtering-and-limiting-lists}
-
-Sometimes you only want to list a subset of the available content. A
-common is to only display posts from [**main sections**][mainsections]
-on the blog's homepage.
-
-See the documentation on [`where` function][wherefunction] and
-[`first` function][firstfunction] for further details.
-
-[base]: /templates/base/
-[bepsays]: https://bepsays.com/en/2016/12/19/hugo-018/
-[directorystructure]: /getting-started/directory-structure/
-[`Format` function]: /functions/format/
-[front matter]: /content-management/front-matter/
-[getpage]: /functions/getpage/
-[homepage]: /templates/homepage/
-[homepage]: /templates/homepage/
-[mentalmodel]: https://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html
-[pagevars]: /variables/page/
-[partials]: /templates/partials/
-[RSS 2.0]: https://cyber.harvard.edu/rss/rss.html "RSS 2.0 Specification"
-[rss]: /templates/rss/
-[sections]: /content-management/sections/
-[sectiontemps]: /templates/section-templates/
-[sitevars]: /variables/site/
-[taxlists]: /templates/taxonomy-templates/#taxonomy-list-templates
-[taxterms]: /templates/taxonomy-templates/#taxonomy-terms-templates
-[taxvars]: /variables/taxonomy/
-[views]: /templates/views/
-[wherefunction]: /functions/where/
-[firstfunction]: /functions/first/
-[mainsections]: /functions/where/#mainsections
diff --git a/content/en/templates/lists/index.md b/content/en/templates/lists/index.md
new file mode 100644 (file)
index 0000000..08d3d21
--- /dev/null
@@ -0,0 +1,595 @@
+---
+title: Lists of Content in Hugo
+linktitle: List Templates
+description: Lists have a specific meaning and usage in Hugo when it comes to rendering your site homepage, section page, taxonomy list, or taxonomy terms list.
+categories: [templates]
+keywords: [lists,sections,rss,taxonomies,terms]
+menu:
+  docs:
+    parent: templates
+    weight: 22
+weight: 22
+aliases: [/templates/list/,/layout/indexes/]
+toc: true
+---
+
+## What is a List Page Template?
+
+{{< youtube 8b2YTSMdMps >}}
+
+A list page template is a template used to render multiple pieces of content in a single HTML page. The exception to this rule is the homepage, which is still a list but has its own [dedicated template][homepage].
+
+Hugo uses the term *list* in its truest sense; i.e. a sequential arrangement of material, especially in alphabetical or numerical order. Hugo uses list templates on any output HTML page where content is traditionally listed:
+
+* [Taxonomy terms pages][taxterms]
+* [Taxonomy list pages][taxlists]
+* [Section list pages][sectiontemps]
+* [RSS][rss]
+
+For template lookup order, see [Template Lookup](/templates/lookup-order/).
+
+The idea of a list page comes from the [hierarchical mental model of the web][mentalmodel] and is best demonstrated visually:
+
+[![Image demonstrating a hierarchical website sitemap.](site-hierarchy.svg)](site-hierarchy.svg)
+
+## List Defaults
+
+### Default Templates
+
+Since section lists and taxonomy lists (N.B., *not* [taxonomy terms lists][taxterms]) are both *lists* with regards to their templates, both have the same terminating default of `_default/list.html` or `themes/<THEME>/layouts/_default/list.html` in their lookup order. In addition, both [section lists][sectiontemps] and [taxonomy lists][taxlists] have their own default list templates in `_default`.
+
+See [Template Lookup Order](/templates/lookup-order/) for the complete reference.
+
+## Add Content and Front Matter to List Pages
+
+Since v0.18, [everything in Hugo is a `Page`][bepsays]. This means list pages and the homepage can have associated content files (i.e. `_index.md`) that contain page metadata (i.e., front matter) and content.
+
+This new model allows you to include list-specific front matter via `.Params` and also means that list templates (e.g., `layouts/_default/list.html`) have access to all [page variables][pagevars].
+
+{{% note %}}
+It is important to note that all `_index.md` content files will render according to a *list* template and not according to a [single page template](/templates/single-page-templates/).
+{{% /note %}}
+
+### Example Project Directory
+
+The following is an example of a typical Hugo project directory's content:
+
+```txt
+.
+...
+├── content
+|   ├── posts
+|   |   ├── _index.md
+|   |   ├── post-01.md
+|   |   └── post-02.md
+|   └── quote
+|   |   ├── quote-01.md
+|   |   └── quote-02.md
+...
+```
+
+Using the above example, let's assume you have the following in `content/posts/_index.md`:
+
+{{< code file="content/posts/_index.md" >}}
+---
+title: My Go Journey
+date: 2017-03-23
+publishdate: 2017-03-24
+---
+
+I decided to start learning Go in March 2017.
+
+Follow my journey through this new blog.
+{{< /code >}}
+
+You can now access this `_index.md`'s' content in your list template:
+
+{{< code file="layouts/_default/list.html" >}}
+{{ define "main" }}
+<main>
+  <article>
+    <header>
+      <h1>{{ .Title} }</h1>
+    </header>
+    <!-- "{{ .Content} }" pulls from the markdown content of the corresponding _index.md -->
+    {{ .Content }}
+  </article>
+  <ul>
+    <!-- Ranges through content/posts/*.md -->
+    {{ range .Pages }}
+      <li>
+        <a href="{{ .Permalink }}">{{ .Date.Format "2006-01-02" }} | {{ .Title }}</a>
+      </li>
+    {{ end }}
+  </ul>
+</main>
+{{ end }}
+{{< /code >}}
+
+This above will output the following HTML:
+
+{{< code file="example.com/posts/index.html" copy=false >}}
+<!--top of your baseof code-->
+<main>
+    <article>
+        <header>
+            <h1>My Go Journey</h1>
+        </header>
+        <p>I decided to start learning Go in March 2017.</p>
+        <p>Follow my journey through this new blog.</p>
+    </article>
+    <ul>
+        <li><a href="/posts/post-01/">Post 1</a></li>
+        <li><a href="/posts/post-02/">Post 2</a></li>
+    </ul>
+</main>
+<!--bottom of your baseof-->
+{{< /code >}}
+
+### List Pages Without `_index.md`
+
+You do *not* have to create an `_index.md` file for every list page (i.e. section, taxonomy, taxonomy terms, etc) or the homepage. If Hugo does not find an `_index.md` within the respective content section when rendering a list template, the page will be created but with no `{{ .Content }}` and only the default values for `.Title` etc.
+
+Using this same `layouts/_default/list.html` template and applying it to the `quotes` section above will render the following output. Note that `quotes` does not have an `_index.md` file to pull from:
+
+{{< code file="example.com/quote/index.html" copy=false >}}
+<!--baseof-->
+<main>
+    <article>
+        <header>
+        <!-- Hugo assumes that .Title is the name of the section since there is no _index.md content file from which to pull a "title:" field -->
+            <h1>Quotes</h1>
+        </header>
+    </article>
+    <ul>
+        <li><a href="https://example.com/quote/quotes-01/">Quote 1</a></li>
+        <li><a href="https://example.com/quote/quotes-02/">Quote 2</a></li>
+    </ul>
+</main>
+<!--baseof-->
+{{< /code >}}
+
+{{% note %}}
+The default behavior of Hugo is to pluralize list titles; hence the inflection of the `quote` section to "Quotes" when called with the `.Title` [page variable](/variables/page/). You can change this via the `pluralizeListTitles` directive in your [site configuration](/getting-started/configuration/).
+{{% /note %}}
+
+## Example List Templates
+
+### Section Template
+
+This list template has been modified slightly from a template originally used in [spf13.com](https://spf13.com/). It makes use of [partial templates][partials] for the chrome of the rendered page rather than using a [base template][base]. The examples that follow also use the [content view templates][views] `li.html` or `summary.html`.
+
+{{< code file="layouts/section/posts.html" >}}
+{{ partial "header.html" . }}
+{{ partial "subheader.html" . }}
+<main>
+  <div>
+   <h1>{{ .Title }}</h1>
+        <ul>
+        <!-- Renders the li.html content view for each content/posts/*.md -->
+            {{ range .Pages }}
+                {{ .Render "li" }}
+            {{ end }}
+        </ul>
+  </div>
+</main>
+{{ partial "footer.html" . }}
+{{< /code >}}
+
+### Taxonomy Template
+
+{{< code file="layouts/_default/taxonomy.html" >}}
+{{ define "main" }}
+<main>
+  <div>
+   <h1>{{ .Title }}</h1>
+   <!-- ranges through each of the content files associated with a particular taxonomy term and renders the summary.html content view -->
+    {{ range .Pages }}
+        {{ .Render "summary" }}
+    {{ end }}
+  </div>
+</main>
+{{ end }}
+{{< /code >}}
+
+## Order Content
+
+Hugo lists render the content based on metadata you provide in [front matter]. In addition to sane defaults, Hugo also ships with multiple methods to make quick work of ordering content inside list templates:
+
+### Default: Weight > Date > LinkTitle > FilePath
+
+{{< code file="layouts/partials/default-order.html" >}}
+<ul>
+    {{ range .Pages }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Weight
+
+Lower weight gets higher precedence. So content with lower weight will come first.
+
+{{< code file="layouts/partials/by-weight.html" >}}
+<ul>
+    {{ range .Pages.ByWeight }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Date
+
+{{< code file="layouts/partials/by-date.html" >}}
+<ul>
+    <!-- orders content according to the "date" field in front matter -->
+    {{ range .Pages.ByDate }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Publish Date
+
+{{< code file="layouts/partials/by-publish-date.html" >}}
+<ul>
+    <!-- orders content according to the "publishdate" field in front matter -->
+    {{ range .Pages.ByPublishDate }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Expiration Date
+
+{{< code file="layouts/partials/by-expiry-date.html" >}}
+<ul>
+    {{ range .Pages.ByExpiryDate }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Last Modified Date
+
+{{< code file="layouts/partials/by-last-mod.html" >}}
+<ul>
+    <!-- orders content according to the "lastmod" field in front matter -->
+    {{ range .Pages.ByLastmod }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Length
+
+{{< code file="layouts/partials/by-length.html" >}}
+<ul>
+    <!-- orders content according to content length in ascending order (i.e., the shortest content will be listed first) -->
+    {{ range .Pages.ByLength }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Title
+
+{{< code file="layouts/partials/by-title.html" >}}
+<ul>
+    <!-- ranges through content in ascending order according to the "title" field set in front matter -->
+    {{ range .Pages.ByTitle }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Link Title
+
+{{< code file="layouts/partials/by-link-title.html" >}}
+<ul>
+    <!-- ranges through content in ascending order according to the "linktitle" field in front matter. If a "linktitle" field is not set, the range will start with content that only has a "title" field and use that value for .LinkTitle -->
+    {{ range .Pages.ByLinkTitle }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+### By Parameter
+
+Order based on the specified front matter parameter. Content that does not have the specified front matter field  will use the site's `.Site.Params` default. If the parameter is not found at all in some entries, those entries will appear together at the end of the ordering.
+
+{{< code file="layouts/partials/by-rating.html" >}}
+<!-- Ranges through content according to the "rating" field set in front matter -->
+{{ range (.Pages.ByParam "rating") }}
+  <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+If the targeted front matter field is nested beneath another field, you can access the field using dot notation.
+
+{{< code file="layouts/partials/by-nested-param.html" >}}
+{{ range (.Pages.ByParam "author.last_name") }}
+  <!-- ... -->
+{{ end }}
+{{< /code >}}
+
+### Reverse Order
+
+Reversing order can be applied to any of the above methods. The following uses `ByDate` as an example:
+
+{{< code file="layouts/partials/by-date-reverse.html" >}}
+<ul>
+    {{ range .Pages.ByDate.Reverse }}
+        <li>
+            <h1><a href="{{ .Permalink }}">{{ .Title }}</a></h1>
+            <time>{{ .Date.Format "Mon, Jan 2, 2006" }}</time>
+        </li>
+    {{ end }}
+</ul>
+{{< /code >}}
+
+## Group Content
+
+Hugo provides some functions for grouping pages by Section, Type, Date, etc.
+
+### By Page Field
+
+{{< code file="layouts/partials/by-page-field.html" >}}
+<!-- Groups content according to content section. The ".Key" in this instance will be the section's title. -->
+{{ range .Pages.GroupBy "Section" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+In the above example, you may want `{{ .Title }}` to point the `title` field you have added to your `_index.md` file instead. You can access this value using the [`.GetPage` function][getpage]:
+
+{{< code file="layouts/partials/by-page-field.html" >}}
+<!-- Groups content according to content section.-->
+{{ range .Pages.GroupBy "Section" }}
+<!-- Checks for existence of _index.md for a section; if available, pulls from "title" in front matter -->
+{{ with $.Site.GetPage "section" .Key }}
+<h3>{{ .Title }}</h3>
+{{ else }}
+<!-- If no _index.md is available, ".Key" defaults to the section title and filters to title casing -->
+<h3>{{ .Key | title }}</h3>
+{{ end }}
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Date
+
+{{< code file="layouts/partials/by-page-date.html" >}}
+<!-- Groups content by month according to the "date" field in front matter -->
+{{ range .Pages.GroupByDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
+
+### By Publish Date
+
+{{< code file="layouts/partials/by-page-publish-date.html" >}}
+<!-- Groups content by month according to the "publishDate" field in front matter -->
+{{ range .Pages.GroupByPublishDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .PublishDate.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
+
+### By Lastmod
+
+{{< code file="layouts/partials/by-page-lastmod.html" >}}
+<!-- Groups content by month according to the "lastMod" field in front matter -->
+{{ range .Pages.GroupByLastmod "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Lastmod.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
+
+### By Expiry Date
+
+{{< code file="layouts/partials/by-page-expiry-date.html" >}}
+<!-- Groups content by month according to the "expiryDate" field in front matter -->
+{{ range .Pages.GroupByExpiryDate "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .ExpiryDate.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+{{< new-in "0.97.0" >}} `GroupByDate` accepts the same time layouts as in [time.Format](/functions/dateformat/) and The `.Key` in the result will be localized for the current language.
+
+### By Page Parameter
+
+{{< code file="layouts/partials/by-page-param.html" >}}
+<!-- Groups content according to the "param_key" field in front matter -->
+{{ range .Pages.GroupByParam "param_key" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### By Page Parameter in Date Format
+
+The following template takes grouping by `date` a step further and uses Go's layout string. See the [`Format` function] for more examples of how to use Go's layout string to format dates in Hugo.
+
+{{< code file="layouts/partials/by-page-param-as-date.html" >}}
+<!-- Groups content by month according to the "param_key" field in front matter -->
+{{ range .Pages.GroupByParamDate "param_key" "2006-01" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+### Reverse Key Order
+
+Ordering of groups is performed by keys in alphanumeric order (A–Z, 1–100) and in reverse chronological order (i.e., with the newest first) for dates.
+
+While these are logical defaults, they are not always the desired order. There are two different syntaxes to change Hugo's default ordering for groups, both of which work the same way.
+
+#### 1. Adding the Reverse Method
+
+```go-html-template
+{{ range (.Pages.GroupBy "Section").Reverse }}
+```
+
+```go-html-template
+{{ range (.Pages.GroupByDate "2006-01").Reverse }}
+```
+
+#### 2. Providing the Alternate Direction
+
+```go-html-template
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+```
+
+```go-html-template
+{{ range .Pages.GroupBy "Section" "desc" }}
+```
+
+### Order Within Groups
+
+Because Grouping returns a `{{ .Key }}` and a slice of pages, all the ordering methods listed above are available.
+
+Here is the ordering for the example that follows:
+
+1. Content is grouped by month according to the `date` field in front matter.
+2. Groups are listed in ascending order (i.e., the oldest groups first)
+3. Pages within each respective group are ordered alphabetically according to the `title`.
+
+{{< code file="layouts/partials/by-group-by-page.html" >}}
+{{ range .Pages.GroupByDate "2006-01" "asc" }}
+<h3>{{ .Key }}</h3>
+<ul>
+    {{ range .Pages.ByTitle }}
+    <li>
+    <a href="{{ .Permalink }}">{{ .Title }}</a>
+    <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+    </li>
+    {{ end }}
+</ul>
+{{ end }}
+{{< /code >}}
+
+## Filtering and Limiting Lists {#filtering-and-limiting-lists}
+
+Sometimes you only want to list a subset of the available content. A
+common is to only display posts from [**main sections**][mainsections]
+on the blog's homepage.
+
+See the documentation on [`where` function][wherefunction] and
+[`first` function][firstfunction] for further details.
+
+[base]: /templates/base/
+[bepsays]: https://bepsays.com/en/2016/12/19/hugo-018/
+[directorystructure]: /getting-started/directory-structure/
+[`Format` function]: /functions/format/
+[front matter]: /content-management/front-matter/
+[getpage]: /functions/getpage/
+[homepage]: /templates/homepage/
+[homepage]: /templates/homepage/
+[mentalmodel]: https://webstyleguide.com/wsg3/3-information-architecture/3-site-structure.html
+[pagevars]: /variables/page/
+[partials]: /templates/partials/
+[RSS 2.0]: https://cyber.harvard.edu/rss/rss.html "RSS 2.0 Specification"
+[rss]: /templates/rss/
+[sections]: /content-management/sections/
+[sectiontemps]: /templates/section-templates/
+[sitevars]: /variables/site/
+[taxlists]: /templates/taxonomy-templates/#taxonomy-list-templates
+[taxterms]: /templates/taxonomy-templates/#taxonomy-terms-templates
+[taxvars]: /variables/taxonomy/
+[views]: /templates/views/
+[wherefunction]: /functions/where/
+[firstfunction]: /functions/first/
+[mainsections]: /functions/where/#mainsections
diff --git a/content/en/templates/lists/site-hierarchy.svg b/content/en/templates/lists/site-hierarchy.svg
new file mode 100644 (file)
index 0000000..3c74487
--- /dev/null
@@ -0,0 +1 @@
+<svg height="446" viewBox="0 0 1730 446" width="1730" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd" transform="translate(.538462 .461538)"><g transform="translate(2.996935 .388277)"><path d="m64.0494614 5.00059856 58.8489506 34.18916364v67.3333318l-58.8489506 33.404195-58.75248965-33.404195v-67.3333318z" fill="#ff4088"/><path d="m126.283637 35.8185172 1.230228 2.1375217v69.8133611l-1.253295 2.152899-60.9934622 34.621142h-2.4387878l-60.89490434-34.623239-1.25189712-2.1522v-69.8112641l1.22883034-2.1368227 60.89280732-35.43476985h2.4891154zm-116.37121203 6.0253228v61.994421l54.13913343 30.780872 54.2320996-30.782969v-61.990227l-54.2320996-31.5064271z" fill="#c9177e"/></g><path d="m60.4490685 78.3838073h-16.0432056v-32.93617h-27.9340521v32.93617h-16.04320555v-77.90259702h16.04320555v32.56189542h27.9340521v-32.56189542h16.0432056z" fill="#fff" fill-rule="nonzero" transform="translate(35.169824 33.865851)"/><g transform="translate(329.992265 24.431705)"><path d="m.21765.21067h263.332986v115.673517h-263.332986z" fill="#0083c0"/><path d="m263.550636 115.884187h-263.33298624v-115.6735171h263.33298624zm-260.79463916-113.13482905v110.59614105h258.25629216v-110.59614105z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(352.419436 42.870159)"><path d="m22.7288949.05688029h3.6312065v31.52968501h-3.6312065v-14.4804699h-18.90904412v14.4804699h-3.58685032v-31.52968501h3.58685032v13.99359541h18.90904412z"/><path d="m37.3865286 30.4794869c-1.5939528-.9445259-2.826533-2.2879966-3.6974799-4.0296294-.8709468-1.7418937-1.3064203-3.7788866-1.3064203-6.1112394 0-2.332092.4354735-4.3693457 1.3064203-6.1109785.8709469-1.7418937 2.1035271-3.0851036 3.6974799-4.0298904 1.5942137-.94478689 3.4394312-1.41704986 5.5356526-1.41704986 2.0959605 0 3.941178.47226297 5.5353917 1.41704986 1.5942137.9447868 2.826533 2.2879967 3.6974799 4.0298904.8709468 1.7416328 1.3064203 3.7788865 1.3064203 6.1109785 0 2.3323528-.4354735 4.3693457-1.3064203 6.1112394-.8709469 1.7416328-2.1032662 3.0851035-3.6974799 4.0296294-1.5942137.9447869-3.4394312 1.4170499-5.5353917 1.4170499-2.0962214 0-3.9414389-.472263-5.5356526-1.4170499zm10.6280042-3.741836c1.1809184-1.461406 1.7713776-3.594417 1.7713776-6.3990328 0-2.7159035-.6050707-4.8194306-1.8154728-6.3103205-1.2104022-1.4908898-2.8933283-2.2363347-5.0482564-2.2363347-2.1846728 0-3.8822104.7454449-5.0926125 2.2363347-1.2104022 1.4908899-1.8157337 3.594417-1.8157337 6.3103205 0 2.8046158.5977649 4.9376268 1.7935556 6.3990328 1.1955298 1.461406 2.9006339 2.1919786 5.1147906 2.1919786s3.9116942-.7305726 5.0923516-2.1919786z"/><path d="m91.1464927 17.5929699v13.9935954h-3.5868503v-13.8164316c0-2.0959605-.3616334-3.6163341-1.0849002-4.561121-.7232669-.9447869-1.8968795-1.4170498-3.520577-1.4170498-1.8893128 0-3.3655912.6348153-4.4283133 1.9041851-1.0627222 1.2693698-1.5942137 2.9966521-1.5942137 5.181064v12.7093533h-3.5868503v-13.8164316c0-2.0664767-.3692001-3.5795446-1.1070784-4.5389429-.7381392-.9593983-1.9190575-1.4392279-3.542755-1.4392279-1.8893128 0-3.3728969.6348153-4.4504915 1.9041851-1.0775945 1.2693698-1.6163917 2.9966521-1.6163917 5.181064v12.7093533h-3.5868504v-16.0305883c0-2.3026081-.1181962-4.3839571-.3543276-6.24378613h3.4099473l.3540668 3.89682183c.619943-1.4170498 1.5425518-2.5092558 2.7678263-3.27687883 1.2252746-.76762302 2.6496301-1.15143453 4.2733276-1.15143453 1.7713775 0 3.2179112.35432769 4.3398619 1.06272215 1.1216898.70865541 1.9482805 1.80086131 2.479772 3.27713971.6789106-1.3285983 1.6753594-2.3840148 2.9890854-3.16624924 1.313726-.78249538 2.7973101-1.17361262 4.4504915-1.17361262 4.930321 0 7.3952206 2.93742346 7.3952206 8.81227056z"/><path d="m116.609555 20.3386181h-16.340559c.029483 2.8340996.686477 4.9744163 1.970458 6.4212109 1.284242 1.4465336 3.151638 2.1698005 5.601926 2.1698005 2.597968 0 4.989289-.8709469 7.173962-2.6128406l1.19553 2.6128406c-.974271.915303-2.221463 1.6385698-3.741837 2.1698004-1.520373.5314916-3.077797.7971069-4.672011.7971069-3.483526 0-6.214302-1.0259326-8.1923275-3.0775369-1.9780252-2.0518652-2.9669073-4.8637868-2.9669073-8.4360256 0-2.2731244.4427791-4.2882 1.3283374-6.0447052.8858192-1.7565051 2.1257054-3.121893 3.7199194-4.0961637 1.594213-.97427072 3.409686-1.46140606 5.44694-1.46140606 2.952035 0 5.269515.96696496 6.952441 2.90063396 1.682665 1.933669 2.524128 4.5979105 2.524128 7.9929856zm-13.971417-7.0852492c-1.166046 1.1216898-1.911491 2.701292-2.236335 4.7382848h12.974969c-.177164-2.0959604-.789801-3.6901741-1.837651-4.782641-1.048111-1.092206-2.50195-1.6385699-4.36204-1.6385699-1.859829 0-3.372897.5609754-4.538943 1.6829261z"/><path d="m138.352699 10.2421054c1.505502.9742707 2.671548 2.3396586 3.498399 4.0961637.826591 1.7565052 1.239886 3.7861923 1.239886 6.0890613 0 2.3026082-.413295 4.3174229-1.239886 6.0444443-.826851 1.7272822-1.985592 3.0631863-3.476221 4.0077122-1.49089.9447869-3.225478 1.4170499-5.203503 1.4170499-1.741632 0-3.262006-.3838115-4.561121-1.1511736-1.298853-.767623-2.287996-1.8600899-2.966907-3.2771398v13.683624h-3.587111v-25.5958704c0-2.3026081-.117936-4.3839571-.354067-6.24378613h3.409686l.354328 4.29550573c.619943-1.5352461 1.60152-2.7234701 2.944729-3.5649332 1.343471-.841463 2.930118-1.26206406 4.760463-1.26206406 1.948542 0 3.675563.48713534 5.181325 1.46140606zm-.774929 16.4733674c1.19553-1.4760175 1.793295-3.5722389 1.793295-6.2881424 0-2.7161643-.60507-4.8343029-1.815473-6.3546766-1.210402-1.5203736-2.893328-2.2806909-5.048256-2.2806909-2.214418 0-3.911694.7381392-5.092613 2.2141566-1.180918 1.4760175-1.771377 3.5868504-1.771377 6.3324986s.590459 4.8637867 1.771377 6.3546766c1.180919 1.4908898 2.878195 2.2363348 5.092613 2.2363348 2.184412 0 3.874644-.7381392 5.070434-2.2141567z"/><path d="m168.243032 9.31219087v22.27437443h-3.540668v-4.0296295c-.649688 1.387566-1.633352 2.4575939-2.945773 3.2103445-1.313987.7530116-2.841666 1.1292565-4.58356 1.1292565-1.978025 0-3.712352-.472263-5.203242-1.4170499-1.49089-.9445259-2.642325-2.28043-3.454043-4.0077122-.811979-1.7270214-1.217969-3.7418361-1.217969-6.0444443 0-2.302869.413296-4.3325561 1.239886-6.0890613.826852-1.7565051 1.985592-3.121893 3.476221-4.0961637 1.49089-.97427072 3.210606-1.46140606 5.159147-1.46140606 1.741894 0 3.262267.38381151 4.560077 1.15143453 1.299376.76762303 2.288258 1.84521753 2.969256 3.23252263v-3.85246563zm-5.312307 17.38110383c1.179353-1.4908899 1.771639-3.6090284 1.771639-6.3546766s-.592286-4.8564811-1.771639-6.3324986c-1.181962-1.4760174-2.864627-2.2141566-5.0493-2.2141566-2.184412 0-3.889516.7603173-5.114529 2.2806909-1.225275 1.5203737-1.837912 3.6385123-1.837912 6.3546766 0 2.7159035.605331 4.8121249 1.815734 6.2881424 1.210402 1.4760175 2.922551 2.2141567 5.136707 2.2141567 2.184673 0 3.867338-.745445 5.0493-2.2363348z"/><path d="m195.034171 9.31219087v22.09721053c0 3.3066236-.847986 5.8085737-2.543958 7.5061112-1.698581 1.6975375-4.200792 2.5463063-7.506633 2.5463063-3.394553 0-6.319453-.7676231-8.76948-2.3028691l.620987-2.9225511c1.416789.7971068 2.752693 1.3726936 4.007712 1.7270213s2.63528.5314915 4.140781.5314915c2.155189 0 3.778104-.568281 4.871353-1.7051041 1.090641-1.1365622 1.63857-2.826533 1.63857-5.0704345v-5.2695154c-.680998 1.4170498-1.675098 2.5165615-2.990129 3.2990569-1.315031.7822345-2.870106 1.1733517-4.670446 1.1733517-1.949063 0-3.684173-.4573906-5.205329-1.3726936-1.518548-.9150422-2.692682-2.2141567-3.519795-3.8968219-.827112-1.682926-1.239364-3.616595-1.239364-5.8012679 0-2.1846728.412252-4.1183418 1.239364-5.801007.827113-1.682926 2.001247-2.9817797 3.519795-3.8970827 1.521156-.91504214 3.256266-1.37269366 5.205329-1.37269366 1.769029 0 3.313668.38381151 4.62609 1.15143453 1.31503.76762303 2.309131 1.84521753 2.990129 3.23252263v-3.85246563zm-5.424501 16.45118933c1.226318-1.4319222 1.839477-3.4023808 1.839477-5.9118975 0-2.5092558-.613159-4.4799752-1.839477-5.9116365-1.223709-1.4319222-2.914463-2.1478833-5.069652-2.1478833-2.18389 0-3.903345.7159611-5.158364 2.1478833-1.255019 1.4316613-1.881224 3.4023807-1.881224 5.9116365 0 2.5095167.626205 4.4799753 1.881224 5.9118975s2.974474 2.1476224 5.158364 2.1476224c2.155189 0 3.845943-.7157002 5.069652-2.1476224z"/><path d="m220.585946 20.3386181h-16.338733c.028701 2.8340996.686216 4.9744163 1.969936 6.4212109 1.283721 1.4465336 3.151899 2.1698005 5.601926 2.1698005 2.598751 0 4.988767-.8709469 7.172657-2.6128406l1.195008 2.6128406c-.973227.915303-2.220419 1.6385698-3.741575 2.1698004-1.518547.5314916-3.076232.7971069-4.670446.7971069-3.483266 0-6.215085-1.0259326-8.192849-3.0775369-1.977765-2.0518652-2.966647-4.8637868-2.966647-8.4360256 0-2.2731244.443562-4.2882 1.328077-6.0447052.887124-1.7565051 2.126488-3.121893 3.720701-4.0961637 1.594214-.97427072 3.410209-1.46140606 5.445375-1.46140606 2.953601 0 5.270559.96696496 6.953485 2.90063396s2.523085 4.5979105 2.523085 7.9929856zm-13.969591-7.0852492c-1.166307 1.1216898-1.912535 2.701292-2.236074 4.7382848h12.972881c-.177424-2.0959604-.787974-3.6901741-1.836868-4.782641-1.048893-1.092206-2.502211-1.6385699-4.362562-1.6385699-1.86035 0-3.37107.5609754-4.537377 1.6829261z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(347.017193 95.746626)"><path d="m.13103057 17.5444886 1.30960428-16.95274668h3.09535177l-1.16678937 14.42893518h7.92875255l-.1903731 2.5238115z"/><path d="m13.2028032 17.5444886.9524268-12.02408921h2.9762458l-.9524267 12.02408921zm1.1904984-17.47658839h3.3095741l-.2142224 2.92868762h-3.3095741z"/><path d="m18.7267099 16.2111754 1.0238341-2.0715176c1.3493063.936574 2.7858728 1.404861 4.3096994 1.404861 1.5396794 0 2.3095892-.4444378 2.3095892-1.3334535 0-.412592-.202438-.7261395-.6071738-.9405021-.4047358-.2142224-1.0516115-.4563624-1.940487-.7261395-.8413173-.2380716-1.5398197-.4762835-2.0953669-.7143551-.5555471-.2380716-1.0277622-.5833245-1.4166453-1.0357588-.388883-.452294-.5833245-1.04361503-.5833245-1.77382287 0-1.14279984.4602905-2.06352109 1.3808714-2.76188318.9207213-.69850237 2.1429251-1.04768342 3.6667517-1.04768342.8890158 0 1.7461858.13495869 2.5715101.40473576.8254645.26991737 1.5159704.64294766 2.0715176 1.11909088l-.999985 2.0238191c-1.1904983-.90472823-2.4206986-1.35716248-3.6906009-1.35716248-.7460606 0-1.3174605.11910595-1.71434.35717755-.3968796.23807161-.5952492.58725266-.5952492 1.04768343 0 .42858501.202438.74998869.6071738.96421105.4047358.21436265 1.0594677.45636238 1.9643363.72627978.8730227.2539243 1.5793813.4960643 2.1190758.7261394.5396944.2302154 1.0040533.5754683 1.3929363 1.0357588.388883.4604308.5833246 1.0556799.5833246 1.7857475 0 1.1587929-.4602905 2.0635211-1.3810118 2.714325-.9207212.6508038-2.1587778.9762759-3.7143099.9762759-1.9525519 0-3.7064536-.5079889-5.262126-1.5238266z"/><path d="m35.3699775 13.1396729c-.1111094 1.4127172.4841397 2.1190758 1.7857475 2.1190758.3651741 0 .7777661-.0555547 1.2381968-.1666642l-.1905134 2.3334385c-.5238417.1903731-1.1746456.2856298-1.9524116.2856298-1.2540496 0-2.2143325-.3294002-2.8809891-.9880603-.6667969-.6588004-1.0001253-1.6151552-1.0001253-2.8690645 0-.2382119.0079966-.4207288.0238493-.547691l.428585-5.54775586h-2.3095892l.1905134-2.23818175h2.28574l.2380716-2.92854732 3.0476532-1.00012522-.309479 3.92867254h3.2143174l-.1903731 2.23818175h-3.1906085z"/><path d="m39.5605709 16.2111754 1.0238342-2.0715176c1.349166.936574 2.7857324 1.404861 4.309559 1.404861 1.5398197 0 2.3095893-.4444378 2.3095893-1.3334535 0-.412592-.2022978-.7261395-.6071738-.9405021-.4047358-.2142224-1.0516116-.4563624-1.9404871-.7261395-.8413172-.2380716-1.5396793-.4762835-2.0952265-.7143551s-1.0279026-.5833245-1.4167856-1.0357588c-.388883-.452294-.5833246-1.04361503-.5833246-1.77382287 0-1.14279984.4602905-2.06352109 1.3810118-2.76188318.9207212-.69850237 2.142925-1.04768342 3.6667517-1.04768342.8888754 0 1.7460455.13495869 2.57151.40473576.8253243.26991737 1.5158301.64294766 2.0715176 1.11909088l-1.0001252 2.0238191c-1.1904983-.90472823-2.4206986-1.35716248-3.6904606-1.35716248-.7460606 0-1.3176008.11910595-1.7143401.35717755-.3968795.23807161-.5952492.58725266-.5952492 1.04768343 0 .42858501.2022978.74998869.6071738.96421105.4047358.21436265 1.0594678.45636238 1.964196.72627978.8731631.2539243 1.5795217.4960643 2.1192161.7261394.5396945.2302154 1.003913.5754683 1.3927961 1.0357588.388883.4604308.5833245 1.0556799.5833245 1.7857475 0 1.1587929-.4602905 2.0635211-1.3808714 2.714325-.9207213.6508038-2.1587778.9762759-3.7144502.9762759-1.9524117 0-3.7064537-.5079889-5.2619858-1.5238266z"/><path d="m58.3943218 15.592077.7380641-1.4999774c.8413173.7142148 1.6984873 1.2222038 2.57151 1.5238266.8730228.3016229 1.8890008.4524343 3.0476533.4524343 1.365159 0 2.4167706-.2659893 3.1548346-.7976872.7382044-.5318382 1.1071663-1.2818269 1.1071663-2.2501064 0-.5713999-.1784485-1.0357588-.5356261-1.392796-.3571775-.3571776-.8254645-.6390196-1.4048609-.8452454-.5793965-.2063662-1.3532344-.4207288-2.3215139-.6429477-1.3016077-.2857701-2.3730001-.59524916-3.2143174-.92857747s-1.5238266-.81353993-2.0476684-1.44049456c-.5238417-.62695464-.7857625-1.44849108-.7857625-2.46432874 0-.96827945.2540646-1.82152136.7619133-2.55958543.507989-.73820436 1.2262722-1.31353239 2.1548497-1.72626467.9285774-.41273227 2.0120347-.61909841 3.2500913-.61909841 1.1746456 0 2.2698872.18265718 3.2857249.54769096 1.0159779.36503378 1.8731479.896872 2.57151 1.59523409l-.7619133 1.50011768c-.7936188-.68264964-1.5991622-1.18264211-2.4166302-1.50011768-.8174681-.31747557-1.710412-.47614322-2.6786914-.47614322-1.3174605 0-2.3492912.28170171-3.0953518.8452454s-1.1190909 1.33738164-1.1190909 2.32151383c0 .85717002.3254721 1.49997739.976276 1.9285624s1.6507888.8016153 3.0000951 1.11909087c1.4602754.34918105 2.6071436.67058473 3.4404644.96435135.833461.29362633 1.527895.73806407 2.0834422 1.3333132.5555472.5952492.8333208 1.3849399.8333208 2.3690721 0 .9524267-.2539244 1.7896756-.7619133 2.5120272-.507989.7222113-1.2341285 1.2816866-2.1785587 1.6785662-.9445705.3968795-2.0517367.5952491-3.3214987.5952491-2.6509141 0-4.7619934-.7143551-6.3335185-2.142925z"/><path d="m83.9663269 11.4967403h-8.7859225c.0158527 1.5238266.3691021 2.674623 1.059608 3.4525293.6905059.7777661 1.6944189 1.1666491 3.0118794 1.1666491 1.3968645 0 2.6826195-.468287 3.8572651-1.404861l.6429477 1.404861c-.5238417.4921362-1.1945668.8810193-2.0120348 1.1666491-.817468.2857701-1.6547169.428585-2.5118869.428585-1.873148 0-3.3414199-.5516191-4.4049561-1.6547169-1.0635361-1.1032382-1.5952341-2.6151402-1.5952341-4.5358464 0-1.2222038.2380716-2.30566106.7143551-3.25009127.4761433-.94443021 1.1427999-1.67856617 1.9999699-2.20240788s1.833446-.78576257 2.9286876-.78576257c1.5872376 0 2.8334309.5199136 3.7381591 1.55960051.9047283 1.03968691 1.3571625 2.47218496 1.3571625 4.29763441zm-7.5120921-3.80956661c-.6269547.60310539-1.0277623 1.45241918-1.202423 2.54766081h6.9763258c-.0951164-1.1269471-.4245166-1.98411712-.9880603-2.57151006-.5635437-.58725265-1.3452378-.88101927-2.345363-.88101927-.999985 0-1.8135249.30162284-2.4404795.90486852z"/><path d="m88.8830598 16.9492395c-.8650263-.5078487-1.5316829-1.2261319-1.9999699-2.1548497-.468287-.9285775-.7024305-2.0118945-.7024305-3.249951 0-1.2381968.2380716-2.32951036.7143551-3.27394057.4761433-.94443021 1.1547245-1.67856617 2.0357438-2.20240788.8808789-.52384171 1.9087815-.78576257 3.0834271-.78576257.8094715 0 1.591306.1388868 2.3452228.41666039.7540571.27777359 1.3770836.66272851 1.8690796 1.15486475l-.6428074 1.42856993c-.6032457-.4762835-1.1865702-.82546455-1.7501139-1.04768342s-1.1388717-.33332831-1.7262647-.33332831c-1.2222038 0-2.1824867.40880417-2.8809891 1.2262722-.6983621.81746804-1.0475431 1.95633978-1.0475431 3.41675548 0 1.4444227.3452529 2.5674416 1.0356185 3.3690569.6905059.8016153 1.6548572 1.202423 2.8929137 1.202423.587393 0 1.162721-.1111094 1.7262647-.3333283s1.1468682-.5713999 1.7501139-1.0476834l.6428074 1.4285699c-.507989.4762835-1.1468683.8532419-1.9166378 1.1310155-.7699098.2777736-1.567597.4166604-2.3929213.4166604-1.1587928 0-2.1707024-.2539244-3.0358689-.7619133z"/><path d="m101.276251 7.09192453v6.54774077c0 .8888755.182517 1.511902.547691 1.8690796.365034.3571776.880879.5357663 1.547536.5357663.444437 0 .873023-.0714074 1.285755-.2143626v1.6429326c-.491996.1588079-1.047543.2380716-1.666642.2380716-1.14294 0-2.035743-.3214037-2.678691-.9642111-.6428075-.6429476-.9642112-1.591306-.9642112-2.8453555v-6.80966167h-2.3334385v-1.52382664h2.3334385v-3.07150253l1.9285622-.69050586v3.76200839h3.42868v1.52382664z"/><path d="m107.038229 17.5444886v-11.97639071h1.928703v11.97639071zm-.190373-17.04800338h2.357148v2.19062355h-2.357148z"/><path d="m114.681352 16.9492395c-.85717-.5078487-1.519898-1.2302003-1.988185-2.166634-.468287-.936574-.702431-2.0318157-.702431-3.2858652 0-1.2539093.234144-2.3492912.702431-3.2857249.468287-.93657398 1.131015-1.65878532 1.988185-2.1667743.85717-.50798897 1.849159-.76191332 2.976246-.76191332 1.126947 0 2.119076.25392435 2.976246.76191332.85717.50798898 1.519898 1.23020032 1.988185 2.1667743.468147.9364337.702291 2.0318156.702291 3.2857249 0 1.2540495-.234144 2.3492912-.702291 3.2858652-.468287.9364337-1.131015 1.6587853-1.988185 2.166634-.85717.5079889-1.849299.7619133-2.976246.7619133-1.127087 0-2.119076-.2539244-2.976246-.7619133zm5.71442-2.0118945c.634951-.7857626.952287-1.9326308.952287-3.4406047 0-1.4602754-.325332-2.59129092-.976136-3.39290622-.650804-.80161531-1.555532-1.20242296-2.714325-1.20242296-1.174646 0-2.08737.40080765-2.738174 1.20242296-.650804.8016153-.976276 1.93263082-.976276 3.39290622 0 1.5079739.321544 2.6548421.964351 3.4406047.642808.7857626 1.559601 1.1785737 2.750099 1.1785737s2.103223-.3928111 2.738174-1.1785737z"/><path d="m136.610315 10.0204719v7.5240167h-1.928563v-7.42876c0-1.11109441-.222219-1.92463434-.666656-2.44047953-.444438-.5158452-1.142941-.77383795-2.095367-.77383795-1.111095 0-1.99997.34132482-2.666627 1.02383418-.666656.68250935-1.000125 1.6032306-1.000125 2.7620235v6.8572198h-1.928562v-8.61925838c0-1.23805653-.063411-2.35714741-.190514-3.35713233h1.833446l.190514 2.14292505c.365033-.77790635.912724-1.37708362 1.642792-1.79767212.730208-.42072879 1.563529-.63102304 2.500102-.63102304 2.873133 0 4.30956 1.57938136 4.30956 4.73814412z"/><path d="m139.515153 16.1634769.642948-1.4285699c.650803.5079889 1.309464.8730227 1.97626 1.0952416.666517.2222189 1.412858.3333283 2.237761.3333283.904869 0 1.590885-.1547395 2.059453-.4642186s.702851-.7579852.702851-1.3452379c0-.4762835-.158527-.85717-.475582-1.1429401-.318457-.2857701-.841738-.507989-1.572647-.6666566l-2.022977-.4762835c-1.000406-.2222189-1.774104-.6189581-2.321795-1.1904983-.547691-.5713999-.821396-1.2539093-.821396-2.04766838 0-1.04754313.420588-1.90078504 1.261906-2.55958543.841317-.65866011 1.952832-.98806031 3.333283-.98806031.841738 0 1.635778.13495869 2.380716.40473577.746341.26991736 1.373436.65880039 1.881285 1.16678937l-.642527 1.40472069c-1.127929-.93657399-2.333018-1.40472069-3.619474-1.40472069-.85717 0-1.519338.16259575-1.987905.48806784-.468427.32533179-.702571.78169416-.702571 1.3690871 0 .49199596.146883.88101927.44051 1.16664909.294328.28577005.765701.50798895 1.416645.66665665l2.02438.4999924c1.111095.2540647 1.935998.6468758 2.476113 1.178714.540116.531698.809472 1.2261319.809472 2.083302 0 1.0318306-.420869 1.8571549-1.262607 2.4762533-.840336.6190984-1.983697.9285775-3.42868.9285775-2.015402 0-3.610776-.5158452-4.785422-1.5476759z"/><path d="m171.469076 17.5444886-1.857435-4.3572575h-8.857891l-1.881285 4.3572575h-2.022977l7.452188-16.95274668h1.71434l7.452189 16.95274668zm-10.025101-5.9763409h7.476038l-3.737318-8.71437478z"/><path d="m178.348883 15.0920845v1.7381893c0 .6666566-.110829 1.2777585-.332487 1.8333057-.22306.5555472-.596231 1.0952416-1.119511 1.6190833l-.904869-.6905058c.618678-.7142148.967999-1.3968645 1.047964-2.0476684h-1.143361v-2.4524041z"/><path d="m200.064324 10.2943173c.540116.7063586.809472 1.5834498.809472 2.6309929 0 1.4762685-.492417 2.6151402-1.475848 3.4167555-.984833.8016153-2.373701 1.2024229-4.166603 1.2024229h-7.048155v-16.95274668h6.809662c1.729772 0 3.07515.38495492 4.036134 1.15486475.959582.76976954 1.439373 1.86108306 1.439373 3.27380026 0 .90486851-.232881 1.68656268-.701449 2.34536307-.468567.65866011-1.12372 1.14686824-1.964055 1.46420352.967998.26991737 1.721354.75798521 2.261469 1.46434378zm-9.95215-2.1785586h4.570638c1.269622 0 2.230606-.25406463 2.88155-.76191332.650944-.50798897.976416-1.25404956.976416-2.23818175 0-1.93655891-1.286456-2.90483837-3.857966-2.90483837h-4.570638zm7.892698 7.0596579c.627095-.4999925.939941-1.2658339.939941-2.2976646 0-2.0793738-1.293471-3.11906071-3.880413-3.11906071h-4.952226v6.16671401h4.952226c1.332752 0 2.313377-.2499962 2.940472-.7499887z"/><path d="m206.064515 15.0920845v1.7381893c0 .6666566-.110829 1.2777585-.33389 1.8333057-.221658.5555472-.594828 1.0952416-1.118109 1.6190833l-.904868-.6905058c.618677-.7142148.967999-1.3968645 1.046561-2.0476684h-1.141958v-2.4524041z"/><path d="m218.957137 16.6873186c-1.182642-.6983621-2.090316-1.7024154-2.725828-3.0118794-.635513-1.3096043-.952567-2.853352-.952567-4.63110303 0-1.77789127.317054-3.31364253.952567-4.60725378.635512-1.29361125 1.543186-2.28966807 2.725828-2.98817045 1.182642-.69836209 2.575719-1.04768342 4.17923-1.04768342 1.174225 0 2.250247.17858878 3.226663.53576634.975013.35717755 1.82096.89294389 2.535035 1.60715871l-.737924 1.50011768c-.809471-.69850238-1.60772-1.19849484-2.393342-1.50011768s-1.654016-.45229397-2.606583-.45229397c-1.857435 0-3.29821.60310539-4.322325 1.80945645-1.022712 1.20635107-1.534769 2.92069111-1.534769 5.14302012 0 2.23818173.507848 3.96430613 1.523546 5.17865373 1.015697 1.2143476 2.460681 1.8215213 4.333548 1.8215213.952567 0 1.820961-.1508114 2.606583-.4524342.785622-.3016229 1.583871-.8016153 2.393342-1.4999774l.737924 1.4999774c-.714075.7143551-1.560022 1.2499811-2.535035 1.6071587-.976416.3571776-2.052438.5357663-3.226663.5357663-1.603511 0-2.996588-.349181-4.17923-1.0476834z"/></g><g transform="translate(.267895 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g transform="translate(.968438 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(97.321977 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(193.675515 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(329.309669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(425.663669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(523.997669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(660.171823 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(756.527208 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(852.877977 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(26.69736 242.51167)"><path d="m.00427353 31.0947909 1.49915514-3.0461739c1.70855821 1.4504369 3.44902547 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83592255.9188095 6.18921435.9188095 2.772098 0 4.9077245-.5401745 6.4068797-1.6199537 1.4988702-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3626805-2.1034326-1.0880414-2.8285086-.7253608-.7253609-1.6763642-1.2977293-2.8527252-1.7165355-1.1766459-.419091-2.7481662-.8544215-4.7145609-1.3057065-2.6433221-.5803457-4.8194048-1.2088399-6.52767811-1.8857674-1.70855822-.6769275-3.0948921-1.6521476-4.15843184-2.9253753-1.06382464-1.2732277-1.59573696-2.9416147-1.59573696-5.0045912 0-1.96639471.51567289-3.69916961 1.54730359-5.19803984 1.0316307-1.49915513 2.49004483-2.66753887 4.37609709-3.505721 1.88576735-.83818214 4.08578183-1.25727321 6.60004333-1.25727321 2.3854857 0 4.6097168.37094261 6.6729782 1.11225801 2.0629765.74131541 3.8037287 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6119764-1.38633388-3.2478846-2.40172515-4.9080094-3.04645873-1.6601249-.64473357-3.4735271-.96695791-5.4399217-.96695791-2.6755162 0-4.7706866.57208353-6.28579626 1.71653548-1.51510965 1.14445195-2.27266448 2.71597223-2.27266448 4.71456088 0 1.7407521.6606881 3.0461738 1.98234919 3.9165499 1.32166109.870376 3.35272854 1.6279309 6.09263255 2.2726645 2.9658314.7091214 5.2949065 1.3618322 6.9872253 1.9584174 1.6923188.5963002 3.1025845 1.4988702 4.230797 2.70771 1.1284974 1.2088399 1.6926037 2.8125541 1.6926037 4.8111427 0 1.9342007-.5159578 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5065691 2.602866-4.4245304 3.4088542s-4.1664091 1.2088399-6.7453434 1.2088399c-5.38322623 0-9.67071874-1.4507218-12.86219267-4.3518804z"/><path d="m51.9362381 22.7779272h-17.8425672c.0324789 3.0946072.7495776 5.4316596 2.151866 7.011442 1.4022884 1.5794975 3.4413331 2.3692463 6.1168493 2.3692463 2.8367707 0 5.4478989-.9510034 7.8330998-2.8530102l1.3057065 2.8530102c-1.0638246.9994368-2.4256569 1.7891855-4.0857817 2.3692463-1.6604098.5803457-3.3607058.8703761-5.101458.8703761-3.8037287 0-6.7855146-1.1202353-8.9453578-3.3604209-2.1598433-2.2404705-3.2399073-5.310861-3.2399073-9.2114564 0-2.4820676.4837638-4.6823669 1.4507217-6.6003282s2.3210979-3.4088543 4.06185-4.4726789c1.7404673-1.0638247 3.7231014-1.595737 5.9473325-1.595737 3.2236679 0 5.7541688 1.0558474 7.5915028 3.1672572 1.8376189 2.1114099 2.7561434 5.0205458 2.7561434 8.7276926zm-15.2553707-7.736518c-1.2735126 1.2247944-2.0874781 2.949592-2.4418964 5.1738231h14.1676144c-.1934486-2.288619-.8623989-4.0293711-2.0068508-5.2222565-1.1441671-1.1926004-2.7319268-1.7891855-4.7627093-1.7891855-2.0307826 0-3.6829302.6125397-4.9561579 1.8376189z"/><path d="m61.9214888 33.8509343c-1.7569916-1.0313458-3.1108466-2.4900448-4.06185-4.3760971-.9510034-1.8857673-1.4265051-4.0857818-1.4265051-6.6000433 0-2.5145464.4837639-4.7308002 1.4507218-6.6487615s2.3453145-3.4088543 4.1342152-4.4726789c1.7891855-1.0638247 3.8763787-1.595737 6.2618644-1.595737 1.6441703 0 3.2316451.2820531 4.7627093.8461594 1.5313491.5641063 2.7965995 1.3458778 3.7960363 2.3453145l-1.3057066 2.9011587c-1.2247943-.9672429-2.4097024-1.6763643-3.5538694-2.1276493-1.144452-.451285-2.3131206-.6769276-3.505721-.6769276-2.4820676 0-4.4325078.8302049-5.8507507 2.4903298-1.4185278 1.6601248-2.1276493 3.9729605-2.1276493 6.9387919 0 2.9333526.7011442 5.2139943 2.1034326 6.8419253 1.4022884 1.6279309 3.3604209 2.4418963 5.8749674 2.4418963 1.1926004 0 2.361269-.2256425 3.505721-.6769275 1.144167-.451285 2.3290751-1.1604065 3.5538694-2.1276493l1.3057066 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8926181 2.2968812-1.5635431.5641063-3.1832118.8461594-4.8595761.8461594-2.3532918 0-4.408291-.5156729-6.1649977-1.5473036z"/><path d="m87.0894602 13.8325694v13.2972382c0 1.80514.3709426 3.0703905 1.112258 3.7957514s1.7891855 1.0880413 3.1430406 1.0880413c.90257 0 1.7729461-.1450152 2.6111282-.4353305v3.3364892c-.9994368.3225092-2.1276493.4834789-3.3849225.4834789-2.3208129 0-4.1342151-.6527108-5.4396368-1.9581325-1.3057066-1.3057066-1.9584174-3.2316451-1.9584174-5.7783855v-13.8291505h-4.7387775v-3.0946072h4.7387775v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630086v3.0946072z"/><path d="m98.7912464 35.0597742v-24.321812h3.9165496v24.321812zm-.3868972-34.62130978h4.7869258v4.44874713h-4.7869258z"/><path d="m114.312716 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037634-4.4000289-.950718-1.9020067-1.42622-4.1262378-1.42622-6.6729782 0-2.5464555.475502-4.7709715 1.42622-6.6726933.951004-1.9020068 2.296882-3.3686831 4.037634-4.4003138s3.75558-1.5473036 6.044199-1.5473036c2.288904 0 4.303447.5156729 6.044199 1.5473036s3.08663 2.498307 4.037633 4.4003138c.951004 1.9017218 1.426505 4.1262378 1.426505 6.6726933 0 2.5467404-.475501 4.7709715-1.426505 6.6729782-.951003 1.9017219-2.296881 3.3686831-4.037633 4.4000289-1.740752 1.0316307-3.755295 1.5473036-6.044199 1.5473036-2.288619 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289467-1.5957369 1.934201-3.924812 1.934201-6.9872253 0-2.9655465-.660973-5.2624277-1.982634-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.98235 3.9248121-1.98235 6.8903586c0 3.0624133.652711 5.3914884 1.958133 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.846626 19.7799018v15.2798724h-3.916835v-15.0864238c0-2.2564251-.451285-3.9085727-1.353855-4.9561579s-2.320813-1.5715203-4.255013-1.5715203c-2.256425 0-4.06185.693167-5.415705 2.079216-1.353856 1.3860489-2.030783 3.2558618-2.030783 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.129061-4.786926-.386897-6.8177085h3.723101l.386897 4.3518804c.741316-1.5797825 1.853574-2.7965996 3.33649-3.6507362 1.482915-.8544216 3.175234-1.2814899 5.076956-1.2814899 5.834796 0 8.752194 3.2074284 8.752194 9.6222853z"/><path d="m205.653771 35.0597742-3.772105-8.848776h-17.988722l-3.817689 8.848776h-4.111138l15.134003-34.42786122h3.481504l15.134002 34.42786122zm-20.359108-12.1368318h15.185285l-7.592643-17.69726709z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(22.788376 290.137172)"><path d="m.04658391 21.7701602 1.62834138-20.70276002h4.56506199l-1.36656882 17.01005832h9.24650314l-.2907867 3.6927017z"/><path d="m16.3006611 21.7701602 1.1629859-14.74195382h4.3906544l-1.1629859 14.74195382zm1.5119622-21.66232409h4.7104554l-.319801 4.12904304h-4.7104553z"/><path d="m23.395439 20.2000084 1.4247584-3.0530998c.8141707.5622308 1.6863698.9935752 2.6169196 1.2940334.9303887.3004581 1.8609386.4506872 2.7913273.4506872.8141707 0 1.415087-.1163792 1.8027489-.3489764.387662-.2325971.5815736-.5427267.5815736-.9303886 0-.407166-.2277615-.7269669-.6832845-.9595641-.4555229-.2325972-1.1969969-.5040411-2.224422-.8141707-1.0661106-.2907868-1.9384709-.5815735-2.6169196-.8723603-.6784487-.2907867-1.2648579-.72197-1.7590665-1.2938721-.4943697-.5719021-.741474-1.3133761-.741474-2.224422 0-.9498927.2664471-1.78340617.7995024-2.50054048.5330554-.7172955 1.2891976-1.27936503 2.2681045-1.68653097.9789069-.40700475 2.0983714-.61058772 3.3583937-.61058772 1.1047962 0 2.1855752.16473618 3.2420144.49436973 1.0564393.32947236 1.9433067.7753239 2.6606022 1.33755462l-1.3957442 2.93672062c-.7172955-.5233839-1.4732766-.9208785-2.2679433-1.1921612-.7948279-.27144401-1.5701518-.40716599-2.3262941-.40716599-.7946667 0-1.395583.11637918-1.802749.34897639-.4070047.2325971-.6105877.5523981-.6105877.959564 0 .4265088.2422686.7656525.7269669 1.0177537.4845371.25194 1.2211754.5135513 2.2097537.7849953 1.0662719.3101296 1.9336353.6105877 2.6024126.9013745.6687773.2907867 1.2503508.7221312 1.7447205 1.2938721.4942086.5719021.7413128 1.3133761.7413128 2.224422 0 1.4539338-.5765766 2.5927412-1.7300522 3.4165832-1.1533145.8238421-2.7089592 1.2356826-4.6667729 1.2356826-2.5200445 0-4.768645-.6009163-6.7458015-1.802749z"/><path d="m44.7087867 16.0421124c-.0581896.8141707.1065466 1.415087.4942086 1.8027489.3878231.387662.9208784.5815736 1.5993272.5815736.4458515 0 .94006-.0776936 1.482948-.2327584l-.2907868 3.4020761c-.6591059.271444-1.5119622.4070048-2.5587301.4070048-1.6671881 0-2.9417175-.4458516-3.8237491-1.3375546-.8818705-.8915419-1.3228864-2.1515642-1.3228864-3.7799055 0-.3296336.0096714-.5815736.0290142-.7559811l.4651944-5.8154129h-2.7913273l.2616114-3.28569692h2.7914884l.2616114-3.46010454 4.5070336-1.42475841-.3779906 4.88486295h3.7508913l-.2617725 3.28569692h-3.7508913z"/><path d="m49.3900667 20.2000084 1.4247584-3.0530998c.8141707.5622308 1.686531.9935752 2.6169197 1.2940334.9305498.3004581 1.8609385.4506872 2.7914884.4506872.8141707 0 1.415087-.1163792 1.802749-.3489764.3876619-.2325971.5815735-.5427267.5815735-.9303886 0-.407166-.2277615-.7269669-.6832844-.9595641-.4556842-.2325972-1.196997-.5040411-2.224422-.8141707-1.0661107-.2907868-1.938471-.5815735-2.6169197-.8723603-.6784487-.2907867-1.2648579-.72197-1.7592276-1.2938721-.4942086-.5719021-.741474-1.3133761-.741474-2.224422 0-.9498927.2666082-1.78340617.7996635-2.50054048.5330554-.7172955 1.2890365-1.27936503 2.2679433-1.68653097.9789069-.40700475 2.0983715-.61058772 3.3583937-.61058772 1.1049574 0 2.1857364.16473618 3.2421757.49436973 1.0564392.32947236 1.9433066.7753239 2.6604409 1.33755462l-1.395583 2.93672062c-.7172955-.5233839-1.4732766-.9208785-2.2681045-1.1921612-.7946667-.27144401-1.5701518-.40716599-2.3261329-.40716599-.7948279 0-1.3957442.11637918-1.802749.34897639-.4070047.2325971-.6105877.5523981-.6105877.959564 0 .4265088.2422686.7656525.7269669 1.0177537.4845372.25194 1.2211755.5135513 2.2097537.7849953 1.0661107.3101296 1.9336353.6105877 2.6024126.9013745.6687773.2907867 1.2503508.7221312 1.7445594 1.2938721.4943697.5719021.741474 1.3133761.741474 2.224422 0 1.4539338-.5767379 2.5927412-1.7300523 3.4165832-1.1533145.8238421-2.7089592 1.2356826-4.6667729 1.2356826-2.5200445 0-4.768645-.6009163-6.7459627-1.802749z"/><path d="m73.2145935 2.29179942h7.7695192c2.0061707 0 3.5700361.48340881 4.6917573 1.44990405 1.12156.96665643 1.68234 2.29808583 1.68234 3.9942882 0 1.69604118-.5652933 3.03198393-1.6960412 4.00782813-1.1307478.9756831-2.6900999 1.4636052-4.6780561 1.4636052h-5.526238v8.5627352h-2.2432812zm7.5778643 9.05533178c1.4408774 0 2.5260084-.3101295 3.2555544-.9302274.7295459-.62009798 1.0943189-1.51373534 1.0943189-2.68091213 0-1.16733798-.364773-2.05646202-1.0943189-2.66737212-.729546-.61107129-1.814677-.91652634-3.2555544-.91652634h-5.3345831v7.19503799z"/><path d="m102.432215 8.0095311v13.7606291h-2.188638v-2.4894183c-.4012015.8572084-1.0075983 1.5182486-1.8193511 1.9832817-.8115916.4651944-1.7553591.6976303-2.8314635.6976303-1.2218202 0-2.2934114-.2917539-3.214451-.8754229-.9210397-.5835078-1.63221-1.4088006-2.1338332-2.4758784-.5016233-1.0669166-.7522738-2.3116257-.7522738-3.7341275 0-1.4226629.255325-2.6765599.7659749-3.761691s1.2264947-1.92863838 2.1475344-2.53052184c.9210396-.60188346 1.9834429-.90282519 3.1870487-.90282519 1.0761044 0 2.0153585.23711049 2.8179235.71133147.8024039.47422098 1.4134752 1.13993568 1.8328911 1.99698296v-2.3799704zm-3.2829565 10.7376719c.729546-.9210397 1.0943185-2.2295801 1.0943185-3.9257825s-.3647725-3.0002295-1.0943185-3.9120813c-.7295459-.91185183-1.7690602-1.36785834-3.1187041-1.36785834s-2.4028593.46970764-3.1598076 1.40896184c-.756787.9392541-1.1352611 2.2477945-1.1352611 3.9257824 0 1.6778267.3737996 2.9728272 1.12156 3.884679s1.8056504 1.3678583 3.1735087 1.3678583c1.3496439 0 2.3891582-.4605198 3.1187041-1.3815594z"/><path d="m118.983366 8.0095311v13.6511811c0 2.0427609-.524351 3.5884118-1.573054 4.6371139-1.048702 1.0487022-2.594514 1.5730532-4.637113 1.5730532-2.097405 0-3.903055-.4742209-5.41679-1.4226629l.382987-1.8054892c.875423.4924355 1.700716.8480206 2.475878 1.0669166.775163.218896 1.627697.328344 2.557925.328344 1.331429 0 2.334514-.3510718 3.009256-1.0533766.674902-.7021436 1.012273-1.7461713 1.012273-3.1324053v-3.2553932c-.419417.8754229-1.035001 1.5546775-1.846593 2.0380863-.811591.4832477-1.773735.7248715-2.886268.7248715-1.203606 0-2.275197-.2825661-3.214451-.8480206-.939254-.5652933-1.664287-1.3678584-2.174937-2.4073727-.51065-1.0396755-.765974-2.2342546-.765974-3.5838984 0-1.3496439.255324-2.544223.765974-3.5837373.51065-1.0396755 1.235683-1.84207932 2.174937-2.40753384.939254-.56529333 2.010845-.84802059 3.214451-.84802059 1.094319 0 2.047274.23711049 2.858866.71133147s1.427176 1.13993568 1.846593 1.99698296v-2.3799704zm-3.351302 10.1631907c.756787-.8846107 1.135262-2.1019176 1.135262-3.652243 0-1.5501643-.378475-2.7676323-1.135262-3.6520819-.756948-.88461068-1.800976-1.32691604-3.132405-1.32691604-1.349644 0-2.412047.44230536-3.18721 1.32691604-.775001.8844496-1.162663 2.1019176-1.162663 3.6520819 0 1.5503254.387662 2.7676323 1.162663 3.652243.775163.8846107 1.837566 1.3267549 3.18721 1.3267549 1.331429 0 2.375457-.4421442 3.132405-1.3267549z"/><path d="m134.76838 14.8214205h-10.094846c.018375 1.7508458.424091 3.0730874 1.217468 3.9668859.793377.8936374 1.947014 1.340456 3.460749 1.340456 1.604969 0 3.082275-.5380522 4.431758-1.6141566l.738734 1.6141566c-.601884.5654546-1.372372 1.0122732-2.311626 1.3404561-.939415.328344-1.901397.4924354-2.886268.4924354-2.152048 0-3.839062-.633799-5.061044-1.901236-1.221981-1.2675982-1.833052-3.0047428-1.833052-5.2115951 0-1.4042873.2737-2.6491576.820779-3.7342887s1.313215-1.92863838 2.298086-2.53052184c.98471-.60188346 2.106431-.90282519 3.364841-.90282519 1.823865 0 3.255555.59737014 4.295069 1.79194923 1.039675 1.1945791 1.559352 2.8404902 1.559352 4.9378945zm-8.63108-4.3771144c-.720519.6929558-1.181039 1.6688-1.381559 2.9272104h8.015656c-.109448-1.2948393-.487922-2.2797102-1.135422-2.9546127-.647339-.67474139-1.545651-1.01227325-2.694614-1.01227325-1.148962 0-2.083703.3465585-2.804061 1.03967555z"/><path d="m137.285362 20.1834059.738572-1.6413978c.747761.583669 1.504709 1.0030854 2.270684 1.2584103.765975.255325 1.623506.3829875 2.571303.3829875 1.039675 0 1.827894-.1777926 2.366269-.5333778.538375-.3555851.807562-.8709095.807562-1.5456509 0-.54724-.182145-.9848709-.546434-1.3132149-.365901-.328344-.96714-.583669-1.80694-.7659749l-2.32436-.54724c-1.149446-.255325-2.03857-.7111703-2.667856-1.3678584-.629124-.6565268-.943767-1.4407162-.943767-2.3527292 0-1.2036057.483248-2.18396332 1.449904-2.94091156.966656-.75678705 2.243926-1.13526117 3.830036-1.13526117.96714 0 1.877863.15506478 2.735394.46503315.857531.31012956 1.57805.75694824 2.161558 1.34061723l-.73825 1.61399545c-1.295968-1.0761044-2.682202-1.61399545-4.158702-1.61399545-.984871 0-1.745688.18681921-2.284063.56078005-.538213.3737996-.807239.8981506-.807239 1.5730532 0 .5652933.168605 1.0122732.505975 1.340456.336726.328344.879936.583669 1.627858.7659749l2.325972.5744812c1.276625.291915 2.224422.743247 2.845003 1.3543183.61897.6109101.930067 1.4088006.930067 2.3936715 0 1.1855525-.48357 2.1338333-1.45071 2.8451647-.965529.7113315-2.279227 1.0669166-3.939484 1.0669166-2.315817 0-4.148708-.5926956-5.498352-1.778248z"/><path d="m166.776845 19.8826253h4.294102v1.8875349h-10.860982v-1.8875349h4.295713v-14.8003046l-3.994288 2.54422296v-2.16123552l4.979159-3.17350872h1.286296z"/><path d="m177.692632 18.9523978v1.9971441c0 .7659749-.128952 1.4681185-.383632 2.1064309s-.683446 1.2584104-1.286296 1.8602938l-1.039676-.7933771c.71246-.8206183 1.113823-1.6049689 1.20409-2.3527293h-1.313699v-2.8177624z"/><path d="m194.243621 19.8826253v1.8875349h-12.529298v-1.6960412l6.811889-7.5506231c.910724-1.0214611 1.576438-1.9425007 1.997144-2.76311902.419094-.82077948.628641-1.64139777.628641-2.46217725 0-1.07610444-.311096-1.90139724-.930066-2.4758784-.620582-.57448116-1.505515-.86172174-2.654799-.86172174-1.860133 0-3.700923.74776041-5.525594 2.24328123l-.847859-1.72344348c.765652-.72954594 1.732792-1.31321493 2.899808-1.75084578 1.167016-.43779204 2.343703-.65668806 3.530061-.65668806 1.785985 0 3.199622.46051983 4.239297 1.38155949 1.039676.92103966 1.560319 2.16574884 1.560319 3.73428873 0 1.11253338-.251456 2.18396331-.752757 3.21445098-.501301 1.0304877-1.336265 2.1841245-2.503281 3.4607493l-5.552995 6.0186734z"/><path d="m200.425258 18.9523978v1.9971441c0 .7659749-.12734 1.4681185-.38202 2.1064309-.256292.6383124-.683446 1.2584104-1.286297 1.8602938l-1.039675-.7933771c.710848-.8206183 1.112211-1.6049689 1.204089-2.3527293h-1.313698v-2.8177624z"/><path d="m215.691563 13.4535622c.601239.802565.902664 1.814677.902664 3.0366584 0 1.6962023-.575448 3.0321451-1.723121 4.0078281-1.149285.9758443-2.709604 1.4636052-4.679346 1.4636052-1.257282 0-2.466207-.2097082-3.623551-.6291245-1.158956-.4195776-2.138991-1.0122732-2.941718-1.7782481l.875262-1.7236047c1.805328 1.495682 3.684803 2.2434424 5.635202 2.2434424 1.386234 0 2.440417-.3101295 3.160936-.9302275.72052-.6200979 1.079973-1.5319497 1.079973-2.7357166 0-2.3891582-1.495843-3.5837373-4.485917-3.5837373h-2.243765v-1.8876961h1.805328c1.441038 0 2.54519-.3191562 3.310842-.9574686.765653-.63847359 1.149285-1.55032542 1.149285-2.73571668 0-1.05788997-.315932-1.86948162-.944573-2.43493614-.628641-.56529333-1.51841-.84802059-2.667695-.84802059-1.860132 0-3.702534.74776041-5.525593 2.24328123l-.847859-1.72344348c.783383-.74776041 1.745687-1.33594272 2.885301-1.76454693 1.141225-.42860421 2.330807-.64298691 3.570358-.64298691 1.752135 0 3.151265.44681868 4.200612 1.34061723 1.047735.89363736 1.571602 2.09740428 1.571602 3.61113957 0 1.11253338-.272411 2.08821645-.820457 2.9272104-.546434.838994-1.304027 1.4408774-2.269555 1.8054892 1.147673.328344 2.022934.8937985 2.625785 1.6962024z"/></g><g transform="translate(329.992265 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(359.320353 242.51167)"><path d="m.14615481 31.0947909 1.49887023-3.0461739c1.70855821 1.4504369 3.44931037 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83620748.9188095 6.18921438.9188095 2.7723829 0 4.9080094-.5401745 6.4068796-1.6199537 1.4991552-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3623955-2.1034326-1.0877564-2.8285086-.7253609-.7253609-1.6763643-1.2977293-2.8530102-1.7165355-1.1766458-.419091-2.7481661-.8544215-4.7145608-1.3057065-2.6433222-.5803457-4.81911993-1.2088399-6.52767814-1.8857674-1.70855822-.6769275-3.0946072-1.6521476-4.15843184-2.9253753s-1.59573696-2.9416147-1.59573696-5.0045912c0-1.96639471.5159578-3.69916961 1.54730359-5.19803984 1.0316307-1.49915513 2.49032973-2.66753887 4.37609709-3.505721 1.88576735-.83818214 4.08606666-1.25727321 6.60032816-1.25727321 2.3854858 0 4.6097169.37094261 6.6726934 1.11225801 2.0632614.74131541 3.8040135 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6116915-1.38633388-3.2475997-2.40172515-4.9077245-3.04645873-1.6601249-.64473357-3.4735271-.96695791-5.4399218-.96695791-2.6755161 0-4.77097143.57208353-6.28608109 1.71653548-1.51510965 1.14445195-2.27266448 2.71597223-2.27266448 4.71456088 0 1.7407521.660973 3.0461738 1.98263409 3.9165499 1.32166109.870376 3.35244368 1.6279309 6.09263258 2.2726645 2.9655465.7091214 5.2946216 1.3618322 6.9869404 1.9584174 1.6926037.5963002 3.1028694 1.4988702 4.2310819 2.70771 1.1282125 1.2088399 1.6923188 2.8125541 1.6923188 4.8111427 0 1.9342007-.5156729 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5062843 2.602866-4.4242456 3.4088542-1.9182462.8059882-4.166694 1.2088399-6.7453434 1.2088399-5.38351106 0-9.67071867-1.4507218-12.86219259-4.3518804z"/><path d="m52.0781194 22.7779272h-17.8425672c.032194 3.0946072.7495776 5.4316596 2.151866 7.011442 1.4022884 1.5794975 3.4410482 2.3692463 6.1165643 2.3692463 2.8367708 0 5.447899-.9510034 7.8333847-2.8530102l1.3057066 2.8530102c-1.0638246.9994368-2.4259418 1.7891855-4.0860667 2.3692463-1.6601248.5803457-3.3604209.8703761-5.101173.8703761-3.8040136 0-6.7857995-1.1202353-8.9456428-3.3604209-2.1598432-2.2404705-3.2396224-5.310861-3.2396224-9.2114564 0-2.4820676.483479-4.6823669 1.4507218-6.6003282.9669579-1.9179613 2.320813-3.4088543 4.0615651-4.4726789 1.7407522-1.0638247 3.7233863-1.595737 5.9476174-1.595737 3.2233829 0 5.7541688 1.0558474 7.5915028 3.1672572 1.837334 2.1114099 2.7561434 5.0205458 2.7561434 8.7276926zm-15.2556556-7.736518c-1.2732277 1.2247944-2.0871932 2.949592-2.4418964 5.1738231h14.1676143c-.1931636-2.288619-.8621139-4.0293711-2.0065658-5.2222565-1.144452-1.1926004-2.7319268-1.7891855-4.7627094-1.7891855-2.0310674 0-3.683215.6125397-4.9564427 1.8376189z"/><path d="m62.0630852 33.8509343c-1.7567067-1.0313458-3.1105617-2.4900448-4.0615651-4.3760971-.9510034-1.8857673-1.4265051-4.0857818-1.4265051-6.6000433 0-2.5145464.483479-4.7308002 1.4507218-6.6487615.9669579-1.9179613 2.3450296-3.4088543 4.1342151-4.4726789 1.7889007-1.0638247 3.8763787-1.595737 6.2618645-1.595737 1.6438854 0 3.2316451.2820531 4.7627093.8461594 1.531349.5641063 2.7965995 1.3458778 3.7957514 2.3453145l-1.3054217 2.9011587c-1.2250793-.9672429-2.4097024-1.6763643-3.5541544-2.1276493-1.144167-.451285-2.3128357-.6769276-3.505721-.6769276-2.4820675 0-4.4322228.8302049-5.8507506 2.4903298-1.4182429 1.6601248-2.1273644 3.9729605-2.1273644 6.9387919 0 2.9333526.7011442 5.2139943 2.1031477 6.8419253 1.4022884 1.6279309 3.3607058 2.4418963 5.8749673 2.4418963 1.1928853 0 2.361554-.2256425 3.505721-.6769275 1.144452-.451285 2.3290751-1.1604065 3.5541544-2.1276493l1.3054217 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8923333 2.2968812-1.563543.5641063-3.1834966.8461594-4.859576.8461594-2.3532918 0-4.408291-.5156729-6.1652826-1.5473036z"/><path d="m87.2313415 13.8325694v13.2972382c0 1.80514.3706577 3.0703905 1.112258 3.7957514.7413154.7253609 1.7889006 1.0880413 3.1427556 1.0880413.9025701 0 1.7729461-.1450152 2.6111283-.4353305v3.3364892c-.9991519.3225092-2.1273644.4834789-3.3846376.4834789-2.3210979 0-4.1342152-.6527108-5.4399217-1.9581325-1.3054217-1.3057066-1.9581325-3.2316451-1.9581325-5.7783855v-13.8291505h-4.7387776v-3.0946072h4.7387776v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630086v3.0946072z"/><path d="m98.9328427 35.0597742v-24.321812h3.9168353v24.321812zm-.3866122-34.62130978h4.7869255v4.44874713h-4.7869255z"/><path d="m114.454597 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037633-4.4000289-.951004-1.9020067-1.426505-4.1262378-1.426505-6.6729782 0-2.5464555.475501-4.7709715 1.426505-6.6726933.951003-1.9020068 2.296881-3.3686831 4.037633-4.4003138s3.755295-1.5473036 6.044199-1.5473036c2.288619 0 4.303447.5156729 6.044199 1.5473036 1.740753 1.0316307 3.08663 2.498307 4.037634 4.4003138.950718 1.9017218 1.42622 4.1262378 1.42622 6.6726933 0 2.5467404-.475502 4.7709715-1.42622 6.6729782-.951004 1.9017219-2.296881 3.3686831-4.037634 4.4000289-1.740752 1.0316307-3.75558 1.5473036-6.044199 1.5473036-2.288904 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289468-1.5957369 1.933916-3.924812 1.933916-6.9872253 0-2.9655465-.660688-5.2624277-1.982349-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.982634 3.9248121-1.982634 6.8903586c0 3.0624133.652996 5.3914884 1.958417 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.988222 19.7799018v15.2798724h-3.916549v-15.0864238c0-2.2564251-.451285-3.9085727-1.353856-4.9561579-.90257-1.0475852-2.321097-1.5715203-4.255298-1.5715203-2.256425 0-4.061565.693167-5.41542 2.079216-1.353855 1.3860489-2.031068 3.2558618-2.031068 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.128775-4.786926-.386897-6.8177085h3.723387l.386897 4.3518804c.741315-1.5797825 1.853573-2.7965996 3.336204-3.6507362 1.482916-.8544216 3.175234-1.2814899 5.077241-1.2814899 5.834796 0 8.751909 3.2074284 8.751909 9.6222853z"/><path d="m203.619569 20.3360308c1.096874 1.4344824 1.643886 3.2156906 1.643886 5.343055 0 2.9980254-1.000007 5.3108611-3.00002 6.938792-1.997164 1.6279309-4.817695 2.4418964-8.461594 2.4418964h-14.310635v-34.42786122h13.82915c3.512844 0 6.245056.78177151 8.196635 2.34531453 1.948731 1.56325812 2.923097 3.77951197 2.923097 6.64847666 0 1.83761893-.475787 3.42509373-1.424511 4.76299423-.951573 1.3376156-2.282066 2.3290751-3.991479 2.9735238 1.968673.5481517 3.498598 1.5393263 4.595471 2.9738086zm-20.213807-4.4242455h9.284961c2.578364 0 4.529944-.5159578 5.85189-1.5473036 1.321946-1.0316307 1.982919-2.5467404 1.982919-4.54532897 0-3.93278933-2.612553-5.899184-7.834809-5.899184h-9.284961zm16.031444 14.3368462c1.273512-1.0153913 1.908844-2.5706722 1.908844-4.6661275 0-4.2228197-2.626798-6.3342296-7.880393-6.3342296h-10.059895v12.523444h10.059895c2.70657 0 4.698036-.5076956 5.971549-1.5230869z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(356.809897 292.199308)"><path d="m.10689318 19.8854177 1.48742717-18.91226722h4.17039899l-1.24844346 15.53895012h8.44675212l-.2655896 3.3733171z"/><path d="m14.955185 19.8854177 1.0625151-13.46697537h4.01092l-1.0625151 13.46697537zm1.3811601-19.78885388h4.3031155l-.2921955 3.77193628h-4.3031156z"/><path d="m21.436386 18.4510458 1.3014988-2.7889259c.7437136.5134941 1.540639.9074182 2.3906198 1.1819286.8499807.2745105 1.6999614.4117657 2.5499422.4117657.7437136 0 1.2927345-.1062672 1.6469061-.3188015.3541717-.2125343.5311793-.495809.5311793-.8499807 0-.3718568-.2079956-.6640524-.6241435-.8765867-.4161478-.2123778-1.0935031-.4602823-2.0320659-.7437136-.973933-.2655896-1.7708584-.5311792-2.3906197-.7967689-.6197613-.2657461-1.1554793-.6596702-1.6069973-1.1820852-.451518-.5224149-.6773553-1.1997702-.6773553-2.0320659 0-.86766582.2435224-1.62906451.7305671-2.28435256.4868883-.65513154 1.1775465-1.16862571 2.0718183-1.5404825s1.916878-.5579417 3.0679751-.5579417c1.0093032 0 1.9965392.15055818 2.9615514.45167454.9651687.30095986 1.7752405.70834338 2.4305286 1.22183754l-1.2750494 2.68281528c-.6551315-.47812392-1.3457898-.84121642-2.0718183-1.08912095s-1.4343718-.37185679-2.1250301-.37185679c-.7260285 0-1.2748928.10626716-1.6467496.31880147-.3718568.21237781-.5577852.50457336-.5577852.87643017 0 .3896984.2212986.6995791.6640523.9297985.4425972.2302194 1.1155704.4692031 2.0186065.7171076.9740895.2832748 1.7664762.5577852 2.3773168.8233749.610997.2657461 1.1421763.6596702 1.5938508 1.1820851.451518.522415.6773553 1.1997703.6773553 2.032066 0 1.3281047-.5269536 2.3683959-1.5805479 3.1210303-1.0535942.7526344-2.4746631 1.1288734-4.2632067 1.1288734-2.3020377 0-4.3561708-.5490209-6.1623995-1.6469062z"/><path d="m40.9064384 14.6526601c-.0530553.7437136.0973463 1.2927345.451518 1.6469062s.8412165.5311793 1.4609778.5311793c.407227 0 .8589015-.0707405 1.3547106-.2123778l-.2657461 3.1077274c-.6020763.2479045-1.3811601.3718568-2.337408.3718568-1.5229539 0-2.6871974-.407227-3.4928871-1.2218376-.8056897-.8146105-1.2085346-1.9655511-1.2085346-3.4531348 0-.3009598.0087643-.5311792.0264494-.6906582l.4250686-5.31241881h-2.5499422l.2389837-3.00146026h2.5499422l.2391403-3.16093925 4.1170306-1.30149878-.3452509 4.46243803h3.4265289l-.2389837 3.00146026h-3.4265289z"/><path d="m45.182948 18.4510458 1.3014988-2.7889259c.7438701.5134941 1.540639.9074182 2.3906198 1.1819286.8499807.2745105 1.6999614.4117657 2.5499422.4117657.7438701 0 1.2927345-.1062672 1.6469062-.3188015.3541716-.2125343.5313357-.495809.5313357-.8499807 0-.3718568-.2081521-.6640524-.6242999-.8765867-.4161479-.2123778-1.0935032-.4602823-2.032066-.7437136-.973933-.2655896-1.7707019-.5311792-2.3904632-.7967689-.6199178-.2657461-1.1554793-.6596702-1.6069973-1.1820852-.4516745-.5224149-.6773553-1.1997702-.6773553-2.0320659 0-.86766582.2433659-1.62906451.7304106-2.28435256.4868883-.65513154 1.1775465-1.16862571 2.0718183-1.5404825s1.916878-.5579417 3.0679751-.5579417c1.0093032 0 1.9965392.15055818 2.9617079.45167454.9650122.30095986 1.7752405.70834338 2.4303721 1.22183754l-1.2748929 2.68281528c-.655288-.47812392-1.3459463-.84121642-2.0719748-1.08912095-.7260284-.24790453-1.4343718-.37185679-2.1248736-.37185679-.7260284 0-1.2750493.10626716-1.6469061.31880147-.3718568.21237781-.5577852.50457336-.5577852.87643017 0 .3896984.2212986.6995791.6640523.9297985.4427538.2302194 1.1155704.4692031 2.018763.7171076.973933.2832748 1.7663198.5577852 2.3773168.8233749.6108405.2657461 1.1421763.6596702 1.5936943 1.1820851.451518.522415.6773553 1.1997703.6773553 2.032066 0 1.3281047-.5267971 2.3683959-1.5805479 3.1210303-1.0535942.7526344-2.4746631 1.1288734-4.2632066 1.1288734-2.3020378 0-4.3561709-.5490209-6.1623996-1.6469062z"/><path d="m67.4951382.97315048h7.543716c1.9478661 0 3.4664378.46935965 4.5554023 1.40776594 1.0891209.93856279 1.6336032 2.23129726 1.6336032 3.87820343 0 1.64674965-.5490209 2.94386628-1.6469062 3.89134985-1.0978853.9473271-2.6119184 1.4210689-4.5420993 1.4210689h-5.3654741v8.3138791h-2.1782419zm7.3577876 8.7921595c1.3990017 0 2.4525959-.30111636 3.1609393-.90319258.7083434-.60207621 1.062515-1.46974206 1.062515-2.60299755 0-1.133412-.3541716-1.9966957-1.062515-2.58985111-.7083434-.59331191-1.7619376-.88988961-3.1609393-.88988961h-5.1795457v6.98593085z"/><path d="m95.8636172 6.52470948v13.36070822h-2.1250301v-2.4170692c-.3895419.8322956-.9783152 1.4741242-1.7663198 1.9256423-.7880046.4516745-1.7043436.6773553-2.7491736.6773553-1.1864673 0-2.2267586-.2832748-3.1210303-.8499808-.8942718-.5665495-1.5849301-1.367857-2.0718183-2.4039227-.4870448-1.0359091-.7305671-2.2444437-.7305671-3.6256037 0-1.3813166.2479045-2.5987719.7437135-3.65236619.4959656-1.05359425 1.191006-1.87258693 2.0852778-2.45697803.8941152-.58439111 1.9256422-.87658666 3.0944244-.87658666 1.04483 0 1.9567869.23021942 2.7358707.69065826.7792403.46043884 1.3723957 1.10680608 1.7796227 1.93894521v-2.31080201zm-3.1873886 10.42560622c.7083433-.8942718 1.0623585-2.1647825 1.0623585-3.8116887 0-1.6469061-.3540152-2.9130347-1.0623585-3.79838565-.7083434-.88535096-1.7178031-1.32810469-3.0280662-1.32810469-1.3104196 0-2.3331823.45605669-3.0679751 1.36801357-.7349493.91195687-1.1024239 2.18246757-1.1024239 3.81168867 0 1.6290645.3630925 2.8864288 1.089121 3.7717797.7260284.885351 1.7530168 1.3281047 3.081278 1.3281047 1.3102631 0 2.3197228-.4471359 3.0280662-1.3414076z"/><path d="m111.933747 6.52470948v13.25444102c0 1.9833927-.509112 3.4841229-1.527336 4.5023469s-2.518955 1.5273361-4.502191 1.5273361c-2.036448 0-3.789621-.4604389-5.259363-1.3813166l.371857-1.7530168c.84998.478124 1.651288.8233749 2.403922 1.0359092.752478.2125343 1.580392.3188014 2.483584.3188014 1.292578 0 2.266511-.3408687 2.921799-1.0227627.655132-.6817374.982854-1.6954228.982854-3.0413691v-3.1607827c-.407384.8499807-1.005078 1.5094944-1.793082 1.978854-.788005.4692032-1.722029.7038048-2.802229.7038048-1.168782 0-2.209074-.274354-3.12103-.8233749-.911957-.5488644-1.615919-1.3281047-2.1117276-2.3374079-.4958091-1.0094597-.7437136-2.1693211-.7437136-3.4797407s.2479045-2.470281.7437136-3.47958423c.4958086-1.00945973 1.1997706-1.78854354 2.1117276-2.33756443.911956-.54886438 1.952248-.82337482 3.12103-.82337482 1.062515 0 1.987775.23021942 2.775779.69065826.788005.46043884 1.385543 1.10680608 1.792926 1.93894521v-2.31080201zm-3.253904 9.86782102c.734949-.8589016 1.102424-2.0408302 1.102424-3.546099 0-1.5051123-.367475-2.6871975-1.102424-3.54594251-.734793-.85890155-1.748634-1.28835233-3.041369-1.28835233-1.31042 0-2.34179.42945078-3.094424 1.28835233-.752635.85874501-1.128874 2.04083021-1.128874 3.54594251 0 1.5052688.376239 2.6871974 1.128874 3.546099.752634.8589015 1.784004 1.2881958 3.094424 1.2881958 1.292735 0 2.306576-.4292943 3.041369-1.2881958z"/><path d="m127.260162 13.138627h-9.801462c.017685 1.6999615.411765 2.9837752 1.182085 3.8515976.770319.8676658 1.890272 1.3014987 3.360014 1.3014987 1.558324 0 2.992696-.5224149 4.303116-1.5672449l.717264 1.5672449c-.584391.5490209-1.332644.9828538-2.244601 1.3014988-.911956.3188015-1.845981.478124-2.802228.478124-2.08966 0-3.727646-.6153792-4.914113-1.8459811-1.186467-1.2307583-1.779623-2.9174168-1.779623-5.060132 0-1.363475.26559-2.572166.796926-3.62576029.531179-1.05359425 1.274893-1.87258693 2.23114-2.45697803.956248-.58439111 2.045369-.87658666 3.267207-.87658666 1.770702 0 3.160939.58000895 4.170242 1.73987036 1.009304 1.1598614 1.514033 2.75793792 1.514033 4.79438592zm-8.380393-4.24990368c-.699423.67281665-1.146559 1.62030028-1.341408 2.84213778h7.7827c-.106111-1.2572078-.473586-2.21345565-1.102268-2.8687437-.628682-.65513154-1.50073-.98285381-2.616457-.98285381-1.11557 0-2.023145.33648658-2.722567 1.00945973z"/><path d="m129.703837 18.3447787.717265-1.5936944c.726028.566706 1.460821.973933 2.204691 1.2218376.743714.2479045 1.576009.3718568 2.496261.3718568 1.00946 0 1.776336-.1726255 2.297499-.5178764.522728-.3452508.784092-.8455986.784092-1.5007301 0-.5313358-.176851-.9562479-.530553-1.2750494-.355268-.3188014-.939033-.566706-1.752861-.7437135l-2.258529-.5313358c-1.115727-.2479046-1.97901-.6905018-2.589851-1.3281047-.610997-.6374465-.916339-1.3988452-.916339-2.2843526 0-1.16862572.469203-2.12049147 1.407766-2.85544076.938563-.73479278 2.178085-1.10226742 3.718411-1.10226742.939033 0 1.824853.15055818 2.655897.45151803.832608.30111636 1.532187.73494929 2.098737 1.30165528l-.716795 1.56708842c-1.256738-1.04482995-2.602684-1.56708842-4.037839-1.56708842-.955934 0-1.695266.18138975-2.217681.54448224-.522415.36293598-.783622.872048-.783622 1.52733603 0 .5488644.163861.9828538.491427 1.3014988.327565.3188015.854362.566706 1.580391.7437136l2.258216.5577852c1.239523.2834312 2.159774.7216463 2.76232 1.3149582.602546.5931554.903036 1.3678571.903036 2.324105 0 1.1510971-.469516 2.0718183-1.408548 2.7624765-.937467.6906583-2.212986 1.0359092-3.824992 1.0359092-2.248356 0-4.027979-.5754703-5.338399-1.7265674z"/><path d="m163.62325 13.9621584v1.8062286h-2.868744v4.1170307h-2.17699v-4.1170307h-8.712655v-1.6469061l9.110179-13.14833042h1.779466v12.98900792zm-11.500016 0h6.454282v-9.29688939z"/><path d="m168.936607 17.149547v1.9391018c0 .7437135-.123639 1.425451-.372483 2.0452123-.247278.6197613-.663582 1.2218376-1.247347 1.8062287l-1.011025-.7703195c.691754-.796769 1.081452-1.5583242 1.169095-2.2843526h-1.273954v-2.7358707z"/><path d="m182.52284 8.76915321c.893645.50472986 1.580704 1.20853458 2.058046 2.11172719.478906.903036.718359 1.947866.718359 3.1343333s-.261364 2.2400616-.784092 3.1609393c-.522728.9207211-1.266128 1.6336032-2.231766 2.1381765-.964074.5047299-2.094043.7570166-3.386777.7570166-1.150315 0-2.283414-.2079957-3.399297-.6241435s-2.054916-.987236-2.815532-1.7132645l.823218-1.673512c1.752861 1.4522134 3.551108 2.1782419 5.391611 2.1782419 1.328731 0 2.369492-.3763954 3.122282-1.1290298.751226-.7524779 1.128404-1.7752406 1.128404-3.0678186 0-1.2573642-.372483-2.2710496-1.115883-3.0413691-.743401-.7703195-1.735645-1.15547928-2.975168-1.15547928-1.806072 0-3.249051.73479278-4.328938 2.20469138h-1.514973v-11.07651212h11.341946v1.80622865h-9.163391v6.74679062c1.045456-1.00930322 2.382012-1.51403309 4.011233-1.51403309 1.186311 0 2.227072.25228668 3.120718.75701655z"/><path d="m191.010127 17.149547v1.9391018c0 .7437135-.125205 1.425451-.372483 2.0452123-.247279.6197613-.663583 1.2218376-1.248913 1.8062287l-1.00946-.7703195c.691754-.796769 1.081452-1.5583242 1.169095-2.2843526h-1.275518v-2.7358707z"/><path d="m204.543147 8.76915321c.893646.50472986 1.58853 1.21307323 2.084652 2.12503009.496122.9119569.743401 1.9522482.743401 3.1210304s-.259799 2.2134557-.782527 3.1343333c-.522728.9208777-1.244218 1.6423675-2.166035 2.1647825-.920251.522415-1.964142.7836225-3.133238.7836225-2.284978 0-4.047229-.7969254-5.286751-2.3906198-1.239523-1.5936943-1.859284-3.8603618-1.859284-6.7998459 0-2.12503014.287969-3.94894389.863909-5.47189779.57594-1.52279739 1.406984-2.6828153 2.496261-3.47958421 1.089278-.79692542 2.396098-1.19538813 3.918895-1.19538813 1.097103 0 2.164469.20377001 3.200535.61099702s1.943797.98285382 2.721629 1.7265674l-.823219 1.67335558c-.88582-.74371359-1.735644-1.29273448-2.549472-1.64690617-.813828-.35401518-1.646437-.53117927-2.496261-.53117927-1.629221 0-2.89535.72602848-3.798386 2.17808544-.903036 1.45205695-1.355336 3.48850502-1.355336 6.10934423v.3984627c.406914-1.0094598 1.072061-1.80622867 1.992313-2.39061978s1.975098-.87658666 3.161409-.87658666c1.150314 0 2.172295.25228668 3.067505.75701655zm-.438215 8.34048499c.743401-.770163 1.115884-1.7929257 1.115884-3.0678186 0-1.2573642-.377178-2.2710496-1.129969-3.0413691s-1.73095-1.15547928-2.934476-1.15547928c-1.239523 0-2.248983.38954188-3.028379 1.16878218-.779397.7790838-1.169096 1.7883871-1.169096 3.0280662 0 1.2572078.389699 2.2754318 1.169096 3.0546721.779396.7790838 1.796681 1.1686257 3.054985 1.1686257 1.203526 0 2.178555-.3851597 2.921955-1.1554792z"/></g><g transform="translate(660.011742 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(688.758199 242.51167)"><path d="m.07350476 31.0947909 1.49915513-3.0461739c1.70855822 1.4504369 3.44902547 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83592263.9188095 6.18921443.9188095 2.7720979 0 4.9077245-.5401745 6.4068796-1.6199537 1.4988702-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3626804-2.1034326-1.0880413-2.8285086-.7253609-.7253609-1.6763643-1.2977293-2.8527253-1.7165355-1.1766459-.419091-2.7481662-.8544215-4.7145608-1.3057065-2.6433222-.5803457-4.81940488-1.2088399-6.52767819-1.8857674-1.70855822-.6769275-3.0948921-1.6521476-4.15843184-2.9253753-1.06382464-1.2732277-1.59573696-2.9416147-1.59573696-5.0045912 0-1.96639471.5156729-3.69916961 1.5473036-5.19803984 1.0316307-1.49915513 2.49004482-2.66753887 4.37609708-3.505721 1.88576736-.83818214 4.08578181-1.25727321 6.60004331-1.25727321 2.3854857 0 4.6097168.37094261 6.6729782 1.11225801 2.0629765.74131541 3.8037287 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6119764-1.38633388-3.2478845-2.40172515-4.9080094-3.04645873-1.6601248-.64473357-3.473527-.96695791-5.4399217-.96695791-2.6755161 0-4.77068658.57208353-6.28579623 1.71653548-1.51510966 1.14445195-2.27266449 2.71597223-2.27266449 4.71456088 0 1.7407521.6606881 3.0461738 1.98234919 3.9165499 1.32166109.870376 3.35272853 1.6279309 6.09263253 2.2726645 2.9658315.7091214 5.2949066 1.3618322 6.9872254 1.9584174 1.6923187.5963002 3.1025844 1.4988702 4.2307969 2.70771 1.1284975 1.2088399 1.6926037 2.8125541 1.6926037 4.8111427 0 1.9342007-.5159578 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5065691 2.602866-4.4245304 3.4088542s-4.1664091 1.2088399-6.7453434 1.2088399c-5.3832262 0-9.67071872-1.4507218-12.86219264-4.3518804z"/><path d="m52.0054694 22.7779272h-17.8425672c.0324788 3.0946072.7495775 5.4316596 2.1518659 7.011442 1.4022884 1.5794975 3.4413332 2.3692463 6.1168493 2.3692463 2.8367707 0 5.447899-.9510034 7.8330998-2.8530102l1.3057066 2.8530102c-1.0638247.9994368-2.425657 1.7891855-4.0857818 2.3692463-1.6604098.5803457-3.3607058.8703761-5.101458.8703761-3.8037286 0-6.7855146-1.1202353-8.9453578-3.3604209-2.1598432-2.2404705-3.2399073-5.310861-3.2399073-9.2114564 0-2.4820676.4837639-4.6823669 1.4507218-6.6003282s2.3210978-3.4088543 4.06185-4.4726789c1.7407521-1.0638247 3.7231013-1.595737 5.9473324-1.595737 3.2236679 0 5.7541688 1.0558474 7.5915028 3.1672572 1.8376189 2.1114099 2.7561435 5.0205458 2.7561435 8.7276926zm-15.2553708-7.736518c-1.2735126 1.2247944-2.0874781 2.949592-2.4418963 5.1738231h14.1676143c-.1934486-2.288619-.8623988-4.0293711-2.0068508-5.2222565-1.144167-1.1926004-2.7319268-1.7891855-4.7627093-1.7891855-2.0307826 0-3.6829301.6125397-4.9561579 1.8376189z"/><path d="m61.99072 33.8509343c-1.7569915-1.0313458-3.1108466-2.4900448-4.06185-4.3760971-.9510034-1.8857673-1.426505-4.0857818-1.426505-6.6000433 0-2.5145464.4837638-4.7308002 1.4507217-6.6487615s2.3453146-3.4088543 4.1342152-4.4726789c1.7891855-1.0638247 3.8763787-1.595737 6.2618644-1.595737 1.6441703 0 3.2316451.2820531 4.7629942.8461594 1.5310642.5641063 2.7963147 1.3458778 3.7957514 2.3453145l-1.3057066 2.9011587c-1.2247943-.9672429-2.4097024-1.6763643-3.5538694-2.1276493-1.144452-.451285-2.3131206-.6769276-3.505721-.6769276-2.4820676 0-4.4325077.8302049-5.8507507 2.4903298-1.4185278 1.6601248-2.1276492 3.9729605-2.1276492 6.9387919 0 2.9333526.7011442 5.2139943 2.1034326 6.8419253 1.4022884 1.6279309 3.3604209 2.4418963 5.8749673 2.4418963 1.1926004 0 2.361269-.2256425 3.505721-.6769275 1.144167-.451285 2.3290751-1.1604065 3.5538694-2.1276493l1.3057066 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8926181 2.2968812s-3.1832118.8461594-4.859576.8461594c-2.3532918 0-4.4082911-.5156729-6.1649978-1.5473036z"/><path d="m87.1586914 13.8325694v13.2972382c0 1.80514.3709426 3.0703905 1.112258 3.7957514s1.7891856 1.0880413 3.1430406 1.0880413c.90257 0 1.7729461-.1450152 2.6111282-.4353305v3.3364892c-.9994367.3225092-2.1276493.4834789-3.3849225.4834789-2.3208129 0-4.1342151-.6527108-5.4396368-1.9581325-1.3057066-1.3057066-1.9584174-3.2316451-1.9584174-5.7783855v-13.8291505h-4.7387775v-3.0946072h4.7387775v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630087v3.0946072z"/><path d="m98.8604776 35.0597742v-24.321812h3.9165494v24.321812zm-.3868971-34.62130978h4.7869255v4.44874713h-4.7869255z"/><path d="m114.381947 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037633-4.4000289-.950719-1.9020067-1.426221-4.1262378-1.426221-6.6729782 0-2.5464555.475502-4.7709715 1.426221-6.6726933.951003-1.9020068 2.296881-3.3686831 4.037633-4.4003138s3.75558-1.5473036 6.044199-1.5473036c2.288904 0 4.303447.5156729 6.044199 1.5473036s3.08663 2.498307 4.037634 4.4003138c.951003 1.9017218 1.426505 4.1262378 1.426505 6.6726933 0 2.5467404-.475502 4.7709715-1.426505 6.6729782-.951004 1.9017219-2.296882 3.3686831-4.037634 4.4000289-1.740752 1.0316307-3.755295 1.5473036-6.044199 1.5473036-2.288619 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289468-1.5957369 1.934201-3.924812 1.934201-6.9872253 0-2.9655465-.660973-5.2624277-1.982634-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.982349 3.9248121-1.982349 6.8903586c0 3.0624133.652711 5.3914884 1.958132 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.915857 19.7799018v15.2798724h-3.916835v-15.0864238c0-2.2564251-.451285-3.9085727-1.353855-4.9561579s-2.320812-1.5715203-4.255013-1.5715203c-2.256425 0-4.06185.693167-5.415705 2.079216-1.353855 1.3860489-2.030783 3.2558618-2.030783 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.12906-4.786926-.386897-6.8177085h3.723101l.386898 4.3518804c.741315-1.5797825 1.853573-2.7965996 3.336489-3.6507362 1.482915-.8544216 3.175234-1.2814899 5.076956-1.2814899 5.834796 0 8.752194 3.2074284 8.752194 9.6222853z"/><path d="m185.630847 33.319022c-2.401725-1.4182429-4.247891-3.4572876-5.535648-6.1165644-1.290607-2.6595616-1.934486-5.7946249-1.934486-9.404905 0-3.6105649.643879-6.7293888 1.934486-9.35647159 1.287757-2.62708276 3.133923-4.64988805 5.535648-6.06841587 2.401726-1.41824292 5.230804-2.12764929 8.487236-2.12764929 2.384631 0 4.56983.36268044 6.552749 1.08804133 1.98007.72536088 3.69803 1.81340221 5.148182 3.26383907l-1.498585 3.04645873c-1.643886-1.41852782-3.264979-2.4339191-4.860431-3.04645873s-3.358996-.91852454-5.293482-.91852454c-3.772105 0-6.69805 1.22479436-8.777835 3.67466798-2.079786 2.44987362-3.11683 5.93137791-3.11683 10.44451291 0 4.545329 1.031346 8.0507651 3.094037 10.5168782 2.062692 2.466113 4.997184 3.6991695 8.800628 3.6991695 1.934486 0 3.69803-.3062698 5.293482-.9188094 1.595452-.6125397 3.216545-1.6279309 4.860431-3.0461739l1.498585 3.0461739c-1.450152 1.4507217-3.168112 2.5384782-5.148182 3.263839-1.982919.7253609-4.168118 1.0880414-6.552749 1.0880414-3.256432 0-6.08551-.7091215-8.487236-2.1276493z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(683.970025 292.181215)"><path d="m.10947429 20.3655834 1.52334352-19.36893462h4.27110005l-1.27858915 15.91416332h8.65071269l-.2720028 3.4547713z"/><path d="m15.3163023 20.3655834 1.0881712-13.79215735h4.1077702l-1.0881712 13.79215735zm1.4145104-20.26668789h4.4070212l-.2992511 3.86301581h-4.4070212z"/><path d="m21.9540024 18.8965763 1.3329256-2.8562691c.7616718.5258933 1.5778402.9293293 2.4483451 1.2104683.870505.2811389 1.7410099.4217084 2.6115148.4217084.7616717 0 1.3239496-.1088332 1.6866734-.3264995.3627237-.2176663.5440054-.5077811.5440054-.8705049 0-.3808359-.213018-.680087-.6392144-.8977533-.4261964-.217506-1.1199075-.4713966-2.0811335-.7616717-.9974502-.2720027-1.8136186-.5440055-2.4483451-.8160082-.6347265-.272163-1.1833802-.675599-1.6458009-1.2106285-.4624206-.5350296-.6937111-1.2287407-.6937111-2.0811335 0-.88861705.2494026-1.66840095.7482079-2.33951199.4986449-.67095076 1.2059803-1.19684408 2.1218457-1.57767996s1.963164-.5714141 3.1420563-.5714141c1.0336745 0 2.0447488.15419365 3.0330628.46258095.9884743.30822702 1.8181067.72544747 2.4892177 1.25134079l-1.3058375 2.74759621c-.6709507-.489669-1.3782861-.86152895-2.1218457-1.11541954-.7435596-.25389058-1.4690071-.38083588-2.1763424-.38083588-.7435596 0-1.3056772.10883315-1.6865131.32649945-.3808359.21750602-.5712538.51675707-.5712538.89759297 0 .3991083.2266422.7164716.6800869.95225.4532845.2357784 1.1425077.4805328 2.067349.7344234.9976105.2901149 1.8091307.5712538 2.434721.8432566.6257505.272163 1.169756.675599 1.6323369 1.2106285.4624207.5350295.6937112 1.2287407.6937112 2.0811334 0 1.360174-.5396778 2.4255848-1.6187128 3.1963928s-2.5344179 1.1561318-4.3661487 1.1561318c-2.3576242 0-4.4613577-.5622779-6.3112007-1.6866734z"/><path d="m41.8941909 15.0064724c-.0543365.7616718.0996969 1.3239497.4624206 1.6866734.3627238.3627238.861529.5440055 1.4962555.5440055.4170601 0 .8796411-.0724486 1.3874223-.217506l-.272163 3.1827685c-.6166144.2538906-1.4145104.3808359-2.3938485.3808359-1.5597281 0-2.7520842-.4170602-3.5772286-1.2513408s-1.2377166-2.0130125-1.2377166-3.5365164c0-.308227.0089759-.5440054.0270881-.7073353l.4353326-5.44069574h-2.6115148l.2447544-3.07393541h2.6115147l.2449147-3.23726527 4.216443-1.33292558-.3535875 4.57019085h3.509268l-.2447544 3.07393541h-3.509268z"/><path d="m46.2739638 18.8965763 1.3329255-2.8562691c.7618321.5258933 1.5778403.9293293 2.4483452 1.2104683.8705049.2811389 1.7410098.4217084 2.6115147.4217084.7618321 0 1.3239497-.1088332 1.6866734-.3264995.3627238-.2176663.5441658-.5077811.5441658-.8705049 0-.3808359-.2131784-.680087-.6393748-.8977533-.4261963-.217506-1.1199075-.4713966-2.0811334-.7616717-.9974502-.2720027-1.8134584-.5440055-2.4481849-.8160082-.6348867-.272163-1.1833801-.675599-1.6458008-1.2106285-.462581-.5350296-.6937112-1.2287407-.6937112-2.0811335 0-.88861705.2492424-1.66840095.7480476-2.33951199.498645-.67095076 1.2059803-1.19684408 2.1218457-1.57767996s1.9631641-.5714141 3.1420563-.5714141c1.0336745 0 2.0447489.15419365 3.0332232.46258095.988314.30822702 1.8181066.72544747 2.4890574 1.25134079l-1.3056773 2.74759621c-.671111-.489669-1.3784463-.86152895-2.1220059-1.11541954-.7435597-.25389058-1.4690071-.38083588-2.1761822-.38083588-.7435596 0-1.3058375.10883315-1.6866734.32649945-.3808358.21750602-.5712538.51675707-.5712538.89759297 0 .3991083.2266422.7164716.680087.95225.4534447.2357784 1.1425076.4805328 2.0675093.7344234.9974502.2901149 1.8089704.5712538 2.4347209.8432566.6255903.272163 1.169756.675599 1.6321767 1.2106285s.6937111 1.2287407.6937111 2.0811334c0 1.360174-.5395175 2.4255848-1.6187127 3.1963928-1.079035.770808-2.5344179 1.1561318-4.3661488 1.1561318-2.3576241 0-4.4613577-.5622779-6.3112006-1.6866734z"/><path d="m69.124918.99664878h7.7258714c1.9949004 0 3.5501405.4806931 4.6653998 1.44175873 1.1154195.96122592 1.6730492 2.28517557 1.6730492 3.97184896 0 1.6865131-.5622779 3.01495072-1.6866734 3.98531283-1.1243955.9702019-2.6749874 1.4553829-4.6517756 1.4553829h-5.4950322v8.5146312h-2.2308392zm7.5354534 9.00446052c1.4327828 0 2.5118178-.30838734 3.2372653-.92500167.7254475-.61661432 1.0881712-1.50523137 1.0881712-2.66585116 0-1.16078007-.3627237-2.04490916-1.0881712-2.65238727-.7254475-.60763839-1.8044825-.91137745-3.2372653-.91137745h-5.3046142v7.15461755z"/><path d="m98.1784001 6.6822592v13.6833242h-2.1763424v-2.4754332c-.3989481.8523927-1.0019382 1.5097193-1.8089705 1.97214-.8070322.4625809-1.7454977.6937111-2.8155568.6937111-1.2151165 0-2.2805273-.2901148-3.1963927-.8705049-.9158655-.5802297-1.6232008-1.4008862-2.1218457-2.4619693-.4988053-1.0609229-.7482079-2.2986395-.7482079-3.7131498 0-1.4146707.2538906-2.6615235.7616717-3.74055852.5079415-1.07903499 1.2197648-1.91780358 2.1356302-2.51630576.9157051-.59850218 1.97214-.89775327 3.1691444-.89775327 1.0700591 0 2.0040366.23577845 2.8019327.70733533.7980563.47155689 1.4055344 1.13353171 1.8225946 1.9857642v-2.36660008zm-3.2643534 10.6773494c.7254475-.9158654 1.088011-2.2170547 1.088011-3.9037281 0-1.6866733-.3625635-2.9833746-1.088011-3.89010384-.7254474-.90672919-1.7592822-1.36017394-3.1011837-1.36017394-1.3420618 0-2.3895208.46706892-3.1420563 1.40104648-.7526958.9339776-1.1290438 2.2351668-1.1290438 3.9037281 0 1.6684009.37186 2.9561263 1.1154196 3.8628555s1.7953463 1.3601739 3.1556805 1.3601739c1.3419015 0 2.3757363-.4579327 3.1011837-1.3737981z"/><path d="m114.636569 6.6822592v13.574491c0 2.031285-.521405 3.5682527-1.564216 4.6110634s-2.579779 1.5642161-4.610903 1.5642161c-2.085622 0-3.881128-.4715569-5.38636-1.4146707l.380836-1.7953462c.870505.489669 1.691162.8432565 2.46197 1.0609228.770647.2176663 1.618552.3264995 2.543554.3264995 1.323789 0 2.321239-.3490996 2.99235-1.047459.670951-.6981991 1.006587-1.7363615 1.006587-3.1148079v-3.237105c-.417221.8705049-1.029347 1.5459436-1.836379 2.0266367-.807033.4805329-1.76361.7207993-2.869894.7207993-1.197004 0-2.262415-.2809787-3.196392-.8432566-.933978-.5621176-1.654937-1.3601739-2.162719-2.3938484-.507781-1.0338348-.761671-2.2217029-.761671-3.5637647s.25389-2.52993.761671-3.56360448c.507782-1.03383477 1.228741-1.83173082 2.162719-2.39400871.933977-.56211761 1.999388-.84325656 3.196392-.84325656 1.088172 0 2.035773.23577845 2.842806.70733533.807032.47155689 1.418998 1.13353171 1.836218 1.9857642v-2.36660008zm-3.332474 10.1060956c.752695-.8796411 1.129043-2.0901094 1.129043-3.6317253 0-1.5414557-.376348-2.7520842-1.129043-3.63156509-.752536-.87964112-1.790859-1.31946169-3.114808-1.31946169-1.342062 0-2.398337.43982057-3.169145 1.31946169-.770808.87948089-1.156131 2.09010939-1.156131 3.63156509 0 1.5416159.385323 2.7520842 1.156131 3.6317253s1.827083 1.3193014 3.169145 1.3193014c1.323949 0 2.362272-.4396603 3.114808-1.3193014z"/><path d="m130.333066 13.4558805h-10.038135c.018112 1.7410099.421708 3.0558233 1.210628 3.9446006.788921.8886171 1.935916 1.3329256 3.441148 1.3329256 1.595952 0 3.064959-.5350295 4.407021-1.6050886l.734584 1.6050886c-.598503.5622779-1.364823 1.0065864-2.2988 1.3329256-.933978.3264995-1.890555.489669-2.869893.489669-2.140119 0-3.817656-.6302385-5.032772-1.8905552-1.215117-1.260477-1.822595-2.9878626-1.822595-5.1823172 0-1.3963982.272003-2.6342751.816169-3.71331012.544005-1.07903499 1.305677-1.91780358 2.285015-2.51630576s2.094757-.89775327 3.346098-.89775327c1.813459 0 3.237266.59401422 4.27094 1.78188236 1.033675 1.18786815 1.550592 2.82453279 1.550592 4.91015419zm-8.582752-4.35252451c-.716311.6890629-1.174244 1.65942501-1.373798 2.91076581h7.970625c-.108672-1.2875651-.48502-2.26690312-1.128883-2.93801417-.643863-.67095075-1.536968-1.00658641-2.679636-1.00658641-1.142507 0-2.071997.34461159-2.788308 1.03383477z"/><path d="m132.835747 18.7877432.734584-1.6321767c.74356.58039 1.496095.9974502 2.257927 1.2513408.761672.2538906 1.614065.3808359 2.556538.3808359 1.033834 0 1.819228-.1767938 2.352975-.5303813.535351-.3535875.803026-.866017.803026-1.5369677 0-.5441658-.181122-.9793381-.543365-1.3058375-.363845-.3264995-.961706-.5803901-1.795186-.7616718l-2.313065-.5441657c-1.142668-.2538906-2.026797-.7071751-2.652387-1.360174-.625751-.6528386-.938466-1.4326225-.938466-2.339512 0-1.19684406.480533-2.17169415 1.441759-2.92438998.961226-.75253555 2.230679-1.12888347 3.808199-1.12888347.961706 0 1.868917.15419366 2.720027.46242067.852713.30838731 1.569185.75269584 2.149415 1.33308587l-.734103 1.60492831c-1.287084-1.07005906-2.665531-1.60492831-4.135339-1.60492831-.979018 0-1.736202.18576969-2.271231.55762964-.53503.37169967-.802544.89310502-.802544 1.56421607 0 .5621176.167817 1.0065864.503293 1.3329256.335475.3264994.874993.58039 1.618552.7616717l2.312745.5712539c1.269453.2902751 2.211925.7390716 2.829021 1.34671.617095.6074781.924841 1.4008862.924841 2.3802243 0 1.1788922-.480854 2.1218457-1.44256 2.829181-.960104.7073353-2.266423 1.0609228-3.917353 1.0609228-2.302646 0-4.125241-.5893659-5.467303-1.7682581z"/><path d="m153.917963.99664878h12.785891v1.65942503l-9.084923 17.70950959h-2.39465l9.032029-17.49184329h-10.338347z"/><path d="m173.015856 17.5636507v1.9859245c0 .7616718-.126624 1.4598709-.381477 2.0945973-.253249.6347265-.679606 1.2513408-1.277467 1.849843l-1.035437-.7889201c.708457-.8160082 1.107565-1.5959524 1.197324-2.339512h-1.304715v-2.8019327z"/><path d="m188.807081 12.1909156c.698841.8434168 1.048261 1.8543309 1.048261 3.0332231 0 1.6502888-.626712 2.9516384-1.878534 3.9037281-1.250219.9520897-2.938014 1.4281345-5.058578 1.4281345-2.122166 0-3.809961-.4760448-5.06018-1.4281345-1.251822-.9520897-1.876931-2.2534393-1.876931-3.9037281 0-1.1788922.357434-2.1944545 1.073906-3.0468473.716471-.8523928 1.700618-1.4417587 2.95244-1.7682582-1.16046-.3444513-2.050039-.91121715-2.667134-1.70013727-.615492-.78892012-.924841-1.71840971-.924841-2.78830849 0-1.03383478.272483-1.93607601.815848-2.70688399.544967-.77064769 1.311127-1.36914987 2.300082-1.79534625.987352-.42619638 2.117357-.63937472 3.38681-.63937472s2.397856.21317834 3.386811.63937472c.987352.42619638 1.753512 1.02469856 2.298479 1.79534625.543365.77080798.815848 1.67304921.815848 2.70688399 0 1.06989878-.312555 1.99938837-.939267 2.78830849-.625109.78892012-1.500262 1.35568597-2.623856 1.70013727 1.269452.3446116 2.251996.9386258 2.950836 1.7818824zm-9.004781-3.59085282c.770969.64386269 1.809612 1.03832275 3.11593 1.18338018 1.304716-.14505743 2.343359-.53951749 3.114327-1.18338018.770969-.64386268 1.155651-1.48263127 1.155651-2.51630576 0-1.07005906-.376668-1.91331562-1.128402-2.52992994-.753337-.61661432-1.799995-.92500163-3.141576-.92500163-1.343183 0-2.389841.30838731-3.143178.92500163-.751734.61661432-1.128403 1.45987088-1.128403 2.52992994 0 1.03367449.384683 1.87244308 1.155651 2.51630576zm6.624557 9.18125422c.815848-.6166143 1.224574-1.5143676 1.224574-2.6932598 0-1.0698988-.431166-1.9267795-1.291893-2.5706422-.862331-.6438627-2.009967-1.0383227-3.441308-1.1833802-1.432943.1450575-2.580579.5395175-3.441307 1.1833802-.86233.6438627-1.293496 1.5007434-1.293496 2.5706422 0 1.1788922.408726 2.0766455 1.224574 2.6932598s1.985924.9248414 3.510229.9248414c1.522703 0 2.692779-.3082271 3.508627-.9248414z"/><path d="m195.622377 17.5636507v1.9859245c0 .7616718-.128228 1.4598709-.381477 2.0945973-.25325.6347265-.679606 1.2513408-1.27907 1.849843l-1.033835-.7889201c.708457-.8160082 1.107566-1.5959524 1.197325-2.339512h-1.306318v-2.8019327z"/><path d="m210.339696 3.22732763c1.26785 1.63217667 1.902577 3.95357653 1.902577 6.96419957 0 3.2824655-.657167 5.8351558-1.971499 7.6577504-1.314333 1.8225946-3.151193 2.7339721-5.508977 2.7339721-1.105963 0-2.189486-.2085301-3.250569-.6257505-1.061083-.4170602-1.998747-1.0064262-2.816198-1.7680979l.871947-1.7139218c.924842.7799442 1.803201 1.3465498 2.638283 1.7002976.833479.3535875 1.676575.5303813 2.529288.5303813 1.668562 0 2.960454-.7435596 3.877282-2.2306789.915224-1.4871192 1.373637-3.5727406 1.373637-6.2568642v-.35358755c-.416739 1.01556235-1.097948 1.81810665-2.040421 2.40747265-.944075.5895262-2.02279.8841291-3.237746.8841291-1.178091 0-2.221543-.2583786-3.128753-.775296-.905607-.5167571-1.614064-1.2422046-2.120563-2.1761821-.508102-.93413786-.762954-1.99954868-.762954-3.19655303 0-1.19684408.267675-2.26690314.803025-3.21001692.53535-.94295348 1.274262-1.68202514 2.216734-2.21705467.944076-.53502953 2.013173-.8025443 3.210498-.8025443 2.340153 0 4.143353.81616848 5.414409 2.44834515zm-2.176663 6.85536647c.796614-.79805638 1.195722-1.83173087 1.195722-3.10118381 0-1.28772536-.399108-2.33053607-1.195722-3.12843212-.798217-.79805633-1.841668-1.19700436-3.128753-1.19700436-1.232587 0-2.231159.39446006-2.992511 1.18338018-.761351.78892012-1.142828 1.83621879-1.142828 3.1420563 0 1.28756508.381477 2.32588782 1.142828 3.11480791.761352.7889202 1.767938 1.1833802 3.01976 1.1833802 1.269453 0 2.303287-.3991083 3.101504-1.1970043z"/></g><path d="m17.8381448 46.9715784h11.4351924v5.0258027h-28.91585333v-5.0258027h11.43519243v-39.40433576l-10.63396507 6.77374006v-5.75407418l13.25608567-8.44915063h3.4233479z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(21.524072 376.769072)"/><path d="m35.1591611 47.829883v5.0258027h-33.35886717v-4.5159698l18.13640567-20.1027815c2.4277146-2.719109 4.2001136-5.1712853 5.3167679-7.3565289 1.1170835-2.1848144 1.6754107-4.3700579 1.6754107-6.5553015 0-2.8645916-.8256891-5.06185144-2.476638-6.59135026-1.6509489-1.52992798-4.0057077-2.29467739-7.0651345-2.29467739-4.9528467 0-9.85677016 1.99083755-14.71262852 5.97294185l-2.25819944-4.58892566c2.03976092-1.94234334 4.61295815-3.4958747 7.72087917-4.66145237 3.10749189-1.16557766 6.23944539-1.74793734 9.39586059-1.74793734 4.7584408 0 8.5216774 1.22608814 11.2897098 3.67826442 2.7676032 2.45217629 4.1516194 5.76609041 4.1516194 9.94174235 0 2.9620092-.667761 5.8150138-2.003283 8.5585845-1.3350928 2.7431415-3.5568143 5.8145846-6.6643061 9.2134709l-14.7855845 16.024118z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(113.15712 375.910768)"/><path d="m32.1649655 30.7131432c1.6024547 2.1367493 2.403682 4.8318258 2.403682 8.0848003 0 4.5159698-1.5294988 8.0727841-4.5884964 10.6708722-3.0594268 2.5976589-7.2110463 3.8967029-12.4548583 3.8967029-3.3508212 0-6.5677469-.5587563-9.65077711-1.6754106-3.08345933-1.1166543-5.69356366-2.6950765-7.82988385-4.7344083l2.33072618-4.5884964c4.806935 3.9816751 9.80827598 5.9725126 15.00402298 5.9725126 3.6902807 0 6.494791-.825689 8.4126727-2.4766379 1.9178817-1.650949 2.8770371-4.0786636 2.8770371-7.283573 0-6.3608955-3.9816751-9.5413433-11.9450254-9.5413433h-5.9729418v-5.0258026h4.8073642c3.8361924 0 6.77374-.8497216 8.8130718-2.5491647 2.0393317-1.6994432 3.0594268-4.1275869 3.0594268-7.283573 0-2.8165266-.8377053-4.97730847-2.513116-6.48234561-1.6749814-1.50546629-4.0421855-2.25819944-7.1016123-2.25819944-4.9528468 0-9.85677025 1.99083755-14.71262861 5.97294185l-2.25819944-4.58892566c2.08825513-1.99083756 4.6494361-3.55681433 7.68440122-4.69793031 3.03496513-1.14111599 6.20339663-1.7114594 9.50529443-1.7114594 4.6614524 0 8.388211 1.18961019 11.180276 3.56883059 2.7920649 2.37922039 4.1880973 5.58412982 4.1880973 9.61429918 0 2.9620092-.7287006 5.5596681-2.1852435 7.7934059-1.456543 2.2337377-3.4718422 3.8361925-6.0454686 4.8073641 3.0589977.8737541 5.390153 2.3792204 6.9921786 4.5155406z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(210.490122 375.910768)"/><path d="m37.9113149 35.7548245v4.9528468h-7.8663618v11.2897098h-5.9725127v-11.2897098h-23.89005067v-4.5159697l24.98267247-36.05394371h4.8798909v35.61706661zm-31.53797398 0h17.69909948v-25.4925054z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(344.333123 377.543534)"/><path d="m27.0614862 21.5151218c2.4521763 1.3840162 4.3340092 3.3143433 5.6450695 5.7905521 1.3110603 2.4766379 1.9663758 5.3412296 1.9663758 8.5946332 0 3.2534037-.7162552 6.142457-2.1487656 8.6675892-1.4320812 2.5251322-3.4718421 4.4794918-6.1179953 5.863508-2.6465822 1.383587-5.7420578 2.0758097-9.2868559 2.0758097-3.1559861 0-6.2634779-.5707726-9.32290473-1.7118886-3.05899765-1.1411159-5.63262403-2.7070927-7.72045001-4.6979303l2.25777029-4.5884964c4.80736415 3.9816751 9.73574925 5.9725126 14.78558445 5.9725126 3.6422156 0 6.494791-1.0316821 8.5585845-3.0954756 2.0633643-2.0637934 3.0954756-4.8678746 3.0954756-8.4126727 0-3.4473804-1.0196659-6.2274291-3.0589977-8.3397168-2.0397609-2.1122876-4.7588699-3.1684314-8.1577562-3.1684314-4.9528468 0-8.91048936 2.0152992-11.87249858 6.0454685h-4.15161943v-30.37282541h31.10109691v4.95284678h-25.12858424v18.50075603c2.86502084-2.7680324 6.53126894-4.1520486 10.99831534-4.1520486 3.2534036 0 6.105979.6922227 8.5581553 2.0758097z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(442.786269 377.543534)"/><path d="m28.6326128 22.3734264c2.4521763 1.3840162 4.3580417 3.3263595 5.7175962 5.82703s2.0393318 5.3536751 2.0393318 8.5581554c0 3.2049094-.7162552 6.0699302-2.1487656 8.5946332-1.4320813 2.5251322-3.4109026 4.5039535-5.9360347 5.9364639-2.5247031 1.4320813-5.3897239 2.1483365-8.5946333 2.1483365-6.2639071 0-11.09530378-2.1848144-14.49419005-6.5553015-3.39931543-4.370058-5.09875857-10.5854709-5.09875857-18.6458095 0-5.82703.78921109-10.828371 2.36720413-15.004023 1.57799303-4.1760811 3.86022501-7.35652885 6.84669592-9.5417724 2.98604177-2.18524355 6.56731777-3.27743617 10.74339887-3.27743617 3.0105034 0 5.9360347.55832715 8.7765938 1.67498145 2.8405592 1.11708346 5.3292134 2.69507649 7.4655336 4.73440826l-2.2577703 4.58892566c-2.4277146-2.03976095-4.7584408-3.5447981-6.9921786-4.51596977-2.2337377-.97117167-4.5159697-1.45697208-6.8466959-1.45697208-4.4670463 0-7.9388885 1.99083755-10.41552648 5.97294185-2.47620881 3.9816751-3.71474237 9.5653758-3.71474237 16.7519603v1.0926218c1.11708345-2.7676033 2.93797669-4.9528468 5.46267975-6.5553015 2.5251321-1.6024547 5.4141855-2.4036821 8.6675891-2.4036821 3.1564153 0 5.9604964.6922227 8.4126727 2.0758097zm-1.2016264 22.8708139c2.0393317-2.1122876 3.0589976-4.9163688 3.0589976-8.4126726 0-3.4473805-1.0321113-6.2274292-3.0954756-8.3397168-2.0637934-2.1122877-4.7464245-3.1684315-8.0483224-3.1684315-3.3993154 0-6.1669186 1.0681601-8.303668 3.2049094-2.13632016 2.1363202-3.20448025 4.9043526-3.20448025 8.3032389 0 3.4473804 1.06816009 6.2394454 3.20448025 8.3761947 2.1367494 2.1363202 4.9288143 3.2049094 8.3761948 3.2049094 3.3018978 0 5.9725126-1.0561438 8.0122736-3.1684315z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(539.405045 376.685229)"/><path d="m.06008132.13775789h34.23305048v4.44301384l-24.32735691 47.41660937h-6.40938972l24.18144513-46.83382053h-27.67774898z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(678.757195 376.512457)"/><path d="m34.6622027 30.9684888c1.8693875 2.2577703 2.8040812 4.9648631 2.8040812 8.1208491 0 4.4189814-1.6749814 7.9028398-5.0253735 10.4520045-3.3508212 2.5495939-7.8663618 3.8241762-13.5474801 3.8241762-5.6815474 0-10.19708794-1.2745823-13.54748-3.8241762-3.35082122-2.5491647-5.02580268-6.0330231-5.02580268-10.4520045 0-3.155986.95872626-5.875095 2.87703707-8.157327 1.91788167-2.282232 4.55201853-3.8606542 7.90241061-4.7344083-3.10749187-.9226774-5.48671227-2.44016-7.1376612-4.5524477-1.65094892-2.1122876-2.47663796-4.6005127-2.47663796-7.4655335 0-2.7676032.72870062-5.18373073 2.18524355-7.24709502 1.45654293-2.06379345 3.50832011-3.66624817 6.15447324-4.80736415 2.64658227-1.14111599 5.66910197-1.7114594 9.06841737-1.7114594 3.3988863 0 6.421406.57034341 9.0679883 1.7114594 2.6461531 1.14111598 4.6979303 2.7435707 6.1544733 4.80736415 1.456972 2.06336429 2.1852435 4.47949182 2.1852435 7.24709502 0 2.8650208-.8377053 5.3532459-2.5131159 7.4655335-1.6749815 2.1122877-4.0177239 3.6297703-7.0286565 4.5524477 3.3993154.9226775 6.0334523 2.5126868 7.9028397 4.7708862zm-24.1084891-9.6147283c2.0633642 1.7239048 4.8434129 2.7800487 8.3397167 3.1684315 3.4958747-.3883828 6.2759234-1.4445267 8.3397168-3.1684315 2.0633643-1.7234756 3.0954756-3.9692297 3.0954756-6.7372621 0-2.8645916-1.0076496-5.12279105-3.0229488-6.77373998-2.0148701-1.65094892-4.8193804-2.47620881-8.4122436-2.47620881-3.5932922 0-6.3978026.82525989-8.4126726 2.47620881-2.01529928 1.65094893-3.0229489 3.90914838-3.0229489 6.77373998 0 2.7680324 1.0321113 5.0137865 3.0959048 6.7372621zm17.7355774 24.5822734c2.1848144-1.650949 3.2774361-4.054631 3.2774361-7.2106171 0-2.8650208-1.1531322-5.1592691-3.4598259-6.8831739-2.3062645-1.7239048-5.3777075-2.7800486-9.2134709-3.1684315-3.8361924.3883829-6.9076355 1.4445267-9.2139 3.1684315-2.30669365 1.7239048-3.4598259 4.0181531-3.4598259 6.8831739 0 3.1559861 1.09262177 5.5596681 3.27786532 7.2106171 2.18481438 1.6509489 5.31676798 2.4766379 9.39586058 2.4766379 4.0786636 0 7.2106171-.825689 9.3958607-2.4766379z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(773.608278 376.236614)"/><path d="m31.3560134 6.96900432c3.3988862 4.37005798 5.0987585 10.58547078 5.0987585 18.64580948 0 8.7890393-1.7603827 15.6232898-5.2807191 20.5031806-3.5203364 4.8803201-8.4367052 7.320051-14.7495357 7.320051-2.9620092 0-5.8630788-.5583272-8.70363793-1.6749815-2.84055913-1.1170835-5.35367504-2.6950765-7.53848944-4.7344083l2.33072618-4.5884964c2.47620882 2.0878259 4.83139668 3.6053085 7.06513445 4.5520185 2.23330864.94671 4.49150804 1.4204941 6.77374004 1.4204941 4.4670464 0 7.9268723-1.9908375 10.3790485-5.9725126 2.4521763-3.9821043 3.6782645-9.565805 3.6782645-16.7523895v-.9471392c-1.1170835 2.7195382-2.9379767 4.8678747-5.4626798 6.4462969-2.5251321 1.577993-5.4141855 2.3672041-8.6675891 2.3672041-3.1564152 0-5.9484801-.6922227-8.37619475-2.0758097-2.42771461-1.3840162-4.32156374-3.3263596-5.68111825-5.8270301s-2.03933177-5.353675-2.03933177-8.5581553c0-3.2049094.7162552-6.0699302 2.14833645-8.59463325 1.43251041-2.52513218 3.4113317-4.50395347 5.93646388-5.93646387 2.52470304-1.43208125 5.38972384-2.14833645 8.59463324-2.14833645 6.2639071 0 11.0953038 2.18481439 14.4941901 6.55530149zm-5.8270301 18.35441508c2.1367494-2.1363202 3.2049095-4.9043526 3.2049095-8.3032389 0-3.4473805-1.0681601-6.2394454-3.2049095-8.37619472-2.1363202-2.13632019-4.9283851-3.20490943-8.3757656-3.20490943-3.3018978 0-5.9729418 1.05614383-8.01227355 3.16843149-2.03933176 2.11228766-3.05899765 4.91636886-3.05899765 8.41267266 0 3.4473805 1.01966589 6.2274292 3.05899765 8.3397168 2.03933175 2.1122877 4.73440825 3.1684315 8.08480035 3.1684315 3.3993154 0 6.1669186-1.0681601 8.3032388-3.2049094z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(867.854354 375.654152)"/><path d="m330.093135.33214542v84.43190468-42.5518783h-329.66215607v42.5518783" stroke="#000" stroke-width="2.538347" transform="translate(131.785126 139.982935)"/><path d="m.10801477.42233775h329.31542823v42.21595235" stroke="#000" stroke-width="2.538347" transform="translate(461.770246 182.108695)"/><path d="m36.186655 346.60579v15.692843" stroke="#000" stroke-width="2.540394"/><path d="m132.152376 331.426017v30.871702" stroke="#000" stroke-width="2.538347"/><path d="m228.893645 346.60579v15.692843" stroke="#000" stroke-width="2.540394"/><g transform="translate(1221.45577 24.489117)"><path d="m.197608.154988h239.084215v85.099871h-239.084215z" fill="#0083c0"/><path d="m239.281823 85.2548586h-239.08421531v-85.09987082h239.08421531zm-236.54571658-82.56147761v80.02308441h234.00574658v-80.02308441z" fill="#000"/></g><g transform="translate(956.909366 124.770501)"><path d="m.184449.095195h223.163411v52.269131h-223.163411z" fill="#c9177e"/><path d="m223.347859 52.3643259h-223.16341016v-52.26913097h223.16341016zm-220.62506465-49.73066919v47.19220749h218.08488865v-47.19220749z" fill="#000"/></g><g transform="translate(1231.923745 124.770501)"><path d="m.183618.095195h222.158079v52.269131h-222.158079z" fill="#c9177e"/><path d="m222.341696 52.3643259h-222.15807809v-52.26913097h222.15807809zm-219.61932129-49.73066919v47.19220749h217.08147629v-47.19220749z" fill="#000"/></g><path d="m91.4241325.12672749v8.67595862h-91.3476086v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1252.516016 177.005152)"/><g transform="translate(1504.487683 124.770501)"><path d="m.182671.095195h221.012609v52.269131h-221.012609z" fill="#c9177e"/><path d="m221.19528 52.3643259h-221.01260884v-52.26913097h221.01260884zm-218.47425033-49.73066919v47.19220749h215.93589233v-47.19220749z" fill="#000"/></g><g transform="translate(1018.734446 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m19.5454361 18.6632185c.9737513 1.298422 1.4606269 2.9361183 1.4606269 4.9128281 0 2.7441845-.9294187 4.9055264-2.7882562 6.4842865-1.8590982 1.5784993-4.3818807 2.3678794-7.5683475 2.3678794-2.03616765 0-3.99097204-.3395352-5.86441318-1.0180839-1.87370191-.6785486-3.45976385-1.6376963-4.75792503-2.8769212l1.41629437-2.7882563c2.92099306 2.4195138 5.96011931 3.6292707 9.11737874 3.6292707 2.2424444 0 3.9466395-.5017401 5.1120638-1.5049595 1.1654244-1.0032194 1.7482669-2.4784499 1.7482669-4.4259525 0-3.8652762-2.4195137-5.7979144-7.2585412-5.7979144h-3.62953146v-3.0539906h2.92125384c2.33110942 0 4.11614632-.5163438 5.35537122-1.5490313 1.239225-1.0326875 1.8590983-2.5081788 1.8590983-4.4259525 0-1.71149696-.5090419-3.02452258-1.5271257-3.93907688-1.0178231-.91481507-2.4562837-1.37222261-4.315382-1.37222261-3.00965814 0-5.9895874 1.20975688-8.94030934 3.62953142l-1.37222261-2.78851699c1.26895386-1.20975688 2.82528692-2.16134189 4.66952073-2.85475502 1.84423381-.69341314 3.7695701-1.03998932 5.77600882-1.03998932 2.8325888 0 5.0971994.72288124 6.7938319 2.16864372 1.6966326 1.44576248 2.5449488 3.39326503 2.5449488 5.8422469 0 1.79990128-.4428039 3.37840058-1.32789 4.73575878-.8850862 1.3573582-2.1097076 2.3311094-3.6736032 2.9212538 1.8588374.5309474 3.2753926 1.4457625 4.2488831 2.7439237z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1028.654902 202.599599)"/><g transform="translate(1078.488158 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m22.936251 22.0604515v3.0096581h-4.7800913v6.8603307h-3.6292707v-6.8603307h-14.51708251v-2.7441844l15.18102761-21.9086215h2.9653256v21.6431478zm-19.16443702 0h10.75507502v-15.49083387z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1089.451732 203.121158)"/><g transform="translate(1138.52553 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m16.4136394 13.9290806c1.4900951.8410145 2.6336139 2.0140014 3.4302958 3.5187001.7966819 1.5049595 1.1948924 3.2456637 1.1948924 5.2226344s-.4352412 3.7325394-1.3057238 5.2669669c-.8702217 1.5344276-2.1097075 2.7220182-3.7176749 3.5630326-1.6082282.8407537-3.489232 1.2613913-5.643272 1.2613913-1.9177737 0-3.80607928-.346837-5.66517753-1.0402501-1.85883747-.6934131-3.42273314-1.6449981-4.69142622-2.854755l1.37196183-2.7882562c2.92125384 2.4195137 5.91604755 3.6292706 8.98464192 3.6292706 2.213237 0 3.9466395-.6269143 5.2007289-1.8810037 1.2538286-1.2540895 1.8810037-2.9580238 1.8810037-5.1120639 0-2.094843-.6196125-3.7841737-1.8588374-5.0677312-1.2394858-1.2835576-2.8917858-1.9253363-4.9571607-1.9253363-3.00965819 0-5.41456828 1.2246213-7.21446955 3.6736031h-2.52278251v-18.45642016h18.89896326v3.00965815h-15.26969262v11.24221151c1.74096506-1.6820289 3.96880576-2.5230433 6.68326132-2.5230433 1.9769707 0 3.7103731.4206376 5.2004681 1.2613912z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1148.445985 201.599599)"/><g transform="translate(957.360703 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m10.8395677 28.5428562h6.948735v3.0539907h-17.57107324v-3.0539907h6.94873503v-23.94452832l-6.46185939 4.11614628v-3.49653379l8.05522316-5.1342301h2.08023944z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(970.410431 203.121158)"/><g transform="translate(1231.099754 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m21.3648958 29.0644155v3.0539907h-20.27092509v-2.7441844l11.02080949-12.215702c1.4752306-1.6523 2.5522507-3.142395 3.2307994-4.4702851.6788094-1.3276293 1.0180838-2.6555193 1.0180838-3.98340939 0-1.74070428-.5017401-3.07589618-1.5049595-4.00531492-1.0032194-.92967951-2.4341174-1.39438888-4.2932157-1.39438888-3.0096581 0-5.98958737 1.20975688-8.94030931 3.62953142l-1.37222261-2.78851699c1.23948576-1.18028878 2.80312065-2.12431118 4.691687-2.83258875 1.88830558-.70827758 3.79147559-1.06215559 5.70951002-1.06215559 2.891525 0 5.1783019.74504751 6.8603307 2.23514253 1.6817681 1.49009502 2.5227826 3.50383562 2.5227826 6.04122179 0 1.79990128-.4057732 3.53356448-1.2173195 5.20072888-.8112856 1.6669037-2.1613419 3.5333038-4.0496475 5.5986787l-8.98464189 9.737252z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1241.784164 202.570441)"/><g transform="translate(1292.473373 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m23.0372759 21.726858v3.0096582h-4.7800914v6.8603307h-3.6292706v-6.8603307h-14.51708254v-2.7441845l15.18102754-21.90862143h2.9653256v21.64314773zm-19.16443705 0h10.75507505v-15.4908338z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1301.574474 203.100332)"/><g fill="#fff" fill-rule="nonzero" transform="translate(974.127869 141.527307)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m60.3369055 14.1252405h3.214004v1.4134989h-8.1271311v-1.4134989h3.214004v-11.07403258l-2.988819 1.90578642v-1.61821251l3.725788-2.37370329h.9621541z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m133.890513 14.1252405h3.214004v1.4134989h-8.127131v-1.4134989h3.214004v-11.07403258l-2.988819 1.90578642v-1.61821251l3.725788-2.37370329h.962154z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m153.481607 9.31447018c.45037.59951849.675555 1.35988342.675555 2.27134652 0 1.2721489-.429898 2.2713464-1.289696 3.0024665-.859797.726246-2.026665 1.0918061-3.500603 1.0918061-.941682 0-1.845834-.1559723-2.712455-.4679169-.866621-.3168187-1.600178-.7603649-2.200672-1.3306386l.655084-1.2916455c1.35111 1.1210508 2.75681 1.6815762 4.217101 1.6815762 1.037215 0 1.825363-.2339584 2.364442-.6970012.539079-.4630427.808619-1.1454215.808619-2.0471363 0-1.78880715-1.119101-2.68077369-3.357304-2.68077369h-1.678651v-1.41349887h1.35111c1.078158 0 1.903836-.23883257 2.477034-.71649771.573199-.47766514.859798-1.1600439.859798-2.0471363 0-.79448385-.235421-1.39887648-.706262-1.82292614-.470842-.42404966-1.136161-.63363743-1.995958-.63363743-1.392053 0-2.770458.56052542-4.135216 1.67670212l-.634612-1.28677139c.586846-.56052542 1.306756-.99919749 2.159729-1.32089033.852973-.32169285 1.743478-.48253927 2.671513-.48253927 1.310167 0 2.357619.33631525 3.142354 1.00407161.784736.66775637 1.177103 1.56947117 1.177103 2.70027027 0 .83347692-.204713 1.56459703-.61414 2.19336032-.409428.62388916-.975802 1.07718363-1.699124 1.35013514.859798.2437067 1.514881.66775636 1.965251 1.26727485z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m171.98772 10.9716758v1.3940023h-2.210908v3.1730613h-1.678651v-3.1730613h-6.714608v-1.2672749l7.021678-10.13332466h1.371581v10.00659726zm-8.864101 0h4.974542v-7.1649771z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m186.553094 6.9700117c.689203.38993073 1.218046.93095961 1.586531 1.62796078.368484.69700117.552727 1.50123332.552727 2.41757052 0 .911463-.201302 1.7254434-.603905 2.437067-.402604.7067494-.975802 1.2575266-1.719595 1.6474573s-1.613826.580022-2.610099.580022c-.887092 0-1.760537-.1559723-2.620334-.4776652-.859797-.3216928-1.583119-.7603649-2.169965-1.3208903l.634613-1.2916455c1.35111 1.1210508 2.736338 1.6815762 4.155686 1.6815762 1.023568 0 1.825363-.292448 2.405385-.87247.580022-.5800219.870033-1.3696316.870033-2.363955 0-.9699527-.286599-1.74981412-.859797-2.34445848-.573198-.59464435-1.337462-.89196653-2.292793-.89196653-1.392052 0-2.50433.57027369-3.336832 1.70107279h-1.166867v-8.53460874h8.741272v1.38912821h-7.062621v5.20070104c.805207-.77986145 1.835599-1.16491804 3.091176-1.16491804.914388 0 1.716183.19496536 2.405385.58002195z"/></g><g fill="#fff" fill-rule="nonzero" transform="translate(1248.643217 141.651852)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m63.8784513 14.1252405v1.4134989h-9.3758843v-1.2672749l5.0973694-5.65399549c.6823788-.76036491 1.1805153-1.45249195 1.4944095-2.06663284.3138943-.61414089.4708414-1.22828178.4708414-1.84242267 0-.80423212-.2320088-1.42324715-.6960264-1.85217094-.4640175-.4289238-1.1259249-.6433857-1.9857222-.6433857-1.3920527 0-2.7704578.56052542-4.1352153 1.67670212l-.6346123-1.28677139c.5731982-.54590302 1.2965197-.98457508 2.1699645-1.31114206.8734448-.32656699 1.7537134-.49228754 2.6408058-.49228754 1.3374624 0 2.3951495.34606351 3.1730613 1.03331642.7779118.6872529 1.1668677 1.62308664 1.1668677 2.79287881 0 .83347692-.1876542 1.63770904-.5629625 2.40782222-.3753083.77011319-.9996849 1.63283491-1.8731297 2.58816519l-4.1556867 4.50369987z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m137.432059 14.1252405v1.4134989h-9.375885v-1.2672749l5.09737-5.65399549c.682379-.76036491 1.180515-1.45249195 1.494409-2.06663284.313895-.61414089.470842-1.22828178.470842-1.84242267 0-.80423212-.232009-1.42324715-.696027-1.85217094-.464017-.4289238-1.125925-.6433857-1.985722-.6433857-1.392053 0-2.770458.56052542-4.135215 1.67670212l-.634612-1.28677139c.573198-.54590302 1.296519-.98457508 2.169964-1.31114206.873445-.32656699 1.753713-.49228754 2.640806-.49228754 1.337462 0 2.395149.34606351 3.173061 1.03331642.777912.6872529 1.166868 1.62308664 1.166868 2.79287881 0 .83347692-.187654 1.63770904-.562963 2.40782222-.375308.77011319-.999685 1.63283491-1.873129 2.58816519l-4.155687 4.50369987z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m154.976017 10.9716758v1.3940023h-2.210907v3.1730613h-1.678652v-3.1730613h-6.714607v-1.2672749l7.021677-10.13332466h1.371582v10.00659726zm-8.8641 0h4.974541v-7.1649771z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m169.541392 6.9700117c.689202.38993073 1.218046.93095961 1.58653 1.62796078.368485.69700117.552727 1.50123332.552727 2.41757052 0 .911463-.201302 1.7254434-.603905 2.437067-.402604.7067494-.975802 1.2575266-1.719595 1.6474573-.743792.3899307-1.613825.580022-2.610098.580022-.887093 0-1.760538-.1559723-2.620335-.4776652-.859797-.3216928-1.583119-.7603649-2.169964-1.3208903l.634612-1.2916455c1.35111 1.1210508 2.736339 1.6815762 4.155687 1.6815762 1.023568 0 1.825363-.292448 2.405385-.87247.580022-.5800219.870033-1.3696316.870033-2.363955 0-.9699527-.286599-1.74981412-.859798-2.34445848-.573198-.59464435-1.337462-.89196653-2.292792-.89196653-1.392053 0-2.50433.57027369-3.336832 1.70107279h-1.166868v-8.53460874h8.741272v1.38912821h-7.06262v5.20070104c.805207-.77986145 1.835599-1.16491804 3.091175-1.16491804.914388 0 1.716183.19496536 2.405386.58002195z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m187.965618 9.38758219c.525432.63363741.788148 1.39400231.788148 2.28109471 0 1.2429042-.470842 2.2226052-1.412524 2.9391029-.941683.7164977-2.210907 1.0723095-3.807674 1.0723095-1.596766 0-2.865991-.3558118-3.807673-1.0723095-.941683-.7164977-1.412524-1.6961987-1.412524-2.9391029 0-.8870924.269539-1.6523314.808619-2.29084297.539079-.6433857 1.27946-1.0869319 2.221142-1.3306386-.873444-.25832911-1.542176-.6872529-2.006193-1.28189726-.464018-.59464435-.696026-1.29164552-.696026-2.09587764 0-.77986145.204713-1.45736609.61414-2.03738804.409428-.58002195.986038-1.02844229 1.729831-1.35013513.743792-.32169285 1.593354-.48253927 2.548684-.48253927.955331 0 1.804892.16084642 2.548685.48253927.743793.32169284 1.320403.77011318 1.72983 1.35013513s.614141 1.25752659.614141 2.03738804c0 .80423212-.235421 1.50123329-.706262 2.09587764-.470841.59464436-1.129337 1.02356815-1.975487 1.28189726.955331.2583291 1.695712.70674944 2.221143 1.34038686zm-6.776021-2.7051444c.580022.48741341 1.361346.78473559 2.343971.89196653.982626-.10723094 1.763949-.40455312 2.343971-.89196653.580022-.48253927.870033-1.11130256.870033-1.89116401 0-.80423212-.283187-1.43786955-.849561-1.90578642-.566375-.46304273-1.354522-.69212703-2.364443-.69212703-1.00992 0-1.798068.2290843-2.364442.69212703-.566375.46791687-.849562 1.1015543-.849562 1.90578642 0 .77986145.290011 1.40862474.870033 1.89116401zm4.984777 6.91152211c.614141-.4630428.921211-1.1405474.921211-2.0276398 0-.8042321-.324129-1.4476178-.972389-1.9350312-.64826-.48253927-1.511469-.77986145-2.589628-.8870924-1.078158.10723095-1.941367.40455313-2.589627.8870924-.64826.4874134-.97239 1.1307991-.97239 1.9350312 0 .8870924.307071 1.564597.921211 2.0276398.614141.4630427 1.49441.6970012 2.640806.6970012 1.146397 0 2.026665-.2339585 2.640806-.6970012z"/></g><g fill="#fff" fill-rule="nonzero" transform="translate(1520.629778 141.651852)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m62.9162972 9.31447018c.45037.59951849.675555 1.35988342.675555 2.27134652 0 1.2721489-.4298986 2.2713464-1.2896959 3.0024665-.8597972.726246-2.0266649 1.0918061-3.500603 1.0918061-.9416827 0-1.8458346-.1559723-2.7124556-.4679169-.8666211-.3168187-1.6001782-.7603649-2.2006716-1.3306386l.6550837-1.2916455c1.3511099 1.1210508 2.7568102 1.6815762 4.2171007 1.6815762 1.0372158 0 1.8253632-.2339584 2.3644425-.6970012.5390792-.4630427.8086188-1.1454215.8086188-2.0471363 0-1.78880715-1.1191012-2.68077369-3.3573035-2.68077369h-1.6786518v-1.41349887h1.35111c1.0781584 0 1.9038367-.23883257 2.4770349-.71649771s.8597972-1.1600439.8597972-2.0471363c0-.79448385-.2354206-1.39887648-.706262-1.82292614-.4708413-.42404966-1.1361606-.63363743-1.9959579-.63363743-1.3920527 0-2.7704578.56052542-4.1352153 1.67670212l-.6346123-1.28677139c.5868458-.56052542 1.3067554-.99919749 2.1597288-1.32089033.8529735-.32169285 1.7434778-.48253927 2.6715129-.48253927 1.3101672 0 2.3576186.33631525 3.1423542 1.00407161.7847356.66775637 1.1771034 1.56947117 1.1771034 2.70027027 0 .83347692-.2047136 1.56459703-.6141409 2.19336032-.4094272.62388916-.9758016 1.07718363-1.6991231 1.35013514.8597972.2437067 1.5148808.66775636 1.9652508 1.26727485z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m137.964314 10.9716758v1.3940023h-2.210907v3.1730613h-1.678652v-3.1730613h-6.714607v-1.2672749l7.021678-10.13332466h1.371581v10.00659726zm-8.8641 0h4.974541v-7.1649771z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m152.488746 6.9700117c.689203.38993073 1.22487.93583374 1.607002 1.63770904.382132.70674944.573198 1.50610746.573198 2.40782226s-.201301 1.7059469-.603905 2.4126963c-.402603.7116236-.958742 1.2672749-1.668416 1.671828-.709674.399679-1.514881.6043926-2.415621.6043926-1.760537 0-3.118471-.6141409-4.073801-1.8424226-.95533-1.2282818-1.432995-2.978096-1.432995-5.24456829 0-1.63770904.221773-3.04145965.665319-4.21612596.443546-1.1746663 1.084982-2.06663284 1.924308-2.68077373s1.845835-.92121133 3.019526-.92121133c.84615 0 1.668416.15597229 2.466799.472791.798383.31194458 1.497822.75549078 2.098315 1.3306386l-.634612 1.28677139c-.682379-.57027369-1.337463-.99432335-1.965251-1.26727486-.627789-.2729515-1.269225-.40942726-1.924308-.40942726-1.255577 0-2.231379.56052542-2.927405 1.67670212-.696026 1.12105083-1.04404 2.690522-1.04404 4.7084135v.30707044c.313895-.77498731.825679-1.3891282 1.535353-1.84242267.709674-.44842033 1.521704-.6726305 2.436092-.6726305.887092 0 1.67524.19496536 2.364442.58002195zm-.337777 6.4289828c.573198-.5946443.859797-1.3793799.859797-2.363955 0-.9699527-.290011-1.74981412-.870033-2.34445848-.580022-.59464435-1.33405-.89196653-2.262086-.89196653-.95533 0-1.733242.30219631-2.333735.9017148s-.90074 1.37937991-.90074 2.33471021c0 .9699527.300247 1.7546883.90074 2.3542068.600493.5995184 1.385229.9017148 2.354207.9017148.928035 0 1.678652-.2973222 2.25185-.8919666z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m161.711095.96507854h9.621541v1.24777832l-6.837435 13.32588254h-1.80148l6.796492-13.16503611h-7.779118z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m187.157 2.64178066c.95533 1.22828178 1.432995 2.97322177 1.432995 5.23969411 0 2.47118593-.494725 4.39159483-1.484174 5.76610063-.989449 1.3696316-2.371266 2.0568845-4.145451 2.0568845-.832502 0-1.647945-.1608464-2.446328-.472791s-1.504645-.7554908-2.118786-1.3306386l.655084-1.2916455c.696026.5897702 1.357934 1.0138199 1.985722 1.2818973.627788.2680773 1.262401.399679 1.903837.399679 1.255577 0 2.227966-.5605255 2.917169-1.6815763.689203-1.1161767 1.033804-2.68564786 1.033804-4.70841349v-.26320324c-.313894.76523904-.825679 1.36963167-1.535352 1.80830373-.709674.44842034-1.521705.6677564-2.436093.6677564-.887092 0-1.671828-.19496539-2.354206-.58489612-.682379-.38505659-1.214635-.93583374-1.596767-1.63770904-.382132-.70187531-.573198-1.50123329-.573198-2.40294809s.201302-1.70594692.603905-2.41757049c.402604-.70674944.958743-1.26727486 1.668416-1.66695385.709674-.40455313 1.514881-.60439262 2.415621-.60439262 1.760538 0 3.118471.61414089 4.073802 1.84242267zm-1.63771 5.15683383c.600494-.59951849.90074-1.3745058.90074-2.32983608 0-.96995268-.300246-1.75468826-.90074-2.35420675-.600493-.60439262-1.385228-.9017148-2.354206-.9017148-.928035 0-1.678652.29732218-2.25185.89196653-.573198.58977023-.859797 1.37937994-.859797 2.36395502 0 .96507855.286599 1.74981413.859797 2.34445848.573198.58977022 1.330638.8870924 2.272321.8870924.95533 0 1.733242-.29732218 2.333735-.9017148z"/></g><g transform="translate(1352.227084 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m16.4442443 13.0739279c1.490095.8410144 2.6336139 2.0140013 3.4302957 3.5187.7966819 1.5049595 1.1948925 3.2456638 1.1948925 5.2226344 0 1.9769707-.4352413 3.7325394-1.3057238 5.266967-.8702218 1.5344275-2.1097075 2.7220182-3.717675 3.5630326-1.6082282.8407536-3.4892319 1.2613912-5.643272 1.2613912-1.91777365 0-3.80607922-.3468369-5.66517747-1.0402501-1.85883748-.6934131-3.42273314-1.6449981-4.69142623-2.854755l1.37196183-2.7882562c2.92125384 2.4195138 5.91604755 3.6292706 8.98464187 3.6292706 2.2132371 0 3.9466395-.6269143 5.2007289-1.8810037 1.2538287-1.2540894 1.8810038-2.9580238 1.8810038-5.1120638 0-2.0948431-.6196125-3.7841738-1.8588375-5.0677313-1.2394857-1.2835575-2.8917857-1.9253363-4.9571607-1.9253363-3.00965814 0-5.41456823 1.2246213-7.2144695 3.6736032h-2.52278251v-18.45642023h18.89896331v3.00965815h-15.26969267v11.24221148c1.74096506-1.6820289 3.96880577-2.5230433 6.68326137-2.5230433 1.9769706 0 3.7103731.4206376 5.2004681 1.2613913z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1362.630417 203.100332)"/><g transform="translate(1412.266122 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m21.062913 18.8183824c1.1359562 1.3719618 1.7039343 3.01696 1.7039343 4.9347336 0 2.6852483-1.017823 4.8022576-3.0537299 6.3512889-2.0361676 1.549292-4.7800913 2.3238076-8.2322925 2.3238076-3.45246205 0-6.19638571-.7745156-8.23229258-2.3238076-2.03616764-1.5490313-3.05399069-3.6660406-3.05399069-6.3512889 0-1.9177736.58258178-3.5700736 1.7482669-4.9568999 1.16542433-1.3868263 2.76608993-2.3459739 4.8019968-2.8769213-1.88830558-.5606763-3.33406805-1.4827932-4.33728744-2.7663507-1.00321938-1.2835575-1.50495946-2.795558-1.50495946-4.5365231 0-1.68176807.44280388-3.1499576 1.32789007-4.40378625.88508619-1.25408942 2.13187378-2.2278407 3.73984121-2.92125383 1.60822822-.69341314 3.44489942-1.03998932 5.51053519-1.03998932 2.0653749 0 3.9020461.34657618 5.5102744 1.03998932 1.6079674.69341313 2.854755 1.66716441 3.7398412 2.92125383.8853469 1.25382865 1.32789 2.72201818 1.32789 4.40378625 0 1.7409651-.5090419 3.2529656-1.5271257 4.5365231-1.017823 1.2835575-2.4414192 2.2056744-4.2710494 2.7663507 2.0656358.5606763 3.6663014 1.526865 4.8022576 2.8990876zm-14.64981941-5.8425077c1.25382864 1.0475519 2.94315933 1.6893307 5.06773131 1.9253363 2.1243111-.2360056 3.8136418-.8777844 5.0677313-1.9253363 1.2538286-1.0472911 1.8810037-2.4119511 1.8810037-4.09397999 0-1.74070429-.6123107-3.1129269-1.836932-4.11614628-1.2243605-1.00321938-2.9285556-1.50469868-5.111803-1.50469868-2.18350818 0-3.88770331.5014793-5.11206385 1.50469868-1.22462132 1.00321938-1.83693198 2.37544199-1.83693198 4.11614628 0 1.68202889.6271751 3.04668889 1.88126452 4.09397999zm10.77724131 14.9377202c1.3276293-1.0032194 1.9915743-2.4638463 1.9915743-4.38162 0-1.7409651-.7007149-3.1350932-2.1024056-4.1826451-1.40143-1.0475519-3.2678301-1.6893307-5.5986787-1.9253363-2.33110948.2360056-4.19750956.8777844-5.59893949 1.9253363-1.40169072 1.0475519-2.10240568 2.44168-2.10240568 4.1826451 0 1.9177737.66394503 3.3784006 1.9918351 4.38162 1.32762929 1.0032193 3.2307993 1.5049594 5.70951007 1.5049594 2.4784499 0 4.38162-.5017401 5.70951-1.5049594z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1421.105194 202.753717)"/><g transform="translate(1503.787344 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m23.0372759 21.726858v3.0096582h-4.7800914v6.8603307h-3.6292706v-6.8603307h-14.51708254v-2.7441845l15.18102754-21.90862143h2.9653256v21.64314773zm-19.16443705 0h10.75507505v-15.4908338z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1512.887196 203.275277)"/><g transform="translate(1565.163879 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m17.3989587 13.5954872c1.490095.8410144 2.6482175 2.0213032 3.4743675 3.5408663.82615 1.5195632 1.239225 3.2532264 1.239225 5.2004682 0 1.9475025-.4352413 3.6884676-1.3057238 5.2226344-.8702218 1.5344275-2.0726768 2.7368826-3.6071044 3.6073651-1.5341668.8702218-3.2751319 1.305463-5.2226344 1.305463-3.80634005 0-6.74219755-1.3276293-8.80757252-3.9834094-2.06563575-2.6555193-3.09832323-6.4323913-3.09832323-11.330355 0-3.5408663.47957381-6.5799926 1.43846065-9.11737874.95888684-2.53764695 2.34571311-4.47028507 4.16047882-5.79817514 1.81450493-1.32789007 3.99071125-1.99157432 6.52835818-1.99157432 1.8293694 0 3.6071044.33927435 5.333205 1.01782304 1.7261006.67880948 3.2383619 1.63769632 4.5365231 2.8769213l-1.3719618 2.78851699c-1.4752306-1.23948576-2.891525-2.15404006-4.2488832-2.74418445-1.3573581-.59014439-2.7441844-.88534697-4.1604788-.88534697-2.71445553 0-4.82416305 1.20975688-6.32912251 3.62953142-1.50469868 2.41951375-2.2573088 5.81251797-2.2573088 10.17953437v.663945c.67880947-1.6817681 1.7852976-3.0096582 3.31946439-3.9834094 1.53442756-.9737513 3.28999632-1.460627 5.26696692-1.460627 1.9180345 0 3.6219688.4206377 5.1120639 1.2613913zm-.7301831 13.8977308c1.239225-1.2835575 1.8588375-2.9874918 1.8588375-5.1120638 0-2.0948431-.6271751-3.7841737-1.8810038-5.0677313-1.2540894-1.2835575-2.8842231-1.9253363-4.8906619-1.9253363-2.06563572 0-3.7474038.6490806-5.04582577 1.9475026-1.29816118 1.2981612-1.94724178 2.98019-1.94724178 5.045565 0 2.0948431.6490806 3.7914756 1.94724178 5.0898976 1.29842197 1.2981612 2.99505449 1.9475025 5.08989757 1.9475025 2.0064388 0 3.6292706-.6417787 4.8687564-1.9253363z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1574.52451 202.753717)"/><g transform="translate(1624.915924 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m.03650915.08371027h20.80213335v2.6998519l-14.78281705 28.81328473h-3.89474434l14.69415189-28.45914594h-16.81872385z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1635.972745 203.629332)"/><g transform="translate(1684.951213 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m19.0538664 4.23480103c2.065375 2.65551935 3.0983233 6.43239127 3.0983233 11.33035497 0 5.3407676-1.0697182 9.4936838-3.2088939 12.4590094-2.1391756 2.9655864-5.1266674 4.4481188-8.96273635 4.4481188-1.79990127 0-3.56277183-.3392743-5.28887245-1.017823-1.72610062-.6788095-3.25322635-1.6376963-4.58085564-2.8769213l1.41629437-2.7882562c1.50469869 1.2686931 2.9358575 2.19081 4.29321568 2.7660899 1.35709739.57528 2.72932.8631807 4.11614627.8631807 2.71445552 0 4.81686122-1.2097569 6.30695622-3.6292706 1.4900951-2.4197745 2.2351426-5.8127788 2.2351426-10.1797951v-.5755408c-.6788095 1.6525608-1.7852976 2.9580238-3.3194644 3.9171714-1.5344276.9588869-3.2899963 1.4384607-5.26696696 1.4384607-1.91803446 0-3.61466698-.4206376-5.08989756-1.2613913-1.47523058-.8410144-2.62605125-2.0213032-3.45220124-3.5408663s-1.23922498-3.2532264-1.23922498-5.2004681c0-1.94750259.43524126-3.68846765 1.30546302-5.22263444.87048253-1.53442756 2.07293758-2.73688261 3.60736514-3.60736514 1.53416679-.87022175 3.27513185-1.30546302 5.22263438-1.30546302 3.8063401 0 6.7421976 1.32762929 8.8075725 3.98340943zm-3.5408663 11.15328557c1.298422-1.2981611 1.9475026-2.98019 1.9475026-5.045565 0-2.09484305-.6490806-3.79147556-1.9475026-5.08989753-1.2981612-1.29816119-2.9947937-1.94750256-5.0896368-1.94750256-2.00643874 0-3.62953139.64177876-4.86875638 1.92533629-1.23922498 1.28355752-1.85883747 2.98749187-1.85883747 5.1120638 0 2.0948431.61961249 3.7841738 1.85883747 5.0677313 1.23922499 1.2835575 2.8769213 1.9253363 4.91282818 1.9253363 2.0656357 0 3.7474038-.6490806 5.045565-1.9475026z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1694.05523 202.753717)"/><path d="m274.413747 0v15.1195638-7.54515948h-274.07401986v7.54515948" stroke="#000" stroke-width="2.539424" transform="translate(1068.761162 109.742102)"/><path d="m0 .24858084h272.688304v7.55978192" stroke="#000" stroke-width="2.539424" transform="translate(1343.17491 117.053303)"/><path d="m90.8465476.12672749v8.60284661h-90.40348881v8.7441965" stroke="#000" stroke-width="2.539424" transform="translate(978.589682 177.005152)"/><path d="m1040.343498 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.18765416.0292448h90.06863584v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1069.248576 185.778593)"/><path d="m1100.026783 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m1314.628568 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.27782564.0292448h88.64587606v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1343.662323 185.778593)"/><path d="m1373.584633 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m90.3956902.12672749v8.67595862h-90.07887149v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1525.467524 177.005152)"/><path d="m1586.145618 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.22421017.0292448h90.27871103v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1615.639004 185.778593)"/><path d="m1645.921998 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1263.581889 37.572233)"><path d="m7.95815261 22.540308v-20.02691984h-7.73636299v-2.18343345h18.06186388v2.18343345h-7.736363v20.02691984z"/><path d="m32.5082157 6.84954575v15.69076225h-2.495645v-2.8385659c-.4572278.9772392-1.1488702 1.7313239-2.0742447 2.2615717s-2.001566.7953717-3.2285744.7953717c-1.3935212 0-2.6154113-.3326845-3.6653293-.9980533-1.0502591-.6657101-1.8613267-1.6067805-2.4332026-2.8232112-.571876-1.2164307-.857814-2.6358843-.857814-4.2580194s.2910562-3.0518251.8731686-4.2894112c.5824537-1.2372448 1.3986395-2.1991293 2.4488986-2.88531225s2.2615716-1.02944503 3.6342787-1.02944503c1.2270084 0 2.2977405.27024212 3.2128785.81106756.9151381.54082545 1.6118987 1.29968715 2.0899406 2.27726753v-2.71402246zm-3.7431262 12.24381045c.8315404-1.0502592 1.2474812-2.5423915 1.2474812-4.4763969 0-1.9340055-.4159408-3.4210195-1.2474812-4.460701-.8318817-1.04002268-2.0172619-1.55969281-3.5564818-1.55969281-1.5388787 0-2.7396136.53536601-3.602887 1.60643921-.8629322 1.0710733-1.294569 2.5632056-1.294569 4.4763969s.4265185 3.3896277 1.2788731 4.4296504c.8526958 1.0396815 2.0588901 1.5596929 3.6185829 1.5596929 1.5392199 0 2.7246001-.5251296 3.5564818-1.5753887z"/><path d="m44.8301643 14.4610241 6.4571488 8.0792839h-3.0258928l-4.9598983-6.176329-4.8974559 6.176329h-3.0883351l6.5195911-8.0792839-6.1452784-7.61147835h3.0572845l4.5541938 5.77096575 4.5545351-5.77096575h3.0879939z"/><path d="m56.3720959 21.7606322c-1.1229379-.6657101-1.9913295-1.6118987-2.6048337-2.8389071s-.9202563-2.6618166-.9202563-4.3047658.3067521-3.0777574.9202563-4.3047658c.6135042-1.22700843 1.4818958-2.17319705 2.6048337-2.83890711 1.1229379-.66536885 2.422625-.99805327 3.8994026-.99805327 1.4764365 0 2.7761236.33268442 3.8990615.99805327 1.1232791.66571006 1.9913295 1.61189868 2.6048337 2.83890711.6135042 1.2270084.9202563 2.6618166.9202563 4.3047658s-.3067521 3.0777574-.9202563 4.3047658-1.4815546 2.173197-2.6048337 2.8389071c-1.1229379.6653688-2.422625.9980533-3.8990615.9980533-1.4767776 0-2.7764647-.3326845-3.8994026-.9980533zm7.4865938-2.6358843c.8318816-1.029445 1.2478225-2.532155 1.2478225-4.5077886 0-1.9131914-.4261773-3.3950872-1.2788731-4.4453463-.8526957-1.04991795-2.0380759-1.57504751-3.5561406-1.57504751-1.5388787 0-2.7348365.52512956-3.5875323 1.57504751-.8526957 1.0502591-1.278873 2.5321549-1.278873 4.4453463 0 1.9756336.421059 3.4783436 1.2631771 4.5077886.8424594 1.0291038 2.0435354 1.543997 3.6032282 1.543997 1.5596929 0 2.7553095-.5148932 3.5871912-1.543997z"/><path d="m85.1023814 12.6829538v9.8573542h-2.5270367v-9.7324695c0-1.4559636-.2910562-2.5215774-.8731687-3.19752386-.5824536-.67594651-1.4975917-1.01374915-2.7454142-1.01374915-1.4556223 0-2.6201884.44699138-3.4936983 1.34131535-.8735098.89432396-1.3102648 2.10051826-1.3102648 3.61858286v8.9838443h-2.5266955v-11.2925036c0-1.62179388-.0832564-3.08799385-.249428-4.39825865h2.4018109l.2497692 2.80751531c.4783832-1.01886737 1.1956167-1.80400261 2.152383-2.3550645.956425-.55106189 2.0483124-.82676344 3.2753208-.82676344 3.7642815 0 5.6464223 2.0691265 5.6464223 6.20772068z"/><path d="m92.4640906 21.7606322c-1.1229379-.6657101-1.9913295-1.6118987-2.6048337-2.8389071s-.9202563-2.6618166-.9202563-4.3047658.3067521-3.0777574.9202563-4.3047658c.6135042-1.22700843 1.4818958-2.17319705 2.6048337-2.83890711 1.1229379-.66536885 2.4229662-.99805327 3.8994026-.99805327 1.4764365 0 2.7761236.33268442 3.8994028.99805327 1.122938.66571006 1.990988 1.61189868 2.604492 2.83890711.613505 1.2270084.920257 2.6618166.920257 4.3047658s-.306752 3.0777574-.920257 4.3047658c-.613504 1.2270084-1.481554 2.173197-2.604492 2.8389071-1.1232792.6653688-2.4229663.9980533-3.8994028.9980533-1.4764364 0-2.7764647-.3326845-3.8994026-.9980533zm7.4865938-2.6358843c.8318816-1.029445 1.2478226-2.532155 1.2478226-4.5077886 0-1.9131914-.426177-3.3950872-1.2788732-4.4453463-.8526958-1.04991795-2.0380759-1.57504751-3.5561406-1.57504751-1.5388787 0-2.7348365.52512956-3.5875323 1.57504751-.8526958 1.0502591-1.278873 2.5321549-1.278873 4.4453463 0 1.9756336.421059 3.4783436 1.2635183 4.5077886.8421182 1.0291038 2.0431942 1.543997 3.602887 1.543997 1.5596929 0 2.7553095-.5148932 3.5871912-1.543997z"/><path d="m130.334156 12.6829538v9.8573542h-2.526696v-9.7324695c0-1.4767777-.254546-2.5478509-.764321-3.21321974-.509434-.66536885-1.336197-.99805327-2.479949-.99805327-1.330738 0-2.370761.44699138-3.119386 1.34131535-.748625.89432396-1.122938 2.11075466-1.122938 3.64963346v8.9527937h-2.526695v-9.7324695c0-1.4559636-.260006-2.5215774-.780017-3.19752386-.520012-.67594651-1.351552-1.01374915-2.495645-1.01374915-1.330738 0-2.375879.44699138-3.135082 1.34131535-.758861.89432396-1.138292 2.11075466-1.138292 3.64963346v8.9527937h-2.527037v-11.2925036c0-1.62179388-.082915-3.08799385-.249428-4.39825865h2.402152l.249428 2.74507301c.436755-.99805327 1.086428-1.76749263 1.949701-2.30831808.862933-.54082544 1.866445-.81106756 3.010197-.81106756 1.247823 0 2.26669.24942801 3.056944.74862526.790253.49919724 1.372707 1.26863659 1.747019 2.30831807.478383-.93561096 1.180262-1.679118 2.105637-2.23017989.925374-.55106189 1.970515-.82676344 3.135081-.82676344 3.472884 0 5.209327 2.0691265 5.209327 6.20772068z"/><path d="m148.926608 6.84954575-7.330999 17.12591165c-.76944 1.7883067-1.736784 3.0985715-2.90135 3.9304532s-2.599374 1.4037577-4.304766 1.715628l-.530247-1.9653972c1.476436-.3326844 2.594256-.7745576 3.353459-1.3256195.758861-.5510619 1.388061-1.3986394 1.887259-2.5423914l.62374-1.4037577-6.644475-15.53482705h2.65158l5.30316 12.94568925 5.364238-12.94568925z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1242.021555 73.436333)"><path d="m.1061178 18.7869453 1.3955685-17.74521654h3.91271003l-1.17104917 14.58010814h7.92539604l-.2490868 3.1651084z"/><path d="m14.0379178 18.7869453.9970296-12.63586623h3.763258l-.9970297 12.63586623zm1.2959338-18.56754419h4.0375946l-.2739955 3.53907983h-4.0375946z"/><path d="m20.1190478 17.4411941 1.2212078-2.6167762c.6981254.4817953 1.445727.8513309 2.243146 1.1089481.7977602.2576171 1.5951792.3862551 2.3925981.3862551.6977843 0 1.2130186-.0996347 1.5453618-.2989042.3323432-.1996106.4985148-.4654169.4985148-.7977601 0-.3487216-.1951748-.6230583-.5858658-.8223277-.3903497-.1996106-1.0260328-.4319779-1.906367-.6977842-.9141144-.2494281-1.661716-.4985149-2.243146-.7479429-.5817713-.2490868-1.0843807-.6189636-1.5078282-1.108948-.4237888-.4903257-.6356832-1.1256676-.6356832-1.9067083 0-.8141385.2286139-1.52864228.6855005-2.14317012.4568867-.61486905 1.1048535-1.09666434 1.9439007-1.44572707.8390472-.34872152 1.7985432-.5234235 2.878488-.5234235.9472123 0 1.8736104.14126293 2.7791945.42378878.9052428.28252585 1.6654694.66468641 2.2803385 1.1464817l-1.1962991 2.51714153c-.6148691-.44869746-1.262836-.78922982-1.9439007-1.02193831-.6814059-.23236727-1.3460923-.34872152-1.9940592-.34872152-.6810648 0-1.1962991.09963472-1.5450206.29890416-.3490627.19961066-.5234235.47360613-.5234235.82266887 0 .36544108.2074586.65615608.6230582.87214498.4152584.215989 1.046847.4405083 1.8940833.6728756.9137732.2661475 1.6572803.5234235 2.2305211.7728515.5732409.2490868 1.0717557.6189636 1.4955445 1.1089481.4237887.4903256.6353419 1.1256676.6353419 1.9067082 0 1.2461165-.494079 2.222332-1.4829195 2.9283054-.9884992.7063146-2.3219667 1.0594719-4.000061 1.0594719-2.1598896 0-4.087412-.5152343-5.7822259-1.5453618z"/><path d="m38.3876878 13.8772056c-.0498173.6977843.0914456 1.2130186.4237888 1.5453618.3323432.332002.7892298.4981736 1.3706598.4981736.3821606 0 .8059494-.0661957 1.2710251-.1992694l-.2490868 2.9160216c-.5650517.2327085-1.2959338.3490627-2.1933287.3490627-1.4286663 0-2.5212361-.3821605-3.2773681-1.1464817-.7557907-.7643211-1.1338567-1.8442659-1.1338567-3.2401757 0-.2825258.0081891-.4985148.0249087-.6479668l.3988801-4.98446573h-2.3925982l.2241782-2.8163869h2.3925981l.2241781-2.96583898 3.8632339-1.22120774-.3241541 4.18704672h3.215267l-.2245193 2.8163869h-3.2149258z"/><path d="m42.4003738 17.4411941 1.2212077-2.6167762c.6977843.4817953 1.4457271.8513309 2.2431461 1.1089481.7974189.2576171 1.5951791.3862551 2.3925981.3862551.6977842 0 1.2130186-.0996347 1.5453618-.2989042.332002-.1996106.4981736-.4654169.4981736-.7977601 0-.3487216-.1951749-.6230583-.5855246-.8223277-.3903497-.1996106-1.0260329-.4319779-1.9067083-.6977842-.9137732-.2494281-1.6613748-.4985149-2.243146-.7479429-.58143-.2490868-1.0840394-.6189636-1.5078282-1.108948-.4234475-.4903257-.6353419-1.1256676-.6353419-1.9067083 0-.8141385.2282727-1.52864228.6851593-2.14317012.4572278-.61486905 1.1051947-1.09666434 1.9442419-1.44572707.8390472-.34872152 1.7985432-.5234235 2.878488-.5234235.9472122 0 1.8732692.14126293 2.7788532.42378878.9055841.28252585 1.6658107.66468641 2.2806797 1.1464817l-1.196299 2.51714153c-.6148691-.44869746-1.262836-.78922982-1.9442419-1.02193831-.6810648-.23236727-1.3457512-.34872152-1.9937181-.34872152-.6814059 0-1.196299.09963472-1.5453618.29890416-.3487215.19961066-.5234235.47360613-.5234235.82266887 0 .36544108.2077999.65615608.6233995.87214498.4152584.215989 1.0465057.4405083 1.8940833.6728756.9137732.2661475 1.6572802.5234235 2.2305211.7728515.5732408.2490868 1.0717556.6189636 1.4955444 1.1089481.4234476.4903256.635342 1.1256676.635342 1.9067082 0 1.2461165-.4944203 2.222332-1.4829195 2.9283054-.9884993.7063146-2.3219667 1.0594719-4.000061 1.0594719-2.1598897 0-4.087412-.5152343-5.7822259-1.5453618z"/><path d="m67.62263 18.7869453v-16.0005853h-6.1811059v-1.74463124h14.430656v1.74463124h-6.181106v16.0005853z"/><path d="m86.688689 12.4567284h-9.1967623c.0167195 1.594838.3865964 2.7996674 1.1092893 3.6138059s1.7736345 1.2212077 3.1528247 1.2212077c1.4621054 0 2.8078565-.4903256 4.0372534-1.4706357l.6732168 1.4706357c-.5483322.5148932-1.2505522.9219624-2.1059777 1.2212078-.8557667.2989041-1.7323475.4486974-2.6294012.4486974-1.9606202 0-3.4977928-.5776766-4.6108355-1.7323475-1.1133839-1.1546708-1.6699052-2.737225-1.6699052-4.7476626 0-1.2795555.2490868-2.4134122.7476016-3.40225268.4985148-.98849926 1.1962991-1.75691497 2.093694-2.30524714.8970537-.54833217 1.918992-.82232765 3.0654737-.82232765 1.6613748 0 2.965839.54389638 3.9130512 1.63237157.9468711 1.08813397 1.4204772 2.587773 1.4204772 4.4985758zm-7.8632949-3.98777725c-.656156.63124737-1.0758502 1.52011191-1.2584001 2.66659365h7.3023377c-.0996347-1.17957958-.4446028-2.07697448-1.034222-2.69150233-.5899604-.61486905-1.4081934-.92230358-2.4550404-.92230358s-1.8981779.31562368-2.5546752.94721226z"/><path d="m96.7326876 6.10126171-.0498173 1.84426595c-.3821606-.13307377-.8226689-.19926944-1.3208425-.19926944-1.2130186 0-2.114508.37772478-2.7041272 1.13385676-.5899604.75613198-.88477 1.67399982-.88477 2.75394462v7.1528857h-2.0189679v-9.02206036c0-1.29593379-.0665369-2.46732417-.1992694-3.51417115h1.918992l.1992694 2.31787208c.3159649-.84723633.8226689-1.49554443 1.5204531-1.94390067.6977843-.44869745 1.4955445-.67287557 2.3925981-.67287557.4152584 0 .797419.04981736 1.1464817.14945208z"/><path d="m116.845594 10.9113666v7.8755787h-2.018627v-7.7759439c0-1.17957958-.203705-2.03534628-.610775-2.56695893-.407069-.53161264-1.067661-.79776018-1.981434-.79776018-1.063225 0-1.894083.35725189-2.492233 1.07175566-.598149.71450378-.897395 1.68662475-.897395 2.91602165v7.1528857h-2.018626v-7.7759439c0-1.16320127-.2078-2.01453218-.623059-2.55467519-.415258-.53980181-1.079944-.81004392-1.993718-.81004392-1.063566 0-1.898519.35725189-2.504857 1.07175566-.606339.71450378-.909679 1.68662475-.909679 2.91602165v7.1528857h-2.018968v-9.02206036c0-1.29593379-.0661956-2.46732417-.1992694-3.51417115h1.9189924l.19961 2.19332868c.348722-.79776018.868051-1.41228802 1.557646-1.84426595s1.491108-.64796689 2.404882-.64796689c.997029 0 1.811168.19926944 2.442415.59814953.631589.39853888 1.096664 1.01340793 1.39591 1.84426595.38216-.74794282.942776-1.34165656 1.682189-1.78216486.739412-.44016708 1.574365-.66025062 2.504858-.66025062 2.774758 0 4.162138 1.65318567 4.162138 4.95955697z"/><path d="m119.911067 17.3415594.672876-1.4955444c.681406.5316126 1.371001.9137732 2.068785 1.1464817s1.478825.3490627 2.342781.3490627c.946871 0 1.665469-.162077 2.155795-.4862311.489984-.3238128.735318-.7933244.735318-1.4078522 0-.4985148-.166172-.8973949-.498515-1.1962991-.332343-.2992453-.880675-.5319538-1.644996-.6981254l-2.118603-.4981736c-1.046506-.2327085-1.85655-.6483081-2.429791-1.2464577-.573241-.5981495-.859861-1.3123121-.859861-2.14317008 0-1.09666435.440167-1.98962346 1.320843-2.67921855.880675-.6895951 2.043876-1.03422204 3.489262-1.03422204.880675 0 1.711533.14092171 2.492233.42344756.781041.28252584 1.437197.68959509 1.96915 1.22120774l-.673216 1.47063576c-1.17958-.9803101-2.442416-1.47063576-3.788167-1.47063576-.897054 0-1.591085.17026618-2.081069.51113976-.489984.34053236-.735318.81823307-.735318 1.43310213 0 .51489308.153888.92196238.461323 1.22120778.307093.2989041.801513.5316126 1.482919.6977842l2.118261.5234235c1.163202.2658063 2.027158.6769702 2.592209 1.2334915.564711.5568625.847237 1.28365.847237 2.1807037 0 1.0802861-.440168 1.9442419-1.320843 2.5922088s-2.076974.9721209-3.588897.9721209c-2.110414 0-3.779978-.540143-5.009716-1.6200878z"/><path d="m146.77832 17.0672227h3.91271v1.7197226h-9.894546v-1.7197226h3.913051v-13.48310252l-3.638715 2.31753087v-1.96880935l4.53611-2.89111294h1.17139z"/><path d="m156.722343 16.2199864v1.8193573c0 .6977842-.116013 1.3375619-.348722 1.918992-.232708.5817712-.623058 1.1464817-1.17139 1.6948138l-.947212-.7226929c.647967-.7476016 1.013749-1.4621054 1.096664-2.1435113h-1.196299v-2.5669589z"/><path d="m171.801648 17.0672227v1.7197226h-11.415341v-1.5450206l6.204991-6.8788902c.832564-.93049277 1.436515-1.76953995 1.818675-2.51714156.382161-.74794282.573241-1.49554443.573241-2.24314604 0-.9803101-.279796-1.73200629-.846213-2.25542978-.563004-.5234235-1.371683-.78513524-2.4158-.78513524-1.696179 0-3.374274.68106472-5.03599 2.04353539l-.77251-1.56992926c.697784-.66468642 1.57846-1.19629906 2.641685-1.59517916 1.063567-.39888009 2.136346-.59814953 3.214585-.59814953 1.627594 0 2.917386.41935298 3.862551 1.25874137.948577.83904718 1.422866 1.97290393 1.422866 3.40191149 0 1.01340793-.228614 1.98962345-.685842 2.92830535-.457228.93868189-1.218137 1.98962347-2.279315 3.15282467l-5.061239 5.4829805z"/><path d="m177.435104 16.2199864v1.8193573c0 .6977842-.119425 1.3375619-.351451 1.918992-.232026.5817712-.621011 1.1464817-1.170367 1.6948138l-.948577-.7226929c.648308-.7476016 1.01682-1.4621054 1.098712-2.1435113h-1.197664v-2.5669589z"/><path d="m191.339607 11.2102708c.549356.7312233.822328 1.6535269.822328 2.7665695 0 1.5453618-.522059 2.762475-1.569588 3.6513395-1.04753.8888646-2.466983 1.3334674-4.261773 1.3334674-1.146482 0-2.245193-.1910802-3.302959-.5732408-1.054354-.3821606-1.948337-.9223036-2.678536-1.6200878l.798442-1.5702705c1.644656 1.3624706 3.354142 2.0438766 5.131871 2.0438766 1.265907 0 2.22472-.2825259 2.879853-.8475776.658544-.5647104.98611-1.3955685.98611-2.4922328 0-2.1766092-1.364859-3.2650844-4.087753-3.2650844h-2.043876v-1.71938129h1.644655c1.313677 0 2.316848-.29105622 3.016339-.87248623.696078-.58143001 1.047529-1.41228803 1.047529-2.49223284 0-.96359058-.290033-1.70300303-.859861-2.21823737-.573241-.51489312-1.385332-.77251029-2.432862-.77251029-1.692425 0-3.371202.68106472-5.032918 2.04353539l-.771145-1.56992926c.713139-.68140594 1.590061-1.21711317 2.627354-1.6078041 1.037293-.39034973 2.122356-.58552459 3.251777-.58552459 1.596885 0 2.873028.40706925 3.82843 1.22120775.955401.81413849 1.433102 1.91080284 1.433102 3.28999303 0 1.01340793-.252499 1.90227247-.750673 2.6665936-.498174.76432114-1.187427 1.31265331-2.067762 1.64499652 1.04753.29890416 1.845972.81413848 2.391916 1.54502058z"/></g><g transform="translate(1238.737766 301.42884)"><path d="m.162355.124952h196.432387v68.608179h-196.432387z" fill="#0083c0"/><path d="m196.594742 68.7331309h-196.43238687v-68.60817855h196.43238687zm-193.8939261-66.06958614v63.53099374h191.3558681v-63.53099374z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1249.006069 345.842567)"><path d="m.56874621 14.4291604 1.02879531-13.08192845h2.88430112l-.8634532 10.74723665h5.84208763l-.18371345 2.3346918z"/><path d="m10.8383279 14.4291604.7348538-9.31580278h2.7740731l-.7348538 9.31580278zm.95531-13.68665188h2.9761578l-.2020848 2.6102619h-2.9761578z"/><path d="m15.320936 13.4340458.9001959-1.9289912c.5143977.3597722 1.065538.6276877 1.6534211.8190558.587883.1913682 1.175766.2832249 1.7636491.2832249.5143976 0 .8940721-.0688925 1.1390233-.2143323.2449513-.1530946.3674269-.3444627.3674269-.589414 0-.2602607-.1439088-.4592836-.4317266-.6047234-.2878177-.1530946-.756287-.3214986-1.4054078-.5205215-.673616-.1837134-1.2247564-.3674269-1.6534211-.5511403-.4286647-.18371346-.7991535-.4516289-1.1114663-.81140107-.3123129-.36742689-.4684693-.83436524-.4684693-1.40846976 0-.59706871.168404-1.12524487.505212-1.57687376.3368079-.45928362.8144629-.81140106 1.4329648-1.07166178.618502-.25260599 1.3257988-.38273635 2.1218904-.38273635.6981111 0 1.3809127.10716618 2.0484049.31384381s1.2278182.48990253 1.6809781.84201997l-.8818246 1.86009865c-.4531598-.33680798-.9308148-.58175925-1.4329649-.75781797-.5021501-.16840399-.9920526-.25260599-1.4697076-.25260599-.5021501 0-.8818245.06889254-1.1390233.21433236-.2571989.15309454-.3857983.35211744-.3857983.61237816 0 .26791544.1530946.4822478.4592836.64299706.3061891.15309454.7715965.32149853 1.3962222.48990253.673616.1990229 1.2216945.39039107 1.6442354.57410452s.7899678.45162889 1.1022807.81905582c.3123128.3597721.4684693.8267105.4684693 1.400815 0 .9185672-.364365 1.6381116-1.093095 2.158633-.7287301.5205214-1.711597.7807822-2.9486009.7807822-1.5921832 0-3.0129005-.3750817-4.262152-1.1405544z"/><path d="m28.7871317 10.8084745c-.0367426.5128667.0673616.895603.3123129 1.1405543s.5817593.3674269 1.010424.3674269c.2816939 0 .5940068-.0459284.9369385-.1454398l-.1837134 2.1509783c-.4164171.168404-.9553099.252606-1.6166783.252606-1.0532905 0-1.8585677-.2832249-2.4158319-.84202-.5572641-.5664498-.8358962-1.3625414-.8358962-2.3882748 0-.2066776.0061238-.3674269.0183714-.4822478l.2939415-3.67426897h-1.7636491l.1653421-2.07443101h1.7636491l.1653421-2.18159719 2.8475584-.90325778-.2388274 3.08485497h2.3699034l-.1653421 2.07443101h-2.3699034z"/><path d="m31.7449182 13.4340458.9001959-1.9289912c.5143977.3597722 1.065538.6276877 1.6534211.8190558.587883.1913682 1.175766.2832249 1.7636491.2832249.5143976 0 .8940721-.0688925 1.1390233-.2143323.2449513-.1530946.3674269-.3444627.3674269-.589414 0-.2602607-.1439088-.4592836-.4317266-.6047234-.2878177-.1530946-.756287-.3214986-1.4054078-.5205215-.673616-.1837134-1.2247564-.3674269-1.6534211-.5511403-.4286647-.18371346-.7991535-.4516289-1.1114663-.81140107-.3123129-.36742689-.4684693-.83436524-.4684693-1.40846976 0-.59706871.168404-1.12524487.505212-1.57687376.3368079-.45928362.8144629-.81140106 1.4329649-1.07166178.6185019-.25260599 1.3257987-.38273635 2.1218903-.38273635.6981111 0 1.3809127.10716618 2.0484049.31384381s1.2278182.48990253 1.6809781.84201997l-.8818246 1.86009865c-.4531598-.33680798-.9308148-.58175925-1.4329649-.75781797-.5021501-.16840399-.9920526-.25260599-1.4697076-.25260599-.5021501 0-.8818245.06889254-1.1390233.21433236-.2571989.15309454-.3857983.35211744-.3857983.61237816 0 .26791544.1530946.4822478.4592836.64299706.3061891.15309454.7715965.32149853 1.3962222.48990253.673616.1990229 1.2216945.39039107 1.6442354.57410452s.7899678.45162889 1.1022807.81905582c.3123128.3597721.4684693.8267105.4684693 1.400815 0 .9185672-.364365 1.6381116-1.093095 2.158633-.7287301.5205214-1.711597.7807822-2.9486009.7807822-1.5921832 0-3.0129005-.3750817-4.262152-1.1405544z"/><path d="m52.3208244 13.1584757h2.8843011v1.2706847h-7.2934239v-1.2706847h2.8843011v-9.93583564l-2.6822163 1.70700411v-1.4467434l3.3435848-2.13566882h.8634532z"/><path d="m59.6509909 12.5384428v1.3395772c0 .5128667-.0857329.9874598-.2571988 1.4161245s-.4592836.84202-.8634532 1.2477205l-.6981111-.5358309c.4776549-.5511403.7471013-1.0716618.8083392-1.5768737h-.8818246v-1.8907176z"/><path d="m70.7656545 13.1584757v1.2706847h-8.4140759v-1.1405544l4.5744648-5.06742923c.6123782-.68892542 1.0594142-1.30895831 1.3411082-1.86009865.2816939-.55114034.4225409-1.10228069.4225409-1.65342103 0-.71954434-.2082085-1.27068468-.6246257-1.66107575-.4164171-.38273635-1.010424-.57410453-1.7820204-.57410453-1.2492515 0-2.4862554.49755726-3.7110117 1.50032649l-.5695117-1.15586377c.5143977-.48990253 1.1635185-.8802936 1.9473626-1.17117323.783844-.29853435 1.5738118-.44397416 2.3699035-.44397416 1.2002611 0 2.1494473.30618907 2.8475584.92622196.6981111.62003288 1.0471666 1.45439813 1.0471666 2.51075045 0 .74250851-.168404 1.46205285-.5052119 2.15863301-.336808.68892542-.897134 1.46205285-1.6809781 2.31938227l-3.729383 4.04169587z"/><path d="m74.9175784 12.5384428v1.3395772c0 .5128667-.0857329.9874598-.2571988 1.4161245s-.4592837.84202-.8634532 1.2477205l-.6981111-.5358309c.4776549-.5511403.7471013-1.0716618.8083391-1.5768737h-.8818245v-1.8907176z"/><path d="m85.1687888 8.84120966c.4041695.54348561.6062543 1.22475634.6062543 2.04381214 0 1.1405543-.3857982 2.0361573-1.1573947 2.6868091-.7715965.6583065-1.8187631.9874598-3.1414999.9874598-.8450819 0-1.6564829-.1454398-2.4342032-.42101-.7777203-.2832249-1.4360268-.6812707-1.9749196-1.1941374l.5878831-1.1635185c1.2125087 1.010424 2.4740077 1.5079812 3.784497 1.5079812.9308148 0 1.6381116-.2066776 2.1218903-.6200329.4837787-.4210099.7256681-1.0333881.7256681-1.8371344 0-1.60749269-1.0043002-2.41123903-3.0129005-2.41123903h-1.5064503v-1.26302995h1.2125088c.9675574 0 1.708535-.21433235 2.2229327-.64299706.5143976-.42866471.7715965-1.04104287.7715965-1.83713448 0-.71188961-.2112705-1.25537522-.6338114-1.63811157-.422541-.38273635-1.0196097-.5664498-1.7912062-.5664498-1.2492514 0-2.4862553.49755726-3.7110116 1.50032649l-.5695117-1.15586377c.5266452-.49755726 1.1727042-.89560306 1.9381769-1.18648268.7654727-.2832249 1.5646262-.42866471 2.3974605-.42866471 1.175766 0 2.1157665.29853435 2.8200014.90325778.7042349.5970687 1.0563523 1.40846976 1.0563523 2.41889372 0 .75016325-.1837134 1.40846977-.5511403 1.96726484-.3674269.56644979-.8757008.97215032-1.5248216 1.21710159.7715964.21433235 1.3594795.5970687 1.7636491 1.13289959z"/><path d="m90.1841659 12.5384428v1.3395772c0 .5128667-.085733.9874598-.2571988 1.4161245-.1714659.4286647-.4592837.84202-.8634533 1.2477205l-.6981111-.5358309c.477655-.5511403.7471014-1.0716618.8083392-1.5768737h-.8818245v-1.8907176z"/><path d="m101.776484 10.3338814v1.2477205h-1.9841048v2.8475585h-1.5064503v-2.8475585h-6.0258011v-1.1405543l6.3013713-9.09381565h1.2308801v8.98664945zm-7.9547919 0h4.4642368v-6.42997064z"/><path d="m105.450753 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257198 1.4161245-.171466.4286647-.459284.84202-.863454 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m114.847696 6.74381447c.618502.34446271 1.093095.83436524 1.423779 1.45439812.330685.62768761.496027 1.34723195.496027 2.17394251 0 .8190557-.180652 1.5462548-.541955 2.1815971-.361303.6353424-.875701 1.1328996-1.543193 1.4773623-.667492.3521175-1.448274.5281762-2.342346.5281762-.796092 0-1.579936-.1454398-2.351532-.4363194-.771597-.2832249-1.420718-.6812707-1.947363-1.178828l.569512-1.1635185c1.212508 1.010424 2.455636 1.5079812 3.729383 1.5079812.918567 0 1.638111-.2602607 2.158633-.7807821.520521-.5205215.780782-1.2247563.780782-2.1203594 0-.87263887-.257199-1.56921902-.771597-2.10504991-.514397-.52817616-1.200261-.79609161-2.05759-.79609161-1.249252 0-2.247428.50521198-2.994529 1.52329067h-1.047167v-7.6623817h7.844564v1.2477205h-6.338114v4.66938345c.722606-.69658015 1.647297-1.04869759 2.774073-1.04869759.820587 0 1.540131.17605872 2.158633.52817616z"/><path d="m120.717341 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245s-.459284.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747101-1.0716618.808339-1.5768737h-.881825v-1.8907176z"/><path d="m130.077541 6.74381447c.618502.34446271 1.099219.83436524 1.442151 1.46970758.342931.62768761.514397 1.34723194.514397 2.15863305 0 .8037463-.180651 1.5309453-.541954 2.1662877-.361304.6353423-.860392 1.1328996-1.497265 1.4926717-.636873.3674269-1.35948.5434857-2.167819.5434857-1.579935 0-2.798568-.5511404-3.655897-1.6534211-.85733-1.1022806-1.285994-2.6714997-1.285994-4.70000233 0-1.46970758.199022-2.73273753.597068-3.78908985.398046-1.0486976.973681-1.85244393 1.726907-2.40358427.753225-.55114034 1.656483-.82671051 2.709773-.82671051.759349 0 1.497265.13778508 2.213747.42100998s1.34417.6812707 1.883063 1.19413741l-.569512 1.15586377c-.612378-.51286671-1.200261-.88794833-1.763649-1.13289959s-1.139023-.3674269-1.726906-.3674269c-1.126776 0-2.002477.49755726-2.627103 1.50032649-.624625 1.01042396-.936938 2.41889373-.936938 4.22540929v.27557017c.281694-.69658015.740977-1.24772049 1.377851-1.65342102.636873-.39804581 1.365603-.60472343 2.18619-.60472343.796091 0 1.503388.17605872 2.12189.52817616zm-.303127 5.76400943c.514397-.5281762.771596-1.2400658.771596-2.1203594 0-.87263887-.26026-1.56921902-.780782-2.10504991-.520521-.52817616-1.197199-.79609161-2.030033-.79609161-.85733 0-1.555441.26791545-2.094334.80374634-.538893.54348561-.808339 1.24006577-.808339 2.09739518 0 .8726389.269446 1.5768738.808339 2.1127047.538893.5358308 1.243128.811401 2.112705.811401.832834 0 1.50645-.2679154 2.020848-.8037463z"/><path d="m135.983928 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245-.171465.4286647-.459283.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m138.353832 1.34723195h8.634532v1.12524486l-6.136029 11.95668359h-1.616679l6.099287-11.81124377h-6.981111z"/><path d="m151.250516 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245s-.459284.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747101-1.0716618.808339-1.5768737h-.881825v-1.8907176z"/><path d="m161.915081 8.9101022c.471532.5664498.707297 1.2477205.707297 2.0438121 0 1.1175901-.422541 1.9978837-1.267623 2.6408808-.845081.6429971-1.984105.9644956-3.41707.9644956s-2.571988-.3214985-3.41707-.9644956-1.267623-1.5232907-1.267623-2.6408808c0-.7960916.24189-1.4773623.725669-2.05146683.483778-.58175925 1.148209-.97980505 1.99329-1.1941374-.783844-.23729654-1.383974-.62003289-1.800391-1.14820905-.416418-.53583089-.624626-1.1635185-.624626-1.88306284 0-.70423488.183713-1.30895831.55114-1.82947974.367427-.52052144.884887-.92622197 1.552379-1.21710159.667492-.2832249 1.429903-.42866471 2.287232-.42866471.85733 0 1.619741.14543981 2.287233.42866471.667492.29087962 1.184951.69658015 1.552378 1.21710159.367427.52052143.551141 1.12524486.551141 1.82947974 0 .71954434-.211271 1.34723195-.633812 1.88306284-.422541.52817616-1.013486.91091251-1.772834 1.14820905.857329.2296418 1.521759.62768761 1.99329 1.20179213zm-6.080915-2.42654845c.520522.43631944 1.221695.70423488 2.103519.7960916.881825-.09185672 1.582998-.35977216 2.103519-.7960916.520522-.43631944.780782-1.00276923.780782-1.69934939 0-.71954434-.254137-1.29364886-.76241-1.70700412-.508274-.42100998-1.215571-.62768761-2.121891-.62768761-.906319 0-1.613616.20667763-2.12189.62768761-.508274.41335526-.762411.98745978-.762411 1.70700412 0 .69658016.260261 1.26302995.780782 1.69934939zm4.473423 6.20032885c.55114-.4133553.82671-1.0257334.82671-1.821825 0-.7195444-.290879-1.30130361-.872639-1.72996832-.581759-.43631943-1.356417-.70423488-2.323975-.80374633-.967557.09951145-1.742216.3674269-2.323975.80374633-.581759.42866471-.872639 1.01042392-.872639 1.72996832 0 .7960916.27557 1.4084697.826711 1.821825.55114.4133553 1.341108.6276876 2.369903.6276876 1.028796 0 1.818763-.2143323 2.369904-.6276876z"/><path d="m166.517103 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245-.171465.4286647-.459283.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m176.456001 2.85521316c.857329 1.10228069 1.285994 2.67149972 1.285994 4.70000237 0 2.21987082-.443974 3.94218437-1.331923 5.17459547-.887948 1.232411-2.128014 1.8447892-3.720197 1.8447892-.747101 0-1.478893-.1377851-2.195376-.42101-.716482-.2832249-1.350293-.6812707-1.901434-1.1941374l.587883-1.1558638c.624626.5281762 1.218633.9109125 1.782021 1.148209.563388.2372966 1.132899.3597722 1.708535.3597722 1.126776 0 1.999414-.505212 2.617916-1.5079812s.927753-2.411239.927753-4.22540929v-.23729654c-.281694.6812707-.740977 1.22475632-1.377851 1.62280212-.636873.3980458-1.365603.5970687-2.18619.5970687-.796091 0-1.500326-.17605872-2.112704-.52052143-.612378-.35211744-1.090033-.84201997-1.432965-1.46970758-.342932-.63534234-.514398-1.35488667-.514398-2.15863301 0-.81140106.180652-1.53094539.541955-2.17394246.361303-.63534234.860391-1.13289959 1.497265-1.49267176.636873-.35977217 1.359479-.54348561 2.167818-.54348561 1.579936 0 2.798568.55114034 3.655898 1.65342102zm-1.469708 4.63110982c.538893-.54348561.808339-1.24006577.808339-2.09739519 0-.86498415-.269446-1.56921903-.808339-2.11270464-.538893-.53583089-1.243127-.80374634-2.112704-.80374634-.832835 0-1.506451.26026072-2.020848.79609161-.514398.53583089-.771597 1.24006577-.771597 2.12035937 0 .87263888.257199 1.56921903.771597 2.10504992.514397.53583089 1.194137.79609161 2.039219.79609161.857329 0 1.55544-.26791545 2.094333-.80374634z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1307.966463 315.478416)"><path d="m15.7309762 20.418335h-2.3788531l-2.4066219-6.4812177c-.2915715-.8025158-.6979203-1.3403033-1.21719525-1.6133623-.51927495-.2739846-1.2532946-.4100513-2.20205898-.4100513h-4.86785547v8.5046313h-2.21501771v-19.47142187h7.74006606c2.09653785 0 3.70527205.46466314 4.82620245 1.39491504 1.121856.92932627 1.6818584 2.26962951 1.6818584 4.01998408 0 1.2764352-.332299 2.34738191-.9978225 3.21284015-.6655235.8663839-1.6272466 1.4819237-2.8851693 1.8466194.5655561.0907112 1.0487317.332299 1.4495268.7247635.4007951.3915388.7386478.9524668 1.0117068 1.6818584zm-7.73914047-10.3651351c2.98976477 0 4.48464727-1.22089777 4.48464727-3.66454456 0-1.20331091-.3646958-2.10116598-1.0940874-2.6935652-.7284659-.59239922-1.85957813-.88859883-3.39055987-.88859883h-5.33344423v7.24670859z"/><path d="m18.2745903 18.1755486.8478714-1.7225859c.9663512.8201027 1.9502893 1.4041713 2.9536655 1.7503546 1.0024506.3461833 2.1696621.5192749 3.5007091.5192749 1.5680067 0 2.7759458-.3054558 3.6228915-.9154419.8478714-.6109117 1.2718071-1.4726674 1.2718071-2.5843416 0-.6571929-.2045629-1.1903522-.6146142-1.6004035-.410977-.4100513-.9487644-.7340197-1.6142879-.9709794-.6655235-.2369596-1.5541223-.4831756-2.6657965-.7377221-1.495808-.3285964-2.725962-.684036-3.6923132-1.0672442-.9663513-.3822826-1.7503546-.93395442-2.3520101-1.65408972-.6016554-.72013531-.9024831-1.66427156-.9024831-2.83055753 0-1.11259978.2915714-2.09190974.8747144-2.93978113.5840686-.84787138 1.4087994-1.50876676 2.475118-1.98268614 1.0672442-.474845 2.3112826-.71180469 3.7330407-.71180469 1.3495595 0 2.6074822.2101166 3.7746938.62942417 1.166286.41930758 2.1511497 1.03021927 2.9536655 1.83180947l-.8756401 1.72351148c-.9117394-.78400334-1.8364376-1.35881571-2.7759457-1.72351148-.9385825-.36377015-1.9641737-.54611803-3.0767735-.54611803-1.5133948 0-2.6981933.3230427-3.5553209.97005372-.856202.64793665-1.2847658 1.53653548-1.2847658 2.66672212 0 .9848637.373952 1.72258585 1.1209304 2.21501771.747904.49243185 1.8966031.92099566 3.4460973 1.28569143 1.6772303.40079512 2.994393.77011902 3.9514879 1.10797162.957095.3369271 1.7549827.8469458 2.3927375 1.5309818.6386804.684036.9580206 1.5911473.9580206 2.7213339 0 1.0940873-.2924971 2.0558104-.8756401 2.8851693-.5831429.8293589-1.41713 1.4726675-2.501961 1.9280744-1.0848311.4554069-2.3566382.6840359-3.8154213.6840359-3.0443766 0-5.4695109-.8210283-7.2744773-2.4621592z"/><path d="m35.3125473 18.1755486.8478714-1.7225859c.9663512.8201027 1.9502893 1.4041713 2.9536654 1.7503546 1.0024506.3461833 2.1696622.5192749 3.5007092.5192749 1.5680067 0 2.7750201-.3054558 3.6228915-.9154419.8478714-.6109117 1.271807-1.4726674 1.271807-2.5843416 0-.6571929-.2045628-1.1903522-.6155398-1.6004035-.4100513-.4100513-.9478387-.7340197-1.6133622-.9709794-.6655235-.2369596-1.5541223-.4831756-2.6657965-.7377221-1.495808-.3285964-2.725962-.684036-3.6923133-1.0672442-.9663512-.3822826-1.7503545-.93395442-2.35201-1.65408972-.6016555-.72013531-.9024832-1.66427156-.9024832-2.83055753 0-1.11259978.2915715-2.09190974.8747145-2.93978113.5840686-.84787138 1.4087994-1.50876676 2.475118-1.98268614 1.0672442-.474845 2.3112826-.71180469 3.7330407-.71180469 1.3495595 0 2.6074822.2101166 3.7746938.62942417 1.1662859.41930758 2.1511496 1.03021927 2.9536655 1.83180947l-.8756401 1.72351148c-.9117395-.78400334-1.8364376-1.35881571-2.7759458-1.72351148-.9385825-.36377015-1.9641736-.54611803-3.0767734-.54611803-1.5133949 0-2.6981933.3230427-3.555321.97005372-.856202.64793665-1.2847658 1.53653548-1.2847658 2.66672212 0 .9848637.373952 1.72258585 1.1209304 2.21501771.747904.49243185 1.8966032.92099566 3.4460974 1.28569143 1.6772303.40079512 2.9943929.77011902 3.9514879 1.10797162.957095.3369271 1.7549827.8469458 2.3927375 1.5309818.6386804.684036.9580206 1.5911473.9580206 2.7213339 0 1.0940873-.2924971 2.0558104-.8756401 2.8851693s-1.41713 1.4726675-2.5019611 1.9280744-2.3566381.6840359-3.8154212.6840359c-3.0443766 0-5.469511-.8210283-7.2744773-2.4621592z"/></g><g transform="translate(1132.952069 387.954528)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m23.6732656 32.2046798v3.383959h-22.46109685v-3.0406798l12.21155275-13.5355472c1.6346218-1.8308227 2.8280084-3.4819151 3.5798709-4.953277.7521514-1.4710729 1.1280827-2.9424349 1.1280827-4.4137968 0-1.92877865-.5559506-3.40823133-1.6675628-4.43806909-1.1116122-1.03012673-2.6971116-1.54504561-4.7570761-1.54504561-3.33483658 0-6.63673225 1.34046504-9.90626489 4.02168407l-1.52048438-3.08980225c1.37340598-1.30781306 3.10598377-2.35383234 5.19860024-3.13863575 2.09232752-.78480342 4.2011255-1.17691617 6.32639393-1.17691617 3.2039397 0 5.7377914.82554616 7.6015551 2.47663847 1.8634746 1.65109231 2.7953564 3.88240747 2.7953564 6.69394548 0 1.99437155-.4496149 3.91534845-1.3488447 5.76264155-.8989409 1.8470042-2.394864 3.9150595-4.4871916 6.2035878l-9.95538731 10.7893133z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1144.791113 397.615433)"/><g transform="translate(1191.307406 387.954528)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.0150941-52.05176699v49.51333329h42.4764253v-49.51333329z" fill="#000"/></g><path d="m21.6572224 20.6796856c1.0789602 1.4387099 1.6184403 3.2533511 1.6184403 5.4436346 0 3.0406798-1.0298378 5.4355438-3.0895133 7.184881-2.0599645 1.7490483-4.855321 2.6237169-8.3860695 2.6237169-2.25616532 0-4.42217651-.3762202-6.49803356-1.1280827-2.076146-.7518625-3.83357397-1.8146412-5.27199496-3.1877582l1.56931788-3.0895133c3.2365917 2.6809301 6.60408028 4.0213951 10.10246574 4.0213951 2.4847292 0 4.3730541-.5559506 5.6643967-1.6675628s1.9371583-2.746234 1.9371583-4.9041544c0-4.2829-2.68093-6.4243499-8.0427902-6.4243499h-4.02168406v-3.3839591h3.23688066c2.5829741 0 4.5608752-.5721321 5.9339922-1.7163963 1.3731171-1.1442642 2.0599645-2.779175 2.0599645-4.90415445 0-1.89641562-.5640413-3.35130707-1.692124-4.36467437-1.1277937-1.01365625-2.7216728-1.52048438-4.7816373-1.52048438-3.33483658 0-6.63673225 1.34046504-9.90626489 4.02168407l-1.52048437-3.08980225c1.40605796-1.34046504 3.13054499-2.39486403 5.17403901-3.16319698 2.04349402-.76833294 4.17685323-1.15235494 6.40007765-1.15235494 3.1386357 0 5.6479262.80098493 7.5278713 2.40295479 1.8799452 1.60196986 2.8199177 3.75989029 2.8199177 6.47347235 0 1.99437156-.4906466 3.74341986-1.4713619 5.24743376s-2.3376508 2.5829741-4.0705175 3.2368806c2.0596755.5883136 3.6292823 1.6019699 4.7079536 3.0403909z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1203.470522 396.880376)"/><g transform="translate(1249.976943 388.127483)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m25.5263379 24.074336v3.3348366h-5.2965562v7.601555h-4.0213951v-7.601555h-16.08558047v-3.0406798l16.82126147-24.27573805h3.2857141v23.98158125zm-21.23505825 0h11.91710695v-17.16454069z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1260.680298 397.799392)"/><g transform="translate(1072.3219 388.127483)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.0150941-52.05176699v49.51333329h42.4764253v-49.51333329z" fill="#000"/></g><path d="m12.0107286 31.6267686h7.6995109v3.383959h-19.46953948v-3.383959h7.69951097v-26.53161447l-7.16003086 4.56087523v-3.87431672l8.92554959-5.68895789h2.30499888z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1086.781678 397.799392)"/><g transform="translate(1310.293872 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m18.2209624 14.4865002c1.6510923.9318818 2.9181626 2.2316041 3.8009219 3.8988779.8827594 1.6675628 1.3239946 3.5963414 1.3239946 5.7869138 0 2.1905725-.4822669 4.1358216-1.4468007 5.8360363-.9642448 1.7002148-2.3376508 3.0161186-4.119351 3.9480004-1.7819892.9315929-3.866226 1.3976783-6.2529993 1.3976783-2.12497947 0-4.21730699-.384311-6.27727148-1.1526439-2.05967553-.768333-3.79254227-1.822732-5.19831128-3.163197l1.52019542-3.0895133c3.23688066 2.6809301 6.55524679 4.0213951 9.95538734 4.0213951 2.4523662 0 4.3730541-.6946492 5.7626416-2.0842367 1.3892985-1.3895875 2.0842368-3.2776234 2.0842368-5.6643967 0-2.3211804-.6865586-4.1930347-2.0596756-5.6152742-1.373406-1.4222395-3.2042286-2.1333592-5.492757-2.1333592-3.33483662 0-5.99958518 1.3569355-7.99395675 4.0705175h-2.79535649v-20.45054375h20.94090144v3.3348366h-16.91950633v12.45687605c1.9290676-1.8637637 4.39761531-2.7956455 7.40535413-2.7956455 2.1905725 0 4.1112603.4660854 5.7623527 1.3976783z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1322.999783 398.270213)"/><g transform="translate(1374.317793 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m19.2788288 15.0644114c1.6510923.9318818 2.9343442 2.2396948 3.8497555 3.9234391.9154114 1.6837443 1.373117 3.6047212 1.373117 5.7623526 0 2.1579205-.4822669 4.0869881-1.4468007 5.7869139-.9642448 1.7002148-2.2966191 3.032589-3.9968339 3.9971228-1.6999258.9642449-3.6289934 1.4465118-5.7869138 1.4465118-4.21759597 0-7.47065814-1.471073-9.75918651-4.4137968-2.28881733-2.9424349-3.43308151-7.1273789-3.43308151-12.554543 0-3.9234392.53138935-7.2909278 1.5938791-10.10246581 1.06248975-2.81182696 2.59915564-4.95327693 4.60999768-6.42463886 2.01055308-1.47136192 4.42188754-2.20675393 7.23371454-2.20675393 2.0270235 0 3.9968339.37593124 5.909431 1.12779372 1.9125972.75215143 3.5882507 1.81464118 5.0266717 3.1877582l-1.5201954 3.08980225c-1.6346219-1.37340597-3.2039398-2.38677327-4.7079537-3.0406798s-3.0406798-.98100427-4.6099976-.98100427c-3.0077389 0-5.34538973 1.34046504-7.01295251 4.02168407-1.66727383 2.68093003-2.5011997 6.44053143-2.5011997 11.27938193v.735681c.75215144-1.8634747 1.97819006-3.3348366 3.67811586-4.4137969 1.70021477-1.0789602 3.64546385-1.6184403 5.83603635-1.6184403 2.1252684 0 4.0133043.4660854 5.6643966 1.3976783zm-.8090757 15.3993109c1.3731171-1.4222395 2.0596756-3.3102754 2.0596756-5.6643967 0-2.3211804-.6949383-4.1930347-2.0842368-5.6152742-1.3895875-1.4222395-3.195849-2.1333592-5.4190734-2.1333592-2.2888173 0-4.15229196.7192105-5.5910019 2.1579204-1.43842099 1.438421-2.15763148 3.3021846-2.15763148 5.590713 0 2.3211803.71921049 4.2011255 2.15763148 5.6398354 1.43870994 1.438421 3.3186551 2.1579205 5.6398354 2.1579205 2.2232244 0 4.0213952-.7111198 5.3948011-2.1333592z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1384.69083 397.697106)"/><g transform="translate(1436.988825 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01528916-52.05176699v49.51333329h42.47662036v-49.51333329z" fill="#000"/></g><path d="m.04045378.09275475h23.04969942v2.99155735l-16.38002621 31.9264155h-4.31555192l16.28178133-31.5340138h-18.63590262z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1447.938813 398.275017)"/><g transform="translate(1499.78573 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m23.338655 20.8516142c1.2586906 1.5201954 1.8880359 3.3429273 1.8880359 5.4679068 0 2.9753759-1.1277937 5.3211174-3.3836701 7.0375137-2.2561653 1.7166852-5.2965562 2.5748834-9.1217504 2.5748834-3.82548323 0-6.86587408-.8581982-9.12175046-2.5748834-2.25616535-1.7163963-3.38395906-4.0621378-3.38395906-7.0375137 0-2.1249795.64552681-3.9558022 1.93715836-5.4924681 1.29134258-1.5366659 3.06495207-2.5994446 5.32082845-3.1877582-2.09232751-.6212545-3.69429737-1.6430015-4.80590957-3.065241s-1.66756278-3.0976041-1.66756278-5.02667165c0-1.86347468.49064661-3.49029472 1.47136193-4.87959325.98071531-1.38958749 2.36221204-2.46854771 4.14391229-3.23688066 1.78198919-.76833294 3.81710354-1.15235494 6.10592084-1.15235494 2.2885284 0 4.3236427.384022 6.1056319 1.15235494 1.7817002.76833295 3.1631969 1.84729317 4.1439122 3.23688066.9810043 1.38929853 1.471362 3.01611857 1.471362 4.87959325 0 1.92906755-.5640414 3.60443215-1.692124 5.02667165-1.1277937 1.4222395-2.7052024 2.4439865-4.7325149 3.065241 2.2888173.6212546 4.0624268 1.6918351 5.3211174 3.2123195zm-16.23265883-6.4737613c1.38929853 1.1607346 3.26115293 1.8718543 5.61527423 2.1333592 2.3538323-.2615049 4.2256867-.9726246 5.6152742-2.1333592 1.3892985-1.1604457 2.0842368-2.6725504 2.0842368-4.53631405 0-1.92877864-.6784678-3.44926302-2.0354033-4.56087522-1.3566466-1.1116122-3.2449714-1.66727383-5.6641077-1.66727383-2.4194253 0-4.30775013.55566163-5.66439668 1.66727383-1.35693551 1.1116122-2.03540327 2.63209658-2.03540327 4.56087522 0 1.86376365.69493823 3.37586835 2.08452572 4.53631405zm11.94166813 16.5516658c1.471073-1.1116122 2.206754-2.7300525 2.206754-4.855032 0-1.9290676-.7764237-3.4738243-2.3295601-4.6345589-1.5528474-1.1607347-3.6209026-1.8718544-6.2035878-2.1333592-2.5829741.2615048-4.65102939.9726245-6.20387679 2.1333592-1.55313637 1.1607346-2.32956007 2.7054913-2.32956007 4.6345589 0 2.1249795.73568096 3.7434198 2.20704289 4.855032 1.47107297 1.1116122 3.57987096 1.6675628 6.32639397 1.6675628 2.746234 0 4.855032-.5559506 6.3263939-1.6675628z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1509.579895 397.697106)"/><g transform="translate(1565.056846 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m21.1125411 4.69235002c2.2885283 2.9424349 3.4330815 7.12737888 3.4330815 12.55454298 0 5.9178108-1.1852959 10.5194287-3.5555987 13.8051429-2.3703028 3.2860031-5.6805782 4.9287157-9.9311151 4.9287157-1.99437156 0-3.94771143-.3759313-5.86030856-1.1277937-1.91259713-.7521515-3.60472114-1.8146412-5.07579411-3.1877582l1.56931788-3.0895133c1.66727382 1.405769 3.25306216 2.427516 4.75707607 3.064952 1.50372496.6374361 3.02420934.9564431 4.56087522.9564431 3.0077389 0 5.3372989-1.3404651 6.9883912-4.0213951 1.6510924-2.6812191 2.4766385-6.4408204 2.4766385-11.2796709v-.637725c-.7521514 1.8311116-1.97819 3.2776234-3.6781158 4.3404021-1.7002148 1.0624897-3.6454639 1.5938791-5.8360363 1.5938791-2.1252685 0-4.00521365-.4660854-5.63983549-1.3976783-1.63462184-.9318818-2.90978291-2.2396949-3.82519426-3.9234391-.91541134-1.6837443-1.37311702-3.6047212-1.37311702-5.7623527 0-2.1579204.4822669-4.086988 1.44651175-5.78691381.9645338-1.70021476 2.29690808-3.03258905 3.99712284-3.99712285 1.69992581-.96424484 3.62899341-1.44651174 5.78691388-1.44651174 4.2175959 0 7.4706581 1.47107297 9.7591865 4.41379682zm-3.9234392 12.35834218c1.4387099-1.438421 2.1579204-3.3021847 2.1579204-5.590713 0-2.32118037-.7192105-4.20112552-2.1579204-5.63983546-1.438421-1.43842099-3.3183661-2.15792044-5.6395465-2.15792044-2.22322439 0-4.02168405.71111974-5.39480107 2.13335921-1.37311703 1.42223948-2.05967554 3.31027538-2.05967554 5.66439669 0 2.3211803.68655851 4.1930347 2.05967554 5.6152742 1.37311702 1.4222395 3.1877582 2.1333592 5.44363457 2.1333592 2.2888173 0 4.152292-.7192105 5.590713-2.1579204z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1575.139966 397.697106)"/><g stroke="#000"><path d="m1096.073546 379.827207v8.703347" stroke-width="2.540471"/><path d="m1334.698583 379.827107h-238.625356" stroke-width="2.536666"/><path d="m1157.047962 379.827207v8.703347" stroke-width="2.540471"/><path d="m1214.724654 379.827207v8.703347" stroke-width="2.540471"/><path d="m1273.792589 379.827207v8.703347" stroke-width="2.540471"/><path d="m.25679382.11881745v8.70067791h253.66824618v8.70607874" stroke-width="2.537062" transform="translate(1333.854479 371.007868)"/><path d="m1522.192353 379.827363v8.706079" stroke-width="2.538373"/><path d="m1460.272258 379.827363v8.706079" stroke-width="2.538373"/><path d="m1398.172318 379.827363v8.706079" stroke-width="2.538373"/><path d="m461.035492 332.200017v30.871702" stroke-width="2.538347"/><path d="m555.359389 347.854087v15.218407" stroke-width="2.537588"/><path d="m695.541211 347.854373v14.187222" stroke-width="2.538524"/><path d="m790.885848 362.040642v-30.871702" stroke-width="2.538347"/><path d="m887.942518 362.041595v-14.187222" stroke-width="2.538524"/><path d="m.019213 15.299472.406607-15.172668" stroke-width="2.539569" transform="matrix(-1 0 0 1 367.859321 347.727644)"/></g><g transform="translate(728.528993 23.597628)"><path d="m.027562.06972h33.346975v38.281514h-33.346975z" fill="#00a88a"/><path d="m33.3745364 38.3512337h-33.34697449v-38.28151366h33.34697449zm-30.80847438-35.74309116v33.20466866h28.26976908v-33.20466866z" fill="#000"/></g><g fill="#000" transform="translate(771.880716 31.029736)"><path d="m12.5751769 7.68008917v1.60645421h-12.54602874v-1.60645421zm0 5.15096053v1.6066044h-12.54602874v-1.6066044z"/><path d="m26.1286201 17.4720676c-1.3345049-.7649138-2.3587471-1.8486543-3.0727268-3.2512217-.7141299-1.4025673-1.0711197-3.0473348-1.0711197-4.93430252 0-1.86998963.3569898-3.50634324 1.0711197-4.90876034.7139797-1.40256734 1.7382219-2.48210096 3.0727268-3.23860086 1.3345049-.75649991 2.8942319-1.13467473 4.6793313-1.13467473 1.2239222 0 2.3757252.19126601 3.4552588.57364779 1.0795337.38253202 1.9762152.91380981 2.6901948 1.59383335l-1.0709695 2.39706047c-.8159982-.6630455-1.6277894-1.14338913-2.4352235-1.44088065-.8075843-.29749152-1.6703097-.44623728-2.5883264-.44623728-1.7509931 0-3.1068332.56959109-4.06722 1.70862301-.960537 1.13888168-1.4408806 2.77102834-1.4408806 4.89598924 0 2.14193892.4761367 3.78670642 1.4281095 4.93430252.9519729 1.1474458 2.31202 1.7212439 4.0799911 1.7212439.9180167 0 1.7807421-.1487458 2.5883264-.4462373.8074341-.2974915 1.6192253-.7778352 2.4352235-1.4407304l1.0709695 2.3969102c-.7139796.6800236-1.6106611 1.2113013-2.6901948 1.5938334-1.0795336.382532-2.2313366.573798-3.4552588.573798-1.7850994 0-3.3448264-.382532-4.6793313-1.1475961z"/><path d="m41.938792 17.7781233c-.9944932-.5440489-1.7595572-1.3217338-2.295042-2.333205-.5354847-1.0116214-.8032271-2.1973805-.8032271-3.5574276 0-1.3598968.2677424-2.54565597.8032271-3.55727739.5354848-1.01147117 1.3005488-1.78915607 2.295042-2.33320496.9944931-.54404888 2.1462961-.8159982 3.4552588-.8159982 1.2919846 0 2.4310166.27194932 3.4169455.8159982.9860792.54404889 1.7467861 1.32173379 2.2822708 2.33320496.535635 1.01162142.8033774 2.19738059.8033774 3.55727739 0 1.3600471-.2677424 2.5458062-.8033774 3.5574276-.5354847 1.0114712-1.2961916 1.7891561-2.2822708 2.333205-.9859289.5440489-2.1249609.8159982-3.4169455.8159982-1.3089627 0-2.4607657-.2719493-3.4552588-.8159982zm5.9160245-2.7412792c.5694408-.7055657.8543115-1.7552.8543115-3.1493534 0-1.3768749-.2890776-2.42665936-.8670826-3.14920316s-1.3940032-1.08374057-2.4479946-1.08374057c-1.0709695 0-1.8955318.36119677-2.4735368 1.08374057s-.8670826 1.77232826-.8670826 3.14920316c0 1.3941534.2848706 2.4437877.8543115 3.1493534.5695911.7055658 1.3897962 1.0581984 2.4607657 1.0581984 1.0880978 0 1.9167168-.3526326 2.4863079-1.0581984z"/><path d="m66.6356966 10.4850736v7.9050108h-3.1875165v-7.7520581c0-1.0200353-.1954729-1.7637641-.5864189-2.23118638-.3910962-.46757253-.9946433-.7013588-1.8106415-.7013588-.968951 0-1.7509931.31026262-2.3459761.93078786-.594983.62052525-.8924746 1.44073042-.8924746 2.46076572v7.2930497h-3.1621245v-9.23110178c0-1.35989684-.0679122-2.57540513-.2038868-3.64652485h2.9834793l.2295793 2.116547c.4418801-.78204211 1.0412203-1.38543905 1.7977202-1.81049133s1.6108115-.63750329 2.5627843-.63750329c3.0769338 0 4.6154758 1.76797107 4.6154758 5.30406345z"/><path d="m74.0818492 7.90951823v5.76307187c0 1.5129998.7054155 2.2694997 2.1163968 2.2694997.3910962 0 .8161484-.0680625 1.2751568-.2040371v2.5246212c-.5610269.2038869-1.2410505.3059054-2.0400706.3059054-1.4620657 0-2.5841195-.407924-3.3660114-1.2239222-.7820421-.8159982-1.172988-1.9891365-1.172988-3.5191143v-5.91602457h-2.4735368v-2.39706046h2.4735368v-3.13643206l3.1875164-1.07111972v4.20755178h3.4169456v2.39706046z"/><path d="m90.9629905 12.11707h-8.8741119c.0680624 1.3770252.4122812 2.3927033 1.0328064 3.0473349.6205252.6544813 1.542749.981722 2.7666711.981722 1.4111315 0 2.7200942-.4590084 3.9270384-1.3770251l.9180167 2.1930233c-.6119611.4929645-1.364254.8882676-2.2567286 1.1857591-.8924745.2974915-1.7977202.4462373-2.715737.4462373-2.1081331 0-3.7655214-.594983-4.9726158-1.7849491-1.2069441-1.1901163-1.8104913-2.8221128-1.8104913-4.8961395 0-1.3089627.2635354-2.47353681.790456-3.49357213.5270708-1.01988507 1.2665927-1.81469827 2.2185655-2.38413911.9519729-.56959109 2.0315065-.85431151 3.2386009-.85431151 1.7679711 0 3.1661812.57379804 4.1947807 1.72124387 1.0284492 1.14759607 1.5427489 2.72430113 1.5427489 4.73026538zm-7.7392869-3.88872499c-.535635.50137838-.8798538 1.22812913-1.0328065 2.18025229h5.9925009c-.1020185-.96910121-.3951528-1.70005891-.8797034-2.1930234-.4845506-.49311473-1.151803-.73952185-2.0017574-.73952185-.8501045 0-1.5427489.25076432-2.0782336.75229296z"/><path d="m105.651108 10.4850736v7.9050108h-3.187516v-7.7520581c0-1.0200353-.195473-1.7637641-.586569-2.23118638-.390946-.46757253-.994493-.7013588-1.810491-.7013588-.9689514 0-1.7509935.31026262-2.3459765.93078786-.594983.62052525-.8924746 1.44073042-.8924746 2.46076572v7.2930497h-3.1621245v-9.23110178c0-1.35989684-.0679122-2.57540513-.2040371-3.64652485h2.9836296l.2294291 2.116547c.4420303-.78204211 1.0412203-1.38543905 1.7977202-1.81049133.7566501-.42505228 1.6108118-.63750329 2.5627838-.63750329 3.077084 0 4.615626 1.76797107 4.615626 5.30406345z"/><path d="m113.097111 7.90951823v5.76307187c0 1.5129998.705566 2.2694997 2.116547 2.2694997.391096 0 .815998-.0680625 1.275006-.2040371v2.5246212c-.561026.2038869-1.24105.3059054-2.03992.3059054-1.462066 0-2.584119-.407924-3.366162-1.2239222-.781891-.8159982-1.172988-1.9891365-1.172988-3.5191143v-5.91602457h-2.473536v-2.39706046h2.473536v-3.13643206l3.187517-1.07111972v4.20755178h3.417096v2.39706046z"/><path d="m125.923803.23393651h7.879619c1.95488 0 3.476444.47177949 4.564542 1.41533845 1.087947.94340871 1.631996 2.2311864 1.631996 3.86318281s-.548256 2.9241313-1.644767 3.87610416c-1.096512.95197287-2.613869 1.42795927-4.551771 1.42795927h-4.590084v7.5735632h-3.289535zm7.497087 8.03257155c1.139032 0 2.001758-.23378627 2.588176-.70120855.58657-.46757253.879854-1.14323888.879854-2.02729954 0-.90103871-.289078-1.5852692-.867083-2.05269149-.578004-.46757253-1.444937-.70135879-2.600947-.70135879h-4.207552v5.48255837z"/><path d="m154.509583 5.51245777v12.87762663h-3.136582v-2.0654626c-.390946.7139797-.951973 1.2707996-1.683081 1.6703097-.730958.3995101-1.563934.59919-2.498929.59919-1.122054 0-2.116547-.2719493-2.983479-.8159982-.867083-.5440489-1.538542-1.3175268-2.014528-2.3205841-.476137-1.002907-.71413-2.1674811-.71413-3.4934219 0-1.326091.24235-2.50328596.72675-3.53188543.484551-1.02844922 1.160368-1.82746937 2.0273-2.39691021.867083-.56959109 1.853012-.85431151 2.958087-.85431151.934995 0 1.767971.19967991 2.498929.59918999.731108.39951008 1.292135.95633006 1.683081 1.67030971v-1.93805208zm-4.003514 9.48607303c.578005-.7309577.866932-1.7594069.866932-3.0854979 0-1.3600471-.288927-2.40547436-.866932-3.13643206-.578005-.73110795-1.402568-1.09651167-2.473537-1.09651167-1.053992 0-1.874347.37817482-2.460766 1.13467473-.586569.7564999-.879854 1.8062844-.879854 3.1493534 0 1.3259408.293285 2.3459761.879854 3.0599557.586419.7139797 1.415188 1.0709695 2.486158 1.0709695 1.053991 0 1.87014-.3654037 2.448145-1.0965117z"/><path d="m170.421623 5.51245777v12.46970263c0 2.0059643-.552462 3.5275283-1.657388 4.5645416-1.105076 1.0370134-2.728658 1.5555201-4.870597 1.5555201-1.988987 0-3.73998-.4164881-5.25313-1.2496147l.510093-2.4224524c1.563934.8159982 3.119454 1.2239222 4.66656 1.2239222 2.295042 0 3.442488-1.1388817 3.442488-3.4169455v-2.5500132c-.390946.6970016-.960537 1.2622355-1.708473 1.6957017-.748086.4336164-1.589626.6502744-2.524621.6502744-1.121904 0-2.120754-.2677424-2.99625-.8032271-.875497-.5354848-1.55552-1.2919847-2.039921-2.2694997-.48455-.9775151-.72675-2.095362-.72675-3.3532403 0-1.2580286.2422-2.37587548.72675-3.35339054.484401-.97751507 1.164424-1.73401497 2.039921-2.26949971.875496-.53548473 1.874346-.8032271 2.99625-.8032271.952123 0 1.797871.19967991 2.537392.59918999.739522.39951008 1.304756.95633006 1.695702 1.67030971v-1.93805208zm-4.06722 8.97613053c.603548-.6970016.905246-1.6575386.905246-2.8814608 0-1.2240724-.297491-2.18460946-.892474-2.88161106s-1.42811-1.04542727-2.499079-1.04542727c-1.053992 0-1.882761.34842567-2.486308 1.04542727-.603397.6970016-.905246 1.65753866-.905246 2.88161106 0 1.2239222.301849 2.1844592.905246 2.8814608.603547.6970016 1.432316 1.0455775 2.486308 1.0455775 1.053991 0 1.88276-.3485759 2.486307-1.0455775z"/><path d="m185.135284 12.11707h-8.874112c.068062 1.3770252.412281 2.3927033 1.032806 3.0473349.620525.6544813 1.542749.981722 2.766821.981722 1.410982 0 2.719944-.4590084 3.927039-1.3770251l.918016 2.1930233c-.612111.4929645-1.364254.8882676-2.256878 1.1857591-.892475.2974915-1.797721.4462373-2.715737.4462373-2.107983 0-3.765522-.594983-4.972466-1.7849491-1.207094-1.1901163-1.810491-2.8221128-1.810491-4.8961395 0-1.3089627.263385-2.47353681.790456-3.49357213.52692-1.01988507 1.266442-1.81469827 2.218565-2.38413911.951973-.56959109 2.031507-.85431151 3.238451-.85431151 1.767971 0 3.166331.57379804 4.194781 1.72124387 1.028599 1.14759607 1.542749 2.72430113 1.542749 4.73026538zm-7.739287-3.88872499c-.535485.50137838-.879704 1.22812913-1.032807 2.18025229h5.992651c-.102018-.96910121-.395303-1.70005891-.879853-2.1930234-.484401-.49311473-1.151653-.73952185-2.001758-.73952185-.849954 0-1.542749.25076432-2.078233.75229296z"/></g><path d="m367.838539 347.854154h94.040308" stroke="#000" stroke-width="2.538462"/><path d="m461.878846 347.854154h93.484616" stroke="#000" stroke-width="2.538462"/><path d="m.33230769 1.70030769 96.35538461-1.24846154 96.0461537 1.24846154" stroke="#000" stroke-width="2.538462" transform="translate(695.209615 346.153846)"/><path d="m.05446154.45184615h95.96584616l96.7416923 1.24846154" stroke="#000" stroke-width="2.538462" transform="translate(36.132692 346.153846)"/></g></svg>
\ No newline at end of file
index edb03839e32d88c5bdb5a5b400c0d75bd82259fa..431c32c523cd74a34d06a1bc88c8e357c07ba5c6 100644 (file)
@@ -2,21 +2,14 @@
 title: Hugo's Lookup Order
 linktitle: Template Lookup Order
 description: Hugo searches for the layout to use for a given page in a well defined order, starting from the most specific.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-07-05
 categories: [templates,fundamentals]
 keywords: [templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 15
   quicklinks:
 weight: 15
-sections_weight: 15
-draft: false
-aliases: [/templates/lookup/]
-toc: true
 ---
 
 ## Hugo Layouts Lookup Rules
index bdf89c2e5c5d8e87b06e809d90820f2f98d84a7b..b858ebd21d50a89cee7a0f564004ff494c07de8e 100644 (file)
 ---
 title: Menu Templates
-linktitle: Menu Templates
-description: Menus are a powerful but simple feature for content management but can be easily manipulated in your templates to meet your design needs.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: Use menu variables and methods in your templates to render a menu.
 categories: [templates]
 keywords: [lists,sections,menus]
 menu:
   docs:
-    title: "how to use menus in templates"
-    parent: "templates"
+    parent: templates
     weight: 130
+toc: true
 weight: 130
-sections_weight: 130
-draft: false
 aliases: [/templates/menus/]
-toc: false
 ---
 
-Hugo makes no assumptions about how your rendered HTML will be
-structured. Instead, it provides all the functions you will need to
-build your menu however you want.
+## Overview
 
-The following is an example:
+After [defining menu entries], use [menu variables and methods] to render a menu.
 
-{{< code file="layouts/partials/sidebar.html" download="sidebar.html" >}}
-<!-- sidebar start -->
-<aside>
-    <ul>
-        {{ $currentPage := . }}
-        {{ range .Site.Menus.main }}
-            {{ if .HasChildren }}
-                <li class="{{ if $currentPage.HasMenuCurrent "main" . }}active{{ end }}">
-                    <a href="#">
-                        {{ .Pre }}
-                        <span>{{ .Name }}</span>
-                    </a>
-                </li>
-                <ul class="sub-menu">
-                    {{ range .Children }}
-                        <li class="{{ if $currentPage.IsMenuCurrent "main" . }}active{{ end }}">
-                            <a href="{{ .URL }}">{{ .Name }}</a>
-                        </li>
-                    {{ end }}
-                </ul>
-            {{ else }}
-                <li>
-                    <a href="{{ .URL }}">
-                        {{ .Pre }}
-                        <span>{{ .Name }}</span>
-                    </a>
-                </li>
-            {{ end }}
-        {{ end }}
-        <li>
-            <a href="#" target="_blank">Hardcoded Link 1</a>
-        </li>
-        <li>
-            <a href="#" target="_blank">Hardcoded Link 2</a>
-        </li>
-    </ul>
-</aside>
-{{< /code >}}
+Three factors determine how to render a menu:
 
-{{% note "`absLangURL` and `relLangURL`" %}}
-Use the [`absLangURL`](/functions/abslangurl) or [`relLangURL`](/functions/rellangurl) functions if your theme makes use of the [multilingual feature](/content-management/multilingual/). In contrast to `absURL` and `relURL`, these two functions add the correct language prefix to the url.
-{{% /note %}}
+1. The method used to define the menu entries: [automatic], [in front matter], or [in site configuration]
+1. The menu structure: flat or nested
+1. The method used to [localize the menu entries]: site configuration or translation tables
 
-## Section Menu for Lazy Bloggers
+The example below handles every combination.
 
-To enable this menu, configure `sectionPagesMenu` in your site `config`:
+## Example
 
-```yml
-sectionPagesMenu = "main"
-```
+This partial template recursively "walks" a menu structure, rendering a localized, accessible nested list.
 
-The menu name can be anything, but take a note of what it is.
+{{< code file="layouts/partials/menu.html" >}}
+{{- $page := .page }}
+{{- $menuID := .menuID }}
 
-This will create a menu with all the sections as menu items and all the sections' pages as "shadow-members". Ensure that all first level directories that you would like to show up on this menu are [Branch Bundles](https://gohugo.io/content-management/sections/). Leaf Bundles do not form sections.
+{{- with index site.Menus $menuID }}
+  <nav>
+    <ul>
+      {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
+    </ul>
+  </nav>
+{{- end }}
+
+{{- define "partials/inline/menu/walk.html" }}
+  {{- $page := .page }}
+  {{- range .menuEntries }}
+    {{- $attrs := dict "href" .URL }}
+    {{- if $page.IsMenuCurrent .Menu . }}
+      {{- $attrs = merge $attrs (dict "class" "active" "aria-current" "page") }}
+    {{- else if $page.HasMenuCurrent .Menu .}}
+      {{- $attrs = merge $attrs (dict "class" "ancestor" "aria-current" "true") }}
+    {{- end }}
+    <li>
+      <a
+        {{- range $k, $v := $attrs }}
+          {{- with $v }}
+            {{- printf " %s=%q" $k $v | safeHTMLAttr }}
+          {{- end }}
+        {{- end -}}
+      >{{ or (T .Identifier) .Name | safeHTML }}</a>
+      {{- with .Children }}
+        <ul>
+          {{- partial "inline/menu/walk.html" (dict "page" $page "menuEntries" .) }}
+        </ul>
+      {{- end }}
+    </li>
+  {{- end }}
+{{- end }}
+{{< /code >}}
 
-The _shadow_ implies that the pages isn't represented by a menu-item themselves, but this enables you to create a top-level menu like this:
+Call the partial above, passing a menu ID and the current page in context.
 
-```go-html-template
-<nav class="sidebar-nav">
-    {{ $currentPage := . }}
-    {{ range .Site.Menus.main }}
-    <a class="sidebar-nav-item{{if or ($currentPage.IsMenuCurrent "main" .) ($currentPage.HasMenuCurrent "main" .) }} active{{end}}" href="{{ .URL }}" title="{{ .Title }}">{{ .Name }}</a>
-    {{ end }}
-</nav>
-```
+{{< code file="layouts/_default/single.html" >}}
+{{ partial "menu.html" (dict "menuID" "main" "page" .) }}
+{{ partial "menu.html" (dict "menuID" "footer" "page" .) }}
+{{< /code >}}
 
-In the above, the menu item is marked as active if on the current section's list page or on a page in that section.
+## Page references
 
-## Site Config menus
+Regardless of how you [define menu entries], an entry associated with a page has access to page variables and methods.
 
-The above is all that's needed. But if you want custom menu items, e.g. changing weight, name, or link title attribute, you can define them manually in the site config file:
+This simplistic example renders a page parameter named `version` next to each entry's `name`. Code defensively using `with` or `if` to handle entries where (a) the entry points to an external resource, or (b) the `version` parameter is not defined.
 
-{{< code-toggle file="config" >}}
-[[menu.main]]
-    name = "This is the blog section"
-    title = "blog section"
-    weight = -110
-    identifier = "blog"
-    url = "/blog/"
-{{</ code-toggle >}}
+{{< code file="layouts/_default/single.html" >}}
+{{- range site.Menus.main }}
+  <a href="{{ .URL }}">
+    {{ .Name }}
+    {{- with .Page }}
+      {{- with .Params.version -}}
+        ({{ . }})
+      {{- end }}
+    {{- end }}
+  </a>
+{{- end }}
+{{< /code >}}
 
-{{% note %}}
-The `identifier` *must* match the section name.
-{{% /note %}}
+## Menu entry parameters
 
-## Menu Entries from the Page's front matter
+When you define menu entries [in site configuration] or [in front matter], you can include a `params` key as shown in these examples:
 
-It's also possible to create menu entries from the page (i.e. the `.md`-file).
+- [Menu entry defined in site configuration]
+- [Menu entry defined in front matter]
 
-Here is a `yaml` example:
+This simplistic example renders a `class` attribute for each anchor element. Code defensively using `with` or `if` to handle entries where `params.class` is not defined.
 
-```yml
----
-title: Menu Templates
-linktitle: Menu Templates
-menu:
-  docs:
-    title: "how to use menus in templates"
-    parent: "templates"
-    weight: 130
----
-...
-```
-
-{{% note %}}
-You can define more than one menu. It also doesn't have to be a complex value,
-`menu` can also be a string, an array of strings, or an array of complex values
-like in the example above.
-{{% /note %}}
-
-### Using .Page in Menus
-
-If you use the front matter method of defining menu entries, you'll get access to the `.Page` variable.
-This allows to use every variable that's reachable from the [page variable](/variables/page/).
-
-This variable is only set when the menu entry is defined in the page's front matter.
-Menu entries from the site config don't know anything about `.Page`.
-
-That's why you have to use the go template's `with` keyword or something similar in your templating language.
-
-Here's an example:
-
-```go-html-template
-<nav class="sidebar-nav">
-  {{ range .Site.Menus.main }}
-    <a href="{{ .URL }}" title="{{ .Title }}">
-      {{- .Name -}}
-      {{- with .Page -}}
-        <span class="date">
-        {{- dateFormat " (2006-01-02)" .Date -}}
-        </span>
-      {{- end -}}
-    </a>
-  {{ end }}
-</nav>
-```
-
-## Using .Params in Menus
-
-User-defined content on menu items are accessible via `.Params`.
-
-Here's an example:
-
-```go-html-template
-<nav class="sidebar-nav">
-  {{ range .Site.Menus.main }}
-    <a href="{{ .URL }}" title="{{ .Title }}" class="{{ with .Params.class }}{{ . }}{{ end }}">
-      {{- .Name -}}
-    </a>
-  {{ end }}
-</nav>
-```
-
-{{% note %}}
-With Menu-level .Params they can easily exist on one menu item but not another. It's recommended to access them gracefully using the [with function](/functions/with).
-{{% /note %}}
+{{< code file="layouts/partials/menu.html" >}}
+{{- range site.Menus.main }}
+  <a {{ with .Params.class -}} class="{{ . }}" {{ end -}} href="{{ .URL }}">
+    {{ .Name }}
+  </a>
+{{- end }}
+{{< /code >}}
+
+## Localize
+
+Hugo provides two methods to localize your menu entries. See [multilingual].
+
+[automatic]: /content-management/menus/#define-automatically
+[define menu entries]: /content-management/menus/
+[defining menu entries]: /content-management/menus/
+[in front matter]: /content-management/menus/#define-in-front-matter
+[in site configuration]: /content-management/menus/#define-in-site-configuration
+[localize the menu entries]: /content-management/multilingual/#menus
+[menu entry defined in front matter]: /content-management/menus/#example-front-matter
+[menu entry defined in site configuration]: /content-management/menus/#example-site-configuration
+[menu variables and methods]: /variables/menus/
+[multilingual]: /content-management/multilingual/#menus
index 0498c7e64fff137640c89ffeb51cf9f811a15a6c..f8448b0973843420c135ebc59d76f1028b7098a5 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Custom Output Formats
-linktitle: Custom Output Formats
 description: Hugo can output content in multiple formats, including calendar events, e-book formats, Google AMP, and JSON search indexes, or any custom text format.
-date: 2017-03-22
-publishdate: 2017-03-22
-lastmod: 2019-12-11
 categories: [templates]
 keywords: ["amp", "outputs", "rss"]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 18
 weight: 18
-sections_weight: 18
-draft: false
 aliases: [/templates/outputs/,/extras/output-formats/,/content-management/custom-outputs/]
 toc: true
 ---
@@ -49,16 +43,16 @@ The above example adds one new media type, `text/enriched`, and changes the suff
 
 **Note:** these media types are configured for **your output formats**. If you want to redefine one of Hugo's default output formats (e.g. `HTML`), you also need to redefine the media type. So, if you want to change the suffix of the `HTML` output format from `html` (default) to `htm`:
 
-```toml
+{{< code-toggle file="config" >}}
 [mediaTypes]
-[mediaTypes."text/html"]
-suffixes = ["htm"]
+  [mediaTypes."text/html"]
+    suffixes = ["htm"]
 
 # Redefine HTML to update its media type.
 [outputFormats]
-[outputFormats.HTML]
-mediaType = "text/html"
-```
+  [outputFormats.HTML]
+    mediaType = "text/html"
+{{</ code-toggle >}}
 
 **Note** that for the above to work, you also need to add an `outputs` definition in your site config.
 
@@ -168,17 +162,15 @@ Note that in the above examples, the _output formats_ for `section`,
   * These names are case insensitive.
 * These can be overridden per `Page` in the front matter of content files.
 
-The following is an example of `YAML` front matter in a content file that defines output formats for the rendered `Page`:
+The following is an example of front matter in a content file that defines output formats for the rendered `Page`:
 
-```yaml
----
-date: "2016-03-19"
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 outputs:
 - html
 - amp
 - json
----
-```
+{{< /code-toggle >}}
 
 ## List Output formats
 
@@ -251,7 +243,7 @@ The partial below is a plain text template (Output Format is `CSV`, and since th
 
 [base]: /templates/base/
 [config]: /getting-started/configuration/
-[lookup order]: /templates/lookup/
+[lookup order]: /templates/lookup-order/
 [media type]: https://en.wikipedia.org/wiki/Media_type
 [partials]: /templates/partials/
 [page_kinds]: /templates/section-templates/#page-kinds
index bdb10d5bba2f407603f8b73088b0a5c7befbb8e7..5de1f661d01bcc57b9ecda3278e11ff997088102 100644 (file)
@@ -2,16 +2,13 @@
 title: Pagination
 linktitle: Pagination
 description: Hugo supports pagination for your homepage, section pages, and taxonomies.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [templates]
 keywords: [lists,sections,pagination]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 140
 weight: 140
-sections_weight: 140
 aliases: [/extras/pagination,/doc/pagination/]
 toc: true
 ---
@@ -34,9 +31,9 @@ Setting `paginate` to a positive value will split the list pages for the homepag
 
 ## List Paginator Pages
 
-{{% warning %}}
+{{% note %}}
 `.Paginator` is provided to help you build a pager menu. This feature is currently only supported on homepage and list pages (i.e., taxonomies and section lists).
-{{% /warning %}}
+{{% /note %}}
 
 There are two ways to configure and use a `.Paginator`:
 
@@ -59,7 +56,7 @@ The global page size setting (`Paginate`) can be overridden by providing a posit
 It is also possible to use the `GroupBy` functions in combination with pagination:
 
 ```go-html-template
-{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups  }}
+{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
 ```
 
 ## Build the navigation
@@ -72,7 +69,7 @@ The easiest way to add this to your pages is to include the built-in template (w
 {{ template "_internal/pagination.html" . }}
 ```
 
-{{% note "When to Create `.Paginator`" %}}
+{{% note %}}
 If you use any filters or ordering functions to create your `.Paginator` *and* you want the navigation buttons to be shown before the page listing, you must create the `.Paginator` before it's used.
 {{% /note %}}
 
index 1899f87d5e1cc78dc421b1f0e944a3b19a2ed903..57a7acf05a1d44e5a1c8dfc2eabbcdbecb4fe06e 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Partial Templates
-linktitle: Partial Templates
 description: Partials are smaller, context-aware components in your list and page templates that can be used economically to keep your templating DRY.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [lists,sections,partials]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 90
 weight: 90
-sections_weight: 90
-draft: false
 aliases: [/templates/partial/,/layout/chrome/,/extras/analytics/]
 toc: true
 ---
@@ -160,7 +154,7 @@ Note that the variant parameters are not made available to the underlying partia
 
 The following `header.html` partial template is used for [spf13.com](https://spf13.com/):
 
-{{< code file="layouts/partials/header.html" download="header.html" >}}
+{{< code file="layouts/partials/header.html" >}}
 <!DOCTYPE html>
 <html class="no-js" lang="en-US" prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb#">
 <head>
@@ -185,7 +179,7 @@ The `header.html` example partial was built before the introduction of block tem
 
 The following `footer.html` partial template is used for [spf13.com](https://spf13.com/):
 
-{{< code file="layouts/partials/footer.html" download="footer.html" >}}
+{{< code file="layouts/partials/footer.html" >}}
 <footer>
   <div>
     <p>
@@ -197,10 +191,10 @@ The following `footer.html` partial template is used for [spf13.com](https://spf
 </footer>
 {{< /code >}}
 
-[context]: /templates/introduction/ "The most easily overlooked concept to understand about Go templating is how the dot always refers to the current context."
-[customize]: /themes/customizing/ "Hugo provides easy means to customize themes as long as users are familiar with Hugo's template lookup order."
-[listtemps]: /templates/lists/ "To effectively leverage Hugo's system, see how Hugo handles list pages, where content for sections, taxonomies, and the homepage are listed and ordered."
-[lookup order]: /templates/lookup-order/ "To keep your templating dry, read the documentation on Hugo's lookup order."
-[partialcached]: /functions/partialcached/ "Use the partial cached function to improve build times in cases where Hugo can cache partials that don't need to be rendered with every page."
-[singletemps]: /templates/single-page-templates/ "The most common form of template in Hugo is the single content template. Read the docs on how to create templates for individual pages."
+[context]: /templates/introduction/
+[customize]: /hugo-modules/theme-components/
+[listtemps]: /templates/lists/
+[lookup order]: /templates/lookup-order/
+[partialcached]: /functions/partialcached/
+[singletemps]: /templates/single-page-templates/
 [themes]: /themes/
index 69b34cc9b97e45e93bb1103bdd96a486a306c002..395cb92407ec73c806de869b1e3ab66fd44fdb54 100644 (file)
@@ -2,14 +2,12 @@
 title: "Markdown Render Hooks"
 linkTitle: "Render Hooks"
 description: "Render Hooks allow custom templates to override markdown rendering functionality."
-date: 2017-03-11
 categories: [templates]
 keywords: [markdown]
 toc: true
 menu:
   docs:
-    title: "Markdown Render Hooks"
-    parent: "templates"
+    parent: templates
     weight: 20
 ---
 
@@ -49,6 +47,8 @@ Some use cases for the above:
 
 ## Render Hooks for Headings, Links and Images
 
+### Context passed to `render-link` and `render-image`
+
 The `render-link` and `render-image` templates will receive this context:
 
 Page
@@ -66,6 +66,8 @@ Text
 PlainText
 : The plain variant of the above.
 
+### Context passed to `render-heading`
+
 The `render-heading` template will receive this context:
 
 Page
@@ -104,7 +106,7 @@ Ordinal  {{< new-in "0.108.0" >}}
 Here is a code example for how the render-link.html template could look:
 
 {{< code file="layouts/_default/_markup/render-link.html" >}}
-<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
+<a href="{{ .Destination | safeURL }}"{{ with .Title }} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} target="_blank" rel="noopener"{{ end }}>{{ .Text | safeHTML }}</a>
 {{< /code >}}
 
 ### Image Markdown example
@@ -117,7 +119,7 @@ Here is a code example for how the render-image.html template could look:
 
 {{< code file="layouts/_default/_markup/render-image.html" >}}
 <p class="md__image">
-  <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title}} title="{{ . }}"{{ end }} />
+  <img src="{{ .Destination | safeURL }}" alt="{{ .Text }}" {{ with .Title }} title="{{ . }}"{{ end }} />
 </p>
 {{< /code >}}
 
index 52a77314b7cf5b9d6ba2287dfc3e6aa6f2608c40..6554d40477b25e89f4c759eb5420ea7bc17d72e0 100644 (file)
@@ -2,20 +2,14 @@
 title: Robots.txt File
 linktitle: Robots.txt
 description: Hugo can generate a customized robots.txt in the same way as any other template.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [robots,search engines]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 165
 weight: 165
-sections_weight: 165
-draft: false
 aliases: [/extras/robots-txt/]
-toc: false
 ---
 
 To generate a robots.txt file from a template, change the [site configuration][config]:
@@ -41,7 +35,7 @@ You may overwrite the internal template with a custom template. Hugo selects the
 
 ## Robots.txt Template Example
 
-{{< code file="layouts/robots.txt" download="robots.txt" >}}
+{{< code file="layouts/robots.txt" >}}
 User-agent: *
 {{ range .Pages }}
 Disallow: {{ .RelPermalink }}
index 28ccafa56e2ad050e6d0458b350226fca82a334e..af2ee2c12a7e828fdbf5cbabe95ed070b2042ae5 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: RSS Templates
-linktitle: RSS Templates
 description: Hugo ships with its own RSS 2.0 template that requires almost no configuration, or you can create your own RSS templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 keywords: [rss, xml, templates]
 categories: [templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 150
 weight: 150
-sections_weight: 150
-draft: false
 toc: true
 ---
 
@@ -21,7 +15,7 @@ toc: true
 
 See [Template Lookup Order](/templates/lookup-order/) for the complete reference.
 
-{{% note "Hugo Ships with an RSS Template" %}}
+{{% note %}}
 Hugo ships with its own [RSS 2.0 template](#the-embedded-rssxml). The embedded template will be sufficient for most use cases.
 {{% /note %}}
 
index 3cb37b111c63085dc58761f04cfd11ff61a1e502..fa27bf4e85bd7cd4870d5548cb912434dd69317f 100644 (file)
@@ -2,18 +2,13 @@
 title: Section Page Templates
 linktitle: Section Templates
 description: Templates used for section pages are **lists** and therefore have all the variables and methods available to list pages.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [lists,sections,templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 40
 weight: 40
-sections_weight: 40
-draft: false
 aliases: [/templates/sections/]
 toc: true
 ---
@@ -48,13 +43,13 @@ Examples:
 
 ## Example: Creating a Default Section Template
 
-{{< code file="layouts/_default/section.html" download="section.html" >}}
+{{< code file="layouts/_default/section.html" >}}
 {{ define "main" }}
   <main>
       {{ .Content }}
           <ul class="contents">
           {{ range .Paginator.Pages }}
-              <li>{{.Title}}
+              <li>{{ .Title }}
                   <div>
                     {{ partial "summary.html" . }}
                   </div>
index 1c9314bb9f34b31f4f0c03d692d06e36b79317fe..80ef9f365790fa2f3e7fdfa56195e40425978b82 100644 (file)
@@ -2,19 +2,13 @@
 title: Create Your Own Shortcodes
 linktitle: Shortcode Templates
 description: You can extend Hugo's built-in shortcodes by creating your own using the same templating syntax as that for single and list pages.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [shortcodes,templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 100
 weight: 100
-sections_weight: 100
-draft: false
-aliases: []
 toc: true
 ---
 
@@ -32,7 +26,7 @@ Hugo's built-in shortcodes cover many common, but not all, use cases. Luckily, H
 
 ### File Location
 
-To create a shortcode, place an HTML template in the `layouts/shortcodes` directory of your [source organization]. Consider the file name carefully since the shortcode name will mirror that of the file but without the `.html` extension. For example, `layouts/shortcodes/myshortcode.html` will be called with either `{{</* myshortcode /*/>}}` or `{{%/* myshortcode /*/%}}` depending on the type of parameters you choose.
+To create a shortcode, place an HTML template in the `layouts/shortcodes` directory of your [source organization]. Consider the file name carefully since the shortcode name will mirror that of the file but without the `.html` extension. For example, `layouts/shortcodes/myshortcode.html` will be called with either `{{</* myshortcode /*/>}}` or `{{%/* myshortcode /*/%}}`.
 
 You can organize your shortcodes in subfolders, e.g. in `layouts/shortcodes/boxes`. These shortcodes would then be accessible with their relative path, e.g:
 
@@ -102,16 +96,16 @@ most helpful when the condition depends on either of the values, or both:
 
 If a closing shortcode is used, the `.Inner` variable will be populated with the content between the opening and closing shortcodes. If a closing shortcode is required, you can check the length of `.Inner` as an indicator of its existence.
 
-A shortcode with content declared via the `.Inner` variable can also be declared without the content and without the closing by using the self-closing syntax:
+A shortcode with content declared via the `.Inner` variable can also be declared without the content and without the closing tag by using the self-closing syntax:
 
 ```go-html-template
 {{</* innershortcode /*/>}}
 ```
 
-{{% warning %}}
+{{% note %}}
 Any shortcode that refers to `.Inner` must be closed or self-closed.
 
-{{% /warning %}}
+{{% /note %}}
 
 #### `.Params`
 
@@ -148,9 +142,9 @@ You could then include the following as part of your shortcode templating:
 
 See the [example Vimeo shortcode][vimeoexample] below for `.IsNamedParams` in action.
 
-{{% warning %}}
+{{% note %}}
 While you can create shortcode templates that accept both positional and named parameters, you *cannot* declare shortcodes in content with a mix of parameter types. Therefore, a shortcode declared like `{{</* image src="images/my-image.jpg" "This is my alt text" */>}}` will return an error.
-{{% /warning %}}
+{{% /note %}}
 
 You can also use the variable `.Page` to access all the normal [page variables][pagevars].
 
@@ -193,7 +187,7 @@ Would load the template at `/layouts/shortcodes/youtube.html`:
 </div>
 {{< /code >}}
 
-{{< code file="youtube-embed.html" copy="false" >}}
+{{< code file="youtube-embed.html" copy=false >}}
 <div class="embed video-player">
     <iframe class="youtube-player" type="text/html"
         width="640" height="385"
@@ -215,33 +209,33 @@ You have created the shortcode at `/layouts/shortcodes/img.html`, which loads th
 
 {{< code file="/layouts/shortcodes/img.html" >}}
 <!-- image -->
-<figure {{ with .Get "class" }}class="{{.}}"{{ end }}>
-    {{ with .Get "link" }}<a href="{{ . }}">{{ end }}
-        <img src="{{ .Get "src" }}" {{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" }}{{ end }}"{{ end }} />
+<figure {{ with .Get "class" }}class="{{ . }}"{{ end }}>
+  {{ with .Get "link" }}<a href="{{ . }}">{{ end }}
+    <img src="{{ .Get "src" }}" {{ if or (.Get "alt") (.Get "caption") }}alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" }}{{ end }}"{{ end }} />
     {{ if .Get "link" }}</a>{{ end }}
     {{ if or (or (.Get "title") (.Get "caption")) (.Get "attr") }}
-    <figcaption>{{ if isset .Params "title" }}
+      <figcaption>{{ if isset .Params "title" }}
         <h4>{{ .Get "title" }}</h4>{{ end }}
         {{ if or (.Get "caption") (.Get "attr") }}<p>
         {{ .Get "caption" }}
         {{ with .Get "attrlink" }}<a href="{{ . }}"> {{ end }}
-            {{ .Get "attr" }}
+          {{ .Get "attr" }}
         {{ if .Get "attrlink" }}</a> {{ end }}
         </p> {{ end }}
-    </figcaption>
-    {{ end }}
+      </figcaption>
+  {{ end }}
 </figure>
 <!-- image -->
 {{< /code >}}
 
 Would be rendered as:
 
-{{< code file="img-output.html" copy="false" >}}
+{{< code file="img-output.html" copy=false >}}
 <figure>
-    <img src="/media/spf13.jpg"  />
-    <figcaption>
-        <h4>Steve Francia</h4>
-    </figcaption>
+  <img src="/media/spf13.jpg"  />
+  <figcaption>
+      <h4>Steve Francia</h4>
+  </figcaption>
 </figure>
 {{< /code >}}
 
@@ -268,7 +262,7 @@ Would load the template found at `/layouts/shortcodes/vimeo.html`:
 
 Would be rendered as:
 
-{{< code file="vimeo-iframes.html" copy="false" >}}
+{{< code file="vimeo-iframes.html" copy=false >}}
 <div class="vimeo-container">
   <iframe src="https://player.vimeo.com/video/49718712" allowfullscreen></iframe>
 </div>
@@ -297,7 +291,7 @@ The template for the `highlight` shortcode uses the following code, which is alr
 
 The rendered output of the HTML example code block will be as follows:
 
-{{< code file="syntax-highlighted.html" copy="false" >}}
+{{< code file="syntax-highlighted.html" copy=false >}}
 <div class="highlight" style="background: #272822"><pre style="line-height: 125%"><span style="color: #f92672">&lt;html&gt;</span>
     <span style="color: #f92672">&lt;body&gt;</span> This HTML <span style="color: #f92672">&lt;/body&gt;</span>
 <span style="color: #f92672">&lt;/html&gt;</span>
@@ -321,9 +315,9 @@ You also have an `img` shortcode with a single named `src` parameter that you wa
 {{< code file="layouts/shortcodes/img.html" >}}
 {{- $src := .Get "src" -}}
 {{- with .Parent -}}
-  <img src="{{$src}}" class="{{ .Get "class" }}-image">
+  <img src="{{ $src }}" class="{{ .Get "class" }}-image">
 {{- else -}}
-  <img src="{{$src}}">
+  <img src="{{ $src }}">
 {{- end -}}
 {{< /code >}}
 
index 925f97b03f3b320abe97a7d870ee393d63c84023..559f2fb17089b06c93679e0e3ccb03c6d33bf837 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Single Page Templates
-linktitle:
 description: The primary view of content in Hugo is the single view. Hugo will render every Markdown file provided with a corresponding single template.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-04-06
 categories: [templates]
 keywords: [page, templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 60
 weight: 60
-sections_weight: 60
-draft: false
 aliases: [/layout/content/]
 toc: true
 ---
@@ -30,46 +24,46 @@ Content pages are of the type `page` and will therefore have all the [page varia
 
 This single page template makes use of Hugo [base templates], the [`.Format` function] for dates, the [`.WordCount` page variable][pagevars], and ranges through the single content's specific [taxonomies][pagetaxonomy]. [`with`] is also used to check whether the taxonomies are set in the front matter.
 
-{{< code file="layouts/posts/single.html" download="single.html" >}}
+{{< code file="layouts/posts/single.html" >}}
 {{ define "main" }}
 
 <section id="main">
   <h1 id="title">{{ .Title }}</h1>
   <div>
-        <article id="content">
-           {{ .Content }}
-        </article>
+    <article id="content">
+      {{ .Content }}
+    </article>
   </div>
 </section>
 <aside id="meta">
-    <div>
-    <section>
-      <h4 id="date"> {{ .Date.Format "Mon Jan 2, 2006" }} </h4>
-      <h5 id="wordcount"> {{ .WordCount }} Words </h5>
-    </section>
-      {{ with .GetTerms "topics" }}
-        <ul id="topics">
-          {{ range . }}
-            <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
-          {{ end }}
-        </ul>
-      {{ end }}
-      {{ with .GetTerms "tags" }}
-        <ul id="tags">
-          {{ range . }}
-            <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
-          {{ end }}
-        </ul>
-      {{ end }}
-    </div>
-    <div>
-        {{ with .PrevInSection }}
-          <a class="previous" href="{{.Permalink}}"> {{.Title}}</a>
+  <div>
+  <section>
+    <h4 id="date"> {{ .Date.Format "Mon Jan 2, 2006" }} </h4>
+    <h5 id="wordcount"> {{ .WordCount }} Words </h5>
+  </section>
+    {{ with .GetTerms "topics" }}
+      <ul id="topics">
+        {{ range . }}
+          <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
         {{ end }}
-        {{ with .NextInSection }}
-          <a class="next" href="{{.Permalink}}"> {{.Title}}</a>
+      </ul>
+    {{ end }}
+    {{ with .GetTerms "tags" }}
+      <ul id="tags">
+        {{ range . }}
+          <li><a href="{{ .RelPermalink }}">{{ .LinkTitle }}</a></li>
         {{ end }}
-    </div>
+      </ul>
+    {{ end }}
+  </div>
+  <div>
+    {{ with .PrevInSection }}
+      <a class="previous" href="{{ .Permalink }}"> {{ .Title }}</a>
+    {{ end }}
+    {{ with .NextInSection }}
+      <a class="next" href="{{ .Permalink }}"> {{ .Title }}</a>
+    {{ end }}
+  </div>
 </aside>
 {{ end }}
 {{< /code >}}
index 9fc817020dd4d53d578c1ef959f3ff093b7960e9..d0738a36286aece46796dd70fbfa95bc5061f527 100644 (file)
@@ -1,16 +1,13 @@
 ---
 title: Sitemap Templates
 description: Hugo provides built-in sitemap templates.
-date: 2017-02-01
 categories: [templates]
 keywords: [sitemap, xml, templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 160
 weight: 160
-sections_weight: 160
-draft: false
 aliases: [/layout/sitemap/,/templates/sitemap/]
 toc: true
 ---
@@ -79,7 +76,7 @@ You may disable sitemap generation in your site configuration:
 disableKinds = ['sitemap']
 {{</ code-toggle >}}
 
-[`publishDir`]: {{< relref "getting-started/configuration#publishdir" >}}
+[`publishDir`]: /getting-started/configuration#publishdir
 [change frequency]: <https://www.sitemaps.org/protocol.html#changefreqdef>
 [priority]: <https://www.sitemaps.org/protocol.html#priority>
 [sitemap protocol]: <https://www.sitemaps.org/protocol.html>
index e9fc80525272ac950c66bc6e709d6142752e64e7..e343df471d8149090dcbfe6916f2a6f05b39d88a 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Taxonomy Templates
-# linktitle:
 description: Taxonomy templating includes taxonomy list pages, taxonomy terms pages, and using taxonomies in your single page templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [taxonomies,metadata,front matter,terms,templates]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 50
 weight: 50
-sections_weight: 50
-draft: false
 aliases: [/taxonomies/displaying/,/templates/terms/,/indexes/displaying/,/taxonomies/templates/,/indexes/ordering/, /templates/taxonomies/, /templates/taxonomy/]
 toc: true
 ---
@@ -150,16 +144,14 @@ Weights of zero are thus treated specially: if two pages have unequal weights, a
 
 Content can be assigned weight for each taxonomy that it's assigned to.
 
-```txt
-+++
+
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
 tags = [ "a", "b", "c" ]
 tags_weight = 22
 categories = ["d"]
-title = "foo"
+title = "Example"
 categories_weight = 44
-+++
-Front Matter with weighted tags and categories
-```
+{{< /code-toggle >}}
 
 The convention is `taxonomyname_weight`.
 
@@ -177,16 +169,16 @@ There are two different templates that the use of taxonomies will require you to
 
 Both templates are covered in detail in the templates section.
 
-A [list template](/templates/list/) is any template that will be used to render multiple pieces of content in a single html page. This template will be used to generate all the automatically created taxonomy pages.
+A [list template](/templates/lists/) is any template that will be used to render multiple pieces of content in a single html page. This template will be used to generate all the automatically created taxonomy pages.
 
-A [taxonomy terms template](/templates/terms/) is a template used to
+A [taxonomy template](/templates/taxonomy-templates/) is a template used to
 generate the list of terms for a given template.
 
 <!-- Begin /taxonomies/displaying/ -->
 
 There are four common ways you can display the data in your
 taxonomies in addition to the automatic taxonomy pages created by hugo
-using the [list templates](/templates/list/):
+using the [list templates](/templates/lists/):
 
 1. For a given piece of content, you can list the terms attached
 2. For a given piece of content, you can list other content with the same
@@ -258,7 +250,7 @@ This would be very useful in a sidebar as “featured content”. You could even
         <li>{{ $key }}</li>
         <ul>
             {{ range $taxonomy.Pages }}
-            <li hugo-nav="{{ .RelPermalink}}"><a href="{{ .Permalink}}">{{ .LinkTitle }}</a></li>
+            <li hugo-nav="{{ .RelPermalink }}"><a href="{{ .Permalink }}">{{ .LinkTitle }}</a></li>
             {{ end }}
         </ul>
         {{ end }}
@@ -288,7 +280,7 @@ The following example displays all terms in a site's tags taxonomy:
 
 This example will list all taxonomies and their terms, as well as all the content assigned to each of the terms.
 
-{{< code file="layouts/partials/all-taxonomies.html" download="all-taxonomies.html" download="all-taxonomies.html" >}}
+{{< code file="layouts/partials/all-taxonomies.html" >}}
 <section>
     <ul id="all-taxonomies">
         {{ range $taxonomy_term, $taxonomy := .Site.Taxonomies }}
@@ -299,8 +291,8 @@ This example will list all taxonomies and their terms, as well as all the conten
                             <li>{{ $key }}</li>
                             <ul>
                                 {{ range $value.Pages }}
-                                    <li hugo-nav="{{ .RelPermalink}}">
-                                        <a href="{{ .Permalink}}">{{ .LinkTitle }}</a>
+                                    <li hugo-nav="{{ .RelPermalink }}">
+                                        <a href="{{ .Permalink }}">{{ .LinkTitle }}</a>
                                     </li>
                                 {{ end }}
                             </ul>
@@ -315,14 +307,14 @@ This example will list all taxonomies and their terms, as well as all the conten
 
 ## `.Site.GetPage` for Taxonomies
 
-Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to get all the pages associated with a particular taxonomy term using a terse syntax. The following ranges over the full list of tags on your site and links to each of the individual taxonomy pages for each term without having to use the more fragile URL construction of the ["List All Site Tags" example above]({{< relref "#example-list-all-site-tags" >}}):
+Because taxonomies are lists, the [`.GetPage` function][getpage] can be used to get all the pages associated with a particular taxonomy term using a terse syntax. The following ranges over the full list of tags on your site and links to each of the individual taxonomy pages for each term without having to use the more fragile URL construction of the ["List All Site Tags" example above](#example-list-all-site-tags):
 
 {{< code file="links-to-all-tags.html" >}}
 {{ $taxo := "tags" }}
 <ul class="{{ $taxo }}">
     {{ with ($.Site.GetPage (printf "/%s" $taxo)) }}
         {{ range .Pages }}
-            <li><a href="{{ .Permalink }}">{{ .Title}}</a></li>
+            <li><a href="{{ .Permalink }}">{{ .Title }}</a></li>
         {{ end }}
     {{ end }}
 </ul>
index b8938890f6f117200f5a52926bb26df762096974..0f32fa73241602ba21ae83349ac8cb2e6b70ce48 100644 (file)
@@ -1,18 +1,13 @@
 ---
 title: Template Debugging
 description: You can use Go templates' `printf` function to debug your Hugo  templates. These snippets provide a quick and easy visualization of the variables available to you in different contexts.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [templates]
 keywords: [debugging,troubleshooting]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 180
 weight: 180
-sections_weight: 180
-aliases: []
-toc: false
 ---
 
 Here are some snippets you can add to your template to answer some common questions.
index 495f701bd135bb6c214657ba7bb219eee0fdf110..24ff611507a0a5f9a3869983dd858f868172b543 100644 (file)
@@ -1,20 +1,13 @@
 ---
 title: Content View Templates
-# linktitle: Content Views
 description: Hugo can render alternative views of your content, which is especially useful in list and summary views.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [templates]
 keywords: [views]
 menu:
   docs:
-    parent: "templates"
+    parent: templates
     weight: 70
 weight: 70
-sections_weight: 70
-draft: false
-aliases: []
 toc: true
 ---
 
@@ -69,13 +62,13 @@ The following example demonstrates how to use content views inside your [list te
 
 In this example, `.Render` is passed into the template to call the [render function][render]. `.Render` is a special function that instructs content to render itself with the view template provided as the first argument. In this case, the template is going to render the `summary.html` view that follows:
 
-{{< code file="layouts/_default/list.html" download="list.html" >}}
+{{< code file="layouts/_default/list.html" >}}
 <main id="main">
   <div>
-  <h1 id="title">{{ .Title }}</h1>
-  {{ range .Pages }}
-    {{ .Render "summary"}}
-  {{ end }}
+    <h1 id="title">{{ .Title }}</h1>
+    {{ range .Pages }}
+      {{ .Render "summary" }}
+    {{ end }}
   </div>
 </main>
 {{< /code >}}
@@ -84,7 +77,7 @@ In this example, `.Render` is passed into the template to call the [render funct
 
 Hugo will pass the entire page object to the following `summary.html` view template. (See [Page Variables][pagevars] for a complete list.)
 
-{{< code file="layouts/_default/summary.html" download="summary.html" >}}
+{{< code file="layouts/_default/summary.html" >}}
 <article class="post">
   <header>
     <h2><a href='{{ .Permalink }}'> {{ .Title }}</a> </h2>
@@ -101,7 +94,7 @@ Hugo will pass the entire page object to the following `summary.html` view templ
 
 Continuing on the previous example, we can change our render function to use a smaller `li.html` view by changing the argument in the call to the `.Render` function (i.e., `{{ .Render "li" }}`).
 
-{{< code file="layouts/_default/li.html" download="li.html" >}}
+{{< code file="layouts/_default/li.html" >}}
 <li>
   <a href="{{ .Permalink }}">{{ .Title }}</a>
   <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
index a630418193bb257835829c4e6aa29f615641c90f..b553dac9c42828e4397b6ada549c17668770ff6f 100644 (file)
@@ -2,17 +2,13 @@
 title: Developer Tools
 linktitle: Developer Tools Overview
 description: In addition to Hugo's powerful CLI, there is a large number of community-developed tool chains for Hugo developers.
-date: 2016-12-05
-publishdate: 2016-12-05
-lastmod: 2017-02-26
 categories: [developer tools]
 keywords: []
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 01
 weight: 01
-sections_weight: 01
 ---
 
 One of Hugo's greatest strengths is its passionate---and always evolving---developer community. With the exception of the `highlight` shortcode mentioned in [Syntax Highlighting][syntax], the tools and other projects featured in this section are offerings from both commercial services and open-source projects, many of which are developed by Hugo developers just like you.
@@ -20,4 +16,4 @@ One of Hugo's greatest strengths is its passionate---and always evolving---devel
 [See the popularity of Hugo compared with other static site generators.][staticgen]
 
 [staticgen]: https://staticgen.com
-[syntax]: /tools/syntax-highlighting/
+[syntax]: /content-management/syntax-highlighting/
index ed67885fcb976047529e620d9c2cee317e90db19..55ab47090c910be4a656e599419e44dce3c3714c 100644 (file)
@@ -2,19 +2,13 @@
 title: Editor Plug-ins for Hugo
 linktitle: Editor Plug-ins
 description: The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [developer tools]
 keywords: [editor, plug-ins]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 50
 weight: 50
-sections_weight: 50
-draft: false
-aliases: []
-toc: false
 ---
 
 The Hugo community uses a wide range of preferred tools and has developed plug-ins for some of the most popular text editors to help automate parts of your workflow.
index 7ad44df53062351f2ab24f5d9f6760d0f74b2b74..1bfaf0995f03b956d3e8f94f8841bdcfef06dfc0 100644 (file)
@@ -2,20 +2,13 @@
 title: Frontend Interfaces with Hugo
 linktitle: Frontends
 description: Do you prefer a graphical user interface over a text editor? Give these frontends a try.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [developer tools]
 keywords: [frontend, gui]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 40
 weight: 40
-sections_weight: 40
-draft: false
-aliases: []
-toc: false
 ---
 
 - [enwrite](https://github.com/zzamboni/enwrite). Enwrite enables evernote-powered, statically generated blogs and websites. Now posting to your blog or updating your website is as easy as writing a new note in Evernote!
index d6ca14ab52fabc6eaeea22a0430e760fb2674faa..0156c46db4a51c8e06d8cb69409d93729a920df8 100644 (file)
@@ -2,17 +2,12 @@
 title: Migrate to Hugo
 linktitle: Migrations
 description: A list of community-developed tools for migrating from your existing static site generator or content management system to Hugo.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2022-03-26
 keywords: [migrations, jekyll, wordpress, drupal, ghost, contentful]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 10
 weight: 10
-sections_weight: 10
-draft: false
 aliases: [/developer-tools/migrations/, /developer-tools/migrated/]
 toc: true
 ---
@@ -78,7 +73,7 @@ Alternatively, you can use the new [Jekyll import command](/commands/hugo_import
 
 ## Contentful
 
-- [contentful2hugo](https://github.com/ArnoNuyts/contentful2hugo) - A tool to create content-files for Hugo from content on [Contentful](https://www.contentful.com/).
+- [contentful-hugo](https://github.com/ModiiMedia/contentful-hugo) - A tool to create content-files for Hugo from content on [Contentful](https://www.contentful.com/).
 
 ## BlogML
 
index ed7c530d0df4ac203b457f4b15c8e492dfc5af2d..3f8aeebbb7036b6f80db8d597355bc8cddc2a893 100644 (file)
@@ -2,18 +2,13 @@
 title: Other Hugo Community Projects
 linktitle: Other Projects
 description: Some interesting projects developed by the Hugo community that don't quite fit into our other developer tool categories.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [developer tools]
 keywords: [frontend, gui]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 70
 weight: 70
-sections_weight: 70
-aliases: []
-toc: false
 ---
 
 And for all the other small things around Hugo:
index 464aa91079080a1be008ec174793bbca0723fd9b..030e9f2c78ccabf45e692b1cedc3e4f6e9635034 100644 (file)
@@ -2,17 +2,11 @@
 title: Search for your Hugo Website
 linktitle: Search
 description: See some of the open-source and commercial search options for your newly created Hugo website.
-date: 2017-02-01
-publishdate: 2017-02-01
-categories: [developer tools]
-keywords: [search,tools]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 60
 weight: 60
-sections_weight: 60
-aliases: []
 toc: true
 ---
 
@@ -32,5 +26,5 @@ A static website with a dynamic search function? Yes, Hugo provides an alternati
 ## Commercial Search Services
 
 * [Algolia](https://www.algolia.com/)'s Search API makes it easy to deliver a great search experience in your apps and websites. Algolia Search provides hosted full-text, numerical, faceted, and geolocalized search.
-* [Bonsai](https://www.bonsai.io) is a fully-managed hosted Elasticsearch service that is fast, reliable, and simple to set up. Easily ingest your docs from Hugo into Elasticsearch following [this guide from the docs](https://docs.bonsai.io/docs/hugo).
+* [Bonsai](https://www.bonsai.io) is a fully-managed hosted Elasticsearch service that is fast, reliable, and simple to set up. Easily ingest your docs from Hugo into Elasticsearch following [this guide from the docs](https://docs.bonsai.io/hc/en-us/articles/13929190788756-Hugo).
 * [ExpertRec](https://www.expertrec.com/) is a hosted search-as-a-service solution that is fast and scalable. Set-up and integration is extremely easy and takes only a few minutes. The search settings can be modified without coding using a dashboard.
index 8399e99dfc3268f131980f8c44917e7ae386035d..69c8f3e0b722a31674dc22db9a6884565b6dc033 100644 (file)
@@ -1,25 +1,18 @@
 ---
 title: Starter Kits
-linktitle: Starter Kits
 description: A list of community-developed projects designed to help you get up and running with Hugo.
-date: 2017-02-22
-publishdate: 2017-02-01
-lastmod: 2018-08-11
 keywords: [starters,assets,pipeline]
 menu:
   docs:
-    parent: "tools"
+    parent: tools
     weight: 30
 weight: 30
-sections_weight: 30
-draft: false
 aliases: [/developer-tools/migrations/,/developer-tools/migrated/]
-toc: false
 ---
 
 Know of a Hugo-related starter kit that isn't mentioned here? [Please add it to the list.][addkit]
 
-{{% note "Starter Kits are Not Maintained by the Hugo Team"%}}
+{{% note %}}
 The following starter kits are developed by active members of the Hugo community. If you find yourself having issues with any of the projects, it's best to file an issue directly with the project's maintainer(s).
 {{% /note %}}
 
@@ -32,7 +25,7 @@ The following starter kits are developed by active members of the Hugo community
 [addkit]: https://github.com/gohugoio/hugo/edit/master/docs/content/en/tools/starter-kits.md
 [amp]: https://amp.dev
 [GOHUGO AMP]: https://github.com/wildhaber/gohugo-amp
-[gohugodocs]: https://gohugo-amp.gohugohq.com/
+[gohugodocs]: https://github.com/wildhaber/gohugo-amp.gohugohq.com
 [hugow]: https://github.com/khos2ow/hugo-wrapper
 [hugow-test]: https://github.com/khos2ow/hugo-wrapper#tested-on
 [Hyas]: https://github.com/h-enk/hyas
index 3170dc7d848924dc6c7d5848ee0f09c32082e2a3..51f1791a3a6b86a612d6bc5b7b58143619b531b1 100644 (file)
@@ -1,21 +1,12 @@
 ---
 title: Troubleshoot
-linktitle: Troubleshoot
 description: Frequently asked questions and known issues pulled from the Hugo Discuss forum.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 menu:
   docs:
-    parent: "troubleshooting"
+    parent: troubleshooting
     weight: 1
 weight: 1
-draft: false
-hidesectioncontents: false
-slug:
 aliases: [/troubleshooting/faqs/,/faqs/]
-toc: false
-notesforauthors:
 ---
 
 The Troubleshooting section includes known issues, recent workarounds, and FAQs pulled from the [Hugo Discussion Forum][forum].
index ea31ef84b62876cf863755fb47c99a0c5cb96080..b58cdc11fe1e2dbfb05b54d5bee5fbc24827cae7 100644 (file)
@@ -1,17 +1,10 @@
 ---
 title: Build Performance
-linktitle: Build Performance
 description: An overview of features used for diagnosing and improving performance issues in site builds.
-date: 2017-03-12
-publishdate: 2017-03-12
-keywords: [performance, build]
-categories: [troubleshooting]
 menu:
   docs:
-    parent: "troubleshooting"
+    parent: troubleshooting
 weight: 3
-slug:
-aliases: []
 toc: true
 ---
 
@@ -85,10 +78,10 @@ the desired output, the template may benefit from caching to reduce the number
 of executions. The [`partialCached`][partialcached] template function provides
 caching capabilities for `partial` templates.
 
-{{% tip %}}
+{{% note %}}
 Note that you can create cached variants of each `partial` by passing additional
 parameters to `partialCached` beyond the initial context. See the
 `partialCached` documentation for more details.
-{{% /tip %}}
+{{% /note %}}
 
-[partialCached]:{{< ref "/functions/partialCached.md" >}}
+[partialCached]: /functions/partialcached
index 998f9bbbe807d9af719acb2167b92b69f7b6e0a2..04e857acb751741c1d2751c92946bbd163b028ee 100644 (file)
@@ -2,11 +2,10 @@
 title: Frequently Asked Questions
 linktitle: FAQ
 description: Solutions to some common Hugo problems.
-date: 2018-02-10
 categories: [troubleshooting]
 menu:
   docs:
-    parent: "troubleshooting"
+    parent: troubleshooting
 keywords: [faqs]
 weight: 2
 toc: true
index 382ee25d4feee04ac70964bf266df375a72f3313..9b5289573166a09144698a3c804eb1f856ae4626 100644 (file)
@@ -2,20 +2,14 @@
 title: Variables and Params
 linktitle: Variables Overview
 description: Page-, file-, taxonomy-, and site-level variables and parameters available in templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [variables and params]
 keywords: [variables,params,values,globals]
-draft: false
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 1
-weight: 01     #rem
-sections_weight: 01
+weight: 01
 aliases: [/templates/variables/]
-toc: false
 ---
 
 Hugo's templates are context aware and make a large number of values available to you as you're creating views for your website.
index 4e6c0632f06b33baaf7723adc68154fb7454ae39..784ab7c648688e641c060ec70f8212985d7447b6 100644 (file)
 ---
 title: File Variables
-linktitle:
-description: "You can access filesystem-related data for a content file in the `.File` variable."
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
+description: "Use File variables to access file-related values for each page that is backed by a file."
 categories: [variables and params]
 keywords: [files]
-draft: false
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 40
+toc: true
 weight: 40
-sections_weight: 40
 aliases: [/variables/file-variables/]
-toc: false
 ---
+## Variables
 
-{{% note "Rendering Local Files" %}}
-For information on creating shortcodes and templates that tap into Hugo's file-related feature set, see [Local File Templates](/templates/files/).
+{{% note %}}
+The path separators (slash or backslash) in `.File.Path`, `.File.Dir`, and `.File.Filename` depend on the operating system.
 {{% /note %}}
 
-The `.File` object contains the following fields:
-
 .File.Path
-: the original relative path of the page, relative to the content dir (e.g., `posts/foo.en.md`)
-
-.File.LogicalName
-: the name of the content file that represents a page (e.g., `foo.en.md`)
+: (`string`) The file path, relative to the `content` directory.
 
-.File.TranslationBaseName
-: the filename without extension or optional language identifier (e.g., `foo`)
+.File.Dir
+: (`string`) The file path, excluding the file name, relative to the `content` directory.
 
-.File.ContentBaseName
-: is either a TranslationBaseName or name of containing folder if file is a leaf bundle.
+.File.LogicalName
+: (`string`) The file name.
 
 .File.BaseFileName
-: the filename without extension (e.g., `foo.en`)
+: (`string`) The file name, excluding the extension.
+
+.File.TranslationBaseName
+: (`string`) The file name, excluding the extension and language identifier.
 
 .File.Ext
-: the file extension of the content file (e.g., `md`).
+: (`string`) The file extension.
 
 .File.Lang
-: the language associated with the given file if Hugo's [Multilingual features][multilingual] are enabled (e.g., `en`)
+: (`string`) The language associated with the given file.
 
-.File.Dir
-: given the path `content/posts/dir1/dir2/`, the relative directory path of the content file will be returned (e.g., `posts/dir1/dir2/`). Note that the path separator (`\` or `/`) could be dependent on the operating system.
+
+.File.ContentBaseName
+: (`string`) If the page is a branch or leaf bundle, the name of the containing directory, else the `.TranslationBaseName`.
+
+.File.Filename
+: (`string`) The absolute file path.
 
 .File.UniqueID
-: the MD5-checksum of the content file's path.
+: (`string`) The MD5 hash of `.File.Path`.
+
+## Examples
+
+```text
+content/
+├── news/
+│   ├── b/
+│   │   ├── index.de.md   <-- leaf bundle
+│   │   └── index.en.md   <-- leaf bundle
+│   ├── a.de.md           <-- regular content
+│   ├── a.en.md           <-- regular content
+│   ├── _index.de.md      <-- branch bundle
+│   └── _index.en.md      <-- branch bundle
+├── _index.de.md
+└── _index.en.md
+```
+
+With the content structure above, the `.File` objects for the English pages contain the following properties:
+
+&nbsp;|regular content|leaf bundle|branch bundle
+:--|:--|:--|:--
+Path|news/a.en.md|news/b/index.en.md|news/_index.en.md
+Dir|news/|news/b/|news/
+LogicalName|a.en.md|index.en.md|_index.en.md
+BaseFileName|a.en|index.en|_index.en
+TranslationBaseName|a|index|_index
+Ext|md|md|md
+Lang|en|en|en
+ContentBaseName|a|b|news
+Filename|/home/user/...|/home/user/...|/home/user/...
+UniqueID|15be14b...|186868f...|7d9159d...
+
+## Defensive coding
+
+Some of the pages on a site may not be backed by a file. For example:
+
+- Top level section pages
+- Taxonomy pages
+- Term pages
+
+Without a backing file, Hugo will throw a warning if you attempt to access a `.File` property. For example:
+
+```text
+WARN .File.ContentBaseName on zero object. Wrap it in if or with...
+```
+
+To code defensively:
 
-[Multilingual]: /content-management/multilingual/
+```go-html-template
+{{ with .File }}
+  {{ .ContentBaseName }}
+{{ end }}
+```
index 24878e350de090ac3142afe2a34e3990c4c8360e..dfd6e5407445e2852af4e4450aab51074b987e58 100644 (file)
@@ -2,24 +2,17 @@
 title: Git Info Variables
 linktitle: Git Variables
 description: Get the last Git revision information for every content file.
-date: 2017-03-12
-publishdate: 2017-03-12
-lastmod: 2017-03-12
 categories: [variables and params]
 keywords: [git]
-draft: false
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 70
 weight: 70
-sections_weight: 70
 aliases: [/extras/gitinfo/]
-toc: false
-wip: false
 ---
 
-{{% note "`.GitInfo` Performance Considerations"  %}}
+{{% note %}}
 Hugo's Git integrations should be fairly performant but *can* increase your build time. This will depend on the size of your Git history.
 {{% /note %}}
 
index a59560729603a210735ffd17dc9fe5adfaccd23c..b88514803e0196ea9e3da94bcf866bc3f1b38217 100644 (file)
 ---
-title: Menu Entry Properties
-linktitle: Menu Entry Properties
-description: A menu entry in a menu-template has specific variables and functions to make menu management easier.
-date: 2017-03-12
-publishdate: 2017-03-12
-lastmod: 2017-03-12
+title: Menu Variables
+description: Use these variables and methods in your menu templates.
 categories: [variables and params]
 keywords: [menus]
-draft: false
 menu:
   docs:
-    title: "variables defined by a menu entry"
-    parent: "variables"
+    parent: variables
     weight: 50
 weight: 50
-sections_weight: 50
 aliases: [/variables/menu/]
-toc: false
 ---
 
-A **menu entry** has the following properties available that can be used in a
-[menu template][menu-template].
+## Variables
 
-## Menu Entry Variables
+After [defining menu entries], access their properties in [menu templates] with these variables.
+
+.Children
+: (`menu`) A collection of child menu entries, if any, under the current menu entry.
+
+.Identifier
+: (`string`) The `identifier` property of the menu entry. If you define the menu entry [automatically], the page's `.Section`.
+
+.KeyName
+: (`string`) The `identifier` property of the menu entry, else the `name` property.
 
 .Menu
-: _string_ <br />
-Name of the **menu** that contains this **menu entry**.
+: (`string`) The identifier of the menu that contains the menu entry.
 
-.URL
-: _string_ <br />
-URL that the menu entry points to. The `url` key, if set for the menu entry,
-sets this value. If that key is not set, and if the menu entry is set in a page
-front-matter, this value defaults to the page's `.RelPermalink`.
+.Name
+: (`string`) The `name` property of the menu entry.
+
+- If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`.
+- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`.
 
 .Page
-: _\*Page_ <br />
-Reference to the [page object][page-object] associated with the menu entry. This
-will be non-nil if the menu entry is set via a page's front-matter and not via
-the site config.
+: (`page`) A reference to the page associated with the menu entry.
 
+<!-- This provides no value when rendering menu. Omitting to avoid confusion.
 .PageRef
-: _string_ <br /> Can be set if defined in site config and the menu entry refers to a Page. [site.GetPage](/functions/getpage/) will be used to do the page lookup. If this is set, you don't need to set the `URL`.
+: (`string`) The `pageRef` property of the menu entry.
+-->
 
-.Name
-: _string_ <br />
-Name of the menu entry. The `name` key, if set for the menu entry, sets
-this value. If that key is not set, and if the menu entry is set in a page
-front-matter, this value defaults to the page's `.LinkTitle`.
+.Params
+: (`map`) The `params` property of the menu entry.
 
-.Identifier
-: _string_ <br />
-Value of the `identifier` key if set for the menu entry. This value must be
-unique for each menu entry. **It is necessary to set a unique identifier
-manually if two or more menu entries have the same `.Name`.**
+.Parent
+: (`string`)  The `parent` property of the menu entry.
+
+.Post
+: (`template.HTML`) The `post` property of the menu entry.
 
 .Pre
-: _template.HTML_ <br />
-Value of the `pre` key if set for the menu entry. This value typically contains
-a string representing HTML.
+: (`template.HTML`) The `pre` property of the menu entry.
 
-.Post
-: _template.HTML_ <br />
-Value of the `post` key if set for the menu entry. This value typically contains
-a string representing HTML.
+.Title
+: (`string`) The `title` property of the menu entry.
 
-.Weight
-: _int_ <br />
-Value of the `weight` key if set for the menu entry. By default the entries in
-a menu are sorted ascending by their `weight`. If that key is not set, and if
-the menu entry is set in a page front-matter, this value defaults to the page's
-`.Weight`.
+- If you define the menu entry [automatically], the page's `.LinkTitle`, else the page's `.Title`.
+- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.LinkTitle`, then to the page's `.Title`.
 
-.Parent
-: _string_ <br />
-Name (or Identifier if present) of this menu entry's parent **menu entry**. The
-`parent` key, if set for the menu entry, sets this value. If this key is set,
-this menu entry nests under that parent entry, else it nests directly under the
-`.Menu`.
+.URL
+: (`string`) The `.RelPermalink` of the page associated with the menu entry. For menu entries pointing to external resources, the `url` property of the menu entry.
 
-.Children
-: _Menu_ <br />
-This value is auto-populated by Hugo. It is a collection of children menu
-entries, if any, under the current menu entry.
+.Weight
+: (`int`) The `weight` property of the menu entry.
 
-## Menu Entry Functions
+- If you define the menu entry [automatically], the page's `.Weight`.
+- If you define the menu [in front matter] or [in site configuration], falls back to the page's `.Weight`.
 
-Menus also have the following functions available:
+## Methods
 
 .HasChildren
-: _boolean_ <br />
-Returns `true` if `.Children` is non-nil.
-
-.KeyName
-: _string_ <br />
-Returns the `.Identifier` if present, else returns the `.Name`.
+: (`bool`) Returns `true` if `.Children` is non-nil.
 
 .IsEqual
-: _boolean_ <br />
-Returns `true` if the two compared menu entries represent the same menu entry.
+: (`bool`) Returns `true` if the compared menu entries represent the same menu entry.
 
 .IsSameResource
-: _boolean_ <br />
-Returns `true` if the two compared menu entries have the same `.URL`.
-
-.Title
-: _string_ <br />
-Link title, meant to be used in the `title` attribute of a menu entry's
-`<a>`-tags.  Returns the menu entry's `title` key if set. Else, if the menu
-entry was created through a page's front-matter, it returns the page's
-`.LinkTitle`. Else, it just returns an empty string.
-
-## Other Menu-related Functions
-
-Additionally, here are some relevant methods available to menus on a page:
+: (`bool`) Returns `true` if the compared menu entries point to the same resource.
 
-.IsMenuCurrent
-: _(menu string, menuEntry *MenuEntry ) boolean_ <br />
-See [`.IsMenuCurrent` method](/functions/ismenucurrent/).
+.Page.HasMenuCurrent
+: (`bool`) Use this method to determine ancestors of the active menu entry. See [details](/functions/hasmenucurrent/).
 
-.HasMenuCurrent
-: _(menu string, menuEntry *MenuEntry) boolean_ <br />
-See [`.HasMenuCurrent` method](/functions/hasmenucurrent/).
+.Page.IsMenuCurrent
+: (`bool`) Use this method to determine the active menu entry. See [details](/functions/ismenucurrent/).
 
-[menu-template]: /templates/menu-templates/
-[page-object]: /variables/page/
+[automatically]: /content-management/menus/#define-automatically
+[defining menu entries]: /content-management/menus/#overview
+[in front matter]: /content-management/menus/#define-in-front-matter
+[in site configuration]: /content-management/menus/#define-in-site-configuration
+[menu templates]: /templates/menu-templates/
index 2de54ff8bebe6fd1b7bd38a4850375a8f66deb24..f8266965eb31b95bb014ae30d2803d832a446f2b 100644 (file)
@@ -1,29 +1,18 @@
 ---
 title: Page Variables
-linktitle:
 description: Page-level variables are defined in a content file's front matter, derived from the content's file location, or extracted from the content body itself.
-date: 2017-02-01
-publishdate: 2017-02-01
 categories: [variables and params]
 keywords: [pages]
-draft: false
 menu:
   docs:
-    title: "variables defined by a page"
-    parent: "variables"
+    parent: variables
     weight: 20
 weight: 20
-sections_weight: 20
-aliases: []
 toc: true
 ---
 
 The following is a list of page-level variables. Many of these will be defined in the front matter, derived from file location, or extracted from the content itself.
 
-{{% note "`.Scratch`" %}}
-See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables.
-{{% /note %}}
-
 ## Page Variables
 
 .AlternativeOutputFormats
@@ -33,7 +22,7 @@ See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables.
 : aliases of this page
 
 .Ancestors
-: get the ancestors of each page, simplify [breadcrumb navigation]({{< relref "content-management/sections#example-breadcrumb-navigation" >}}) implementation complexity  
+: get the ancestors of each page, simplify [breadcrumb navigation](/content-management/sections#example-breadcrumb-navigation) implementation complexity  
 
 .BundleType
 : the [bundle] type: `leaf`, `branch`, or an empty string if the page is not a bundle.
@@ -59,6 +48,9 @@ See [`.Scratch`](/functions/scratch/) for page-scoped, writable variables.
 .File
 : filesystem-related data for this content file. See also [File Variables].
 
+.Fragments
+: Fragments returns the fragments for this page. See [Page Fragments](#page-fragments).
+
 .FuzzyWordCount
 : the approximate number of words in the content.
 
@@ -98,17 +90,17 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo].
 : access when creating links to the content. If set, Hugo will use the `linktitle` from the front matter before `title`.
 
 .Next
-: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{with .Next}}{{.Permalink}}{{end}}`. Calling `.Next` from the first page returns `nil`.
+: Points up to the next [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ with .Next }}{{ .Permalink }}{{ end }}`. Calling `.Next` from the first page returns `nil`.
 
 .NextInSection
-: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{with .NextInSection}}{{.Permalink}}{{end}}`. Calling `.NextInSection` from the first page returns `nil`.
+: Points up to the next [regular page](/variables/site/#site-pages) below the same top level section (e.g. in `/blog`)). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ with .NextInSection }}{{ .Permalink }}{{ end }}`. Calling `.NextInSection` from the first page returns `nil`.
 
 .OutputFormats
 : contains all formats, including the current format, for a given page. Can be combined the with [`.Get` function](/functions/get/) to grab a specific format. (See [Output Formats](/templates/output-formats/).)
 
 .Pages
 : a collection of associated pages. This value will be `nil` within
-  the context of regular content pages. See [`.Pages`]({{< relref "page.md#pages" >}}).
+  the context of regular content pages. See [`.Pages`](#pages).
 
 .Permalink
 : the Permanent link for this page; see [Permalinks](/content-management/urls/)
@@ -120,10 +112,10 @@ See also `.ExpiryDate`, `.Date`, `.PublishDate`, and [`.GitInfo`][gitinfo].
 : the slice of strings that results from splitting .Plain into words, as defined in Go's [strings.Fields](https://pkg.go.dev/strings#Fields).
 
 .Prev
-: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{if .Prev}}{{.Prev.Permalink}}{{end}}`.  Calling `.Prev` from the last page returns `nil`.
+: Points down to the previous [regular page](/variables/site/#site-pages) (sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath)). Example: `{{ if .Prev }}{{ .Prev.Permalink }}{{ end }}`.  Calling `.Prev` from the last page returns `nil`.
 
 .PrevInSection
-: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{if .PrevInSection}}{{.PrevInSection.Permalink}}{{end}}`.  Calling `.PrevInSection` from the last page returns `nil`.
+: Points down to the previous [regular page](/variables/site/#site-pages) below the same top level section (e.g. `/blog`). Pages are sorted by Hugo's [default sort](/templates/lists#default-weight--date--linktitle--filepath). Example: `{{ if .PrevInSection }}{{ .PrevInSection.Permalink }}{{ end }}`.  Calling `.PrevInSection` from the last page returns `nil`.
 
 .PublishDate
 : the date on which the content was or will be published; `.Publishdate` pulls from the `publishdate` field in a content's front matter. See also `.ExpiryDate`, `.Date`, and `.Lastmod`.
@@ -184,6 +176,14 @@ https://remarkjs.com)
 .WordCount
 : the number of words in the content.
 
+## Writable Page-scoped Variables
+
+[.Scratch][scratch]
+: returns a Scratch to store and manipulate data. In contrast to the [`.Store`][store] method, this scratch is reset on server rebuilds.
+
+[.Store][store]
+: returns a Scratch to store and manipulate data. In contrast to the [`.Scratch`][scratch] method, this scratch is not reset on server rebuilds.
+
 ## Section Variables and Methods
 
 Also see [Sections](/content-management/sections/).
@@ -199,53 +199,92 @@ aliased form `.Pages`.
 
 {{< getcontent path="readfiles/pages-vs-site-pages.md" >}}
 
+## Page Fragments
+
+{{< new-in "0.111.0" >}}
+
+The `.Fragments` method returns a list of fragments for the current page.
+
+.Headings
+: A recursive list of headings for the current page. Can be used to generate a table of contents.
+
+{{< todo >}}add .Headings toc example{{< /todo >}}
+
+.Identifiers
+: A sorted list of identifiers for the current page. Can be used to check if a page contains a specific identifier or if a page contains duplicate identifiers:
+
+```go-html-template
+{{ if .Fragments.Identifiers.Contains "my-identifier" }}
+    <p>Page contains identifier "my-identifier"</p>
+{{ end }}
+
+{{ if gt (.Fragments.Identifiers.Count "my-identifier")  1 }}
+    <p>Page contains duplicate "my-identifier" fragments</p>
+{{ end }}
+```
+
+.HeadingsMap
+: Holds a map of headings for the current page. Can be used to start the table of contents from a specific heading.
+
+Also see the [Go Doc](https://pkg.go.dev/github.com/gohugoio/hugo@v0.111.0/markup/tableofcontents#Fragments) for the return type.
+
+### Fragments in hooks and shortcodes
+
+`.Fragments` are safe to call from render hooks, even on the page you're on (`.Page.Fragments`). For shortcodes we recommend that all `.Fragments` usage is nested inside the `{{</**/>}}` shortcode delimiter (`{{%/**/%}}` takes part in the ToC creation so it's easy to end up in a situation where you bite yourself in the tail).
+
+
+## The global page function
+
+{{< new-in "0.111.1" >}}
+
+Hugo almost always passes a `Page` as the data context into the top level template (e.g. `single.html`) (the one exception is the multihost sitemap template). This means that you can access the current page with the `.` variable in the template.
+
+But when you're deeply nested inside `.Render`, partial etc., accessing that `Page` object isn't always practical or possible.
+
+For this reason, Hugo provides a global `page` function that you can use to access the current page from anywhere in any template.
+
+```go-html-template
+{{ page.Title }}
+```
+
+There are one caveat with this, and this isn't new, but it's worth mentioning here: There are situations in Hugo where you may see a cached value, e.g. when using `partialCached` or in a shortcode. 
+
 ## Page-level Params
 
 Any other value defined in the front matter in a content file, including taxonomies, will be made available as part of the `.Params` variable.
 
-```yml
----
-title: My First Post
-date: 2017-02-20T15:26:23-06:00
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 categories: [one]
 tags: [two,three,four]
-```
+{{< /code-toggle >}}
 
 With the above front matter, the `tags` and `categories` taxonomies are accessible via the following:
 
 * `.Params.tags`
 * `.Params.categories`
 
-{{% note "Casing of Params" %}}
-Page-level `.Params` are *only* accessible in lowercase.
-{{% /note %}}
-
-The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter in `/content/review/book01.md`:
+The `.Params` variable is particularly useful for the introduction of user-defined front matter fields in content files. For example, a Hugo website on book reviews could have the following front matter:
 
-```yml
----
-...
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 affiliatelink: "http://www.my-book-link.here"
 recommendedby: "My Mother"
-...
----
-```
+{{< /code-toggle >}}
 
-These fields would then be accessible to the `/themes/yourtheme/layouts/review/single.html` template through `.Params.affiliatelink` and `.Params.recommendedby`, respectively.
+These fields would then be accessible to via `.Params.affiliatelink` and `.Params.recommendedby`.
 
-Two common situations where this type of front matter field could be introduced is as a value of a certain attribute like `href=""` or by itself to be displayed as text to the website's visitors.
-
-{{< code file="/themes/yourtheme/layouts/review/single.html" >}}
-<h3><a href={{ printf "%s" $.Params.affiliatelink }}>Buy this book</a></h3>
+```go-html-template
+<h3><a href="{{ .Params.affiliatelink }}">Buy this book</a></h3>
 <p>It was recommended by {{ .Params.recommendedby }}.</p>
-{{< /code >}}
+```
 
-This template would render as follows, assuming you've set [`uglyURLs`](/content-management/urls/) to `false` in your [site `config`](/getting-started/configuration/):
+This template would render as follows:
 
-{{< output file="yourbaseurl/review/book01/index.html" >}}
+```html
 <h3><a href="http://www.my-book-link.here">Buy this book</a></h3>
 <p>It was recommended by my Mother.</p>
-{{< /output >}}
+```
 
 {{% note %}}
 See [Archetypes](/content-management/archetypes/) for consistency of `Params` across pieces of content.
@@ -265,37 +304,22 @@ The `.Param` method provides a way to resolve a single value according to it's d
 
 When front matter contains nested fields like the following:
 
-```yml
----
+{{< code-toggle file="content/example.md" fm=true copy=false >}}
+title: Example
 author:
   given_name: John
   family_name: Feminella
   display_name: John Feminella
----
-```
+{{< /code-toggle >}}
+
 `.Param` can access these fields by concatenating the field names together with a dot:
 
 ```go-html-template
 {{ $.Param "author.display_name" }}
 ```
 
-If your front matter contains a top-level key that is ambiguous with a nested key, as in the following case:
-
-```yml
----
-favorites.flavor: vanilla
-favorites:
-  flavor: chocolate
----
-```
-
-The top-level key will be preferred. Therefore, the following method, when applied to the previous example, will print `vanilla` and not `chocolate`:
-
-```txt
-{{ $.Param "favorites.flavor" }}
-=> vanilla
-```
-
 [gitinfo]: /variables/git/
 [File Variables]: /variables/files/
-[bundle]: {{< relref "content-management/page-bundles" >}}
+[bundle]: /content-management/page-bundles
+[scratch]: /functions/scratch
+[store]: /functions/store
index 61036dd74f7c5e538221b1efbee0df4accec3032..15904de952f3a7a66995cc88b78644d6f71b944f 100644 (file)
@@ -1,18 +1,13 @@
 ---
 title: Pages Methods
-linktitle:
 description: Pages is the core page collection in Hugo and has many useful methods.
-date: 2019-10-20
 categories: [variables and params]
 keywords: [pages]
-draft: false
 menu:
   docs:
-    title: "methods defined on a page collection"
-    parent: "variables"
+    parent: variables
     weight: 21
 weight: 21
-sections_weight: 20
 aliases: [/pages]
 toc: true
 ---
@@ -23,8 +18,8 @@ Also see [List templates](/templates/lists) for an overview of sort methods.
 
 `.Next` and `.Prev` on `Pages` work similar to the methods with the same names on `.Page`, but are more flexible (and slightly slower) as they can be used on any page collection.
 
-`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{with .Site.RegularPages.Next . }}{{.RelPermalink}}{{end}}`. Calling `.Next` with the first page in the collection returns `nil`.
+`.Next` points **up** to the next page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Next . }}{{ .RelPermalink }}{{ end }}`. Calling `.Next` with the first page in the collection returns `nil`.
 
 ## .Prev PAGE
 
-`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{with .Site.RegularPages.Prev . }}{{.RelPermalink}}{{end}}`. Calling `.Prev` with the last page in the collection returns `nil`.
+`.Prev` points **down** to the previous page relative to the page sent in as the argument. Example: `{{ with .Site.RegularPages.Prev . }}{{ .RelPermalink }}{{ end }}`. Calling `.Prev` with the last page in the collection returns `nil`.
index a7c9e475b83d53a8b292cd50aa4146104d3a79a8..3d4185b45e0445bfcf931aeaca4d3539c4490e22 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Shortcode Variables
-linktitle: Shortcode Variables
 description: Shortcodes can access page variables and also have their own specific built-in variables.
-date: 2017-03-12
-publishdate: 2017-03-12
 categories: [variables and params]
 keywords: [shortcodes]
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 20
 weight: 20
-sections_weight: 20
-aliases: []
-toc: false
 ---
 
 [Shortcodes][shortcodes] have access to parameters delimited in the shortcode declaration via [`.Get`][getfunction], page- and site-level variables, and also the following shortcode-specific fields:
@@ -39,9 +33,13 @@ toc: false
 .Inner
 : represents the content between the opening and closing shortcode tags when a [closing shortcode][markdownshortcode] is used
 
-[getfunction]: /functions/get/
-[markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown
-[shortcodes]: /templates/shortcode-templates/
+.Scratch
+: returns a writable [`Scratch`][scratch] to store and manipulate data which will be attached to the shortcode context. This scratch is reset on server rebuilds.
 
 .InnerDeindent {{< new-in "0.100.0" >}}
 : Gets the `.Inner` with any indentation removed. This is what's used in the built-in `{{</* highlight */>}}` shortcode.
+
+[getfunction]: /functions/get/
+[markdownshortcode]: /content-management/shortcodes/#shortcodes-with-markdown
+[shortcodes]: /templates/shortcode-templates/
+[scratch]: /functions/scratch
index 34239ad444dcd83106cb3d266ec41768ea963485..71111eb83ab8105b583213bea12470db9ae159bb 100644 (file)
@@ -1,19 +1,13 @@
 ---
 title: Site Variables
-linktitle: Site Variables
 description: Many, but not all, site-wide variables are defined in your site's configuration. However, Hugo provides a number of built-in variables for convenient access to global values in your templates.
-date: 2017-02-01
-publishdate: 2017-02-01
-lastmod: 2017-02-01
 categories: [variables and params]
 keywords: [global,site]
-draft: false
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 10
 weight: 10
-sections_weight: 10
 aliases: [/variables/site-variables/]
 toc: true
 ---
@@ -84,16 +78,16 @@ All the methods below, e.g. `.Site.RegularPages` can also be reached via the glo
 : all the menus in the site.
 
 .Site.Pages
-: array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See [`.Site.Pages`]({{< relref "site.md#site-pages" >}}).
+: array of all content ordered by Date with the newest first. This array contains only the pages in the current language. See [`.Site.Pages`](#site-pages).
 
 .Site.RegularPages
-: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`. See [`.Site.Pages`]({{< relref "site.md#site-pages" >}}).
+: a shortcut to the *regular* page collection. `.Site.RegularPages` is equivalent to `where .Site.Pages "Kind" "page"`. See [`.Site.Pages`](#site-pages).
 
 .Site.Sections
 : top-level directories of the site.
 
 .Site.Taxonomies
-: the [taxonomies](/taxonomies/usage/) for the entire site. Also see section [Use `.Site.Taxonomies` Outside of Taxonomy Templates](/variables/taxonomy/#use-sitetaxonomies-outside-of-taxonomy-templates).
+: the [taxonomies](/content-management/taxonomies/) for the entire site. Also see section [Access taxonomy data from any template](/variables/taxonomy/#access-taxonomy-data-from-any-template).
 
 .Site.Title
 : a string representing the title of the site.
@@ -117,7 +111,7 @@ baseURL = "https://yoursite.example.com/"
 You can use `.Site.Params` in a [partial template](/templates/partials/) to call the default site description:
 
 {{< code file="layouts/partials/head.html" >}}
-<meta name="description" content="{{if .IsHome}}{{ $.Site.Params.description }}{{else}}{{.Description}}{{end}}" />
+<meta name="description" content="{{ if .IsHome }}{{ $.Site.Params.description }}{{ else }}{{ .Description }}{{ end }}" />
 {{< /code >}}
 
 ## The `.Site.Pages` Variable {#site-pages}
index 24700182afa64d935e3c3af68284cf0c4854649b..b0b080d00a0e71cb401c49923fa3bf8df37ced71 100644 (file)
@@ -2,19 +2,13 @@
 title: Sitemap Variables
 linktitle: Sitemap Variables
 description:
-date: 2017-03-12
-publishdate: 2017-03-12
 categories: [variables and params]
 keywords: [sitemap]
-draft: false
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 80
 weight: 80
-sections_weight: 80
-aliases: []
-toc: false
 ---
 
 A sitemap is a `Page` and therefore has all the [page variables][pagevars] available to use sitemap templates. They also have the following sitemap-specific variables available to them:
index 901769b3164a1dff0fd4caa3e247cad24aac0e5b..63b5523288651d1c3babbcd1e446944a7651b3b5 100644 (file)
@@ -1,16 +1,14 @@
 ---
 title: Taxonomy Variables
-linktitle:
 description: Hugo's taxonomy system exposes variables to taxonomy and term templates.
 categories: [variables and params]
 keywords: [taxonomy,term]
 menu:
   docs:
-    parent: "variables"
+    parent: variables
     weight: 30
 toc: true
 weight: 30
-aliases: []
 ---
 
 ## Taxonomy templates
@@ -124,7 +122,7 @@ For example, to render the entire taxonomy data structure as a nested unordered
           <ul>
             {{ range $weightedPages }}
               <li>
-                <a href="{{ .RelPermalink}}"> {{ .LinkTitle }}</a>
+                <a href="{{ .RelPermalink }}"> {{ .LinkTitle }}</a>
               </li>
             {{ end }}
           </ul>
index c55c27347e016247bc46603a32c236975659b1d6..6efb03f8f5b46c45a454f3ef44acfb4e31b25169 100644 (file)
           ]
         },
         "Uniq": {
-          "Description": "Uniq takes returns a new list with all duplicate elements in the list l removed.\nduplicate elements removed.",
+          "Description": "Uniq returns a new list with duplicate elements in the list l removed.",
           "Args": [
             "l"
           ],
           ]
         }
       },
+      "css": {
+        "Quoted": {
+          "Description": "",
+          "Args": null,
+          "Aliases": null,
+          "Examples": null
+        },
+        "Unquoted": {
+          "Description": "",
+          "Args": null,
+          "Aliases": null,
+          "Examples": null
+        }
+      },
       "data": {
         "GetCSV": {
           "Description": "GetCSV expects the separator sep and one or n-parts of a URL to a resource which\ncan either be a local or a remote one.\nThe data separator can be a comma, semi-colon, pipe, etc, but only one character.\nIf you provide multiple parts for the URL they will be joined together to the final URL.\nGetCSV returns nil or a slice slice to use in a short code.",
           "Aliases": null,
           "Examples": null
         },
+        "GetIdentity": {
+          "Description": "",
+          "Args": null,
+          "Aliases": null,
+          "Examples": null
+        },
         "Home": {
           "Description": "",
           "Args": null,
             ]
           ]
         },
+        "ContainsNonSpace": {
+          "Description": "",
+          "Args": null,
+          "Aliases": null,
+          "Examples": null
+        },
         "Count": {
           "Description": "Count counts the number of non-overlapping instances of substr in s.\nIf substr is an empty string, Count returns 1 + the number of Unicode code points in s.",
           "Args": [
         "Markdownify": {
           "Description": "Markdownify renders s from Markdown to HTML.",
           "Args": [
+            "ctx",
             "s"
           ],
           "Aliases": [
diff --git a/go.mod b/go.mod
index 33f818ad6517c1edd4e765730392c2a79089f204..07badfeaf9a0379f37a935e7cb3b659571d3fcb6 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -2,4 +2,4 @@ module github.com/gohugoio/hugoDocs
 
 go 1.16
 
-require github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f // indirect
+require github.com/gohugoio/gohugoioTheme v0.0.0-20230418063032-99f9185b8e11 // indirect
diff --git a/go.sum b/go.sum
index ea0d2dcbe898af0edf78be75a1b2a29cf178148b..6783cb92ebfba3eb0967d4e6759693af26514780 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -59,3 +59,7 @@ github.com/gohugoio/gohugoioTheme v0.0.0-20230120185049-2c3c4d0ba232 h1:bEojKgKI
 github.com/gohugoio/gohugoioTheme v0.0.0-20230120185049-2c3c4d0ba232/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM=
 github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f h1:8wI3zOTWQG15aKkbAZQaoGnUQff46hO95opQndBHRE4=
 github.com/gohugoio/gohugoioTheme v0.0.0-20230124135550-462d5fe4a87f/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM=
+github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c h1:TyHgmowfiMyxKrqTdRxm/yWIFeN7XRh7Hm6/dOG6yDA=
+github.com/gohugoio/gohugoioTheme v0.0.0-20230330081257-7a8c9614432c/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM=
+github.com/gohugoio/gohugoioTheme v0.0.0-20230418063032-99f9185b8e11 h1:mDcricMewd66x8QjKqNun7Div7iYVLtl8s1dVs9VnB8=
+github.com/gohugoio/gohugoioTheme v0.0.0-20230418063032-99f9185b8e11/go.mod h1:GOYeAPQJ/ok8z7oz1cjfcSlsFpXrmx6VkzQ5RpnyhZM=
index da6bd95341935d5fdc5da131b487d1a7804a2d5b..5bed0ab2b38845bac1db240faff7925d1bdc979b 100644 (file)
--- a/hugo.toml
+++ b/hugo.toml
@@ -65,7 +65,17 @@ disableAliases = true
   toLower      = false
   [[related.indices]]
     name   = "keywords"
-    weight = 100
+    weight = 60
+  [[related.indices]]
+    # Can be used as a front matter slice to link to other page fragments (headings) using their ID.
+    # This isn't particular useful in the current docs, but we're planning on getting a auto generated
+    # reference section with a better ID setup.
+    # For now, we just use it to give pages with same headings some similarity score.
+    name                 = "fragmentrefs"
+    type                 = "fragments"
+    applyFilter          = false
+    weight               = 60
+    cardinalityThreshold = 50
   [[related.indices]]
     name    = "date"
     weight  = 10
index 113d85a1f7df6eb7f42d4c0239e834901902b973..b4cfaaa20f103d8f0a93fc7a801ec0117d76ced7 100644 (file)
@@ -1,87 +1,66 @@
 {{- /*
 Renders syntax-highlighted configuration data in JSON, TOML, and YAML formats.
 
-@param {string} config
-  Section of site.Data.docs.config to render.
-  Example: markup.highlight
-  Default: ""
-@param {bool} copy
-  Display a copy button.
-  Default: true
-@param {string} file
-  File name to display above the rendered code.
-  Default: ""
-@param {bool} fm
-  Does Inner represent front matter?
-  Default: false
-@param {string} Inner
-  Content between opening and closing shortcode tags.
-  Default: ""
-@param {bool} skipHeader
-  Omit top level key(s) when rendering a section of site.Data.docs.config.
-  Default: false
+@param {string} [config] The section of site.Data.docs.config to render.
+@param {bool} [copy=true] If true, display a copy to clipboard button.
+@param {string} [file] The file name to display above the rendered code.
+@param {bool} [fm=false] If true, render the code as front matter.
+@param {bool} [skipHeader=false] If false, omit top level key(s) when rendering a section of site.Data.docs.config.
+
 @returns {template.HTML}
-*/ -}}
+*/}}
 
-{{- /* Initialize. */ -}}
-{{- $config := "" -}}
-{{- $copy := true -}}
-{{- $file := "" -}}
-{{- $fm := false -}}
-{{- $skipHeader := false -}}
+{{- /* Initialize. */}}
+{{- $config := "" }}
+{{- $copy := true }}
+{{- $file := "" }}
+{{- $fm := false }}
+{{- $skipHeader := false }}
 
-{{- /* Get parameters, defend against string booleans. */ -}}
-{{- if .Params -}}
-  {{- $config = .Get "config" -}}
-  {{- $file = .Get "file" -}}
-  {{- if (isset .Params "copy") -}}
-    {{- if in (slice true "true") (.Get "copy") -}}
-      {{- $copy = true -}}
-    {{- else -}}
-      {{- $copy = false -}}
-    {{- end -}}
-  {{- end -}}
-  {{- if (isset .Params "fm") -}}
-    {{- if in (slice true "true") (.Get "fm") -}}
-      {{- $fm = true -}}
-    {{- else -}}
-      {{- $fm = false -}}
-    {{- end -}}
-  {{- end -}}
-  {{- if (isset .Params "skipHeader") -}}
-    {{- if in (slice true "true") (.Get "skipHeader") -}}
-      {{- $skipHeader = true -}}
-    {{- else -}}
-      {{- $skipHeader = false -}}
-    {{- end -}}
-  {{- end -}}
-{{- end -}}
+{{- /* Get parameters. */}}
+{{- $config = .Get "config" }}
+{{- $file = .Get "file" }}
+{{- if in (slice "false" false 0) (.Get "copy") }}
+  {{- $copy = false }}
+{{- else if in (slice "true" true 1) (.Get "copy")}}
+  {{- $copy = true }}
+{{- end }}
+{{- if in (slice "false" false 0) (.Get "fm") }}
+  {{- $fm = false }}
+{{- else if in (slice "true" true 1) (.Get "fm")}}
+  {{- $fm = true }}
+{{- end }}
+{{- if in (slice "false" false 0) (.Get "skipHeader") }}
+  {{- $skipHeader = false }}
+{{- else if in (slice "true" true 1) (.Get "skipHeader")}}
+  {{- $skipHeader = true }}
+{{- end }}
 
-{{- /* Define constants. */ -}}
-{{- $delimiters := dict "toml" "+++" "yaml" "---" -}}
-{{- $langs := slice "yaml" "toml" "json" -}}
-{{- $placeHolder := "#-hugo-placeholder-#" -}}
+{{- /* Define constants. */}}
+{{- $delimiters := dict "toml" "+++" "yaml" "---" }}
+{{- $langs := slice "yaml" "toml" "json" }}
+{{- $placeHolder := "#-hugo-placeholder-#" }}
 
-{{- /* Render. */ -}}
-{{- $code := "" -}}
-{{- with $config -}}
-  {{- $file = $file | default "config" -}}
-  {{- $sections := (split . ".") -}}
-  {{- $configSection := index $.Site.Data.docs.config $sections -}}
-  {{- $code = dict $sections $configSection -}}
-  {{- if $skipHeader -}}
-    {{- $code = $configSection -}}
-  {{- end -}}
-{{- else -}}
-  {{- $code = $.Inner -}}
+{{- /* Render. */}}
+{{- $code := "" }}
+{{- with $config }}
+  {{- $file = $file | default "config" }}
+  {{- $sections := (split . ".") }}
+  {{- $configSection := index $.Site.Data.docs.config $sections }}
+  {{- $code = dict $sections $configSection }}
+  {{- if $skipHeader }}
+    {{- $code = $configSection }}
+  {{- end }}
+{{- else }}
+  {{- $code = $.Inner }}
 {{- end }}
 <div class="code relative" {{ with $file }}id="{{ . | urlize }}"{{ end }}>
   <div class="code-nav flex flex-nowrap items-stretch">
     {{- with $file }}
       <div class="san-serif f6 dib lh-solid pl2 pv2 mr2">
-        {{- . -}}{{- if not $fm -}}.{{- end -}}
+        {{ . }}{{ if not $fm }}.{{ end }}
       </div>
-    {{- end -}}
+    {{- end }}
     {{- range $langs }}
       <button data-toggle-tab="{{ . }}" class="tab-button {{ cond (eq . "yaml") "active" "" }} ba san-serif f6 dib lh-solid ph2 pv2">
         {{ . }}
@@ -92,17 +71,17 @@ Renders syntax-highlighted configuration data in JSON, TOML, and YAML formats.
   <div class="tab-content">
     {{- range $langs }}
       <div data-pane="{{ . }}" class="code-copy-content nt3 tab-pane {{ cond (eq . "yaml") "active" "" }}">
-        {{- $hCode := $code | transform.Remarshal . -}}
-        {{- if and $fm (in (slice "toml" "yaml") .) -}}
-          {{- $hCode = printf "%s\n%s\n%s" $placeHolder $hCode $placeHolder -}}
-        {{- end -}}
+        {{- $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 }}
       </div>
       {{- if $copy }}
         <button class="needs-js copy copy-toggle bg-accent-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2" title="Copy this code to your clipboard." data-clipboard-action="copy" aria-label="copy button"></button>
-        {{- /* Functionality located within filesaver.js The copy here is located in the css with .copy class so it can be replaced with JS on success */ -}}
-      {{- end -}}
+        {{- /* Functionality located within filesaver.js The copy here is located in the css with .copy class so it can be replaced with JS on success */}}
+      {{- end }}
     {{- end }}
   </div>
 </div>
index 0ee25149d1c651e33720fa5492d6338116bc17fc..31ca27596fb274a182e733da370b5f0503006ca0 100644 (file)
@@ -1,26 +1,39 @@
-{{ $file := .Get "file" }}
-{{ $codeLang := "" }}
-{{ $suffix := findRE "(\\.[^.]+)$" $file 1 }}
-{{ with $suffix }}
-{{ $codeLang = (index . 0 | strings.TrimPrefix ".") }}
-{{ end }}
-{{ with .Get "codeLang" }}{{ $codeLang = . }}{{ end }}
-{{ if eq $codeLang "html" }}
-{{ $codeLang = "go-html-template" }}
-{{ end }}
-<div class="code relative" id="{{ $file | urlize }}">
-       {{- with $file -}}
-               <div class="filename san-serif f6 dib lh-solid pl2 pv2">{{ . }}</div>
-       {{- end -}}
+{{- /*
+Renders syntax highlighted code.
+
+@param {bool} [copy=true] If true, display a copy to clipboard button.
+@param {string} [file] The file name to display above the rendered code.
+@param {string} [lang] The code language of the inner content.
+
+@returns {template.HTML}
+*/}}
 
-       {{ if ne (.Get "copy") "false" }}
-               <button class="needs-js copy bg-accent-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2" title="Copy this code to your clipboard." data-clipboard-action="copy" aria-label="copy button">
-               </button>
-               {{/* 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 }}
-       <div class="code-copy-content nt3" {{ with .Get "download" }}id="{{ . }}"{{ end }}>
-               {{ $inner := trim .Inner "\n" | safeHTML }}
-               {{ if .Get "nocode" }}{{ $inner }}{{ else }}{{ with $codeLang }}{{ highlight $inner . "" }}{{ else }}<pre><code>{{ $inner }}</code></pre>{{ end }}{{ end }}
-       </div>
+{{- /* Initialize. */}}
+{{- $copy := true }}
+{{- $file := "&nbsp;" }}
+{{- $lang := "" }}
 
+{{- /* Get parameters. */}}
+{{- $file = .Get "file" }}
+{{- $lang = or (.Get "lang") (path.Ext $file | strings.TrimPrefix ".") "text" }}
+{{- if in (slice "false" false 0) (.Get "copy") }}
+  {{- $copy = false }}
+{{- else if in (slice "true" true 1) (.Get "copy")}}
+  {{- $copy = true }}
+{{- end }}
+
+{{- /* Use the go-html-template Chroma lexer for HTML. */}}
+{{- if eq $lang "html" }}
+  {{- $lang = "go-html-template" }}
+{{- end }}
+
+{{- /* Render. */}}
+<div class="code relative" id="{{ $file | urlize }}">
+  <div class="f6 dib lh-solid pl2 pv2">{{ or $file "nbsp;" }}</div>
+  {{- if $copy }}
+    <button class="needs-js copy bg-accent-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2" title="Copy this code to your clipboard." data-clipboard-action="copy" aria-label="copy button"></button>
+  {{- end }}
+  <div class="code-copy-content nt3">
+    {{- highlight (trim .Inner "\n\r") $lang }}
+  </div>
 </div>
diff --git a/layouts/shortcodes/content-tree.html b/layouts/shortcodes/content-tree.html
deleted file mode 100644 (file)
index 0cb527c..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-<div class="code">
-    <pre><code>
-        ├── blog
-        │   ├── _index.md [section]
-        │   ├── first-post.md [page]
-        │   └── second-post
-        │       ├── index.md [page bundle]
-        │       └── photo.jpg [page resource]
-        └── tags
-            ├── _index.md [taxonomy]
-            └── funny
-                └── _index.md [term]
-    </code></pre>
-</div>
\ No newline at end of file
diff --git a/layouts/shortcodes/directoryindex.html b/layouts/shortcodes/directoryindex.html
deleted file mode 100644 (file)
index 37e7d3a..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-{{- $pathURL := .Get "pathURL" -}}
-{{- $path := .Get "path" -}}
-{{- $files := readDir $path -}}
-<table>
-    <th>Size in bytes</th>
-    <th>Name</th>
-{{- range $files }}
-    <tr>
-        <td>{{ .Size }}</td>
-        <td><a href="{{ $pathURL }}{{ .Name | relURL }}" target="_blank"> {{ .Name }}</a></td>
-    </tr>
-{{- end }}
-</table>
diff --git a/layouts/shortcodes/docfile.html b/layouts/shortcodes/docfile.html
deleted file mode 100644 (file)
index 2f982aa..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-{{ $file := .Get 0}}
-{{ $filepath := $file }}
-{{ $syntax := index (split $file ".") 1 }}
-{{ $syntaxoverride := eq (len .Params) 2 }}
-<div class="code-copy" id="{{$file | urlize}}">
-       <div class="code-copy-header"><div class="action-buttons"></div><span title="" class="filename">{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div>
-       <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet>
-                       <div class="copy-text"><i class="icon-clipboard"></i> COPY</div>
-       </button>
-       <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre>
-</div>
diff --git a/layouts/shortcodes/exfile.html b/layouts/shortcodes/exfile.html
deleted file mode 100644 (file)
index 2267829..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-{{ $file := .Get 0}}
-{{ $filepath := replace $file "static/" ""}}
-{{ $syntax := index (split $file ".") 1 }}
-{{ $syntaxoverride := eq (len .Params) 2 }}
-<div class="code-copy" id="{{$file | urlize}}">
-       <div class="code-copy-header examplesite"><div class="action-buttons"></div><span class="filename"><i class="icon-website"></i>{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div>
-       <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet>
-                       <div class="copy-text"><i class="icon-clipboard"></i> COPY</div>
-       </button>
-       <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre>
-       <a role="button" target="_blank" href="{{$.Site.Params.ghdocsrepo}}{{$file}}" title="See {{$filepath}} source on GitHub" class="tooltip see-on-github" data-tooltip="See {{$filepath}} source on GitHub">Source<i class="icon-github"></i></a>
-</div>
diff --git a/layouts/shortcodes/exfm.html b/layouts/shortcodes/exfm.html
deleted file mode 100644 (file)
index c0429bb..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<!-- Similar to exfile.html but *only* pulls the front matter from the example/content/*md -->
-{{ $file := .Get 0}}
-{{ $filepath := replace $file "static/" ""}}
-{{ $syntax := index (split $file ".") 1 }}
-{{ $syntaxoverride := eq (len .Params) 2 }}
-<div class="code-copy" id="{{$file | urlize}}">
-       <div class="code-copy-header examplesite"><div class="action-buttons"></div><span title="" class="filename">{{$filepath}}</span><i class="icon-{{$syntax}} input"></i></div>
-       <button class="copy-button" title="Copy to clipboard" data-clipboard-snippet>
-                       <div class="copy-text"><i class="icon-clipboard"></i> COPY</div>
-       </button>
-       <pre><code class="language-{{if $syntaxoverride}}{{.Get 1}}{{else}}{{$syntax}}{{end}}">{{- readFile $file -}}</code></pre>
-       <a role="button" target="_blank" href="{{$.Site.Params.ghdocsrepo}}{{$file}}" title="See {{$filepath}} on GitHub" class="see-on-github">Source<i class="icon-github"></i></a>
-</div>
\ No newline at end of file
diff --git a/layouts/shortcodes/gh.html b/layouts/shortcodes/gh.html
deleted file mode 100644 (file)
index 981f4b8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ range .Params }}
-       {{   if eq (substr . 0 1) "@" }}
-       <a href="//github.com/{{ substr . 1 }}">{{ . }}</a>
-       {{   else if eq (substr . 0 2) "0x" }}
-       <a href="//github.com/gohugoio/hugo/commit/{{ substr . 2 }}">{{ substr . 2 6 }}</a>
-       {{   else }}
-       <a href="//github.com/gohugoio/hugo/issues/{{ . }}">#{{ . }}</a>
-       {{ end }}
-{{ end }}
diff --git a/layouts/shortcodes/ghrepo.html b/layouts/shortcodes/ghrepo.html
deleted file mode 100644 (file)
index e9df40d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<a href="{{$.Site.Params.ghrepo}}" target="_blank">GitHub repository</a>
\ No newline at end of file
diff --git a/layouts/shortcodes/nohighlight.html b/layouts/shortcodes/nohighlight.html
deleted file mode 100644 (file)
index 238234f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<pre><code class="hljs nohighlight">{{ .Inner }}</code></pre>
\ No newline at end of file
diff --git a/layouts/shortcodes/note.html b/layouts/shortcodes/note.html
deleted file mode 100644 (file)
index 24d2cd0..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-<aside class="admonition note">
-       <div class="note-icon">
-               {{partial "svg/exclamation.svg" (dict "size" "20px" ) }}
-       </div>
-       <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}note{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Note{{end}}</h2> -->
-       <!-- <h3>Note</h3> -->
-       <div class="admonition-content">{{- .Inner -}}</div>
-</aside>
diff --git a/layouts/shortcodes/output.html b/layouts/shortcodes/output.html
deleted file mode 100644 (file)
index e51d284..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-{{$file := .Get "file"}}
-{{$icon := index (split $file ".") 1 }}
-<div class="code" id="{{$file | urlize}}">
-       <div class="filename" title="{{$file}}">{{$file}}</div>
-       <div class="code-copy-content output-content">
-       <pre><code>{{- .Inner | string -}}</code></pre>
-       </div>
-</div>
\ No newline at end of file
diff --git a/layouts/shortcodes/tip.html b/layouts/shortcodes/tip.html
deleted file mode 100644 (file)
index 139e337..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-<aside class="admonition tip">
-       <div class="tip-icon">
-               {{partial "svg/exclamation.svg" .}}
-       </div>
-       <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}tip{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Tip{{end}}</h2> -->
-       <!-- <h3>Tip</h3> -->
-       <div class="admonition-content">{{- .Inner -}}</div>
-</aside>
diff --git a/layouts/shortcodes/warning.html b/layouts/shortcodes/warning.html
deleted file mode 100644 (file)
index c9147be..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-{{ $_hugo_config := `{ "version": 1 }` }}
-<aside class="admonition warning">
-       <div class="admonition-icon">
-               {{partial "svg/exclamation.svg" .}}
-       </div>
-       <!-- <h2 id="{{if .Get 0}}{{.Get 0 | urlize}}{{else}}warning{{end}}">{{if .Get 0}}{{.Get 0 | markdownify}}{{else}}Warning{{end}}</h2> -->
-       <!-- <h3>Warning</h3> -->
-       <div class="admonition-content">{{- .Inner -}}</div>
-</aside>
diff --git a/layouts/shortcodes/yt.html b/layouts/shortcodes/yt.html
deleted file mode 100644 (file)
index 6915cec..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<div class="video-wrapper" data-streaming="youtube" data-videoid="{{.Get "id"}}" >
-       <i class="icon-video-play-button shortcode"></i>
-       {{if (.Get "thumbnail")}}
-       <div style="background-image:url(/images/thumbnails/{{.Get "thumbnail"}})" alt="YouTube Thumbnail" class="video-thumbnail"></div>
-       {{else}}
-       <div style="background-image:url(//img.youtube.com/vi/{{.Get "id"}}/0.jpg)" alt="YouTube Thumbnail" class="video-thumbnail"></div>
-       {{end}}
-</div>
-{{ if (.Get "description") }}
-<div class="video-description">{{ .Get "description" | markdownify }}</div>
-{{ end }}
\ No newline at end of file
index d99f6d223bc9600fe34588de6ef047de0a70c75a..a07e29a94c089e208d1de03f3f7c6930df90f8d8 100644 (file)
@@ -3,7 +3,7 @@ publish = "public"
 command = "hugo --gc --minify"
 
 [context.production.environment]
-HUGO_VERSION = "0.110.0"
+HUGO_VERSION = "0.111.3"
 HUGO_ENV = "production"
 HUGO_ENABLEGITINFO = "true"
 
@@ -11,20 +11,20 @@ HUGO_ENABLEGITINFO = "true"
 command = "hugo --gc --minify --enableGitInfo"
 
 [context.split1.environment]
-HUGO_VERSION = "0.110.0"
+HUGO_VERSION = "0.111.3"
 HUGO_ENV = "production"
 
 [context.deploy-preview]
 command = "hugo --gc --minify --buildFuture -b $DEPLOY_PRIME_URL"
 
 [context.deploy-preview.environment]
-HUGO_VERSION = "0.110.0"
+HUGO_VERSION = "0.111.3"
 
 [context.branch-deploy]
 command = "hugo --gc --minify -b $DEPLOY_PRIME_URL"
 
 [context.branch-deploy.environment]
-HUGO_VERSION = "0.110.0"
+HUGO_VERSION = "0.111.3"
 
 [context.next.environment]
 HUGO_ENABLEGITINFO = "true"
diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png b/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png
deleted file mode 100644 (file)
index cc909af..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-server.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png b/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png
deleted file mode 100644 (file)
index 2cbc45e..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-nanobox/hugo-with-nanobox.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-deploy-dry-run.png b/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-deploy-dry-run.png
deleted file mode 100644 (file)
index 4dd7ebc..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-deploy-dry-run.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png b/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png
deleted file mode 100644 (file)
index 29a31e2..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-nanobox/nanobox-run.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png b/static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png
deleted file mode 100644 (file)
index 19ec945..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/adding-a-github-pages-step.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png b/static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png
deleted file mode 100644 (file)
index 785fc12..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/adding-the-project-to-github.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png b/static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png
deleted file mode 100644 (file)
index 98eecb2..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/and-we-ve-got-an-app.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png b/static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png
deleted file mode 100644 (file)
index 26ec223..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/configure-the-deploy-step.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png b/static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png
deleted file mode 100644 (file)
index b9e53d0..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/creating-a-basic-hugo-site.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png b/static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png
deleted file mode 100644 (file)
index 439b224..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/public-or-not.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png b/static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png
deleted file mode 100644 (file)
index 754eab9..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/using-hugo-build.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png
deleted file mode 100644 (file)
index 1704884..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-access.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png
deleted file mode 100644 (file)
index d93505a..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-account-settings.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png
deleted file mode 100644 (file)
index dc854b4..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-add-app.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png
deleted file mode 100644 (file)
index 2359fb3..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-git-connections.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png
deleted file mode 100644 (file)
index 40abf82..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-search.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png
deleted file mode 100644 (file)
index d44a70d..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-owner.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png
deleted file mode 100644 (file)
index 45c395f..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-select-repository.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png
deleted file mode 100644 (file)
index 41b8203..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up-page.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png b/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png
deleted file mode 100644 (file)
index c2de857..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/wercker-sign-up.png and /dev/null differ
diff --git a/static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png b/static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png
deleted file mode 100644 (file)
index ee6054d..0000000
Binary files a/static/images/hosting-and-deployment/deployment-with-wercker/werckeryml.png and /dev/null differ
diff --git a/static/images/site-hierarchy.svg b/static/images/site-hierarchy.svg
deleted file mode 100644 (file)
index 3c74487..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<svg height="446" viewBox="0 0 1730 446" width="1730" xmlns="http://www.w3.org/2000/svg"><g fill="none" fill-rule="evenodd" transform="translate(.538462 .461538)"><g transform="translate(2.996935 .388277)"><path d="m64.0494614 5.00059856 58.8489506 34.18916364v67.3333318l-58.8489506 33.404195-58.75248965-33.404195v-67.3333318z" fill="#ff4088"/><path d="m126.283637 35.8185172 1.230228 2.1375217v69.8133611l-1.253295 2.152899-60.9934622 34.621142h-2.4387878l-60.89490434-34.623239-1.25189712-2.1522v-69.8112641l1.22883034-2.1368227 60.89280732-35.43476985h2.4891154zm-116.37121203 6.0253228v61.994421l54.13913343 30.780872 54.2320996-30.782969v-61.990227l-54.2320996-31.5064271z" fill="#c9177e"/></g><path d="m60.4490685 78.3838073h-16.0432056v-32.93617h-27.9340521v32.93617h-16.04320555v-77.90259702h16.04320555v32.56189542h27.9340521v-32.56189542h16.0432056z" fill="#fff" fill-rule="nonzero" transform="translate(35.169824 33.865851)"/><g transform="translate(329.992265 24.431705)"><path d="m.21765.21067h263.332986v115.673517h-263.332986z" fill="#0083c0"/><path d="m263.550636 115.884187h-263.33298624v-115.6735171h263.33298624zm-260.79463916-113.13482905v110.59614105h258.25629216v-110.59614105z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(352.419436 42.870159)"><path d="m22.7288949.05688029h3.6312065v31.52968501h-3.6312065v-14.4804699h-18.90904412v14.4804699h-3.58685032v-31.52968501h3.58685032v13.99359541h18.90904412z"/><path d="m37.3865286 30.4794869c-1.5939528-.9445259-2.826533-2.2879966-3.6974799-4.0296294-.8709468-1.7418937-1.3064203-3.7788866-1.3064203-6.1112394 0-2.332092.4354735-4.3693457 1.3064203-6.1109785.8709469-1.7418937 2.1035271-3.0851036 3.6974799-4.0298904 1.5942137-.94478689 3.4394312-1.41704986 5.5356526-1.41704986 2.0959605 0 3.941178.47226297 5.5353917 1.41704986 1.5942137.9447868 2.826533 2.2879967 3.6974799 4.0298904.8709468 1.7416328 1.3064203 3.7788865 1.3064203 6.1109785 0 2.3323528-.4354735 4.3693457-1.3064203 6.1112394-.8709469 1.7416328-2.1032662 3.0851035-3.6974799 4.0296294-1.5942137.9447869-3.4394312 1.4170499-5.5353917 1.4170499-2.0962214 0-3.9414389-.472263-5.5356526-1.4170499zm10.6280042-3.741836c1.1809184-1.461406 1.7713776-3.594417 1.7713776-6.3990328 0-2.7159035-.6050707-4.8194306-1.8154728-6.3103205-1.2104022-1.4908898-2.8933283-2.2363347-5.0482564-2.2363347-2.1846728 0-3.8822104.7454449-5.0926125 2.2363347-1.2104022 1.4908899-1.8157337 3.594417-1.8157337 6.3103205 0 2.8046158.5977649 4.9376268 1.7935556 6.3990328 1.1955298 1.461406 2.9006339 2.1919786 5.1147906 2.1919786s3.9116942-.7305726 5.0923516-2.1919786z"/><path d="m91.1464927 17.5929699v13.9935954h-3.5868503v-13.8164316c0-2.0959605-.3616334-3.6163341-1.0849002-4.561121-.7232669-.9447869-1.8968795-1.4170498-3.520577-1.4170498-1.8893128 0-3.3655912.6348153-4.4283133 1.9041851-1.0627222 1.2693698-1.5942137 2.9966521-1.5942137 5.181064v12.7093533h-3.5868503v-13.8164316c0-2.0664767-.3692001-3.5795446-1.1070784-4.5389429-.7381392-.9593983-1.9190575-1.4392279-3.542755-1.4392279-1.8893128 0-3.3728969.6348153-4.4504915 1.9041851-1.0775945 1.2693698-1.6163917 2.9966521-1.6163917 5.181064v12.7093533h-3.5868504v-16.0305883c0-2.3026081-.1181962-4.3839571-.3543276-6.24378613h3.4099473l.3540668 3.89682183c.619943-1.4170498 1.5425518-2.5092558 2.7678263-3.27687883 1.2252746-.76762302 2.6496301-1.15143453 4.2733276-1.15143453 1.7713775 0 3.2179112.35432769 4.3398619 1.06272215 1.1216898.70865541 1.9482805 1.80086131 2.479772 3.27713971.6789106-1.3285983 1.6753594-2.3840148 2.9890854-3.16624924 1.313726-.78249538 2.7973101-1.17361262 4.4504915-1.17361262 4.930321 0 7.3952206 2.93742346 7.3952206 8.81227056z"/><path d="m116.609555 20.3386181h-16.340559c.029483 2.8340996.686477 4.9744163 1.970458 6.4212109 1.284242 1.4465336 3.151638 2.1698005 5.601926 2.1698005 2.597968 0 4.989289-.8709469 7.173962-2.6128406l1.19553 2.6128406c-.974271.915303-2.221463 1.6385698-3.741837 2.1698004-1.520373.5314916-3.077797.7971069-4.672011.7971069-3.483526 0-6.214302-1.0259326-8.1923275-3.0775369-1.9780252-2.0518652-2.9669073-4.8637868-2.9669073-8.4360256 0-2.2731244.4427791-4.2882 1.3283374-6.0447052.8858192-1.7565051 2.1257054-3.121893 3.7199194-4.0961637 1.594213-.97427072 3.409686-1.46140606 5.44694-1.46140606 2.952035 0 5.269515.96696496 6.952441 2.90063396 1.682665 1.933669 2.524128 4.5979105 2.524128 7.9929856zm-13.971417-7.0852492c-1.166046 1.1216898-1.911491 2.701292-2.236335 4.7382848h12.974969c-.177164-2.0959604-.789801-3.6901741-1.837651-4.782641-1.048111-1.092206-2.50195-1.6385699-4.36204-1.6385699-1.859829 0-3.372897.5609754-4.538943 1.6829261z"/><path d="m138.352699 10.2421054c1.505502.9742707 2.671548 2.3396586 3.498399 4.0961637.826591 1.7565052 1.239886 3.7861923 1.239886 6.0890613 0 2.3026082-.413295 4.3174229-1.239886 6.0444443-.826851 1.7272822-1.985592 3.0631863-3.476221 4.0077122-1.49089.9447869-3.225478 1.4170499-5.203503 1.4170499-1.741632 0-3.262006-.3838115-4.561121-1.1511736-1.298853-.767623-2.287996-1.8600899-2.966907-3.2771398v13.683624h-3.587111v-25.5958704c0-2.3026081-.117936-4.3839571-.354067-6.24378613h3.409686l.354328 4.29550573c.619943-1.5352461 1.60152-2.7234701 2.944729-3.5649332 1.343471-.841463 2.930118-1.26206406 4.760463-1.26206406 1.948542 0 3.675563.48713534 5.181325 1.46140606zm-.774929 16.4733674c1.19553-1.4760175 1.793295-3.5722389 1.793295-6.2881424 0-2.7161643-.60507-4.8343029-1.815473-6.3546766-1.210402-1.5203736-2.893328-2.2806909-5.048256-2.2806909-2.214418 0-3.911694.7381392-5.092613 2.2141566-1.180918 1.4760175-1.771377 3.5868504-1.771377 6.3324986s.590459 4.8637867 1.771377 6.3546766c1.180919 1.4908898 2.878195 2.2363348 5.092613 2.2363348 2.184412 0 3.874644-.7381392 5.070434-2.2141567z"/><path d="m168.243032 9.31219087v22.27437443h-3.540668v-4.0296295c-.649688 1.387566-1.633352 2.4575939-2.945773 3.2103445-1.313987.7530116-2.841666 1.1292565-4.58356 1.1292565-1.978025 0-3.712352-.472263-5.203242-1.4170499-1.49089-.9445259-2.642325-2.28043-3.454043-4.0077122-.811979-1.7270214-1.217969-3.7418361-1.217969-6.0444443 0-2.302869.413296-4.3325561 1.239886-6.0890613.826852-1.7565051 1.985592-3.121893 3.476221-4.0961637 1.49089-.97427072 3.210606-1.46140606 5.159147-1.46140606 1.741894 0 3.262267.38381151 4.560077 1.15143453 1.299376.76762303 2.288258 1.84521753 2.969256 3.23252263v-3.85246563zm-5.312307 17.38110383c1.179353-1.4908899 1.771639-3.6090284 1.771639-6.3546766s-.592286-4.8564811-1.771639-6.3324986c-1.181962-1.4760174-2.864627-2.2141566-5.0493-2.2141566-2.184412 0-3.889516.7603173-5.114529 2.2806909-1.225275 1.5203737-1.837912 3.6385123-1.837912 6.3546766 0 2.7159035.605331 4.8121249 1.815734 6.2881424 1.210402 1.4760175 2.922551 2.2141567 5.136707 2.2141567 2.184673 0 3.867338-.745445 5.0493-2.2363348z"/><path d="m195.034171 9.31219087v22.09721053c0 3.3066236-.847986 5.8085737-2.543958 7.5061112-1.698581 1.6975375-4.200792 2.5463063-7.506633 2.5463063-3.394553 0-6.319453-.7676231-8.76948-2.3028691l.620987-2.9225511c1.416789.7971068 2.752693 1.3726936 4.007712 1.7270213s2.63528.5314915 4.140781.5314915c2.155189 0 3.778104-.568281 4.871353-1.7051041 1.090641-1.1365622 1.63857-2.826533 1.63857-5.0704345v-5.2695154c-.680998 1.4170498-1.675098 2.5165615-2.990129 3.2990569-1.315031.7822345-2.870106 1.1733517-4.670446 1.1733517-1.949063 0-3.684173-.4573906-5.205329-1.3726936-1.518548-.9150422-2.692682-2.2141567-3.519795-3.8968219-.827112-1.682926-1.239364-3.616595-1.239364-5.8012679 0-2.1846728.412252-4.1183418 1.239364-5.801007.827113-1.682926 2.001247-2.9817797 3.519795-3.8970827 1.521156-.91504214 3.256266-1.37269366 5.205329-1.37269366 1.769029 0 3.313668.38381151 4.62609 1.15143453 1.31503.76762303 2.309131 1.84521753 2.990129 3.23252263v-3.85246563zm-5.424501 16.45118933c1.226318-1.4319222 1.839477-3.4023808 1.839477-5.9118975 0-2.5092558-.613159-4.4799752-1.839477-5.9116365-1.223709-1.4319222-2.914463-2.1478833-5.069652-2.1478833-2.18389 0-3.903345.7159611-5.158364 2.1478833-1.255019 1.4316613-1.881224 3.4023807-1.881224 5.9116365 0 2.5095167.626205 4.4799753 1.881224 5.9118975s2.974474 2.1476224 5.158364 2.1476224c2.155189 0 3.845943-.7157002 5.069652-2.1476224z"/><path d="m220.585946 20.3386181h-16.338733c.028701 2.8340996.686216 4.9744163 1.969936 6.4212109 1.283721 1.4465336 3.151899 2.1698005 5.601926 2.1698005 2.598751 0 4.988767-.8709469 7.172657-2.6128406l1.195008 2.6128406c-.973227.915303-2.220419 1.6385698-3.741575 2.1698004-1.518547.5314916-3.076232.7971069-4.670446.7971069-3.483266 0-6.215085-1.0259326-8.192849-3.0775369-1.977765-2.0518652-2.966647-4.8637868-2.966647-8.4360256 0-2.2731244.443562-4.2882 1.328077-6.0447052.887124-1.7565051 2.126488-3.121893 3.720701-4.0961637 1.594214-.97427072 3.410209-1.46140606 5.445375-1.46140606 2.953601 0 5.270559.96696496 6.953485 2.90063396s2.523085 4.5979105 2.523085 7.9929856zm-13.969591-7.0852492c-1.166307 1.1216898-1.912535 2.701292-2.236074 4.7382848h12.972881c-.177424-2.0959604-.787974-3.6901741-1.836868-4.782641-1.048893-1.092206-2.502211-1.6385699-4.362562-1.6385699-1.86035 0-3.37107.5609754-4.537377 1.6829261z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(347.017193 95.746626)"><path d="m.13103057 17.5444886 1.30960428-16.95274668h3.09535177l-1.16678937 14.42893518h7.92875255l-.1903731 2.5238115z"/><path d="m13.2028032 17.5444886.9524268-12.02408921h2.9762458l-.9524267 12.02408921zm1.1904984-17.47658839h3.3095741l-.2142224 2.92868762h-3.3095741z"/><path d="m18.7267099 16.2111754 1.0238341-2.0715176c1.3493063.936574 2.7858728 1.404861 4.3096994 1.404861 1.5396794 0 2.3095892-.4444378 2.3095892-1.3334535 0-.412592-.202438-.7261395-.6071738-.9405021-.4047358-.2142224-1.0516115-.4563624-1.940487-.7261395-.8413173-.2380716-1.5398197-.4762835-2.0953669-.7143551-.5555471-.2380716-1.0277622-.5833245-1.4166453-1.0357588-.388883-.452294-.5833245-1.04361503-.5833245-1.77382287 0-1.14279984.4602905-2.06352109 1.3808714-2.76188318.9207213-.69850237 2.1429251-1.04768342 3.6667517-1.04768342.8890158 0 1.7461858.13495869 2.5715101.40473576.8254645.26991737 1.5159704.64294766 2.0715176 1.11909088l-.999985 2.0238191c-1.1904983-.90472823-2.4206986-1.35716248-3.6906009-1.35716248-.7460606 0-1.3174605.11910595-1.71434.35717755-.3968796.23807161-.5952492.58725266-.5952492 1.04768343 0 .42858501.202438.74998869.6071738.96421105.4047358.21436265 1.0594677.45636238 1.9643363.72627978.8730227.2539243 1.5793813.4960643 2.1190758.7261394.5396944.2302154 1.0040533.5754683 1.3929363 1.0357588.388883.4604308.5833246 1.0556799.5833246 1.7857475 0 1.1587929-.4602905 2.0635211-1.3810118 2.714325-.9207212.6508038-2.1587778.9762759-3.7143099.9762759-1.9525519 0-3.7064536-.5079889-5.262126-1.5238266z"/><path d="m35.3699775 13.1396729c-.1111094 1.4127172.4841397 2.1190758 1.7857475 2.1190758.3651741 0 .7777661-.0555547 1.2381968-.1666642l-.1905134 2.3334385c-.5238417.1903731-1.1746456.2856298-1.9524116.2856298-1.2540496 0-2.2143325-.3294002-2.8809891-.9880603-.6667969-.6588004-1.0001253-1.6151552-1.0001253-2.8690645 0-.2382119.0079966-.4207288.0238493-.547691l.428585-5.54775586h-2.3095892l.1905134-2.23818175h2.28574l.2380716-2.92854732 3.0476532-1.00012522-.309479 3.92867254h3.2143174l-.1903731 2.23818175h-3.1906085z"/><path d="m39.5605709 16.2111754 1.0238342-2.0715176c1.349166.936574 2.7857324 1.404861 4.309559 1.404861 1.5398197 0 2.3095893-.4444378 2.3095893-1.3334535 0-.412592-.2022978-.7261395-.6071738-.9405021-.4047358-.2142224-1.0516116-.4563624-1.9404871-.7261395-.8413172-.2380716-1.5396793-.4762835-2.0952265-.7143551s-1.0279026-.5833245-1.4167856-1.0357588c-.388883-.452294-.5833246-1.04361503-.5833246-1.77382287 0-1.14279984.4602905-2.06352109 1.3810118-2.76188318.9207212-.69850237 2.142925-1.04768342 3.6667517-1.04768342.8888754 0 1.7460455.13495869 2.57151.40473576.8253243.26991737 1.5158301.64294766 2.0715176 1.11909088l-1.0001252 2.0238191c-1.1904983-.90472823-2.4206986-1.35716248-3.6904606-1.35716248-.7460606 0-1.3176008.11910595-1.7143401.35717755-.3968795.23807161-.5952492.58725266-.5952492 1.04768343 0 .42858501.2022978.74998869.6071738.96421105.4047358.21436265 1.0594678.45636238 1.964196.72627978.8731631.2539243 1.5795217.4960643 2.1192161.7261394.5396945.2302154 1.003913.5754683 1.3927961 1.0357588.388883.4604308.5833245 1.0556799.5833245 1.7857475 0 1.1587929-.4602905 2.0635211-1.3808714 2.714325-.9207213.6508038-2.1587778.9762759-3.7144502.9762759-1.9524117 0-3.7064537-.5079889-5.2619858-1.5238266z"/><path d="m58.3943218 15.592077.7380641-1.4999774c.8413173.7142148 1.6984873 1.2222038 2.57151 1.5238266.8730228.3016229 1.8890008.4524343 3.0476533.4524343 1.365159 0 2.4167706-.2659893 3.1548346-.7976872.7382044-.5318382 1.1071663-1.2818269 1.1071663-2.2501064 0-.5713999-.1784485-1.0357588-.5356261-1.392796-.3571775-.3571776-.8254645-.6390196-1.4048609-.8452454-.5793965-.2063662-1.3532344-.4207288-2.3215139-.6429477-1.3016077-.2857701-2.3730001-.59524916-3.2143174-.92857747s-1.5238266-.81353993-2.0476684-1.44049456c-.5238417-.62695464-.7857625-1.44849108-.7857625-2.46432874 0-.96827945.2540646-1.82152136.7619133-2.55958543.507989-.73820436 1.2262722-1.31353239 2.1548497-1.72626467.9285774-.41273227 2.0120347-.61909841 3.2500913-.61909841 1.1746456 0 2.2698872.18265718 3.2857249.54769096 1.0159779.36503378 1.8731479.896872 2.57151 1.59523409l-.7619133 1.50011768c-.7936188-.68264964-1.5991622-1.18264211-2.4166302-1.50011768-.8174681-.31747557-1.710412-.47614322-2.6786914-.47614322-1.3174605 0-2.3492912.28170171-3.0953518.8452454s-1.1190909 1.33738164-1.1190909 2.32151383c0 .85717002.3254721 1.49997739.976276 1.9285624s1.6507888.8016153 3.0000951 1.11909087c1.4602754.34918105 2.6071436.67058473 3.4404644.96435135.833461.29362633 1.527895.73806407 2.0834422 1.3333132.5555472.5952492.8333208 1.3849399.8333208 2.3690721 0 .9524267-.2539244 1.7896756-.7619133 2.5120272-.507989.7222113-1.2341285 1.2816866-2.1785587 1.6785662-.9445705.3968795-2.0517367.5952491-3.3214987.5952491-2.6509141 0-4.7619934-.7143551-6.3335185-2.142925z"/><path d="m83.9663269 11.4967403h-8.7859225c.0158527 1.5238266.3691021 2.674623 1.059608 3.4525293.6905059.7777661 1.6944189 1.1666491 3.0118794 1.1666491 1.3968645 0 2.6826195-.468287 3.8572651-1.404861l.6429477 1.404861c-.5238417.4921362-1.1945668.8810193-2.0120348 1.1666491-.817468.2857701-1.6547169.428585-2.5118869.428585-1.873148 0-3.3414199-.5516191-4.4049561-1.6547169-1.0635361-1.1032382-1.5952341-2.6151402-1.5952341-4.5358464 0-1.2222038.2380716-2.30566106.7143551-3.25009127.4761433-.94443021 1.1427999-1.67856617 1.9999699-2.20240788s1.833446-.78576257 2.9286876-.78576257c1.5872376 0 2.8334309.5199136 3.7381591 1.55960051.9047283 1.03968691 1.3571625 2.47218496 1.3571625 4.29763441zm-7.5120921-3.80956661c-.6269547.60310539-1.0277623 1.45241918-1.202423 2.54766081h6.9763258c-.0951164-1.1269471-.4245166-1.98411712-.9880603-2.57151006-.5635437-.58725265-1.3452378-.88101927-2.345363-.88101927-.999985 0-1.8135249.30162284-2.4404795.90486852z"/><path d="m88.8830598 16.9492395c-.8650263-.5078487-1.5316829-1.2261319-1.9999699-2.1548497-.468287-.9285775-.7024305-2.0118945-.7024305-3.249951 0-1.2381968.2380716-2.32951036.7143551-3.27394057.4761433-.94443021 1.1547245-1.67856617 2.0357438-2.20240788.8808789-.52384171 1.9087815-.78576257 3.0834271-.78576257.8094715 0 1.591306.1388868 2.3452228.41666039.7540571.27777359 1.3770836.66272851 1.8690796 1.15486475l-.6428074 1.42856993c-.6032457-.4762835-1.1865702-.82546455-1.7501139-1.04768342s-1.1388717-.33332831-1.7262647-.33332831c-1.2222038 0-2.1824867.40880417-2.8809891 1.2262722-.6983621.81746804-1.0475431 1.95633978-1.0475431 3.41675548 0 1.4444227.3452529 2.5674416 1.0356185 3.3690569.6905059.8016153 1.6548572 1.202423 2.8929137 1.202423.587393 0 1.162721-.1111094 1.7262647-.3333283s1.1468682-.5713999 1.7501139-1.0476834l.6428074 1.4285699c-.507989.4762835-1.1468683.8532419-1.9166378 1.1310155-.7699098.2777736-1.567597.4166604-2.3929213.4166604-1.1587928 0-2.1707024-.2539244-3.0358689-.7619133z"/><path d="m101.276251 7.09192453v6.54774077c0 .8888755.182517 1.511902.547691 1.8690796.365034.3571776.880879.5357663 1.547536.5357663.444437 0 .873023-.0714074 1.285755-.2143626v1.6429326c-.491996.1588079-1.047543.2380716-1.666642.2380716-1.14294 0-2.035743-.3214037-2.678691-.9642111-.6428075-.6429476-.9642112-1.591306-.9642112-2.8453555v-6.80966167h-2.3334385v-1.52382664h2.3334385v-3.07150253l1.9285622-.69050586v3.76200839h3.42868v1.52382664z"/><path d="m107.038229 17.5444886v-11.97639071h1.928703v11.97639071zm-.190373-17.04800338h2.357148v2.19062355h-2.357148z"/><path d="m114.681352 16.9492395c-.85717-.5078487-1.519898-1.2302003-1.988185-2.166634-.468287-.936574-.702431-2.0318157-.702431-3.2858652 0-1.2539093.234144-2.3492912.702431-3.2857249.468287-.93657398 1.131015-1.65878532 1.988185-2.1667743.85717-.50798897 1.849159-.76191332 2.976246-.76191332 1.126947 0 2.119076.25392435 2.976246.76191332.85717.50798898 1.519898 1.23020032 1.988185 2.1667743.468147.9364337.702291 2.0318156.702291 3.2857249 0 1.2540495-.234144 2.3492912-.702291 3.2858652-.468287.9364337-1.131015 1.6587853-1.988185 2.166634-.85717.5079889-1.849299.7619133-2.976246.7619133-1.127087 0-2.119076-.2539244-2.976246-.7619133zm5.71442-2.0118945c.634951-.7857626.952287-1.9326308.952287-3.4406047 0-1.4602754-.325332-2.59129092-.976136-3.39290622-.650804-.80161531-1.555532-1.20242296-2.714325-1.20242296-1.174646 0-2.08737.40080765-2.738174 1.20242296-.650804.8016153-.976276 1.93263082-.976276 3.39290622 0 1.5079739.321544 2.6548421.964351 3.4406047.642808.7857626 1.559601 1.1785737 2.750099 1.1785737s2.103223-.3928111 2.738174-1.1785737z"/><path d="m136.610315 10.0204719v7.5240167h-1.928563v-7.42876c0-1.11109441-.222219-1.92463434-.666656-2.44047953-.444438-.5158452-1.142941-.77383795-2.095367-.77383795-1.111095 0-1.99997.34132482-2.666627 1.02383418-.666656.68250935-1.000125 1.6032306-1.000125 2.7620235v6.8572198h-1.928562v-8.61925838c0-1.23805653-.063411-2.35714741-.190514-3.35713233h1.833446l.190514 2.14292505c.365033-.77790635.912724-1.37708362 1.642792-1.79767212.730208-.42072879 1.563529-.63102304 2.500102-.63102304 2.873133 0 4.30956 1.57938136 4.30956 4.73814412z"/><path d="m139.515153 16.1634769.642948-1.4285699c.650803.5079889 1.309464.8730227 1.97626 1.0952416.666517.2222189 1.412858.3333283 2.237761.3333283.904869 0 1.590885-.1547395 2.059453-.4642186s.702851-.7579852.702851-1.3452379c0-.4762835-.158527-.85717-.475582-1.1429401-.318457-.2857701-.841738-.507989-1.572647-.6666566l-2.022977-.4762835c-1.000406-.2222189-1.774104-.6189581-2.321795-1.1904983-.547691-.5713999-.821396-1.2539093-.821396-2.04766838 0-1.04754313.420588-1.90078504 1.261906-2.55958543.841317-.65866011 1.952832-.98806031 3.333283-.98806031.841738 0 1.635778.13495869 2.380716.40473577.746341.26991736 1.373436.65880039 1.881285 1.16678937l-.642527 1.40472069c-1.127929-.93657399-2.333018-1.40472069-3.619474-1.40472069-.85717 0-1.519338.16259575-1.987905.48806784-.468427.32533179-.702571.78169416-.702571 1.3690871 0 .49199596.146883.88101927.44051 1.16664909.294328.28577005.765701.50798895 1.416645.66665665l2.02438.4999924c1.111095.2540647 1.935998.6468758 2.476113 1.178714.540116.531698.809472 1.2261319.809472 2.083302 0 1.0318306-.420869 1.8571549-1.262607 2.4762533-.840336.6190984-1.983697.9285775-3.42868.9285775-2.015402 0-3.610776-.5158452-4.785422-1.5476759z"/><path d="m171.469076 17.5444886-1.857435-4.3572575h-8.857891l-1.881285 4.3572575h-2.022977l7.452188-16.95274668h1.71434l7.452189 16.95274668zm-10.025101-5.9763409h7.476038l-3.737318-8.71437478z"/><path d="m178.348883 15.0920845v1.7381893c0 .6666566-.110829 1.2777585-.332487 1.8333057-.22306.5555472-.596231 1.0952416-1.119511 1.6190833l-.904869-.6905058c.618678-.7142148.967999-1.3968645 1.047964-2.0476684h-1.143361v-2.4524041z"/><path d="m200.064324 10.2943173c.540116.7063586.809472 1.5834498.809472 2.6309929 0 1.4762685-.492417 2.6151402-1.475848 3.4167555-.984833.8016153-2.373701 1.2024229-4.166603 1.2024229h-7.048155v-16.95274668h6.809662c1.729772 0 3.07515.38495492 4.036134 1.15486475.959582.76976954 1.439373 1.86108306 1.439373 3.27380026 0 .90486851-.232881 1.68656268-.701449 2.34536307-.468567.65866011-1.12372 1.14686824-1.964055 1.46420352.967998.26991737 1.721354.75798521 2.261469 1.46434378zm-9.95215-2.1785586h4.570638c1.269622 0 2.230606-.25406463 2.88155-.76191332.650944-.50798897.976416-1.25404956.976416-2.23818175 0-1.93655891-1.286456-2.90483837-3.857966-2.90483837h-4.570638zm7.892698 7.0596579c.627095-.4999925.939941-1.2658339.939941-2.2976646 0-2.0793738-1.293471-3.11906071-3.880413-3.11906071h-4.952226v6.16671401h4.952226c1.332752 0 2.313377-.2499962 2.940472-.7499887z"/><path d="m206.064515 15.0920845v1.7381893c0 .6666566-.110829 1.2777585-.33389 1.8333057-.221658.5555472-.594828 1.0952416-1.118109 1.6190833l-.904868-.6905058c.618677-.7142148.967999-1.3968645 1.046561-2.0476684h-1.141958v-2.4524041z"/><path d="m218.957137 16.6873186c-1.182642-.6983621-2.090316-1.7024154-2.725828-3.0118794-.635513-1.3096043-.952567-2.853352-.952567-4.63110303 0-1.77789127.317054-3.31364253.952567-4.60725378.635512-1.29361125 1.543186-2.28966807 2.725828-2.98817045 1.182642-.69836209 2.575719-1.04768342 4.17923-1.04768342 1.174225 0 2.250247.17858878 3.226663.53576634.975013.35717755 1.82096.89294389 2.535035 1.60715871l-.737924 1.50011768c-.809471-.69850238-1.60772-1.19849484-2.393342-1.50011768s-1.654016-.45229397-2.606583-.45229397c-1.857435 0-3.29821.60310539-4.322325 1.80945645-1.022712 1.20635107-1.534769 2.92069111-1.534769 5.14302012 0 2.23818173.507848 3.96430613 1.523546 5.17865373 1.015697 1.2143476 2.460681 1.8215213 4.333548 1.8215213.952567 0 1.820961-.1508114 2.606583-.4524342.785622-.3016229 1.583871-.8016153 2.393342-1.4999774l.737924 1.4999774c-.714075.7143551-1.560022 1.2499811-2.535035 1.6071587-.976416.3571776-2.052438.5357663-3.226663.5357663-1.603511 0-2.996588-.349181-4.17923-1.0476834z"/></g><g transform="translate(.267895 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g transform="translate(.968438 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(97.321977 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(193.675515 362.150954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(329.309669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(425.663669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(523.997669 362.924954)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(660.171823 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(756.527208 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g transform="translate(852.877977 361.893877)"><path d="m.058374.14766h70.625927v81.076506h-70.625927z" fill="#00a88a"/><path d="m70.6843004 81.224166h-70.62592672v-81.07650576h70.62592672zm-68.08746821-78.53804774v75.99958964h65.54828551v-75.99958964z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(26.69736 242.51167)"><path d="m.00427353 31.0947909 1.49915514-3.0461739c1.70855821 1.4504369 3.44902547 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83592255.9188095 6.18921435.9188095 2.772098 0 4.9077245-.5401745 6.4068797-1.6199537 1.4988702-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3626805-2.1034326-1.0880414-2.8285086-.7253608-.7253609-1.6763642-1.2977293-2.8527252-1.7165355-1.1766459-.419091-2.7481662-.8544215-4.7145609-1.3057065-2.6433221-.5803457-4.8194048-1.2088399-6.52767811-1.8857674-1.70855822-.6769275-3.0948921-1.6521476-4.15843184-2.9253753-1.06382464-1.2732277-1.59573696-2.9416147-1.59573696-5.0045912 0-1.96639471.51567289-3.69916961 1.54730359-5.19803984 1.0316307-1.49915513 2.49004483-2.66753887 4.37609709-3.505721 1.88576735-.83818214 4.08578183-1.25727321 6.60004333-1.25727321 2.3854857 0 4.6097168.37094261 6.6729782 1.11225801 2.0629765.74131541 3.8037287 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6119764-1.38633388-3.2478846-2.40172515-4.9080094-3.04645873-1.6601249-.64473357-3.4735271-.96695791-5.4399217-.96695791-2.6755162 0-4.7706866.57208353-6.28579626 1.71653548-1.51510965 1.14445195-2.27266448 2.71597223-2.27266448 4.71456088 0 1.7407521.6606881 3.0461738 1.98234919 3.9165499 1.32166109.870376 3.35272854 1.6279309 6.09263255 2.2726645 2.9658314.7091214 5.2949065 1.3618322 6.9872253 1.9584174 1.6923188.5963002 3.1025845 1.4988702 4.230797 2.70771 1.1284974 1.2088399 1.6926037 2.8125541 1.6926037 4.8111427 0 1.9342007-.5159578 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5065691 2.602866-4.4245304 3.4088542s-4.1664091 1.2088399-6.7453434 1.2088399c-5.38322623 0-9.67071874-1.4507218-12.86219267-4.3518804z"/><path d="m51.9362381 22.7779272h-17.8425672c.0324789 3.0946072.7495776 5.4316596 2.151866 7.011442 1.4022884 1.5794975 3.4413331 2.3692463 6.1168493 2.3692463 2.8367707 0 5.4478989-.9510034 7.8330998-2.8530102l1.3057065 2.8530102c-1.0638246.9994368-2.4256569 1.7891855-4.0857817 2.3692463-1.6604098.5803457-3.3607058.8703761-5.101458.8703761-3.8037287 0-6.7855146-1.1202353-8.9453578-3.3604209-2.1598433-2.2404705-3.2399073-5.310861-3.2399073-9.2114564 0-2.4820676.4837638-4.6823669 1.4507217-6.6003282s2.3210979-3.4088543 4.06185-4.4726789c1.7404673-1.0638247 3.7231014-1.595737 5.9473325-1.595737 3.2236679 0 5.7541688 1.0558474 7.5915028 3.1672572 1.8376189 2.1114099 2.7561434 5.0205458 2.7561434 8.7276926zm-15.2553707-7.736518c-1.2735126 1.2247944-2.0874781 2.949592-2.4418964 5.1738231h14.1676144c-.1934486-2.288619-.8623989-4.0293711-2.0068508-5.2222565-1.1441671-1.1926004-2.7319268-1.7891855-4.7627093-1.7891855-2.0307826 0-3.6829302.6125397-4.9561579 1.8376189z"/><path d="m61.9214888 33.8509343c-1.7569916-1.0313458-3.1108466-2.4900448-4.06185-4.3760971-.9510034-1.8857673-1.4265051-4.0857818-1.4265051-6.6000433 0-2.5145464.4837639-4.7308002 1.4507218-6.6487615s2.3453145-3.4088543 4.1342152-4.4726789c1.7891855-1.0638247 3.8763787-1.595737 6.2618644-1.595737 1.6441703 0 3.2316451.2820531 4.7627093.8461594 1.5313491.5641063 2.7965995 1.3458778 3.7960363 2.3453145l-1.3057066 2.9011587c-1.2247943-.9672429-2.4097024-1.6763643-3.5538694-2.1276493-1.144452-.451285-2.3131206-.6769276-3.505721-.6769276-2.4820676 0-4.4325078.8302049-5.8507507 2.4903298-1.4185278 1.6601248-2.1276493 3.9729605-2.1276493 6.9387919 0 2.9333526.7011442 5.2139943 2.1034326 6.8419253 1.4022884 1.6279309 3.3604209 2.4418963 5.8749674 2.4418963 1.1926004 0 2.361269-.2256425 3.505721-.6769275 1.144167-.451285 2.3290751-1.1604065 3.5538694-2.1276493l1.3057066 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8926181 2.2968812-1.5635431.5641063-3.1832118.8461594-4.8595761.8461594-2.3532918 0-4.408291-.5156729-6.1649977-1.5473036z"/><path d="m87.0894602 13.8325694v13.2972382c0 1.80514.3709426 3.0703905 1.112258 3.7957514s1.7891855 1.0880413 3.1430406 1.0880413c.90257 0 1.7729461-.1450152 2.6111282-.4353305v3.3364892c-.9994368.3225092-2.1276493.4834789-3.3849225.4834789-2.3208129 0-4.1342151-.6527108-5.4396368-1.9581325-1.3057066-1.3057066-1.9584174-3.2316451-1.9584174-5.7783855v-13.8291505h-4.7387775v-3.0946072h4.7387775v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630086v3.0946072z"/><path d="m98.7912464 35.0597742v-24.321812h3.9165496v24.321812zm-.3868972-34.62130978h4.7869258v4.44874713h-4.7869258z"/><path d="m114.312716 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037634-4.4000289-.950718-1.9020067-1.42622-4.1262378-1.42622-6.6729782 0-2.5464555.475502-4.7709715 1.42622-6.6726933.951004-1.9020068 2.296882-3.3686831 4.037634-4.4003138s3.75558-1.5473036 6.044199-1.5473036c2.288904 0 4.303447.5156729 6.044199 1.5473036s3.08663 2.498307 4.037633 4.4003138c.951004 1.9017218 1.426505 4.1262378 1.426505 6.6726933 0 2.5467404-.475501 4.7709715-1.426505 6.6729782-.951003 1.9017219-2.296881 3.3686831-4.037633 4.4000289-1.740752 1.0316307-3.755295 1.5473036-6.044199 1.5473036-2.288619 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289467-1.5957369 1.934201-3.924812 1.934201-6.9872253 0-2.9655465-.660973-5.2624277-1.982634-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.98235 3.9248121-1.98235 6.8903586c0 3.0624133.652711 5.3914884 1.958133 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.846626 19.7799018v15.2798724h-3.916835v-15.0864238c0-2.2564251-.451285-3.9085727-1.353855-4.9561579s-2.320813-1.5715203-4.255013-1.5715203c-2.256425 0-4.06185.693167-5.415705 2.079216-1.353856 1.3860489-2.030783 3.2558618-2.030783 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.129061-4.786926-.386897-6.8177085h3.723101l.386897 4.3518804c.741316-1.5797825 1.853574-2.7965996 3.33649-3.6507362 1.482915-.8544216 3.175234-1.2814899 5.076956-1.2814899 5.834796 0 8.752194 3.2074284 8.752194 9.6222853z"/><path d="m205.653771 35.0597742-3.772105-8.848776h-17.988722l-3.817689 8.848776h-4.111138l15.134003-34.42786122h3.481504l15.134002 34.42786122zm-20.359108-12.1368318h15.185285l-7.592643-17.69726709z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(22.788376 290.137172)"><path d="m.04658391 21.7701602 1.62834138-20.70276002h4.56506199l-1.36656882 17.01005832h9.24650314l-.2907867 3.6927017z"/><path d="m16.3006611 21.7701602 1.1629859-14.74195382h4.3906544l-1.1629859 14.74195382zm1.5119622-21.66232409h4.7104554l-.319801 4.12904304h-4.7104553z"/><path d="m23.395439 20.2000084 1.4247584-3.0530998c.8141707.5622308 1.6863698.9935752 2.6169196 1.2940334.9303887.3004581 1.8609386.4506872 2.7913273.4506872.8141707 0 1.415087-.1163792 1.8027489-.3489764.387662-.2325971.5815736-.5427267.5815736-.9303886 0-.407166-.2277615-.7269669-.6832845-.9595641-.4555229-.2325972-1.1969969-.5040411-2.224422-.8141707-1.0661106-.2907868-1.9384709-.5815735-2.6169196-.8723603-.6784487-.2907867-1.2648579-.72197-1.7590665-1.2938721-.4943697-.5719021-.741474-1.3133761-.741474-2.224422 0-.9498927.2664471-1.78340617.7995024-2.50054048.5330554-.7172955 1.2891976-1.27936503 2.2681045-1.68653097.9789069-.40700475 2.0983714-.61058772 3.3583937-.61058772 1.1047962 0 2.1855752.16473618 3.2420144.49436973 1.0564393.32947236 1.9433067.7753239 2.6606022 1.33755462l-1.3957442 2.93672062c-.7172955-.5233839-1.4732766-.9208785-2.2679433-1.1921612-.7948279-.27144401-1.5701518-.40716599-2.3262941-.40716599-.7946667 0-1.395583.11637918-1.802749.34897639-.4070047.2325971-.6105877.5523981-.6105877.959564 0 .4265088.2422686.7656525.7269669 1.0177537.4845371.25194 1.2211754.5135513 2.2097537.7849953 1.0662719.3101296 1.9336353.6105877 2.6024126.9013745.6687773.2907867 1.2503508.7221312 1.7447205 1.2938721.4942086.5719021.7413128 1.3133761.7413128 2.224422 0 1.4539338-.5765766 2.5927412-1.7300522 3.4165832-1.1533145.8238421-2.7089592 1.2356826-4.6667729 1.2356826-2.5200445 0-4.768645-.6009163-6.7458015-1.802749z"/><path d="m44.7087867 16.0421124c-.0581896.8141707.1065466 1.415087.4942086 1.8027489.3878231.387662.9208784.5815736 1.5993272.5815736.4458515 0 .94006-.0776936 1.482948-.2327584l-.2907868 3.4020761c-.6591059.271444-1.5119622.4070048-2.5587301.4070048-1.6671881 0-2.9417175-.4458516-3.8237491-1.3375546-.8818705-.8915419-1.3228864-2.1515642-1.3228864-3.7799055 0-.3296336.0096714-.5815736.0290142-.7559811l.4651944-5.8154129h-2.7913273l.2616114-3.28569692h2.7914884l.2616114-3.46010454 4.5070336-1.42475841-.3779906 4.88486295h3.7508913l-.2617725 3.28569692h-3.7508913z"/><path d="m49.3900667 20.2000084 1.4247584-3.0530998c.8141707.5622308 1.686531.9935752 2.6169197 1.2940334.9305498.3004581 1.8609385.4506872 2.7914884.4506872.8141707 0 1.415087-.1163792 1.802749-.3489764.3876619-.2325971.5815735-.5427267.5815735-.9303886 0-.407166-.2277615-.7269669-.6832844-.9595641-.4556842-.2325972-1.196997-.5040411-2.224422-.8141707-1.0661107-.2907868-1.938471-.5815735-2.6169197-.8723603-.6784487-.2907867-1.2648579-.72197-1.7592276-1.2938721-.4942086-.5719021-.741474-1.3133761-.741474-2.224422 0-.9498927.2666082-1.78340617.7996635-2.50054048.5330554-.7172955 1.2890365-1.27936503 2.2679433-1.68653097.9789069-.40700475 2.0983715-.61058772 3.3583937-.61058772 1.1049574 0 2.1857364.16473618 3.2421757.49436973 1.0564392.32947236 1.9433066.7753239 2.6604409 1.33755462l-1.395583 2.93672062c-.7172955-.5233839-1.4732766-.9208785-2.2681045-1.1921612-.7946667-.27144401-1.5701518-.40716599-2.3261329-.40716599-.7948279 0-1.3957442.11637918-1.802749.34897639-.4070047.2325971-.6105877.5523981-.6105877.959564 0 .4265088.2422686.7656525.7269669 1.0177537.4845372.25194 1.2211755.5135513 2.2097537.7849953 1.0661107.3101296 1.9336353.6105877 2.6024126.9013745.6687773.2907867 1.2503508.7221312 1.7445594 1.2938721.4943697.5719021.741474 1.3133761.741474 2.224422 0 1.4539338-.5767379 2.5927412-1.7300523 3.4165832-1.1533145.8238421-2.7089592 1.2356826-4.6667729 1.2356826-2.5200445 0-4.768645-.6009163-6.7459627-1.802749z"/><path d="m73.2145935 2.29179942h7.7695192c2.0061707 0 3.5700361.48340881 4.6917573 1.44990405 1.12156.96665643 1.68234 2.29808583 1.68234 3.9942882 0 1.69604118-.5652933 3.03198393-1.6960412 4.00782813-1.1307478.9756831-2.6900999 1.4636052-4.6780561 1.4636052h-5.526238v8.5627352h-2.2432812zm7.5778643 9.05533178c1.4408774 0 2.5260084-.3101295 3.2555544-.9302274.7295459-.62009798 1.0943189-1.51373534 1.0943189-2.68091213 0-1.16733798-.364773-2.05646202-1.0943189-2.66737212-.729546-.61107129-1.814677-.91652634-3.2555544-.91652634h-5.3345831v7.19503799z"/><path d="m102.432215 8.0095311v13.7606291h-2.188638v-2.4894183c-.4012015.8572084-1.0075983 1.5182486-1.8193511 1.9832817-.8115916.4651944-1.7553591.6976303-2.8314635.6976303-1.2218202 0-2.2934114-.2917539-3.214451-.8754229-.9210397-.5835078-1.63221-1.4088006-2.1338332-2.4758784-.5016233-1.0669166-.7522738-2.3116257-.7522738-3.7341275 0-1.4226629.255325-2.6765599.7659749-3.761691s1.2264947-1.92863838 2.1475344-2.53052184c.9210396-.60188346 1.9834429-.90282519 3.1870487-.90282519 1.0761044 0 2.0153585.23711049 2.8179235.71133147.8024039.47422098 1.4134752 1.13993568 1.8328911 1.99698296v-2.3799704zm-3.2829565 10.7376719c.729546-.9210397 1.0943185-2.2295801 1.0943185-3.9257825s-.3647725-3.0002295-1.0943185-3.9120813c-.7295459-.91185183-1.7690602-1.36785834-3.1187041-1.36785834s-2.4028593.46970764-3.1598076 1.40896184c-.756787.9392541-1.1352611 2.2477945-1.1352611 3.9257824 0 1.6778267.3737996 2.9728272 1.12156 3.884679s1.8056504 1.3678583 3.1735087 1.3678583c1.3496439 0 2.3891582-.4605198 3.1187041-1.3815594z"/><path d="m118.983366 8.0095311v13.6511811c0 2.0427609-.524351 3.5884118-1.573054 4.6371139-1.048702 1.0487022-2.594514 1.5730532-4.637113 1.5730532-2.097405 0-3.903055-.4742209-5.41679-1.4226629l.382987-1.8054892c.875423.4924355 1.700716.8480206 2.475878 1.0669166.775163.218896 1.627697.328344 2.557925.328344 1.331429 0 2.334514-.3510718 3.009256-1.0533766.674902-.7021436 1.012273-1.7461713 1.012273-3.1324053v-3.2553932c-.419417.8754229-1.035001 1.5546775-1.846593 2.0380863-.811591.4832477-1.773735.7248715-2.886268.7248715-1.203606 0-2.275197-.2825661-3.214451-.8480206-.939254-.5652933-1.664287-1.3678584-2.174937-2.4073727-.51065-1.0396755-.765974-2.2342546-.765974-3.5838984 0-1.3496439.255324-2.544223.765974-3.5837373.51065-1.0396755 1.235683-1.84207932 2.174937-2.40753384.939254-.56529333 2.010845-.84802059 3.214451-.84802059 1.094319 0 2.047274.23711049 2.858866.71133147s1.427176 1.13993568 1.846593 1.99698296v-2.3799704zm-3.351302 10.1631907c.756787-.8846107 1.135262-2.1019176 1.135262-3.652243 0-1.5501643-.378475-2.7676323-1.135262-3.6520819-.756948-.88461068-1.800976-1.32691604-3.132405-1.32691604-1.349644 0-2.412047.44230536-3.18721 1.32691604-.775001.8844496-1.162663 2.1019176-1.162663 3.6520819 0 1.5503254.387662 2.7676323 1.162663 3.652243.775163.8846107 1.837566 1.3267549 3.18721 1.3267549 1.331429 0 2.375457-.4421442 3.132405-1.3267549z"/><path d="m134.76838 14.8214205h-10.094846c.018375 1.7508458.424091 3.0730874 1.217468 3.9668859.793377.8936374 1.947014 1.340456 3.460749 1.340456 1.604969 0 3.082275-.5380522 4.431758-1.6141566l.738734 1.6141566c-.601884.5654546-1.372372 1.0122732-2.311626 1.3404561-.939415.328344-1.901397.4924354-2.886268.4924354-2.152048 0-3.839062-.633799-5.061044-1.901236-1.221981-1.2675982-1.833052-3.0047428-1.833052-5.2115951 0-1.4042873.2737-2.6491576.820779-3.7342887s1.313215-1.92863838 2.298086-2.53052184c.98471-.60188346 2.106431-.90282519 3.364841-.90282519 1.823865 0 3.255555.59737014 4.295069 1.79194923 1.039675 1.1945791 1.559352 2.8404902 1.559352 4.9378945zm-8.63108-4.3771144c-.720519.6929558-1.181039 1.6688-1.381559 2.9272104h8.015656c-.109448-1.2948393-.487922-2.2797102-1.135422-2.9546127-.647339-.67474139-1.545651-1.01227325-2.694614-1.01227325-1.148962 0-2.083703.3465585-2.804061 1.03967555z"/><path d="m137.285362 20.1834059.738572-1.6413978c.747761.583669 1.504709 1.0030854 2.270684 1.2584103.765975.255325 1.623506.3829875 2.571303.3829875 1.039675 0 1.827894-.1777926 2.366269-.5333778.538375-.3555851.807562-.8709095.807562-1.5456509 0-.54724-.182145-.9848709-.546434-1.3132149-.365901-.328344-.96714-.583669-1.80694-.7659749l-2.32436-.54724c-1.149446-.255325-2.03857-.7111703-2.667856-1.3678584-.629124-.6565268-.943767-1.4407162-.943767-2.3527292 0-1.2036057.483248-2.18396332 1.449904-2.94091156.966656-.75678705 2.243926-1.13526117 3.830036-1.13526117.96714 0 1.877863.15506478 2.735394.46503315.857531.31012956 1.57805.75694824 2.161558 1.34061723l-.73825 1.61399545c-1.295968-1.0761044-2.682202-1.61399545-4.158702-1.61399545-.984871 0-1.745688.18681921-2.284063.56078005-.538213.3737996-.807239.8981506-.807239 1.5730532 0 .5652933.168605 1.0122732.505975 1.340456.336726.328344.879936.583669 1.627858.7659749l2.325972.5744812c1.276625.291915 2.224422.743247 2.845003 1.3543183.61897.6109101.930067 1.4088006.930067 2.3936715 0 1.1855525-.48357 2.1338333-1.45071 2.8451647-.965529.7113315-2.279227 1.0669166-3.939484 1.0669166-2.315817 0-4.148708-.5926956-5.498352-1.778248z"/><path d="m166.776845 19.8826253h4.294102v1.8875349h-10.860982v-1.8875349h4.295713v-14.8003046l-3.994288 2.54422296v-2.16123552l4.979159-3.17350872h1.286296z"/><path d="m177.692632 18.9523978v1.9971441c0 .7659749-.128952 1.4681185-.383632 2.1064309s-.683446 1.2584104-1.286296 1.8602938l-1.039676-.7933771c.71246-.8206183 1.113823-1.6049689 1.20409-2.3527293h-1.313699v-2.8177624z"/><path d="m194.243621 19.8826253v1.8875349h-12.529298v-1.6960412l6.811889-7.5506231c.910724-1.0214611 1.576438-1.9425007 1.997144-2.76311902.419094-.82077948.628641-1.64139777.628641-2.46217725 0-1.07610444-.311096-1.90139724-.930066-2.4758784-.620582-.57448116-1.505515-.86172174-2.654799-.86172174-1.860133 0-3.700923.74776041-5.525594 2.24328123l-.847859-1.72344348c.765652-.72954594 1.732792-1.31321493 2.899808-1.75084578 1.167016-.43779204 2.343703-.65668806 3.530061-.65668806 1.785985 0 3.199622.46051983 4.239297 1.38155949 1.039676.92103966 1.560319 2.16574884 1.560319 3.73428873 0 1.11253338-.251456 2.18396331-.752757 3.21445098-.501301 1.0304877-1.336265 2.1841245-2.503281 3.4607493l-5.552995 6.0186734z"/><path d="m200.425258 18.9523978v1.9971441c0 .7659749-.12734 1.4681185-.38202 2.1064309-.256292.6383124-.683446 1.2584104-1.286297 1.8602938l-1.039675-.7933771c.710848-.8206183 1.112211-1.6049689 1.204089-2.3527293h-1.313698v-2.8177624z"/><path d="m215.691563 13.4535622c.601239.802565.902664 1.814677.902664 3.0366584 0 1.6962023-.575448 3.0321451-1.723121 4.0078281-1.149285.9758443-2.709604 1.4636052-4.679346 1.4636052-1.257282 0-2.466207-.2097082-3.623551-.6291245-1.158956-.4195776-2.138991-1.0122732-2.941718-1.7782481l.875262-1.7236047c1.805328 1.495682 3.684803 2.2434424 5.635202 2.2434424 1.386234 0 2.440417-.3101295 3.160936-.9302275.72052-.6200979 1.079973-1.5319497 1.079973-2.7357166 0-2.3891582-1.495843-3.5837373-4.485917-3.5837373h-2.243765v-1.8876961h1.805328c1.441038 0 2.54519-.3191562 3.310842-.9574686.765653-.63847359 1.149285-1.55032542 1.149285-2.73571668 0-1.05788997-.315932-1.86948162-.944573-2.43493614-.628641-.56529333-1.51841-.84802059-2.667695-.84802059-1.860132 0-3.702534.74776041-5.525593 2.24328123l-.847859-1.72344348c.783383-.74776041 1.745687-1.33594272 2.885301-1.76454693 1.141225-.42860421 2.330807-.64298691 3.570358-.64298691 1.752135 0 3.151265.44681868 4.200612 1.34061723 1.047735.89363736 1.571602 2.09740428 1.571602 3.61113957 0 1.11253338-.272411 2.08821645-.820457 2.9272104-.546434.838994-1.304027 1.4408774-2.269555 1.8054892 1.147673.328344 2.022934.8937985 2.625785 1.6962024z"/></g><g transform="translate(329.992265 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(359.320353 242.51167)"><path d="m.14615481 31.0947909 1.49887023-3.0461739c1.70855821 1.4504369 3.44931037 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83620748.9188095 6.18921438.9188095 2.7723829 0 4.9080094-.5401745 6.4068796-1.6199537 1.4991552-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3623955-2.1034326-1.0877564-2.8285086-.7253609-.7253609-1.6763643-1.2977293-2.8530102-1.7165355-1.1766458-.419091-2.7481661-.8544215-4.7145608-1.3057065-2.6433222-.5803457-4.81911993-1.2088399-6.52767814-1.8857674-1.70855822-.6769275-3.0946072-1.6521476-4.15843184-2.9253753s-1.59573696-2.9416147-1.59573696-5.0045912c0-1.96639471.5159578-3.69916961 1.54730359-5.19803984 1.0316307-1.49915513 2.49032973-2.66753887 4.37609709-3.505721 1.88576735-.83818214 4.08606666-1.25727321 6.60032816-1.25727321 2.3854858 0 4.6097169.37094261 6.6726934 1.11225801 2.0632614.74131541 3.8040135 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6116915-1.38633388-3.2475997-2.40172515-4.9077245-3.04645873-1.6601249-.64473357-3.4735271-.96695791-5.4399218-.96695791-2.6755161 0-4.77097143.57208353-6.28608109 1.71653548-1.51510965 1.14445195-2.27266448 2.71597223-2.27266448 4.71456088 0 1.7407521.660973 3.0461738 1.98263409 3.9165499 1.32166109.870376 3.35244368 1.6279309 6.09263258 2.2726645 2.9655465.7091214 5.2946216 1.3618322 6.9869404 1.9584174 1.6926037.5963002 3.1028694 1.4988702 4.2310819 2.70771 1.1282125 1.2088399 1.6923188 2.8125541 1.6923188 4.8111427 0 1.9342007-.5156729 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5062843 2.602866-4.4242456 3.4088542-1.9182462.8059882-4.166694 1.2088399-6.7453434 1.2088399-5.38351106 0-9.67071867-1.4507218-12.86219259-4.3518804z"/><path d="m52.0781194 22.7779272h-17.8425672c.032194 3.0946072.7495776 5.4316596 2.151866 7.011442 1.4022884 1.5794975 3.4410482 2.3692463 6.1165643 2.3692463 2.8367708 0 5.447899-.9510034 7.8333847-2.8530102l1.3057066 2.8530102c-1.0638246.9994368-2.4259418 1.7891855-4.0860667 2.3692463-1.6601248.5803457-3.3604209.8703761-5.101173.8703761-3.8040136 0-6.7857995-1.1202353-8.9456428-3.3604209-2.1598432-2.2404705-3.2396224-5.310861-3.2396224-9.2114564 0-2.4820676.483479-4.6823669 1.4507218-6.6003282.9669579-1.9179613 2.320813-3.4088543 4.0615651-4.4726789 1.7407522-1.0638247 3.7233863-1.595737 5.9476174-1.595737 3.2233829 0 5.7541688 1.0558474 7.5915028 3.1672572 1.837334 2.1114099 2.7561434 5.0205458 2.7561434 8.7276926zm-15.2556556-7.736518c-1.2732277 1.2247944-2.0871932 2.949592-2.4418964 5.1738231h14.1676143c-.1931636-2.288619-.8621139-4.0293711-2.0065658-5.2222565-1.144452-1.1926004-2.7319268-1.7891855-4.7627094-1.7891855-2.0310674 0-3.683215.6125397-4.9564427 1.8376189z"/><path d="m62.0630852 33.8509343c-1.7567067-1.0313458-3.1105617-2.4900448-4.0615651-4.3760971-.9510034-1.8857673-1.4265051-4.0857818-1.4265051-6.6000433 0-2.5145464.483479-4.7308002 1.4507218-6.6487615.9669579-1.9179613 2.3450296-3.4088543 4.1342151-4.4726789 1.7889007-1.0638247 3.8763787-1.595737 6.2618645-1.595737 1.6438854 0 3.2316451.2820531 4.7627093.8461594 1.531349.5641063 2.7965995 1.3458778 3.7957514 2.3453145l-1.3054217 2.9011587c-1.2250793-.9672429-2.4097024-1.6763643-3.5541544-2.1276493-1.144167-.451285-2.3128357-.6769276-3.505721-.6769276-2.4820675 0-4.4322228.8302049-5.8507506 2.4903298-1.4182429 1.6601248-2.1273644 3.9729605-2.1273644 6.9387919 0 2.9333526.7011442 5.2139943 2.1031477 6.8419253 1.4022884 1.6279309 3.3607058 2.4418963 5.8749673 2.4418963 1.1928853 0 2.361554-.2256425 3.505721-.6769275 1.144452-.451285 2.3290751-1.1604065 3.5541544-2.1276493l1.3054217 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8923333 2.2968812-1.563543.5641063-3.1834966.8461594-4.859576.8461594-2.3532918 0-4.408291-.5156729-6.1652826-1.5473036z"/><path d="m87.2313415 13.8325694v13.2972382c0 1.80514.3706577 3.0703905 1.112258 3.7957514.7413154.7253609 1.7889006 1.0880413 3.1427556 1.0880413.9025701 0 1.7729461-.1450152 2.6111283-.4353305v3.3364892c-.9991519.3225092-2.1273644.4834789-3.3846376.4834789-2.3210979 0-4.1342152-.6527108-5.4399217-1.9581325-1.3054217-1.3057066-1.9581325-3.2316451-1.9581325-5.7783855v-13.8291505h-4.7387776v-3.0946072h4.7387776v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630086v3.0946072z"/><path d="m98.9328427 35.0597742v-24.321812h3.9168353v24.321812zm-.3866122-34.62130978h4.7869255v4.44874713h-4.7869255z"/><path d="m114.454597 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037633-4.4000289-.951004-1.9020067-1.426505-4.1262378-1.426505-6.6729782 0-2.5464555.475501-4.7709715 1.426505-6.6726933.951003-1.9020068 2.296881-3.3686831 4.037633-4.4003138s3.755295-1.5473036 6.044199-1.5473036c2.288619 0 4.303447.5156729 6.044199 1.5473036 1.740753 1.0316307 3.08663 2.498307 4.037634 4.4003138.950718 1.9017218 1.42622 4.1262378 1.42622 6.6726933 0 2.5467404-.475502 4.7709715-1.42622 6.6729782-.951004 1.9017219-2.296881 3.3686831-4.037634 4.4000289-1.740752 1.0316307-3.75558 1.5473036-6.044199 1.5473036-2.288904 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289468-1.5957369 1.933916-3.924812 1.933916-6.9872253 0-2.9655465-.660688-5.2624277-1.982349-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.982634 3.9248121-1.982634 6.8903586c0 3.0624133.652996 5.3914884 1.958417 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.988222 19.7799018v15.2798724h-3.916549v-15.0864238c0-2.2564251-.451285-3.9085727-1.353856-4.9561579-.90257-1.0475852-2.321097-1.5715203-4.255298-1.5715203-2.256425 0-4.061565.693167-5.41542 2.079216-1.353855 1.3860489-2.031068 3.2558618-2.031068 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.128775-4.786926-.386897-6.8177085h3.723387l.386897 4.3518804c.741315-1.5797825 1.853573-2.7965996 3.336204-3.6507362 1.482916-.8544216 3.175234-1.2814899 5.077241-1.2814899 5.834796 0 8.751909 3.2074284 8.751909 9.6222853z"/><path d="m203.619569 20.3360308c1.096874 1.4344824 1.643886 3.2156906 1.643886 5.343055 0 2.9980254-1.000007 5.3108611-3.00002 6.938792-1.997164 1.6279309-4.817695 2.4418964-8.461594 2.4418964h-14.310635v-34.42786122h13.82915c3.512844 0 6.245056.78177151 8.196635 2.34531453 1.948731 1.56325812 2.923097 3.77951197 2.923097 6.64847666 0 1.83761893-.475787 3.42509373-1.424511 4.76299423-.951573 1.3376156-2.282066 2.3290751-3.991479 2.9735238 1.968673.5481517 3.498598 1.5393263 4.595471 2.9738086zm-20.213807-4.4242455h9.284961c2.578364 0 4.529944-.5159578 5.85189-1.5473036 1.321946-1.0316307 1.982919-2.5467404 1.982919-4.54532897 0-3.93278933-2.612553-5.899184-7.834809-5.899184h-9.284961zm16.031444 14.3368462c1.273512-1.0153913 1.908844-2.5706722 1.908844-4.6661275 0-4.2228197-2.626798-6.3342296-7.880393-6.3342296h-10.059895v12.523444h10.059895c2.70657 0 4.698036-.5076956 5.971549-1.5230869z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(356.809897 292.199308)"><path d="m.10689318 19.8854177 1.48742717-18.91226722h4.17039899l-1.24844346 15.53895012h8.44675212l-.2655896 3.3733171z"/><path d="m14.955185 19.8854177 1.0625151-13.46697537h4.01092l-1.0625151 13.46697537zm1.3811601-19.78885388h4.3031155l-.2921955 3.77193628h-4.3031156z"/><path d="m21.436386 18.4510458 1.3014988-2.7889259c.7437136.5134941 1.540639.9074182 2.3906198 1.1819286.8499807.2745105 1.6999614.4117657 2.5499422.4117657.7437136 0 1.2927345-.1062672 1.6469061-.3188015.3541717-.2125343.5311793-.495809.5311793-.8499807 0-.3718568-.2079956-.6640524-.6241435-.8765867-.4161478-.2123778-1.0935031-.4602823-2.0320659-.7437136-.973933-.2655896-1.7708584-.5311792-2.3906197-.7967689-.6197613-.2657461-1.1554793-.6596702-1.6069973-1.1820852-.451518-.5224149-.6773553-1.1997702-.6773553-2.0320659 0-.86766582.2435224-1.62906451.7305671-2.28435256.4868883-.65513154 1.1775465-1.16862571 2.0718183-1.5404825s1.916878-.5579417 3.0679751-.5579417c1.0093032 0 1.9965392.15055818 2.9615514.45167454.9651687.30095986 1.7752405.70834338 2.4305286 1.22183754l-1.2750494 2.68281528c-.6551315-.47812392-1.3457898-.84121642-2.0718183-1.08912095s-1.4343718-.37185679-2.1250301-.37185679c-.7260285 0-1.2748928.10626716-1.6467496.31880147-.3718568.21237781-.5577852.50457336-.5577852.87643017 0 .3896984.2212986.6995791.6640523.9297985.4425972.2302194 1.1155704.4692031 2.0186065.7171076.9740895.2832748 1.7664762.5577852 2.3773168.8233749.610997.2657461 1.1421763.6596702 1.5938508 1.1820851.451518.522415.6773553 1.1997703.6773553 2.032066 0 1.3281047-.5269536 2.3683959-1.5805479 3.1210303-1.0535942.7526344-2.4746631 1.1288734-4.2632067 1.1288734-2.3020377 0-4.3561708-.5490209-6.1623995-1.6469062z"/><path d="m40.9064384 14.6526601c-.0530553.7437136.0973463 1.2927345.451518 1.6469062s.8412165.5311793 1.4609778.5311793c.407227 0 .8589015-.0707405 1.3547106-.2123778l-.2657461 3.1077274c-.6020763.2479045-1.3811601.3718568-2.337408.3718568-1.5229539 0-2.6871974-.407227-3.4928871-1.2218376-.8056897-.8146105-1.2085346-1.9655511-1.2085346-3.4531348 0-.3009598.0087643-.5311792.0264494-.6906582l.4250686-5.31241881h-2.5499422l.2389837-3.00146026h2.5499422l.2391403-3.16093925 4.1170306-1.30149878-.3452509 4.46243803h3.4265289l-.2389837 3.00146026h-3.4265289z"/><path d="m45.182948 18.4510458 1.3014988-2.7889259c.7438701.5134941 1.540639.9074182 2.3906198 1.1819286.8499807.2745105 1.6999614.4117657 2.5499422.4117657.7438701 0 1.2927345-.1062672 1.6469062-.3188015.3541716-.2125343.5313357-.495809.5313357-.8499807 0-.3718568-.2081521-.6640524-.6242999-.8765867-.4161479-.2123778-1.0935032-.4602823-2.032066-.7437136-.973933-.2655896-1.7707019-.5311792-2.3904632-.7967689-.6199178-.2657461-1.1554793-.6596702-1.6069973-1.1820852-.4516745-.5224149-.6773553-1.1997702-.6773553-2.0320659 0-.86766582.2433659-1.62906451.7304106-2.28435256.4868883-.65513154 1.1775465-1.16862571 2.0718183-1.5404825s1.916878-.5579417 3.0679751-.5579417c1.0093032 0 1.9965392.15055818 2.9617079.45167454.9650122.30095986 1.7752405.70834338 2.4303721 1.22183754l-1.2748929 2.68281528c-.655288-.47812392-1.3459463-.84121642-2.0719748-1.08912095-.7260284-.24790453-1.4343718-.37185679-2.1248736-.37185679-.7260284 0-1.2750493.10626716-1.6469061.31880147-.3718568.21237781-.5577852.50457336-.5577852.87643017 0 .3896984.2212986.6995791.6640523.9297985.4427538.2302194 1.1155704.4692031 2.018763.7171076.973933.2832748 1.7663198.5577852 2.3773168.8233749.6108405.2657461 1.1421763.6596702 1.5936943 1.1820851.451518.522415.6773553 1.1997703.6773553 2.032066 0 1.3281047-.5267971 2.3683959-1.5805479 3.1210303-1.0535942.7526344-2.4746631 1.1288734-4.2632066 1.1288734-2.3020378 0-4.3561709-.5490209-6.1623996-1.6469062z"/><path d="m67.4951382.97315048h7.543716c1.9478661 0 3.4664378.46935965 4.5554023 1.40776594 1.0891209.93856279 1.6336032 2.23129726 1.6336032 3.87820343 0 1.64674965-.5490209 2.94386628-1.6469062 3.89134985-1.0978853.9473271-2.6119184 1.4210689-4.5420993 1.4210689h-5.3654741v8.3138791h-2.1782419zm7.3577876 8.7921595c1.3990017 0 2.4525959-.30111636 3.1609393-.90319258.7083434-.60207621 1.062515-1.46974206 1.062515-2.60299755 0-1.133412-.3541716-1.9966957-1.062515-2.58985111-.7083434-.59331191-1.7619376-.88988961-3.1609393-.88988961h-5.1795457v6.98593085z"/><path d="m95.8636172 6.52470948v13.36070822h-2.1250301v-2.4170692c-.3895419.8322956-.9783152 1.4741242-1.7663198 1.9256423-.7880046.4516745-1.7043436.6773553-2.7491736.6773553-1.1864673 0-2.2267586-.2832748-3.1210303-.8499808-.8942718-.5665495-1.5849301-1.367857-2.0718183-2.4039227-.4870448-1.0359091-.7305671-2.2444437-.7305671-3.6256037 0-1.3813166.2479045-2.5987719.7437135-3.65236619.4959656-1.05359425 1.191006-1.87258693 2.0852778-2.45697803.8941152-.58439111 1.9256422-.87658666 3.0944244-.87658666 1.04483 0 1.9567869.23021942 2.7358707.69065826.7792403.46043884 1.3723957 1.10680608 1.7796227 1.93894521v-2.31080201zm-3.1873886 10.42560622c.7083433-.8942718 1.0623585-2.1647825 1.0623585-3.8116887 0-1.6469061-.3540152-2.9130347-1.0623585-3.79838565-.7083434-.88535096-1.7178031-1.32810469-3.0280662-1.32810469-1.3104196 0-2.3331823.45605669-3.0679751 1.36801357-.7349493.91195687-1.1024239 2.18246757-1.1024239 3.81168867 0 1.6290645.3630925 2.8864288 1.089121 3.7717797.7260284.885351 1.7530168 1.3281047 3.081278 1.3281047 1.3102631 0 2.3197228-.4471359 3.0280662-1.3414076z"/><path d="m111.933747 6.52470948v13.25444102c0 1.9833927-.509112 3.4841229-1.527336 4.5023469s-2.518955 1.5273361-4.502191 1.5273361c-2.036448 0-3.789621-.4604389-5.259363-1.3813166l.371857-1.7530168c.84998.478124 1.651288.8233749 2.403922 1.0359092.752478.2125343 1.580392.3188014 2.483584.3188014 1.292578 0 2.266511-.3408687 2.921799-1.0227627.655132-.6817374.982854-1.6954228.982854-3.0413691v-3.1607827c-.407384.8499807-1.005078 1.5094944-1.793082 1.978854-.788005.4692032-1.722029.7038048-2.802229.7038048-1.168782 0-2.209074-.274354-3.12103-.8233749-.911957-.5488644-1.615919-1.3281047-2.1117276-2.3374079-.4958091-1.0094597-.7437136-2.1693211-.7437136-3.4797407s.2479045-2.470281.7437136-3.47958423c.4958086-1.00945973 1.1997706-1.78854354 2.1117276-2.33756443.911956-.54886438 1.952248-.82337482 3.12103-.82337482 1.062515 0 1.987775.23021942 2.775779.69065826.788005.46043884 1.385543 1.10680608 1.792926 1.93894521v-2.31080201zm-3.253904 9.86782102c.734949-.8589016 1.102424-2.0408302 1.102424-3.546099 0-1.5051123-.367475-2.6871975-1.102424-3.54594251-.734793-.85890155-1.748634-1.28835233-3.041369-1.28835233-1.31042 0-2.34179.42945078-3.094424 1.28835233-.752635.85874501-1.128874 2.04083021-1.128874 3.54594251 0 1.5052688.376239 2.6871974 1.128874 3.546099.752634.8589015 1.784004 1.2881958 3.094424 1.2881958 1.292735 0 2.306576-.4292943 3.041369-1.2881958z"/><path d="m127.260162 13.138627h-9.801462c.017685 1.6999615.411765 2.9837752 1.182085 3.8515976.770319.8676658 1.890272 1.3014987 3.360014 1.3014987 1.558324 0 2.992696-.5224149 4.303116-1.5672449l.717264 1.5672449c-.584391.5490209-1.332644.9828538-2.244601 1.3014988-.911956.3188015-1.845981.478124-2.802228.478124-2.08966 0-3.727646-.6153792-4.914113-1.8459811-1.186467-1.2307583-1.779623-2.9174168-1.779623-5.060132 0-1.363475.26559-2.572166.796926-3.62576029.531179-1.05359425 1.274893-1.87258693 2.23114-2.45697803.956248-.58439111 2.045369-.87658666 3.267207-.87658666 1.770702 0 3.160939.58000895 4.170242 1.73987036 1.009304 1.1598614 1.514033 2.75793792 1.514033 4.79438592zm-8.380393-4.24990368c-.699423.67281665-1.146559 1.62030028-1.341408 2.84213778h7.7827c-.106111-1.2572078-.473586-2.21345565-1.102268-2.8687437-.628682-.65513154-1.50073-.98285381-2.616457-.98285381-1.11557 0-2.023145.33648658-2.722567 1.00945973z"/><path d="m129.703837 18.3447787.717265-1.5936944c.726028.566706 1.460821.973933 2.204691 1.2218376.743714.2479045 1.576009.3718568 2.496261.3718568 1.00946 0 1.776336-.1726255 2.297499-.5178764.522728-.3452508.784092-.8455986.784092-1.5007301 0-.5313358-.176851-.9562479-.530553-1.2750494-.355268-.3188014-.939033-.566706-1.752861-.7437135l-2.258529-.5313358c-1.115727-.2479046-1.97901-.6905018-2.589851-1.3281047-.610997-.6374465-.916339-1.3988452-.916339-2.2843526 0-1.16862572.469203-2.12049147 1.407766-2.85544076.938563-.73479278 2.178085-1.10226742 3.718411-1.10226742.939033 0 1.824853.15055818 2.655897.45151803.832608.30111636 1.532187.73494929 2.098737 1.30165528l-.716795 1.56708842c-1.256738-1.04482995-2.602684-1.56708842-4.037839-1.56708842-.955934 0-1.695266.18138975-2.217681.54448224-.522415.36293598-.783622.872048-.783622 1.52733603 0 .5488644.163861.9828538.491427 1.3014988.327565.3188015.854362.566706 1.580391.7437136l2.258216.5577852c1.239523.2834312 2.159774.7216463 2.76232 1.3149582.602546.5931554.903036 1.3678571.903036 2.324105 0 1.1510971-.469516 2.0718183-1.408548 2.7624765-.937467.6906583-2.212986 1.0359092-3.824992 1.0359092-2.248356 0-4.027979-.5754703-5.338399-1.7265674z"/><path d="m163.62325 13.9621584v1.8062286h-2.868744v4.1170307h-2.17699v-4.1170307h-8.712655v-1.6469061l9.110179-13.14833042h1.779466v12.98900792zm-11.500016 0h6.454282v-9.29688939z"/><path d="m168.936607 17.149547v1.9391018c0 .7437135-.123639 1.425451-.372483 2.0452123-.247278.6197613-.663582 1.2218376-1.247347 1.8062287l-1.011025-.7703195c.691754-.796769 1.081452-1.5583242 1.169095-2.2843526h-1.273954v-2.7358707z"/><path d="m182.52284 8.76915321c.893645.50472986 1.580704 1.20853458 2.058046 2.11172719.478906.903036.718359 1.947866.718359 3.1343333s-.261364 2.2400616-.784092 3.1609393c-.522728.9207211-1.266128 1.6336032-2.231766 2.1381765-.964074.5047299-2.094043.7570166-3.386777.7570166-1.150315 0-2.283414-.2079957-3.399297-.6241435s-2.054916-.987236-2.815532-1.7132645l.823218-1.673512c1.752861 1.4522134 3.551108 2.1782419 5.391611 2.1782419 1.328731 0 2.369492-.3763954 3.122282-1.1290298.751226-.7524779 1.128404-1.7752406 1.128404-3.0678186 0-1.2573642-.372483-2.2710496-1.115883-3.0413691-.743401-.7703195-1.735645-1.15547928-2.975168-1.15547928-1.806072 0-3.249051.73479278-4.328938 2.20469138h-1.514973v-11.07651212h11.341946v1.80622865h-9.163391v6.74679062c1.045456-1.00930322 2.382012-1.51403309 4.011233-1.51403309 1.186311 0 2.227072.25228668 3.120718.75701655z"/><path d="m191.010127 17.149547v1.9391018c0 .7437135-.125205 1.425451-.372483 2.0452123-.247279.6197613-.663583 1.2218376-1.248913 1.8062287l-1.00946-.7703195c.691754-.796769 1.081452-1.5583242 1.169095-2.2843526h-1.275518v-2.7358707z"/><path d="m204.543147 8.76915321c.893646.50472986 1.58853 1.21307323 2.084652 2.12503009.496122.9119569.743401 1.9522482.743401 3.1210304s-.259799 2.2134557-.782527 3.1343333c-.522728.9208777-1.244218 1.6423675-2.166035 2.1647825-.920251.522415-1.964142.7836225-3.133238.7836225-2.284978 0-4.047229-.7969254-5.286751-2.3906198-1.239523-1.5936943-1.859284-3.8603618-1.859284-6.7998459 0-2.12503014.287969-3.94894389.863909-5.47189779.57594-1.52279739 1.406984-2.6828153 2.496261-3.47958421 1.089278-.79692542 2.396098-1.19538813 3.918895-1.19538813 1.097103 0 2.164469.20377001 3.200535.61099702s1.943797.98285382 2.721629 1.7265674l-.823219 1.67335558c-.88582-.74371359-1.735644-1.29273448-2.549472-1.64690617-.813828-.35401518-1.646437-.53117927-2.496261-.53117927-1.629221 0-2.89535.72602848-3.798386 2.17808544-.903036 1.45205695-1.355336 3.48850502-1.355336 6.10934423v.3984627c.406914-1.0094598 1.072061-1.80622867 1.992313-2.39061978s1.975098-.87658666 3.161409-.87658666c1.150314 0 2.172295.25228668 3.067505.75701655zm-.438215 8.34048499c.743401-.770163 1.115884-1.7929257 1.115884-3.0678186 0-1.2573642-.377178-2.2710496-1.129969-3.0413691s-1.73095-1.15547928-2.934476-1.15547928c-1.239523 0-2.248983.38954188-3.028379 1.16878218-.779397.7790838-1.169096 1.7883871-1.169096 3.0280662 0 1.2572078.389699 2.2754318 1.169096 3.0546721.779396.7790838 1.796681 1.1686257 3.054985 1.1686257 1.203526 0 2.178555-.3851597 2.921955-1.1554792z"/></g><g transform="translate(660.011742 224.553185)"><path d="m.21765.193821h263.332986v106.422426h-263.332986z" fill="#c9177e"/><path d="m263.550636 106.616248h-263.33298624v-106.42242661h263.33298624zm-260.79463916-103.88400537v101.34558437h258.25629216v-101.34558437z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(688.758199 242.51167)"><path d="m.07350476 31.0947909 1.49915513-3.0461739c1.70855822 1.4504369 3.44902547 2.4820676 5.22225648 3.0946072 1.7729461.6125397 3.83592263.9188095 6.18921443.9188095 2.7720979 0 4.9077245-.5401745 6.4068796-1.6199537 1.4988702-1.080064 2.2484478-2.6031509 2.2484478-4.5695456 0-1.1604065-.3626804-2.1034326-1.0880413-2.8285086-.7253609-.7253609-1.6763643-1.2977293-2.8527253-1.7165355-1.1766459-.419091-2.7481662-.8544215-4.7145608-1.3057065-2.6433222-.5803457-4.81940488-1.2088399-6.52767819-1.8857674-1.70855822-.6769275-3.0948921-1.6521476-4.15843184-2.9253753-1.06382464-1.2732277-1.59573696-2.9416147-1.59573696-5.0045912 0-1.96639471.5156729-3.69916961 1.5473036-5.19803984 1.0316307-1.49915513 2.49004482-2.66753887 4.37609708-3.505721 1.88576736-.83818214 4.08578181-1.25727321 6.60004331-1.25727321 2.3854857 0 4.6097168.37094261 6.6729782 1.11225801 2.0629765.74131541 3.8037287 1.82137947 5.2222565 3.23962239l-1.5473036 3.04645873c-1.6119764-1.38633388-3.2478845-2.40172515-4.9080094-3.04645873-1.6601248-.64473357-3.473527-.96695791-5.4399217-.96695791-2.6755161 0-4.77068658.57208353-6.28579623 1.71653548-1.51510966 1.14445195-2.27266449 2.71597223-2.27266449 4.71456088 0 1.7407521.6606881 3.0461738 1.98234919 3.9165499 1.32166109.870376 3.35272853 1.6279309 6.09263253 2.2726645 2.9658315.7091214 5.2949066 1.3618322 6.9872254 1.9584174 1.6923187.5963002 3.1025844 1.4988702 4.2307969 2.70771 1.1284975 1.2088399 1.6926037 2.8125541 1.6926037 4.8111427 0 1.9342007-.5159578 3.6344968-1.5473036 5.101458-1.0316307 1.4666763-2.5065691 2.602866-4.4245304 3.4088542s-4.1664091 1.2088399-6.7453434 1.2088399c-5.3832262 0-9.67071872-1.4507218-12.86219264-4.3518804z"/><path d="m52.0054694 22.7779272h-17.8425672c.0324788 3.0946072.7495775 5.4316596 2.1518659 7.011442 1.4022884 1.5794975 3.4413332 2.3692463 6.1168493 2.3692463 2.8367707 0 5.447899-.9510034 7.8330998-2.8530102l1.3057066 2.8530102c-1.0638247.9994368-2.425657 1.7891855-4.0857818 2.3692463-1.6604098.5803457-3.3607058.8703761-5.101458.8703761-3.8037286 0-6.7855146-1.1202353-8.9453578-3.3604209-2.1598432-2.2404705-3.2399073-5.310861-3.2399073-9.2114564 0-2.4820676.4837639-4.6823669 1.4507218-6.6003282s2.3210978-3.4088543 4.06185-4.4726789c1.7407521-1.0638247 3.7231013-1.595737 5.9473324-1.595737 3.2236679 0 5.7541688 1.0558474 7.5915028 3.1672572 1.8376189 2.1114099 2.7561435 5.0205458 2.7561435 8.7276926zm-15.2553708-7.736518c-1.2735126 1.2247944-2.0874781 2.949592-2.4418963 5.1738231h14.1676143c-.1934486-2.288619-.8623988-4.0293711-2.0068508-5.2222565-1.144167-1.1926004-2.7319268-1.7891855-4.7627093-1.7891855-2.0307826 0-3.6829301.6125397-4.9561579 1.8376189z"/><path d="m61.99072 33.8509343c-1.7569915-1.0313458-3.1108466-2.4900448-4.06185-4.3760971-.9510034-1.8857673-1.426505-4.0857818-1.426505-6.6000433 0-2.5145464.4837638-4.7308002 1.4507217-6.6487615s2.3453146-3.4088543 4.1342152-4.4726789c1.7891855-1.0638247 3.8763787-1.595737 6.2618644-1.595737 1.6441703 0 3.2316451.2820531 4.7629942.8461594 1.5310642.5641063 2.7963147 1.3458778 3.7957514 2.3453145l-1.3057066 2.9011587c-1.2247943-.9672429-2.4097024-1.6763643-3.5538694-2.1276493-1.144452-.451285-2.3131206-.6769276-3.505721-.6769276-2.4820676 0-4.4325077.8302049-5.8507507 2.4903298-1.4185278 1.6601248-2.1276492 3.9729605-2.1276492 6.9387919 0 2.9333526.7011442 5.2139943 2.1034326 6.8419253 1.4022884 1.6279309 3.3604209 2.4418963 5.8749673 2.4418963 1.1926004 0 2.361269-.2256425 3.505721-.6769275 1.144167-.451285 2.3290751-1.1604065 3.5538694-2.1276493l1.3057066 2.9011586c-1.0316307.9672429-2.3290751 1.7327749-3.8926181 2.2968812s-3.1832118.8461594-4.859576.8461594c-2.3532918 0-4.4082911-.5156729-6.1649978-1.5473036z"/><path d="m87.1586914 13.8325694v13.2972382c0 1.80514.3709426 3.0703905 1.112258 3.7957514s1.7891856 1.0880413 3.1430406 1.0880413c.90257 0 1.7729461-.1450152 2.6111282-.4353305v3.3364892c-.9994367.3225092-2.1276493.4834789-3.3849225.4834789-2.3208129 0-4.1342151-.6527108-5.4396368-1.9581325-1.3057066-1.3057066-1.9584174-3.2316451-1.9584174-5.7783855v-13.8291505h-4.7387775v-3.0946072h4.7387775v-6.23764778l3.9165499-1.4022884v7.63993618h6.9630087v3.0946072z"/><path d="m98.8604776 35.0597742v-24.321812h3.9165494v24.321812zm-.3868971-34.62130978h4.7869255v4.44874713h-4.7869255z"/><path d="m114.381947 33.8509343c-1.740752-1.0313458-3.08663-2.498307-4.037633-4.4000289-.950719-1.9020067-1.426221-4.1262378-1.426221-6.6729782 0-2.5464555.475502-4.7709715 1.426221-6.6726933.951003-1.9020068 2.296881-3.3686831 4.037633-4.4003138s3.75558-1.5473036 6.044199-1.5473036c2.288904 0 4.303447.5156729 6.044199 1.5473036s3.08663 2.498307 4.037634 4.4003138c.951003 1.9017218 1.426505 4.1262378 1.426505 6.6726933 0 2.5467404-.475502 4.7709715-1.426505 6.6729782-.951004 1.9017219-2.296882 3.3686831-4.037634 4.4000289-1.740752 1.0316307-3.755295 1.5473036-6.044199 1.5473036-2.288619 0-4.303447-.5156729-6.044199-1.5473036zm11.604919-4.0857818c1.289468-1.5957369 1.934201-3.924812 1.934201-6.9872253 0-2.9655465-.660973-5.2624277-1.982634-6.8903586s-3.158995-2.4418964-5.512287-2.4418964c-2.385486 0-4.239059.8139655-5.56072 2.4418964s-1.982349 3.9248121-1.982349 6.8903586c0 3.0624133.652711 5.3914884 1.958132 6.9872253 1.305707 1.595737 3.167257 2.393463 5.584937 2.393463s4.271253-.797726 5.56072-2.393463z"/><path d="m158.915857 19.7799018v15.2798724h-3.916835v-15.0864238c0-2.2564251-.451285-3.9085727-1.353855-4.9561579s-2.320812-1.5715203-4.255013-1.5715203c-2.256425 0-4.06185.693167-5.415705 2.079216-1.353855 1.3860489-2.030783 3.2558618-2.030783 5.6091536v13.9257324h-3.91655v-17.5041035c0-2.5142615-.12906-4.786926-.386897-6.8177085h3.723101l.386898 4.3518804c.741315-1.5797825 1.853573-2.7965996 3.336489-3.6507362 1.482915-.8544216 3.175234-1.2814899 5.076956-1.2814899 5.834796 0 8.752194 3.2074284 8.752194 9.6222853z"/><path d="m185.630847 33.319022c-2.401725-1.4182429-4.247891-3.4572876-5.535648-6.1165644-1.290607-2.6595616-1.934486-5.7946249-1.934486-9.404905 0-3.6105649.643879-6.7293888 1.934486-9.35647159 1.287757-2.62708276 3.133923-4.64988805 5.535648-6.06841587 2.401726-1.41824292 5.230804-2.12764929 8.487236-2.12764929 2.384631 0 4.56983.36268044 6.552749 1.08804133 1.98007.72536088 3.69803 1.81340221 5.148182 3.26383907l-1.498585 3.04645873c-1.643886-1.41852782-3.264979-2.4339191-4.860431-3.04645873s-3.358996-.91852454-5.293482-.91852454c-3.772105 0-6.69805 1.22479436-8.777835 3.67466798-2.079786 2.44987362-3.11683 5.93137791-3.11683 10.44451291 0 4.545329 1.031346 8.0507651 3.094037 10.5168782 2.062692 2.466113 4.997184 3.6991695 8.800628 3.6991695 1.934486 0 3.69803-.3062698 5.293482-.9188094 1.595452-.6125397 3.216545-1.6279309 4.860431-3.0461739l1.498585 3.0461739c-1.450152 1.4507217-3.168112 2.5384782-5.148182 3.263839-1.982919.7253609-4.168118 1.0880414-6.552749 1.0880414-3.256432 0-6.08551-.7091215-8.487236-2.1276493z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(683.970025 292.181215)"><path d="m.10947429 20.3655834 1.52334352-19.36893462h4.27110005l-1.27858915 15.91416332h8.65071269l-.2720028 3.4547713z"/><path d="m15.3163023 20.3655834 1.0881712-13.79215735h4.1077702l-1.0881712 13.79215735zm1.4145104-20.26668789h4.4070212l-.2992511 3.86301581h-4.4070212z"/><path d="m21.9540024 18.8965763 1.3329256-2.8562691c.7616718.5258933 1.5778402.9293293 2.4483451 1.2104683.870505.2811389 1.7410099.4217084 2.6115148.4217084.7616717 0 1.3239496-.1088332 1.6866734-.3264995.3627237-.2176663.5440054-.5077811.5440054-.8705049 0-.3808359-.213018-.680087-.6392144-.8977533-.4261964-.217506-1.1199075-.4713966-2.0811335-.7616717-.9974502-.2720027-1.8136186-.5440055-2.4483451-.8160082-.6347265-.272163-1.1833802-.675599-1.6458009-1.2106285-.4624206-.5350296-.6937111-1.2287407-.6937111-2.0811335 0-.88861705.2494026-1.66840095.7482079-2.33951199.4986449-.67095076 1.2059803-1.19684408 2.1218457-1.57767996s1.963164-.5714141 3.1420563-.5714141c1.0336745 0 2.0447488.15419365 3.0330628.46258095.9884743.30822702 1.8181067.72544747 2.4892177 1.25134079l-1.3058375 2.74759621c-.6709507-.489669-1.3782861-.86152895-2.1218457-1.11541954-.7435596-.25389058-1.4690071-.38083588-2.1763424-.38083588-.7435596 0-1.3056772.10883315-1.6865131.32649945-.3808359.21750602-.5712538.51675707-.5712538.89759297 0 .3991083.2266422.7164716.6800869.95225.4532845.2357784 1.1425077.4805328 2.067349.7344234.9976105.2901149 1.8091307.5712538 2.434721.8432566.6257505.272163 1.169756.675599 1.6323369 1.2106285.4624207.5350295.6937112 1.2287407.6937112 2.0811334 0 1.360174-.5396778 2.4255848-1.6187128 3.1963928s-2.5344179 1.1561318-4.3661487 1.1561318c-2.3576242 0-4.4613577-.5622779-6.3112007-1.6866734z"/><path d="m41.8941909 15.0064724c-.0543365.7616718.0996969 1.3239497.4624206 1.6866734.3627238.3627238.861529.5440055 1.4962555.5440055.4170601 0 .8796411-.0724486 1.3874223-.217506l-.272163 3.1827685c-.6166144.2538906-1.4145104.3808359-2.3938485.3808359-1.5597281 0-2.7520842-.4170602-3.5772286-1.2513408s-1.2377166-2.0130125-1.2377166-3.5365164c0-.308227.0089759-.5440054.0270881-.7073353l.4353326-5.44069574h-2.6115148l.2447544-3.07393541h2.6115147l.2449147-3.23726527 4.216443-1.33292558-.3535875 4.57019085h3.509268l-.2447544 3.07393541h-3.509268z"/><path d="m46.2739638 18.8965763 1.3329255-2.8562691c.7618321.5258933 1.5778403.9293293 2.4483452 1.2104683.8705049.2811389 1.7410098.4217084 2.6115147.4217084.7618321 0 1.3239497-.1088332 1.6866734-.3264995.3627238-.2176663.5441658-.5077811.5441658-.8705049 0-.3808359-.2131784-.680087-.6393748-.8977533-.4261963-.217506-1.1199075-.4713966-2.0811334-.7616717-.9974502-.2720027-1.8134584-.5440055-2.4481849-.8160082-.6348867-.272163-1.1833801-.675599-1.6458008-1.2106285-.462581-.5350296-.6937112-1.2287407-.6937112-2.0811335 0-.88861705.2492424-1.66840095.7480476-2.33951199.498645-.67095076 1.2059803-1.19684408 2.1218457-1.57767996s1.9631641-.5714141 3.1420563-.5714141c1.0336745 0 2.0447489.15419365 3.0332232.46258095.988314.30822702 1.8181066.72544747 2.4890574 1.25134079l-1.3056773 2.74759621c-.671111-.489669-1.3784463-.86152895-2.1220059-1.11541954-.7435597-.25389058-1.4690071-.38083588-2.1761822-.38083588-.7435596 0-1.3058375.10883315-1.6866734.32649945-.3808358.21750602-.5712538.51675707-.5712538.89759297 0 .3991083.2266422.7164716.680087.95225.4534447.2357784 1.1425076.4805328 2.0675093.7344234.9974502.2901149 1.8089704.5712538 2.4347209.8432566.6255903.272163 1.169756.675599 1.6321767 1.2106285s.6937111 1.2287407.6937111 2.0811334c0 1.360174-.5395175 2.4255848-1.6187127 3.1963928-1.079035.770808-2.5344179 1.1561318-4.3661488 1.1561318-2.3576241 0-4.4613577-.5622779-6.3112006-1.6866734z"/><path d="m69.124918.99664878h7.7258714c1.9949004 0 3.5501405.4806931 4.6653998 1.44175873 1.1154195.96122592 1.6730492 2.28517557 1.6730492 3.97184896 0 1.6865131-.5622779 3.01495072-1.6866734 3.98531283-1.1243955.9702019-2.6749874 1.4553829-4.6517756 1.4553829h-5.4950322v8.5146312h-2.2308392zm7.5354534 9.00446052c1.4327828 0 2.5118178-.30838734 3.2372653-.92500167.7254475-.61661432 1.0881712-1.50523137 1.0881712-2.66585116 0-1.16078007-.3627237-2.04490916-1.0881712-2.65238727-.7254475-.60763839-1.8044825-.91137745-3.2372653-.91137745h-5.3046142v7.15461755z"/><path d="m98.1784001 6.6822592v13.6833242h-2.1763424v-2.4754332c-.3989481.8523927-1.0019382 1.5097193-1.8089705 1.97214-.8070322.4625809-1.7454977.6937111-2.8155568.6937111-1.2151165 0-2.2805273-.2901148-3.1963927-.8705049-.9158655-.5802297-1.6232008-1.4008862-2.1218457-2.4619693-.4988053-1.0609229-.7482079-2.2986395-.7482079-3.7131498 0-1.4146707.2538906-2.6615235.7616717-3.74055852.5079415-1.07903499 1.2197648-1.91780358 2.1356302-2.51630576.9157051-.59850218 1.97214-.89775327 3.1691444-.89775327 1.0700591 0 2.0040366.23577845 2.8019327.70733533.7980563.47155689 1.4055344 1.13353171 1.8225946 1.9857642v-2.36660008zm-3.2643534 10.6773494c.7254475-.9158654 1.088011-2.2170547 1.088011-3.9037281 0-1.6866733-.3625635-2.9833746-1.088011-3.89010384-.7254474-.90672919-1.7592822-1.36017394-3.1011837-1.36017394-1.3420618 0-2.3895208.46706892-3.1420563 1.40104648-.7526958.9339776-1.1290438 2.2351668-1.1290438 3.9037281 0 1.6684009.37186 2.9561263 1.1154196 3.8628555s1.7953463 1.3601739 3.1556805 1.3601739c1.3419015 0 2.3757363-.4579327 3.1011837-1.3737981z"/><path d="m114.636569 6.6822592v13.574491c0 2.031285-.521405 3.5682527-1.564216 4.6110634s-2.579779 1.5642161-4.610903 1.5642161c-2.085622 0-3.881128-.4715569-5.38636-1.4146707l.380836-1.7953462c.870505.489669 1.691162.8432565 2.46197 1.0609228.770647.2176663 1.618552.3264995 2.543554.3264995 1.323789 0 2.321239-.3490996 2.99235-1.047459.670951-.6981991 1.006587-1.7363615 1.006587-3.1148079v-3.237105c-.417221.8705049-1.029347 1.5459436-1.836379 2.0266367-.807033.4805329-1.76361.7207993-2.869894.7207993-1.197004 0-2.262415-.2809787-3.196392-.8432566-.933978-.5621176-1.654937-1.3601739-2.162719-2.3938484-.507781-1.0338348-.761671-2.2217029-.761671-3.5637647s.25389-2.52993.761671-3.56360448c.507782-1.03383477 1.228741-1.83173082 2.162719-2.39400871.933977-.56211761 1.999388-.84325656 3.196392-.84325656 1.088172 0 2.035773.23577845 2.842806.70733533.807032.47155689 1.418998 1.13353171 1.836218 1.9857642v-2.36660008zm-3.332474 10.1060956c.752695-.8796411 1.129043-2.0901094 1.129043-3.6317253 0-1.5414557-.376348-2.7520842-1.129043-3.63156509-.752536-.87964112-1.790859-1.31946169-3.114808-1.31946169-1.342062 0-2.398337.43982057-3.169145 1.31946169-.770808.87948089-1.156131 2.09010939-1.156131 3.63156509 0 1.5416159.385323 2.7520842 1.156131 3.6317253s1.827083 1.3193014 3.169145 1.3193014c1.323949 0 2.362272-.4396603 3.114808-1.3193014z"/><path d="m130.333066 13.4558805h-10.038135c.018112 1.7410099.421708 3.0558233 1.210628 3.9446006.788921.8886171 1.935916 1.3329256 3.441148 1.3329256 1.595952 0 3.064959-.5350295 4.407021-1.6050886l.734584 1.6050886c-.598503.5622779-1.364823 1.0065864-2.2988 1.3329256-.933978.3264995-1.890555.489669-2.869893.489669-2.140119 0-3.817656-.6302385-5.032772-1.8905552-1.215117-1.260477-1.822595-2.9878626-1.822595-5.1823172 0-1.3963982.272003-2.6342751.816169-3.71331012.544005-1.07903499 1.305677-1.91780358 2.285015-2.51630576s2.094757-.89775327 3.346098-.89775327c1.813459 0 3.237266.59401422 4.27094 1.78188236 1.033675 1.18786815 1.550592 2.82453279 1.550592 4.91015419zm-8.582752-4.35252451c-.716311.6890629-1.174244 1.65942501-1.373798 2.91076581h7.970625c-.108672-1.2875651-.48502-2.26690312-1.128883-2.93801417-.643863-.67095075-1.536968-1.00658641-2.679636-1.00658641-1.142507 0-2.071997.34461159-2.788308 1.03383477z"/><path d="m132.835747 18.7877432.734584-1.6321767c.74356.58039 1.496095.9974502 2.257927 1.2513408.761672.2538906 1.614065.3808359 2.556538.3808359 1.033834 0 1.819228-.1767938 2.352975-.5303813.535351-.3535875.803026-.866017.803026-1.5369677 0-.5441658-.181122-.9793381-.543365-1.3058375-.363845-.3264995-.961706-.5803901-1.795186-.7616718l-2.313065-.5441657c-1.142668-.2538906-2.026797-.7071751-2.652387-1.360174-.625751-.6528386-.938466-1.4326225-.938466-2.339512 0-1.19684406.480533-2.17169415 1.441759-2.92438998.961226-.75253555 2.230679-1.12888347 3.808199-1.12888347.961706 0 1.868917.15419366 2.720027.46242067.852713.30838731 1.569185.75269584 2.149415 1.33308587l-.734103 1.60492831c-1.287084-1.07005906-2.665531-1.60492831-4.135339-1.60492831-.979018 0-1.736202.18576969-2.271231.55762964-.53503.37169967-.802544.89310502-.802544 1.56421607 0 .5621176.167817 1.0065864.503293 1.3329256.335475.3264994.874993.58039 1.618552.7616717l2.312745.5712539c1.269453.2902751 2.211925.7390716 2.829021 1.34671.617095.6074781.924841 1.4008862.924841 2.3802243 0 1.1788922-.480854 2.1218457-1.44256 2.829181-.960104.7073353-2.266423 1.0609228-3.917353 1.0609228-2.302646 0-4.125241-.5893659-5.467303-1.7682581z"/><path d="m153.917963.99664878h12.785891v1.65942503l-9.084923 17.70950959h-2.39465l9.032029-17.49184329h-10.338347z"/><path d="m173.015856 17.5636507v1.9859245c0 .7616718-.126624 1.4598709-.381477 2.0945973-.253249.6347265-.679606 1.2513408-1.277467 1.849843l-1.035437-.7889201c.708457-.8160082 1.107565-1.5959524 1.197324-2.339512h-1.304715v-2.8019327z"/><path d="m188.807081 12.1909156c.698841.8434168 1.048261 1.8543309 1.048261 3.0332231 0 1.6502888-.626712 2.9516384-1.878534 3.9037281-1.250219.9520897-2.938014 1.4281345-5.058578 1.4281345-2.122166 0-3.809961-.4760448-5.06018-1.4281345-1.251822-.9520897-1.876931-2.2534393-1.876931-3.9037281 0-1.1788922.357434-2.1944545 1.073906-3.0468473.716471-.8523928 1.700618-1.4417587 2.95244-1.7682582-1.16046-.3444513-2.050039-.91121715-2.667134-1.70013727-.615492-.78892012-.924841-1.71840971-.924841-2.78830849 0-1.03383478.272483-1.93607601.815848-2.70688399.544967-.77064769 1.311127-1.36914987 2.300082-1.79534625.987352-.42619638 2.117357-.63937472 3.38681-.63937472s2.397856.21317834 3.386811.63937472c.987352.42619638 1.753512 1.02469856 2.298479 1.79534625.543365.77080798.815848 1.67304921.815848 2.70688399 0 1.06989878-.312555 1.99938837-.939267 2.78830849-.625109.78892012-1.500262 1.35568597-2.623856 1.70013727 1.269452.3446116 2.251996.9386258 2.950836 1.7818824zm-9.004781-3.59085282c.770969.64386269 1.809612 1.03832275 3.11593 1.18338018 1.304716-.14505743 2.343359-.53951749 3.114327-1.18338018.770969-.64386268 1.155651-1.48263127 1.155651-2.51630576 0-1.07005906-.376668-1.91331562-1.128402-2.52992994-.753337-.61661432-1.799995-.92500163-3.141576-.92500163-1.343183 0-2.389841.30838731-3.143178.92500163-.751734.61661432-1.128403 1.45987088-1.128403 2.52992994 0 1.03367449.384683 1.87244308 1.155651 2.51630576zm6.624557 9.18125422c.815848-.6166143 1.224574-1.5143676 1.224574-2.6932598 0-1.0698988-.431166-1.9267795-1.291893-2.5706422-.862331-.6438627-2.009967-1.0383227-3.441308-1.1833802-1.432943.1450575-2.580579.5395175-3.441307 1.1833802-.86233.6438627-1.293496 1.5007434-1.293496 2.5706422 0 1.1788922.408726 2.0766455 1.224574 2.6932598s1.985924.9248414 3.510229.9248414c1.522703 0 2.692779-.3082271 3.508627-.9248414z"/><path d="m195.622377 17.5636507v1.9859245c0 .7616718-.128228 1.4598709-.381477 2.0945973-.25325.6347265-.679606 1.2513408-1.27907 1.849843l-1.033835-.7889201c.708457-.8160082 1.107566-1.5959524 1.197325-2.339512h-1.306318v-2.8019327z"/><path d="m210.339696 3.22732763c1.26785 1.63217667 1.902577 3.95357653 1.902577 6.96419957 0 3.2824655-.657167 5.8351558-1.971499 7.6577504-1.314333 1.8225946-3.151193 2.7339721-5.508977 2.7339721-1.105963 0-2.189486-.2085301-3.250569-.6257505-1.061083-.4170602-1.998747-1.0064262-2.816198-1.7680979l.871947-1.7139218c.924842.7799442 1.803201 1.3465498 2.638283 1.7002976.833479.3535875 1.676575.5303813 2.529288.5303813 1.668562 0 2.960454-.7435596 3.877282-2.2306789.915224-1.4871192 1.373637-3.5727406 1.373637-6.2568642v-.35358755c-.416739 1.01556235-1.097948 1.81810665-2.040421 2.40747265-.944075.5895262-2.02279.8841291-3.237746.8841291-1.178091 0-2.221543-.2583786-3.128753-.775296-.905607-.5167571-1.614064-1.2422046-2.120563-2.1761821-.508102-.93413786-.762954-1.99954868-.762954-3.19655303 0-1.19684408.267675-2.26690314.803025-3.21001692.53535-.94295348 1.274262-1.68202514 2.216734-2.21705467.944076-.53502953 2.013173-.8025443 3.210498-.8025443 2.340153 0 4.143353.81616848 5.414409 2.44834515zm-2.176663 6.85536647c.796614-.79805638 1.195722-1.83173087 1.195722-3.10118381 0-1.28772536-.399108-2.33053607-1.195722-3.12843212-.798217-.79805633-1.841668-1.19700436-3.128753-1.19700436-1.232587 0-2.231159.39446006-2.992511 1.18338018-.761351.78892012-1.142828 1.83621879-1.142828 3.1420563 0 1.28756508.381477 2.32588782 1.142828 3.11480791.761352.7889202 1.767938 1.1833802 3.01976 1.1833802 1.269453 0 2.303287-.3991083 3.101504-1.1970043z"/></g><path d="m17.8381448 46.9715784h11.4351924v5.0258027h-28.91585333v-5.0258027h11.43519243v-39.40433576l-10.63396507 6.77374006v-5.75407418l13.25608567-8.44915063h3.4233479z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(21.524072 376.769072)"/><path d="m35.1591611 47.829883v5.0258027h-33.35886717v-4.5159698l18.13640567-20.1027815c2.4277146-2.719109 4.2001136-5.1712853 5.3167679-7.3565289 1.1170835-2.1848144 1.6754107-4.3700579 1.6754107-6.5553015 0-2.8645916-.8256891-5.06185144-2.476638-6.59135026-1.6509489-1.52992798-4.0057077-2.29467739-7.0651345-2.29467739-4.9528467 0-9.85677016 1.99083755-14.71262852 5.97294185l-2.25819944-4.58892566c2.03976092-1.94234334 4.61295815-3.4958747 7.72087917-4.66145237 3.10749189-1.16557766 6.23944539-1.74793734 9.39586059-1.74793734 4.7584408 0 8.5216774 1.22608814 11.2897098 3.67826442 2.7676032 2.45217629 4.1516194 5.76609041 4.1516194 9.94174235 0 2.9620092-.667761 5.8150138-2.003283 8.5585845-1.3350928 2.7431415-3.5568143 5.8145846-6.6643061 9.2134709l-14.7855845 16.024118z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(113.15712 375.910768)"/><path d="m32.1649655 30.7131432c1.6024547 2.1367493 2.403682 4.8318258 2.403682 8.0848003 0 4.5159698-1.5294988 8.0727841-4.5884964 10.6708722-3.0594268 2.5976589-7.2110463 3.8967029-12.4548583 3.8967029-3.3508212 0-6.5677469-.5587563-9.65077711-1.6754106-3.08345933-1.1166543-5.69356366-2.6950765-7.82988385-4.7344083l2.33072618-4.5884964c4.806935 3.9816751 9.80827598 5.9725126 15.00402298 5.9725126 3.6902807 0 6.494791-.825689 8.4126727-2.4766379 1.9178817-1.650949 2.8770371-4.0786636 2.8770371-7.283573 0-6.3608955-3.9816751-9.5413433-11.9450254-9.5413433h-5.9729418v-5.0258026h4.8073642c3.8361924 0 6.77374-.8497216 8.8130718-2.5491647 2.0393317-1.6994432 3.0594268-4.1275869 3.0594268-7.283573 0-2.8165266-.8377053-4.97730847-2.513116-6.48234561-1.6749814-1.50546629-4.0421855-2.25819944-7.1016123-2.25819944-4.9528468 0-9.85677025 1.99083755-14.71262861 5.97294185l-2.25819944-4.58892566c2.08825513-1.99083756 4.6494361-3.55681433 7.68440122-4.69793031 3.03496513-1.14111599 6.20339663-1.7114594 9.50529443-1.7114594 4.6614524 0 8.388211 1.18961019 11.180276 3.56883059 2.7920649 2.37922039 4.1880973 5.58412982 4.1880973 9.61429918 0 2.9620092-.7287006 5.5596681-2.1852435 7.7934059-1.456543 2.2337377-3.4718422 3.8361925-6.0454686 4.8073641 3.0589977.8737541 5.390153 2.3792204 6.9921786 4.5155406z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(210.490122 375.910768)"/><path d="m37.9113149 35.7548245v4.9528468h-7.8663618v11.2897098h-5.9725127v-11.2897098h-23.89005067v-4.5159697l24.98267247-36.05394371h4.8798909v35.61706661zm-31.53797398 0h17.69909948v-25.4925054z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(344.333123 377.543534)"/><path d="m27.0614862 21.5151218c2.4521763 1.3840162 4.3340092 3.3143433 5.6450695 5.7905521 1.3110603 2.4766379 1.9663758 5.3412296 1.9663758 8.5946332 0 3.2534037-.7162552 6.142457-2.1487656 8.6675892-1.4320812 2.5251322-3.4718421 4.4794918-6.1179953 5.863508-2.6465822 1.383587-5.7420578 2.0758097-9.2868559 2.0758097-3.1559861 0-6.2634779-.5707726-9.32290473-1.7118886-3.05899765-1.1411159-5.63262403-2.7070927-7.72045001-4.6979303l2.25777029-4.5884964c4.80736415 3.9816751 9.73574925 5.9725126 14.78558445 5.9725126 3.6422156 0 6.494791-1.0316821 8.5585845-3.0954756 2.0633643-2.0637934 3.0954756-4.8678746 3.0954756-8.4126727 0-3.4473804-1.0196659-6.2274291-3.0589977-8.3397168-2.0397609-2.1122876-4.7588699-3.1684314-8.1577562-3.1684314-4.9528468 0-8.91048936 2.0152992-11.87249858 6.0454685h-4.15161943v-30.37282541h31.10109691v4.95284678h-25.12858424v18.50075603c2.86502084-2.7680324 6.53126894-4.1520486 10.99831534-4.1520486 3.2534036 0 6.105979.6922227 8.5581553 2.0758097z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(442.786269 377.543534)"/><path d="m28.6326128 22.3734264c2.4521763 1.3840162 4.3580417 3.3263595 5.7175962 5.82703s2.0393318 5.3536751 2.0393318 8.5581554c0 3.2049094-.7162552 6.0699302-2.1487656 8.5946332-1.4320813 2.5251322-3.4109026 4.5039535-5.9360347 5.9364639-2.5247031 1.4320813-5.3897239 2.1483365-8.5946333 2.1483365-6.2639071 0-11.09530378-2.1848144-14.49419005-6.5553015-3.39931543-4.370058-5.09875857-10.5854709-5.09875857-18.6458095 0-5.82703.78921109-10.828371 2.36720413-15.004023 1.57799303-4.1760811 3.86022501-7.35652885 6.84669592-9.5417724 2.98604177-2.18524355 6.56731777-3.27743617 10.74339887-3.27743617 3.0105034 0 5.9360347.55832715 8.7765938 1.67498145 2.8405592 1.11708346 5.3292134 2.69507649 7.4655336 4.73440826l-2.2577703 4.58892566c-2.4277146-2.03976095-4.7584408-3.5447981-6.9921786-4.51596977-2.2337377-.97117167-4.5159697-1.45697208-6.8466959-1.45697208-4.4670463 0-7.9388885 1.99083755-10.41552648 5.97294185-2.47620881 3.9816751-3.71474237 9.5653758-3.71474237 16.7519603v1.0926218c1.11708345-2.7676033 2.93797669-4.9528468 5.46267975-6.5553015 2.5251321-1.6024547 5.4141855-2.4036821 8.6675891-2.4036821 3.1564153 0 5.9604964.6922227 8.4126727 2.0758097zm-1.2016264 22.8708139c2.0393317-2.1122876 3.0589976-4.9163688 3.0589976-8.4126726 0-3.4473805-1.0321113-6.2274292-3.0954756-8.3397168-2.0637934-2.1122877-4.7464245-3.1684315-8.0483224-3.1684315-3.3993154 0-6.1669186 1.0681601-8.303668 3.2049094-2.13632016 2.1363202-3.20448025 4.9043526-3.20448025 8.3032389 0 3.4473804 1.06816009 6.2394454 3.20448025 8.3761947 2.1367494 2.1363202 4.9288143 3.2049094 8.3761948 3.2049094 3.3018978 0 5.9725126-1.0561438 8.0122736-3.1684315z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(539.405045 376.685229)"/><path d="m.06008132.13775789h34.23305048v4.44301384l-24.32735691 47.41660937h-6.40938972l24.18144513-46.83382053h-27.67774898z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(678.757195 376.512457)"/><path d="m34.6622027 30.9684888c1.8693875 2.2577703 2.8040812 4.9648631 2.8040812 8.1208491 0 4.4189814-1.6749814 7.9028398-5.0253735 10.4520045-3.3508212 2.5495939-7.8663618 3.8241762-13.5474801 3.8241762-5.6815474 0-10.19708794-1.2745823-13.54748-3.8241762-3.35082122-2.5491647-5.02580268-6.0330231-5.02580268-10.4520045 0-3.155986.95872626-5.875095 2.87703707-8.157327 1.91788167-2.282232 4.55201853-3.8606542 7.90241061-4.7344083-3.10749187-.9226774-5.48671227-2.44016-7.1376612-4.5524477-1.65094892-2.1122876-2.47663796-4.6005127-2.47663796-7.4655335 0-2.7676032.72870062-5.18373073 2.18524355-7.24709502 1.45654293-2.06379345 3.50832011-3.66624817 6.15447324-4.80736415 2.64658227-1.14111599 5.66910197-1.7114594 9.06841737-1.7114594 3.3988863 0 6.421406.57034341 9.0679883 1.7114594 2.6461531 1.14111598 4.6979303 2.7435707 6.1544733 4.80736415 1.456972 2.06336429 2.1852435 4.47949182 2.1852435 7.24709502 0 2.8650208-.8377053 5.3532459-2.5131159 7.4655335-1.6749815 2.1122877-4.0177239 3.6297703-7.0286565 4.5524477 3.3993154.9226775 6.0334523 2.5126868 7.9028397 4.7708862zm-24.1084891-9.6147283c2.0633642 1.7239048 4.8434129 2.7800487 8.3397167 3.1684315 3.4958747-.3883828 6.2759234-1.4445267 8.3397168-3.1684315 2.0633643-1.7234756 3.0954756-3.9692297 3.0954756-6.7372621 0-2.8645916-1.0076496-5.12279105-3.0229488-6.77373998-2.0148701-1.65094892-4.8193804-2.47620881-8.4122436-2.47620881-3.5932922 0-6.3978026.82525989-8.4126726 2.47620881-2.01529928 1.65094893-3.0229489 3.90914838-3.0229489 6.77373998 0 2.7680324 1.0321113 5.0137865 3.0959048 6.7372621zm17.7355774 24.5822734c2.1848144-1.650949 3.2774361-4.054631 3.2774361-7.2106171 0-2.8650208-1.1531322-5.1592691-3.4598259-6.8831739-2.3062645-1.7239048-5.3777075-2.7800486-9.2134709-3.1684315-3.8361924.3883829-6.9076355 1.4445267-9.2139 3.1684315-2.30669365 1.7239048-3.4598259 4.0181531-3.4598259 6.8831739 0 3.1559861 1.09262177 5.5596681 3.27786532 7.2106171 2.18481438 1.6509489 5.31676798 2.4766379 9.39586058 2.4766379 4.0786636 0 7.2106171-.825689 9.3958607-2.4766379z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(773.608278 376.236614)"/><path d="m31.3560134 6.96900432c3.3988862 4.37005798 5.0987585 10.58547078 5.0987585 18.64580948 0 8.7890393-1.7603827 15.6232898-5.2807191 20.5031806-3.5203364 4.8803201-8.4367052 7.320051-14.7495357 7.320051-2.9620092 0-5.8630788-.5583272-8.70363793-1.6749815-2.84055913-1.1170835-5.35367504-2.6950765-7.53848944-4.7344083l2.33072618-4.5884964c2.47620882 2.0878259 4.83139668 3.6053085 7.06513445 4.5520185 2.23330864.94671 4.49150804 1.4204941 6.77374004 1.4204941 4.4670464 0 7.9268723-1.9908375 10.3790485-5.9725126 2.4521763-3.9821043 3.6782645-9.565805 3.6782645-16.7523895v-.9471392c-1.1170835 2.7195382-2.9379767 4.8678747-5.4626798 6.4462969-2.5251321 1.577993-5.4141855 2.3672041-8.6675891 2.3672041-3.1564152 0-5.9484801-.6922227-8.37619475-2.0758097-2.42771461-1.3840162-4.32156374-3.3263596-5.68111825-5.8270301s-2.03933177-5.353675-2.03933177-8.5581553c0-3.2049094.7162552-6.0699302 2.14833645-8.59463325 1.43251041-2.52513218 3.4113317-4.50395347 5.93646388-5.93646387 2.52470304-1.43208125 5.38972384-2.14833645 8.59463324-2.14833645 6.2639071 0 11.0953038 2.18481439 14.4941901 6.55530149zm-5.8270301 18.35441508c2.1367494-2.1363202 3.2049095-4.9043526 3.2049095-8.3032389 0-3.4473805-1.0681601-6.2394454-3.2049095-8.37619472-2.1363202-2.13632019-4.9283851-3.20490943-8.3757656-3.20490943-3.3018978 0-5.9729418 1.05614383-8.01227355 3.16843149-2.03933176 2.11228766-3.05899765 4.91636886-3.05899765 8.41267266 0 3.4473805 1.01966589 6.2274292 3.05899765 8.3397168 2.03933175 2.1122877 4.73440825 3.1684315 8.08480035 3.1684315 3.3993154 0 6.1669186-1.0681601 8.3032388-3.2049094z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(867.854354 375.654152)"/><path d="m330.093135.33214542v84.43190468-42.5518783h-329.66215607v42.5518783" stroke="#000" stroke-width="2.538347" transform="translate(131.785126 139.982935)"/><path d="m.10801477.42233775h329.31542823v42.21595235" stroke="#000" stroke-width="2.538347" transform="translate(461.770246 182.108695)"/><path d="m36.186655 346.60579v15.692843" stroke="#000" stroke-width="2.540394"/><path d="m132.152376 331.426017v30.871702" stroke="#000" stroke-width="2.538347"/><path d="m228.893645 346.60579v15.692843" stroke="#000" stroke-width="2.540394"/><g transform="translate(1221.45577 24.489117)"><path d="m.197608.154988h239.084215v85.099871h-239.084215z" fill="#0083c0"/><path d="m239.281823 85.2548586h-239.08421531v-85.09987082h239.08421531zm-236.54571658-82.56147761v80.02308441h234.00574658v-80.02308441z" fill="#000"/></g><g transform="translate(956.909366 124.770501)"><path d="m.184449.095195h223.163411v52.269131h-223.163411z" fill="#c9177e"/><path d="m223.347859 52.3643259h-223.16341016v-52.26913097h223.16341016zm-220.62506465-49.73066919v47.19220749h218.08488865v-47.19220749z" fill="#000"/></g><g transform="translate(1231.923745 124.770501)"><path d="m.183618.095195h222.158079v52.269131h-222.158079z" fill="#c9177e"/><path d="m222.341696 52.3643259h-222.15807809v-52.26913097h222.15807809zm-219.61932129-49.73066919v47.19220749h217.08147629v-47.19220749z" fill="#000"/></g><path d="m91.4241325.12672749v8.67595862h-91.3476086v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1252.516016 177.005152)"/><g transform="translate(1504.487683 124.770501)"><path d="m.182671.095195h221.012609v52.269131h-221.012609z" fill="#c9177e"/><path d="m221.19528 52.3643259h-221.01260884v-52.26913097h221.01260884zm-218.47425033-49.73066919v47.19220749h215.93589233v-47.19220749z" fill="#000"/></g><g transform="translate(1018.734446 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m19.5454361 18.6632185c.9737513 1.298422 1.4606269 2.9361183 1.4606269 4.9128281 0 2.7441845-.9294187 4.9055264-2.7882562 6.4842865-1.8590982 1.5784993-4.3818807 2.3678794-7.5683475 2.3678794-2.03616765 0-3.99097204-.3395352-5.86441318-1.0180839-1.87370191-.6785486-3.45976385-1.6376963-4.75792503-2.8769212l1.41629437-2.7882563c2.92099306 2.4195138 5.96011931 3.6292707 9.11737874 3.6292707 2.2424444 0 3.9466395-.5017401 5.1120638-1.5049595 1.1654244-1.0032194 1.7482669-2.4784499 1.7482669-4.4259525 0-3.8652762-2.4195137-5.7979144-7.2585412-5.7979144h-3.62953146v-3.0539906h2.92125384c2.33110942 0 4.11614632-.5163438 5.35537122-1.5490313 1.239225-1.0326875 1.8590983-2.5081788 1.8590983-4.4259525 0-1.71149696-.5090419-3.02452258-1.5271257-3.93907688-1.0178231-.91481507-2.4562837-1.37222261-4.315382-1.37222261-3.00965814 0-5.9895874 1.20975688-8.94030934 3.62953142l-1.37222261-2.78851699c1.26895386-1.20975688 2.82528692-2.16134189 4.66952073-2.85475502 1.84423381-.69341314 3.7695701-1.03998932 5.77600882-1.03998932 2.8325888 0 5.0971994.72288124 6.7938319 2.16864372 1.6966326 1.44576248 2.5449488 3.39326503 2.5449488 5.8422469 0 1.79990128-.4428039 3.37840058-1.32789 4.73575878-.8850862 1.3573582-2.1097076 2.3311094-3.6736032 2.9212538 1.8588374.5309474 3.2753926 1.4457625 4.2488831 2.7439237z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1028.654902 202.599599)"/><g transform="translate(1078.488158 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m22.936251 22.0604515v3.0096581h-4.7800913v6.8603307h-3.6292707v-6.8603307h-14.51708251v-2.7441844l15.18102761-21.9086215h2.9653256v21.6431478zm-19.16443702 0h10.75507502v-15.49083387z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1089.451732 203.121158)"/><g transform="translate(1138.52553 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m16.4136394 13.9290806c1.4900951.8410145 2.6336139 2.0140014 3.4302958 3.5187001.7966819 1.5049595 1.1948924 3.2456637 1.1948924 5.2226344s-.4352412 3.7325394-1.3057238 5.2669669c-.8702217 1.5344276-2.1097075 2.7220182-3.7176749 3.5630326-1.6082282.8407537-3.489232 1.2613913-5.643272 1.2613913-1.9177737 0-3.80607928-.346837-5.66517753-1.0402501-1.85883747-.6934131-3.42273314-1.6449981-4.69142622-2.854755l1.37196183-2.7882562c2.92125384 2.4195137 5.91604755 3.6292706 8.98464192 3.6292706 2.213237 0 3.9466395-.6269143 5.2007289-1.8810037 1.2538286-1.2540895 1.8810037-2.9580238 1.8810037-5.1120639 0-2.094843-.6196125-3.7841737-1.8588374-5.0677312-1.2394858-1.2835576-2.8917858-1.9253363-4.9571607-1.9253363-3.00965819 0-5.41456828 1.2246213-7.21446955 3.6736031h-2.52278251v-18.45642016h18.89896326v3.00965815h-15.26969262v11.24221151c1.74096506-1.6820289 3.96880576-2.5230433 6.68326132-2.5230433 1.9769707 0 3.7103731.4206376 5.2004681 1.2613912z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1148.445985 201.599599)"/><g transform="translate(957.360703 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m10.8395677 28.5428562h6.948735v3.0539907h-17.57107324v-3.0539907h6.94873503v-23.94452832l-6.46185939 4.11614628v-3.49653379l8.05522316-5.1342301h2.08023944z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(970.410431 203.121158)"/><g transform="translate(1231.099754 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m21.3648958 29.0644155v3.0539907h-20.27092509v-2.7441844l11.02080949-12.215702c1.4752306-1.6523 2.5522507-3.142395 3.2307994-4.4702851.6788094-1.3276293 1.0180838-2.6555193 1.0180838-3.98340939 0-1.74070428-.5017401-3.07589618-1.5049595-4.00531492-1.0032194-.92967951-2.4341174-1.39438888-4.2932157-1.39438888-3.0096581 0-5.98958737 1.20975688-8.94030931 3.62953142l-1.37222261-2.78851699c1.23948576-1.18028878 2.80312065-2.12431118 4.691687-2.83258875 1.88830558-.70827758 3.79147559-1.06215559 5.70951002-1.06215559 2.891525 0 5.1783019.74504751 6.8603307 2.23514253 1.6817681 1.49009502 2.5227826 3.50383562 2.5227826 6.04122179 0 1.79990128-.4057732 3.53356448-1.2173195 5.20072888-.8112856 1.6669037-2.1613419 3.5333038-4.0496475 5.5986787l-8.98464189 9.737252z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1241.784164 202.570441)"/><g transform="translate(1292.473373 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m23.0372759 21.726858v3.0096582h-4.7800914v6.8603307h-3.6292706v-6.8603307h-14.51708254v-2.7441845l15.18102754-21.90862143h2.9653256v21.64314773zm-19.16443705 0h10.75507505v-15.4908338z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1301.574474 203.100332)"/><g fill="#fff" fill-rule="nonzero" transform="translate(974.127869 141.527307)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m60.3369055 14.1252405h3.214004v1.4134989h-8.1271311v-1.4134989h3.214004v-11.07403258l-2.988819 1.90578642v-1.61821251l3.725788-2.37370329h.9621541z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m133.890513 14.1252405h3.214004v1.4134989h-8.127131v-1.4134989h3.214004v-11.07403258l-2.988819 1.90578642v-1.61821251l3.725788-2.37370329h.962154z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m153.481607 9.31447018c.45037.59951849.675555 1.35988342.675555 2.27134652 0 1.2721489-.429898 2.2713464-1.289696 3.0024665-.859797.726246-2.026665 1.0918061-3.500603 1.0918061-.941682 0-1.845834-.1559723-2.712455-.4679169-.866621-.3168187-1.600178-.7603649-2.200672-1.3306386l.655084-1.2916455c1.35111 1.1210508 2.75681 1.6815762 4.217101 1.6815762 1.037215 0 1.825363-.2339584 2.364442-.6970012.539079-.4630427.808619-1.1454215.808619-2.0471363 0-1.78880715-1.119101-2.68077369-3.357304-2.68077369h-1.678651v-1.41349887h1.35111c1.078158 0 1.903836-.23883257 2.477034-.71649771.573199-.47766514.859798-1.1600439.859798-2.0471363 0-.79448385-.235421-1.39887648-.706262-1.82292614-.470842-.42404966-1.136161-.63363743-1.995958-.63363743-1.392053 0-2.770458.56052542-4.135216 1.67670212l-.634612-1.28677139c.586846-.56052542 1.306756-.99919749 2.159729-1.32089033.852973-.32169285 1.743478-.48253927 2.671513-.48253927 1.310167 0 2.357619.33631525 3.142354 1.00407161.784736.66775637 1.177103 1.56947117 1.177103 2.70027027 0 .83347692-.204713 1.56459703-.61414 2.19336032-.409428.62388916-.975802 1.07718363-1.699124 1.35013514.859798.2437067 1.514881.66775636 1.965251 1.26727485z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m171.98772 10.9716758v1.3940023h-2.210908v3.1730613h-1.678651v-3.1730613h-6.714608v-1.2672749l7.021678-10.13332466h1.371581v10.00659726zm-8.864101 0h4.974542v-7.1649771z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m186.553094 6.9700117c.689203.38993073 1.218046.93095961 1.586531 1.62796078.368484.69700117.552727 1.50123332.552727 2.41757052 0 .911463-.201302 1.7254434-.603905 2.437067-.402604.7067494-.975802 1.2575266-1.719595 1.6474573s-1.613826.580022-2.610099.580022c-.887092 0-1.760537-.1559723-2.620334-.4776652-.859797-.3216928-1.583119-.7603649-2.169965-1.3208903l.634613-1.2916455c1.35111 1.1210508 2.736338 1.6815762 4.155686 1.6815762 1.023568 0 1.825363-.292448 2.405385-.87247.580022-.5800219.870033-1.3696316.870033-2.363955 0-.9699527-.286599-1.74981412-.859797-2.34445848-.573198-.59464435-1.337462-.89196653-2.292793-.89196653-1.392052 0-2.50433.57027369-3.336832 1.70107279h-1.166867v-8.53460874h8.741272v1.38912821h-7.062621v5.20070104c.805207-.77986145 1.835599-1.16491804 3.091176-1.16491804.914388 0 1.716183.19496536 2.405385.58002195z"/></g><g fill="#fff" fill-rule="nonzero" transform="translate(1248.643217 141.651852)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m63.8784513 14.1252405v1.4134989h-9.3758843v-1.2672749l5.0973694-5.65399549c.6823788-.76036491 1.1805153-1.45249195 1.4944095-2.06663284.3138943-.61414089.4708414-1.22828178.4708414-1.84242267 0-.80423212-.2320088-1.42324715-.6960264-1.85217094-.4640175-.4289238-1.1259249-.6433857-1.9857222-.6433857-1.3920527 0-2.7704578.56052542-4.1352153 1.67670212l-.6346123-1.28677139c.5731982-.54590302 1.2965197-.98457508 2.1699645-1.31114206.8734448-.32656699 1.7537134-.49228754 2.6408058-.49228754 1.3374624 0 2.3951495.34606351 3.1730613 1.03331642.7779118.6872529 1.1668677 1.62308664 1.1668677 2.79287881 0 .83347692-.1876542 1.63770904-.5629625 2.40782222-.3753083.77011319-.9996849 1.63283491-1.8731297 2.58816519l-4.1556867 4.50369987z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m137.432059 14.1252405v1.4134989h-9.375885v-1.2672749l5.09737-5.65399549c.682379-.76036491 1.180515-1.45249195 1.494409-2.06663284.313895-.61414089.470842-1.22828178.470842-1.84242267 0-.80423212-.232009-1.42324715-.696027-1.85217094-.464017-.4289238-1.125925-.6433857-1.985722-.6433857-1.392053 0-2.770458.56052542-4.135215 1.67670212l-.634612-1.28677139c.573198-.54590302 1.296519-.98457508 2.169964-1.31114206.873445-.32656699 1.753713-.49228754 2.640806-.49228754 1.337462 0 2.395149.34606351 3.173061 1.03331642.777912.6872529 1.166868 1.62308664 1.166868 2.79287881 0 .83347692-.187654 1.63770904-.562963 2.40782222-.375308.77011319-.999685 1.63283491-1.873129 2.58816519l-4.155687 4.50369987z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m154.976017 10.9716758v1.3940023h-2.210907v3.1730613h-1.678652v-3.1730613h-6.714607v-1.2672749l7.021677-10.13332466h1.371582v10.00659726zm-8.8641 0h4.974541v-7.1649771z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m169.541392 6.9700117c.689202.38993073 1.218046.93095961 1.58653 1.62796078.368485.69700117.552727 1.50123332.552727 2.41757052 0 .911463-.201302 1.7254434-.603905 2.437067-.402604.7067494-.975802 1.2575266-1.719595 1.6474573-.743792.3899307-1.613825.580022-2.610098.580022-.887093 0-1.760538-.1559723-2.620335-.4776652-.859797-.3216928-1.583119-.7603649-2.169964-1.3208903l.634612-1.2916455c1.35111 1.1210508 2.736339 1.6815762 4.155687 1.6815762 1.023568 0 1.825363-.292448 2.405385-.87247.580022-.5800219.870033-1.3696316.870033-2.363955 0-.9699527-.286599-1.74981412-.859798-2.34445848-.573198-.59464435-1.337462-.89196653-2.292792-.89196653-1.392053 0-2.50433.57027369-3.336832 1.70107279h-1.166868v-8.53460874h8.741272v1.38912821h-7.06262v5.20070104c.805207-.77986145 1.835599-1.16491804 3.091175-1.16491804.914388 0 1.716183.19496536 2.405386.58002195z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m187.965618 9.38758219c.525432.63363741.788148 1.39400231.788148 2.28109471 0 1.2429042-.470842 2.2226052-1.412524 2.9391029-.941683.7164977-2.210907 1.0723095-3.807674 1.0723095-1.596766 0-2.865991-.3558118-3.807673-1.0723095-.941683-.7164977-1.412524-1.6961987-1.412524-2.9391029 0-.8870924.269539-1.6523314.808619-2.29084297.539079-.6433857 1.27946-1.0869319 2.221142-1.3306386-.873444-.25832911-1.542176-.6872529-2.006193-1.28189726-.464018-.59464435-.696026-1.29164552-.696026-2.09587764 0-.77986145.204713-1.45736609.61414-2.03738804.409428-.58002195.986038-1.02844229 1.729831-1.35013513.743792-.32169285 1.593354-.48253927 2.548684-.48253927.955331 0 1.804892.16084642 2.548685.48253927.743793.32169284 1.320403.77011318 1.72983 1.35013513s.614141 1.25752659.614141 2.03738804c0 .80423212-.235421 1.50123329-.706262 2.09587764-.470841.59464436-1.129337 1.02356815-1.975487 1.28189726.955331.2583291 1.695712.70674944 2.221143 1.34038686zm-6.776021-2.7051444c.580022.48741341 1.361346.78473559 2.343971.89196653.982626-.10723094 1.763949-.40455312 2.343971-.89196653.580022-.48253927.870033-1.11130256.870033-1.89116401 0-.80423212-.283187-1.43786955-.849561-1.90578642-.566375-.46304273-1.354522-.69212703-2.364443-.69212703-1.00992 0-1.798068.2290843-2.364442.69212703-.566375.46791687-.849562 1.1015543-.849562 1.90578642 0 .77986145.290011 1.40862474.870033 1.89116401zm4.984777 6.91152211c.614141-.4630428.921211-1.1405474.921211-2.0276398 0-.8042321-.324129-1.4476178-.972389-1.9350312-.64826-.48253927-1.511469-.77986145-2.589628-.8870924-1.078158.10723095-1.941367.40455313-2.589627.8870924-.64826.4874134-.97239 1.1307991-.97239 1.9350312 0 .8870924.307071 1.564597.921211 2.0276398.614141.4630427 1.49441.6970012 2.640806.6970012 1.146397 0 2.026665-.2339585 2.640806-.6970012z"/></g><g fill="#fff" fill-rule="nonzero" transform="translate(1520.629778 141.651852)"><path d="m5.47365255 15.5387394v-13.14066544h-5.07689804v-1.43299542h11.85291919v1.43299542h-5.07689802v13.14066544z"/><path d="m21.1342453 10.3380383h-7.553933c.0136476 1.3111421.3173061 2.3005913.9109757 2.9683477.5936695.6677563 1.4568786 1.0040716 2.5896274 1.0040716 1.2009866 0 2.3064402-.4045531 3.3163608-1.2087853l.5527268 1.2087853c-.45037.4240497-1.02698.7554908-1.7298302 1.0040716-.7028501.2437067-1.4227597.3655601-2.1597288.3655601-1.6104139 0-2.8728146-.472791-3.7872021-1.418373-.9143876-.9504562-1.3715814-2.25185-1.3715814-3.9041814 0-1.04793885.2047137-1.97889846.6141409-2.79287884.4094273-.80910626.9826255-1.44274368 1.7195945-1.89116402.7369691-.45329446 1.576295-.67750463 2.5179777-.67750463 1.3647575 0 2.4360922.44842033 3.214004 1.34038686.7779118.89684067 1.1668677 2.12512245 1.1668677 3.69459363zm-6.4587151-3.27541805c-.5390792.52153234-.8836805 1.24777832-1.0338038 2.19336032h5.9981094c-.0818855-.96995267-.3650727-1.70594692-.8495616-2.21285686s-1.156632-.75549078-2.0164293-.75549078c-.8597972 0-1.5592354.25832911-2.0983147.77498732z"/><path d="m29.3842046 5.11784076-.0409427 1.51585569c-.3138943-.10723095-.675555-.16572056-1.0849823-.16572056-.996273 0-1.736654.31194458-2.2211429.93095961-.4844889.62388916-.7267334 1.37937994-.7267334 2.26647234v5.87333156h-1.6581804v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.90578642c.2593039-.69700117.675555-1.22828178 1.2487531-1.59871597.5731982-.36556006 1.2282818-.55077715 1.9652509-.55077715.3411894 0 .6550836.03899307.9416827.12185335z"/><path d="m45.9045945 9.07076348v6.46797592h-1.6581804v-6.38511564c0-.96995268-.1671828-1.67182798-.5015484-2.11050005-.3343655-.43867206-.8768567-.65313396-1.6274733-.65313396-.8734448 0-1.5558236.29244804-2.0471363.87734413-.4913127.58977022-.7369691 1.38425407-.7369691 2.39807396v5.87333156h-1.6581804v-6.38511564c0-.95533028-.1705947-1.65720558-.5117841-2.10075178s-.8870924-.66288223-1.637709-.66288223c-.8734448 0-1.5592355.29244804-2.057372.87734413-.4981365.58977022-.7472047 1.38425407-.7472047 2.39807396v5.87333156h-1.6581805v-7.40868379c0-1.06743536-.0545903-2.02763977-.1637709-2.8903615h1.576295l.1637709 1.8034296c.2865991-.65313396.7130858-1.1600439 1.2794602-1.51585569s1.2248699-.53128061 1.9754865-.53128061c.8188545 0 1.4875857.16572056 2.0061936.49228754s.90074.83347692 1.1463963 1.51585569c.3138943-.61414089.7744999-1.1015543 1.381817-1.46711435.6073171-.36068592 1.2931078-.54102888 2.057372-.54102888 2.2791451 0 3.4187176 1.3598834 3.4187176 4.07477607z"/><path d="m62.9162972 9.31447018c.45037.59951849.675555 1.35988342.675555 2.27134652 0 1.2721489-.4298986 2.2713464-1.2896959 3.0024665-.8597972.726246-2.0266649 1.0918061-3.500603 1.0918061-.9416827 0-1.8458346-.1559723-2.7124556-.4679169-.8666211-.3168187-1.6001782-.7603649-2.2006716-1.3306386l.6550837-1.2916455c1.3511099 1.1210508 2.7568102 1.6815762 4.2171007 1.6815762 1.0372158 0 1.8253632-.2339584 2.3644425-.6970012.5390792-.4630427.8086188-1.1454215.8086188-2.0471363 0-1.78880715-1.1191012-2.68077369-3.3573035-2.68077369h-1.6786518v-1.41349887h1.35111c1.0781584 0 1.9038367-.23883257 2.4770349-.71649771s.8597972-1.1600439.8597972-2.0471363c0-.79448385-.2354206-1.39887648-.706262-1.82292614-.4708413-.42404966-1.1361606-.63363743-1.9959579-.63363743-1.3920527 0-2.7704578.56052542-4.1352153 1.67670212l-.6346123-1.28677139c.5868458-.56052542 1.3067554-.99919749 2.1597288-1.32089033.8529735-.32169285 1.7434778-.48253927 2.6715129-.48253927 1.3101672 0 2.3576186.33631525 3.1423542 1.00407161.7847356.66775637 1.1771034 1.56947117 1.1771034 2.70027027 0 .83347692-.2047136 1.56459703-.6141409 2.19336032-.4094272.62388916-.9758016 1.07718363-1.6991231 1.35013514.8597972.2437067 1.5148808.66775636 1.9652508 1.26727485z"/><path d="m66.396429 5.46877841h2.1085503v2.12512245h-2.1085503zm0 7.95946089h2.1085503v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.1910661.4776651-.5117841.945582-.9621541 1.3940023l-.7779118-.5946443c.5322554-.6141409.8325021-1.199037.90074-1.7595624h-.9826254z"/><path d="m76.2226832 15.5387394 1.1463963-14.57366086h3.214004l-.962154 11.97574736h6.5098934l-.2047136 2.5979135z"/><path d="m87.6661752 15.5387394.8188545-10.37703143h3.0911758l-.8188545 10.37703143zm1.0645108-15.25116549h3.3163608l-.225185 2.9049839h-3.3163608z"/><path d="m92.6611877 14.4323109 1.0030968-2.1494931c.5731982.3948049 1.1873391.7018753 1.8424227.9114631.6550836.2144619 1.3101672.3168187 1.9652508.3168187.5731982 0 .996273-.0828603 1.2692246-.2437067.2729515-.1657206.4094272-.3850566.4094272-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.8427378-.3558118-1.5660593-.5751478-.7506166-.2047136-1.3647575-.4094273-1.8424227-.6141409-.4776651-.2047136-.8905043-.5069099-1.2385174-.91146307-.3480132-.399679-.5220198-.92121134-.5220198-1.56459704 0-.66775636.1876542-1.25752658.5629625-1.75956239.3753083-.50690994.9075638-.9017148 1.5967663-1.18928871.6892026-.28757391 1.4773501-.4289238 2.3644424-.4289238.7779118 0 1.5387642.11697922 2.2825572.34606352.743793.23395844 1.368169.54590302 1.87313.94558201l-.982626 2.06663284c-.50496-.37043419-1.037216-.64825983-1.5967662-.83835106-.5595506-.19496536-1.1054536-.28757391-1.637709-.28757391-.5595506 0-.9826255.08286028-1.2692245.2437067-.2865991.16572056-.4298987.38993073-.4298987.67750464 0 .29732218.1705947.53615474.5117841.7164977.3411894.17546883.8597973.36068592 1.5558236.55077715.7506166.21933604 1.3613456.4289238 1.8321867.63363743.470842.20471359.880269.51178409 1.228282.91146309.348013.4045531.52202.9260855.52202 1.5694711 0 1.0235682-.406016 1.8229262-1.218046 2.4029481-.812031.580022-1.9072489.87247-3.285654.87247-1.7741848 0-3.3573036-.4240496-4.7493563-1.272149z"/><path d="m107.666697 11.5078305c-.040943.5702737.075062.9943234.348013 1.2672749.272952.2729515.64826.4094272 1.125925.4094272.313894 0 .661907-.0536155 1.044039-.1657205l-.204713 2.3980739c-.464018.1900913-1.064511.2875739-1.80148.2875739-1.173692 0-2.07102-.3168187-2.691984-.945582-.620965-.6238891-.931447-1.5109815-.931447-2.6612772 0-.2290843.006823-.4094272.020471-.5312806l.327542-4.09427259h-1.965251l.184242-2.31033954h1.965251l.184242-2.43706703 3.173062-1.00407162-.266128 3.44113865h2.640806l-.184243 2.31033954h-2.640805z"/><path d="m110.962586 14.4323109 1.003097-2.1494931c.573198.3948049 1.187339.7018753 1.842423.9114631.655083.2144619 1.310167.3168187 1.965251.3168187.573198 0 .996273-.0828603 1.269224-.2437067.272952-.1657206.409427-.3850566.409427-.6580081 0-.2826998-.160359-.5117841-.481077-.6726305-.320718-.1657206-.842737-.3558118-1.566059-.5751478-.750617-.2047136-1.364757-.4094273-1.842423-.6141409-.477665-.2047136-.890504-.5069099-1.238517-.91146307-.348013-.399679-.52202-.92121134-.52202-1.56459704 0-.66775636.187654-1.25752658.562963-1.75956239.375308-.50690994.907563-.9017148 1.596766-1.18928871s1.47735-.4289238 2.364442-.4289238c.777912 0 1.538765.11697922 2.282557.34606352.743793.23395844 1.36817.54590302 1.87313.94558201l-.982625 2.06663284c-.504961-.37043419-1.037216-.64825983-1.596767-.83835106-.55955-.19496536-1.105453-.28757391-1.637709-.28757391-.55955 0-.982625.08286028-1.269224.2437067-.286599.16572056-.429899.38993073-.429899.67750464 0 .29732218.170595.53615474.511784.7164977.34119.17546883.859798.36068592 1.555824.55077715.750616.21933604 1.361345.4289238 1.832187.63363743.470841.20471359.880268.51178409 1.228282.91146309.348013.4045531.522019.9260855.522019 1.5694711 0 1.0235682-.406015 1.8229262-1.218046 2.4029481-.81203.580022-1.907248.87247-3.285653.87247-1.774185 0-3.357304-.4240496-4.749357-1.272149z"/><path d="m137.964314 10.9716758v1.3940023h-2.210907v3.1730613h-1.678652v-3.1730613h-6.714607v-1.2672749l7.021678-10.13332466h1.371581v10.00659726zm-8.8641 0h4.974541v-7.1649771z"/><path d="m142.058587 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532255-.6141409.832502-1.199037.90074-1.7595624h-.982626v-2.1105001z"/><path d="m152.488746 6.9700117c.689203.38993073 1.22487.93583374 1.607002 1.63770904.382132.70674944.573198 1.50610746.573198 2.40782226s-.201301 1.7059469-.603905 2.4126963c-.402603.7116236-.958742 1.2672749-1.668416 1.671828-.709674.399679-1.514881.6043926-2.415621.6043926-1.760537 0-3.118471-.6141409-4.073801-1.8424226-.95533-1.2282818-1.432995-2.978096-1.432995-5.24456829 0-1.63770904.221773-3.04145965.665319-4.21612596.443546-1.1746663 1.084982-2.06663284 1.924308-2.68077373s1.845835-.92121133 3.019526-.92121133c.84615 0 1.668416.15597229 2.466799.472791.798383.31194458 1.497822.75549078 2.098315 1.3306386l-.634612 1.28677139c-.682379-.57027369-1.337463-.99432335-1.965251-1.26727486-.627789-.2729515-1.269225-.40942726-1.924308-.40942726-1.255577 0-2.231379.56052542-2.927405 1.67670212-.696026 1.12105083-1.04404 2.690522-1.04404 4.7084135v.30707044c.313895-.77498731.825679-1.3891282 1.535353-1.84242267.709674-.44842033 1.521704-.6726305 2.436092-.6726305.887092 0 1.67524.19496536 2.364442.58002195zm-.337777 6.4289828c.573198-.5946443.859797-1.3793799.859797-2.363955 0-.9699527-.290011-1.74981412-.870033-2.34445848-.580022-.59464435-1.33405-.89196653-2.262086-.89196653-.95533 0-1.733242.30219631-2.333735.9017148s-.90074 1.37937991-.90074 2.33471021c0 .9699527.300247 1.7546883.90074 2.3542068.600493.5995184 1.385229.9017148 2.354207.9017148.928035 0 1.678652-.2973222 2.25185-.8919666z"/><path d="m159.070289 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832503-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m161.711095.96507854h9.621541v1.24777832l-6.837435 13.32588254h-1.80148l6.796492-13.16503611h-7.779118z"/><path d="m176.081992 13.4282393v1.4963592c0 .5751478-.095533 1.0966801-.286599 1.5743453-.191066.4776651-.511784.945582-.962154 1.3940023l-.777912-.5946443c.532256-.6141409.832502-1.199037.90074-1.7595624h-.982625v-2.1105001z"/><path d="m187.157 2.64178066c.95533 1.22828178 1.432995 2.97322177 1.432995 5.23969411 0 2.47118593-.494725 4.39159483-1.484174 5.76610063-.989449 1.3696316-2.371266 2.0568845-4.145451 2.0568845-.832502 0-1.647945-.1608464-2.446328-.472791s-1.504645-.7554908-2.118786-1.3306386l.655084-1.2916455c.696026.5897702 1.357934 1.0138199 1.985722 1.2818973.627788.2680773 1.262401.399679 1.903837.399679 1.255577 0 2.227966-.5605255 2.917169-1.6815763.689203-1.1161767 1.033804-2.68564786 1.033804-4.70841349v-.26320324c-.313894.76523904-.825679 1.36963167-1.535352 1.80830373-.709674.44842034-1.521705.6677564-2.436093.6677564-.887092 0-1.671828-.19496539-2.354206-.58489612-.682379-.38505659-1.214635-.93583374-1.596767-1.63770904-.382132-.70187531-.573198-1.50123329-.573198-2.40294809s.201302-1.70594692.603905-2.41757049c.402604-.70674944.958743-1.26727486 1.668416-1.66695385.709674-.40455313 1.514881-.60439262 2.415621-.60439262 1.760538 0 3.118471.61414089 4.073802 1.84242267zm-1.63771 5.15683383c.600494-.59951849.90074-1.3745058.90074-2.32983608 0-.96995268-.300246-1.75468826-.90074-2.35420675-.600493-.60439262-1.385228-.9017148-2.354206-.9017148-.928035 0-1.678652.29732218-2.25185.89196653-.573198.58977023-.859797 1.37937994-.859797 2.36395502 0 .96507855.286599 1.74981413.859797 2.34445848.573198.58977022 1.330638.8870924 2.272321.8870924.95533 0 1.733242-.29732218 2.333735-.9017148z"/></g><g transform="translate(1352.227084 194.213333)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m16.4442443 13.0739279c1.490095.8410144 2.6336139 2.0140013 3.4302957 3.5187.7966819 1.5049595 1.1948925 3.2456638 1.1948925 5.2226344 0 1.9769707-.4352413 3.7325394-1.3057238 5.266967-.8702218 1.5344275-2.1097075 2.7220182-3.717675 3.5630326-1.6082282.8407536-3.4892319 1.2613912-5.643272 1.2613912-1.91777365 0-3.80607922-.3468369-5.66517747-1.0402501-1.85883748-.6934131-3.42273314-1.6449981-4.69142623-2.854755l1.37196183-2.7882562c2.92125384 2.4195138 5.91604755 3.6292706 8.98464187 3.6292706 2.2132371 0 3.9466395-.6269143 5.2007289-1.8810037 1.2538287-1.2540894 1.8810038-2.9580238 1.8810038-5.1120638 0-2.0948431-.6196125-3.7841738-1.8588375-5.0677313-1.2394857-1.2835575-2.8917857-1.9253363-4.9571607-1.9253363-3.00965814 0-5.41456823 1.2246213-7.2144695 3.6736032h-2.52278251v-18.45642023h18.89896331v3.00965815h-15.26969267v11.24221148c1.74096506-1.6820289 3.96880577-2.5230433 6.68326137-2.5230433 1.9769706 0 3.7103731.4206376 5.2004681 1.2613913z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1362.630417 203.100332)"/><g transform="translate(1412.266122 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m21.062913 18.8183824c1.1359562 1.3719618 1.7039343 3.01696 1.7039343 4.9347336 0 2.6852483-1.017823 4.8022576-3.0537299 6.3512889-2.0361676 1.549292-4.7800913 2.3238076-8.2322925 2.3238076-3.45246205 0-6.19638571-.7745156-8.23229258-2.3238076-2.03616764-1.5490313-3.05399069-3.6660406-3.05399069-6.3512889 0-1.9177736.58258178-3.5700736 1.7482669-4.9568999 1.16542433-1.3868263 2.76608993-2.3459739 4.8019968-2.8769213-1.88830558-.5606763-3.33406805-1.4827932-4.33728744-2.7663507-1.00321938-1.2835575-1.50495946-2.795558-1.50495946-4.5365231 0-1.68176807.44280388-3.1499576 1.32789007-4.40378625.88508619-1.25408942 2.13187378-2.2278407 3.73984121-2.92125383 1.60822822-.69341314 3.44489942-1.03998932 5.51053519-1.03998932 2.0653749 0 3.9020461.34657618 5.5102744 1.03998932 1.6079674.69341313 2.854755 1.66716441 3.7398412 2.92125383.8853469 1.25382865 1.32789 2.72201818 1.32789 4.40378625 0 1.7409651-.5090419 3.2529656-1.5271257 4.5365231-1.017823 1.2835575-2.4414192 2.2056744-4.2710494 2.7663507 2.0656358.5606763 3.6663014 1.526865 4.8022576 2.8990876zm-14.64981941-5.8425077c1.25382864 1.0475519 2.94315933 1.6893307 5.06773131 1.9253363 2.1243111-.2360056 3.8136418-.8777844 5.0677313-1.9253363 1.2538286-1.0472911 1.8810037-2.4119511 1.8810037-4.09397999 0-1.74070429-.6123107-3.1129269-1.836932-4.11614628-1.2243605-1.00321938-2.9285556-1.50469868-5.111803-1.50469868-2.18350818 0-3.88770331.5014793-5.11206385 1.50469868-1.22462132 1.00321938-1.83693198 2.37544199-1.83693198 4.11614628 0 1.68202889.6271751 3.04668889 1.88126452 4.09397999zm10.77724131 14.9377202c1.3276293-1.0032194 1.9915743-2.4638463 1.9915743-4.38162 0-1.7409651-.7007149-3.1350932-2.1024056-4.1826451-1.40143-1.0475519-3.2678301-1.6893307-5.5986787-1.9253363-2.33110948.2360056-4.19750956.8777844-5.59893949 1.9253363-1.40169072 1.0475519-2.10240568 2.44168-2.10240568 4.1826451 0 1.9177737.66394503 3.3784006 1.9918351 4.38162 1.32762929 1.0032193 3.2307993 1.5049594 5.70951007 1.5049594 2.4784499 0 4.38162-.5017401 5.70951-1.5049594z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1421.105194 202.753717)"/><g transform="translate(1503.787344 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m23.0372759 21.726858v3.0096582h-4.7800914v6.8603307h-3.6292706v-6.8603307h-14.51708254v-2.7441845l15.18102754-21.90862143h2.9653256v21.64314773zm-19.16443705 0h10.75507505v-15.4908338z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1512.887196 203.275277)"/><g transform="translate(1565.163879 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m17.3989587 13.5954872c1.490095.8410144 2.6482175 2.0213032 3.4743675 3.5408663.82615 1.5195632 1.239225 3.2532264 1.239225 5.2004682 0 1.9475025-.4352413 3.6884676-1.3057238 5.2226344-.8702218 1.5344275-2.0726768 2.7368826-3.6071044 3.6073651-1.5341668.8702218-3.2751319 1.305463-5.2226344 1.305463-3.80634005 0-6.74219755-1.3276293-8.80757252-3.9834094-2.06563575-2.6555193-3.09832323-6.4323913-3.09832323-11.330355 0-3.5408663.47957381-6.5799926 1.43846065-9.11737874.95888684-2.53764695 2.34571311-4.47028507 4.16047882-5.79817514 1.81450493-1.32789007 3.99071125-1.99157432 6.52835818-1.99157432 1.8293694 0 3.6071044.33927435 5.333205 1.01782304 1.7261006.67880948 3.2383619 1.63769632 4.5365231 2.8769213l-1.3719618 2.78851699c-1.4752306-1.23948576-2.891525-2.15404006-4.2488832-2.74418445-1.3573581-.59014439-2.7441844-.88534697-4.1604788-.88534697-2.71445553 0-4.82416305 1.20975688-6.32912251 3.62953142-1.50469868 2.41951375-2.2573088 5.81251797-2.2573088 10.17953437v.663945c.67880947-1.6817681 1.7852976-3.0096582 3.31946439-3.9834094 1.53442756-.9737513 3.28999632-1.460627 5.26696692-1.460627 1.9180345 0 3.6219688.4206377 5.1120639 1.2613913zm-.7301831 13.8977308c1.239225-1.2835575 1.8588375-2.9874918 1.8588375-5.1120638 0-2.0948431-.6271751-3.7841737-1.8810038-5.0677313-1.2540894-1.2835575-2.8842231-1.9253363-4.8906619-1.9253363-2.06563572 0-3.7474038.6490806-5.04582577 1.9475026-1.29816118 1.2981612-1.94724178 2.98019-1.94724178 5.045565 0 2.0948431.6490806 3.7914756 1.94724178 5.0898976 1.29842197 1.2981612 2.99505449 1.9475025 5.08989757 1.9475025 2.0064388 0 3.6292706-.6417787 4.8687564-1.9253363z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1574.52451 202.753717)"/><g transform="translate(1624.915924 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37816863-46.72872807v44.19032577h37.83971293v-44.19032577z" fill="#000"/></g><path d="m.03650915.08371027h20.80213335v2.6998519l-14.78281705 28.81328473h-3.89474434l14.69415189-28.45914594h-16.81872385z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1635.972745 203.629332)"/><g transform="translate(1684.951213 194.392443)"><path d="m.035471.089728h42.916712v49.26713h-42.916712z" fill="#00a88a"/><path d="m42.9521838 49.3568579h-42.91671231v-49.26713035h42.91671231zm-40.37825665-46.72872807v44.19032577h37.83980095v-44.19032577z" fill="#000"/></g><path d="m19.0538664 4.23480103c2.065375 2.65551935 3.0983233 6.43239127 3.0983233 11.33035497 0 5.3407676-1.0697182 9.4936838-3.2088939 12.4590094-2.1391756 2.9655864-5.1266674 4.4481188-8.96273635 4.4481188-1.79990127 0-3.56277183-.3392743-5.28887245-1.017823-1.72610062-.6788095-3.25322635-1.6376963-4.58085564-2.8769213l1.41629437-2.7882562c1.50469869 1.2686931 2.9358575 2.19081 4.29321568 2.7660899 1.35709739.57528 2.72932.8631807 4.11614627.8631807 2.71445552 0 4.81686122-1.2097569 6.30695622-3.6292706 1.4900951-2.4197745 2.2351426-5.8127788 2.2351426-10.1797951v-.5755408c-.6788095 1.6525608-1.7852976 2.9580238-3.3194644 3.9171714-1.5344276.9588869-3.2899963 1.4384607-5.26696696 1.4384607-1.91803446 0-3.61466698-.4206376-5.08989756-1.2613913-1.47523058-.8410144-2.62605125-2.0213032-3.45220124-3.5408663s-1.23922498-3.2532264-1.23922498-5.2004681c0-1.94750259.43524126-3.68846765 1.30546302-5.22263444.87048253-1.53442756 2.07293758-2.73688261 3.60736514-3.60736514 1.53416679-.87022175 3.27513185-1.30546302 5.22263438-1.30546302 3.8063401 0 6.7421976 1.32762929 8.8075725 3.98340943zm-3.5408663 11.15328557c1.298422-1.2981611 1.9475026-2.98019 1.9475026-5.045565 0-2.09484305-.6490806-3.79147556-1.9475026-5.08989753-1.2981612-1.29816119-2.9947937-1.94750256-5.0896368-1.94750256-2.00643874 0-3.62953139.64177876-4.86875638 1.92533629-1.23922498 1.28355752-1.85883747 2.98749187-1.85883747 5.1120638 0 2.0948431.61961249 3.7841738 1.85883747 5.0677313 1.23922499 1.2835575 2.8769213 1.9253363 4.91282818 1.9253363 2.0656357 0 3.7474038-.6490806 5.045565-1.9475026z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1694.05523 202.753717)"/><path d="m274.413747 0v15.1195638-7.54515948h-274.07401986v7.54515948" stroke="#000" stroke-width="2.539424" transform="translate(1068.761162 109.742102)"/><path d="m0 .24858084h272.688304v7.55978192" stroke="#000" stroke-width="2.539424" transform="translate(1343.17491 117.053303)"/><path d="m90.8465476.12672749v8.60284661h-90.40348881v8.7441965" stroke="#000" stroke-width="2.539424" transform="translate(978.589682 177.005152)"/><path d="m1040.343498 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.18765416.0292448h90.06863584v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1069.248576 185.778593)"/><path d="m1100.026783 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m1314.628568 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.27782564.0292448h88.64587606v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1343.662323 185.778593)"/><path d="m1373.584633 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m90.3956902.12672749v8.67595862h-90.07887149v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1525.467524 177.005152)"/><path d="m1586.145618 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><path d="m.22421017.0292448h90.27871103v8.67108449" stroke="#000" stroke-width="2.539424" transform="translate(1615.639004 185.778593)"/><path d="m1645.921998 185.807838v8.671084" stroke="#000" stroke-width="2.539424"/><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1263.581889 37.572233)"><path d="m7.95815261 22.540308v-20.02691984h-7.73636299v-2.18343345h18.06186388v2.18343345h-7.736363v20.02691984z"/><path d="m32.5082157 6.84954575v15.69076225h-2.495645v-2.8385659c-.4572278.9772392-1.1488702 1.7313239-2.0742447 2.2615717s-2.001566.7953717-3.2285744.7953717c-1.3935212 0-2.6154113-.3326845-3.6653293-.9980533-1.0502591-.6657101-1.8613267-1.6067805-2.4332026-2.8232112-.571876-1.2164307-.857814-2.6358843-.857814-4.2580194s.2910562-3.0518251.8731686-4.2894112c.5824537-1.2372448 1.3986395-2.1991293 2.4488986-2.88531225s2.2615716-1.02944503 3.6342787-1.02944503c1.2270084 0 2.2977405.27024212 3.2128785.81106756.9151381.54082545 1.6118987 1.29968715 2.0899406 2.27726753v-2.71402246zm-3.7431262 12.24381045c.8315404-1.0502592 1.2474812-2.5423915 1.2474812-4.4763969 0-1.9340055-.4159408-3.4210195-1.2474812-4.460701-.8318817-1.04002268-2.0172619-1.55969281-3.5564818-1.55969281-1.5388787 0-2.7396136.53536601-3.602887 1.60643921-.8629322 1.0710733-1.294569 2.5632056-1.294569 4.4763969s.4265185 3.3896277 1.2788731 4.4296504c.8526958 1.0396815 2.0588901 1.5596929 3.6185829 1.5596929 1.5392199 0 2.7246001-.5251296 3.5564818-1.5753887z"/><path d="m44.8301643 14.4610241 6.4571488 8.0792839h-3.0258928l-4.9598983-6.176329-4.8974559 6.176329h-3.0883351l6.5195911-8.0792839-6.1452784-7.61147835h3.0572845l4.5541938 5.77096575 4.5545351-5.77096575h3.0879939z"/><path d="m56.3720959 21.7606322c-1.1229379-.6657101-1.9913295-1.6118987-2.6048337-2.8389071s-.9202563-2.6618166-.9202563-4.3047658.3067521-3.0777574.9202563-4.3047658c.6135042-1.22700843 1.4818958-2.17319705 2.6048337-2.83890711 1.1229379-.66536885 2.422625-.99805327 3.8994026-.99805327 1.4764365 0 2.7761236.33268442 3.8990615.99805327 1.1232791.66571006 1.9913295 1.61189868 2.6048337 2.83890711.6135042 1.2270084.9202563 2.6618166.9202563 4.3047658s-.3067521 3.0777574-.9202563 4.3047658-1.4815546 2.173197-2.6048337 2.8389071c-1.1229379.6653688-2.422625.9980533-3.8990615.9980533-1.4767776 0-2.7764647-.3326845-3.8994026-.9980533zm7.4865938-2.6358843c.8318816-1.029445 1.2478225-2.532155 1.2478225-4.5077886 0-1.9131914-.4261773-3.3950872-1.2788731-4.4453463-.8526957-1.04991795-2.0380759-1.57504751-3.5561406-1.57504751-1.5388787 0-2.7348365.52512956-3.5875323 1.57504751-.8526957 1.0502591-1.278873 2.5321549-1.278873 4.4453463 0 1.9756336.421059 3.4783436 1.2631771 4.5077886.8424594 1.0291038 2.0435354 1.543997 3.6032282 1.543997 1.5596929 0 2.7553095-.5148932 3.5871912-1.543997z"/><path d="m85.1023814 12.6829538v9.8573542h-2.5270367v-9.7324695c0-1.4559636-.2910562-2.5215774-.8731687-3.19752386-.5824536-.67594651-1.4975917-1.01374915-2.7454142-1.01374915-1.4556223 0-2.6201884.44699138-3.4936983 1.34131535-.8735098.89432396-1.3102648 2.10051826-1.3102648 3.61858286v8.9838443h-2.5266955v-11.2925036c0-1.62179388-.0832564-3.08799385-.249428-4.39825865h2.4018109l.2497692 2.80751531c.4783832-1.01886737 1.1956167-1.80400261 2.152383-2.3550645.956425-.55106189 2.0483124-.82676344 3.2753208-.82676344 3.7642815 0 5.6464223 2.0691265 5.6464223 6.20772068z"/><path d="m92.4640906 21.7606322c-1.1229379-.6657101-1.9913295-1.6118987-2.6048337-2.8389071s-.9202563-2.6618166-.9202563-4.3047658.3067521-3.0777574.9202563-4.3047658c.6135042-1.22700843 1.4818958-2.17319705 2.6048337-2.83890711 1.1229379-.66536885 2.4229662-.99805327 3.8994026-.99805327 1.4764365 0 2.7761236.33268442 3.8994028.99805327 1.122938.66571006 1.990988 1.61189868 2.604492 2.83890711.613505 1.2270084.920257 2.6618166.920257 4.3047658s-.306752 3.0777574-.920257 4.3047658c-.613504 1.2270084-1.481554 2.173197-2.604492 2.8389071-1.1232792.6653688-2.4229663.9980533-3.8994028.9980533-1.4764364 0-2.7764647-.3326845-3.8994026-.9980533zm7.4865938-2.6358843c.8318816-1.029445 1.2478226-2.532155 1.2478226-4.5077886 0-1.9131914-.426177-3.3950872-1.2788732-4.4453463-.8526958-1.04991795-2.0380759-1.57504751-3.5561406-1.57504751-1.5388787 0-2.7348365.52512956-3.5875323 1.57504751-.8526958 1.0502591-1.278873 2.5321549-1.278873 4.4453463 0 1.9756336.421059 3.4783436 1.2635183 4.5077886.8421182 1.0291038 2.0431942 1.543997 3.602887 1.543997 1.5596929 0 2.7553095-.5148932 3.5871912-1.543997z"/><path d="m130.334156 12.6829538v9.8573542h-2.526696v-9.7324695c0-1.4767777-.254546-2.5478509-.764321-3.21321974-.509434-.66536885-1.336197-.99805327-2.479949-.99805327-1.330738 0-2.370761.44699138-3.119386 1.34131535-.748625.89432396-1.122938 2.11075466-1.122938 3.64963346v8.9527937h-2.526695v-9.7324695c0-1.4559636-.260006-2.5215774-.780017-3.19752386-.520012-.67594651-1.351552-1.01374915-2.495645-1.01374915-1.330738 0-2.375879.44699138-3.135082 1.34131535-.758861.89432396-1.138292 2.11075466-1.138292 3.64963346v8.9527937h-2.527037v-11.2925036c0-1.62179388-.082915-3.08799385-.249428-4.39825865h2.402152l.249428 2.74507301c.436755-.99805327 1.086428-1.76749263 1.949701-2.30831808.862933-.54082544 1.866445-.81106756 3.010197-.81106756 1.247823 0 2.26669.24942801 3.056944.74862526.790253.49919724 1.372707 1.26863659 1.747019 2.30831807.478383-.93561096 1.180262-1.679118 2.105637-2.23017989.925374-.55106189 1.970515-.82676344 3.135081-.82676344 3.472884 0 5.209327 2.0691265 5.209327 6.20772068z"/><path d="m148.926608 6.84954575-7.330999 17.12591165c-.76944 1.7883067-1.736784 3.0985715-2.90135 3.9304532s-2.599374 1.4037577-4.304766 1.715628l-.530247-1.9653972c1.476436-.3326844 2.594256-.7745576 3.353459-1.3256195.758861-.5510619 1.388061-1.3986394 1.887259-2.5423914l.62374-1.4037577-6.644475-15.53482705h2.65158l5.30316 12.94568925 5.364238-12.94568925z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1242.021555 73.436333)"><path d="m.1061178 18.7869453 1.3955685-17.74521654h3.91271003l-1.17104917 14.58010814h7.92539604l-.2490868 3.1651084z"/><path d="m14.0379178 18.7869453.9970296-12.63586623h3.763258l-.9970297 12.63586623zm1.2959338-18.56754419h4.0375946l-.2739955 3.53907983h-4.0375946z"/><path d="m20.1190478 17.4411941 1.2212078-2.6167762c.6981254.4817953 1.445727.8513309 2.243146 1.1089481.7977602.2576171 1.5951792.3862551 2.3925981.3862551.6977843 0 1.2130186-.0996347 1.5453618-.2989042.3323432-.1996106.4985148-.4654169.4985148-.7977601 0-.3487216-.1951748-.6230583-.5858658-.8223277-.3903497-.1996106-1.0260328-.4319779-1.906367-.6977842-.9141144-.2494281-1.661716-.4985149-2.243146-.7479429-.5817713-.2490868-1.0843807-.6189636-1.5078282-1.108948-.4237888-.4903257-.6356832-1.1256676-.6356832-1.9067083 0-.8141385.2286139-1.52864228.6855005-2.14317012.4568867-.61486905 1.1048535-1.09666434 1.9439007-1.44572707.8390472-.34872152 1.7985432-.5234235 2.878488-.5234235.9472123 0 1.8736104.14126293 2.7791945.42378878.9052428.28252585 1.6654694.66468641 2.2803385 1.1464817l-1.1962991 2.51714153c-.6148691-.44869746-1.262836-.78922982-1.9439007-1.02193831-.6814059-.23236727-1.3460923-.34872152-1.9940592-.34872152-.6810648 0-1.1962991.09963472-1.5450206.29890416-.3490627.19961066-.5234235.47360613-.5234235.82266887 0 .36544108.2074586.65615608.6230582.87214498.4152584.215989 1.046847.4405083 1.8940833.6728756.9137732.2661475 1.6572803.5234235 2.2305211.7728515.5732409.2490868 1.0717557.6189636 1.4955445 1.1089481.4237887.4903256.6353419 1.1256676.6353419 1.9067082 0 1.2461165-.494079 2.222332-1.4829195 2.9283054-.9884992.7063146-2.3219667 1.0594719-4.000061 1.0594719-2.1598896 0-4.087412-.5152343-5.7822259-1.5453618z"/><path d="m38.3876878 13.8772056c-.0498173.6977843.0914456 1.2130186.4237888 1.5453618.3323432.332002.7892298.4981736 1.3706598.4981736.3821606 0 .8059494-.0661957 1.2710251-.1992694l-.2490868 2.9160216c-.5650517.2327085-1.2959338.3490627-2.1933287.3490627-1.4286663 0-2.5212361-.3821605-3.2773681-1.1464817-.7557907-.7643211-1.1338567-1.8442659-1.1338567-3.2401757 0-.2825258.0081891-.4985148.0249087-.6479668l.3988801-4.98446573h-2.3925982l.2241782-2.8163869h2.3925981l.2241781-2.96583898 3.8632339-1.22120774-.3241541 4.18704672h3.215267l-.2245193 2.8163869h-3.2149258z"/><path d="m42.4003738 17.4411941 1.2212077-2.6167762c.6977843.4817953 1.4457271.8513309 2.2431461 1.1089481.7974189.2576171 1.5951791.3862551 2.3925981.3862551.6977842 0 1.2130186-.0996347 1.5453618-.2989042.332002-.1996106.4981736-.4654169.4981736-.7977601 0-.3487216-.1951749-.6230583-.5855246-.8223277-.3903497-.1996106-1.0260329-.4319779-1.9067083-.6977842-.9137732-.2494281-1.6613748-.4985149-2.243146-.7479429-.58143-.2490868-1.0840394-.6189636-1.5078282-1.108948-.4234475-.4903257-.6353419-1.1256676-.6353419-1.9067083 0-.8141385.2282727-1.52864228.6851593-2.14317012.4572278-.61486905 1.1051947-1.09666434 1.9442419-1.44572707.8390472-.34872152 1.7985432-.5234235 2.878488-.5234235.9472122 0 1.8732692.14126293 2.7788532.42378878.9055841.28252585 1.6658107.66468641 2.2806797 1.1464817l-1.196299 2.51714153c-.6148691-.44869746-1.262836-.78922982-1.9442419-1.02193831-.6810648-.23236727-1.3457512-.34872152-1.9937181-.34872152-.6814059 0-1.196299.09963472-1.5453618.29890416-.3487215.19961066-.5234235.47360613-.5234235.82266887 0 .36544108.2077999.65615608.6233995.87214498.4152584.215989 1.0465057.4405083 1.8940833.6728756.9137732.2661475 1.6572802.5234235 2.2305211.7728515.5732408.2490868 1.0717556.6189636 1.4955444 1.1089481.4234476.4903256.635342 1.1256676.635342 1.9067082 0 1.2461165-.4944203 2.222332-1.4829195 2.9283054-.9884993.7063146-2.3219667 1.0594719-4.000061 1.0594719-2.1598897 0-4.087412-.5152343-5.7822259-1.5453618z"/><path d="m67.62263 18.7869453v-16.0005853h-6.1811059v-1.74463124h14.430656v1.74463124h-6.181106v16.0005853z"/><path d="m86.688689 12.4567284h-9.1967623c.0167195 1.594838.3865964 2.7996674 1.1092893 3.6138059s1.7736345 1.2212077 3.1528247 1.2212077c1.4621054 0 2.8078565-.4903256 4.0372534-1.4706357l.6732168 1.4706357c-.5483322.5148932-1.2505522.9219624-2.1059777 1.2212078-.8557667.2989041-1.7323475.4486974-2.6294012.4486974-1.9606202 0-3.4977928-.5776766-4.6108355-1.7323475-1.1133839-1.1546708-1.6699052-2.737225-1.6699052-4.7476626 0-1.2795555.2490868-2.4134122.7476016-3.40225268.4985148-.98849926 1.1962991-1.75691497 2.093694-2.30524714.8970537-.54833217 1.918992-.82232765 3.0654737-.82232765 1.6613748 0 2.965839.54389638 3.9130512 1.63237157.9468711 1.08813397 1.4204772 2.587773 1.4204772 4.4985758zm-7.8632949-3.98777725c-.656156.63124737-1.0758502 1.52011191-1.2584001 2.66659365h7.3023377c-.0996347-1.17957958-.4446028-2.07697448-1.034222-2.69150233-.5899604-.61486905-1.4081934-.92230358-2.4550404-.92230358s-1.8981779.31562368-2.5546752.94721226z"/><path d="m96.7326876 6.10126171-.0498173 1.84426595c-.3821606-.13307377-.8226689-.19926944-1.3208425-.19926944-1.2130186 0-2.114508.37772478-2.7041272 1.13385676-.5899604.75613198-.88477 1.67399982-.88477 2.75394462v7.1528857h-2.0189679v-9.02206036c0-1.29593379-.0665369-2.46732417-.1992694-3.51417115h1.918992l.1992694 2.31787208c.3159649-.84723633.8226689-1.49554443 1.5204531-1.94390067.6977843-.44869745 1.4955445-.67287557 2.3925981-.67287557.4152584 0 .797419.04981736 1.1464817.14945208z"/><path d="m116.845594 10.9113666v7.8755787h-2.018627v-7.7759439c0-1.17957958-.203705-2.03534628-.610775-2.56695893-.407069-.53161264-1.067661-.79776018-1.981434-.79776018-1.063225 0-1.894083.35725189-2.492233 1.07175566-.598149.71450378-.897395 1.68662475-.897395 2.91602165v7.1528857h-2.018626v-7.7759439c0-1.16320127-.2078-2.01453218-.623059-2.55467519-.415258-.53980181-1.079944-.81004392-1.993718-.81004392-1.063566 0-1.898519.35725189-2.504857 1.07175566-.606339.71450378-.909679 1.68662475-.909679 2.91602165v7.1528857h-2.018968v-9.02206036c0-1.29593379-.0661956-2.46732417-.1992694-3.51417115h1.9189924l.19961 2.19332868c.348722-.79776018.868051-1.41228802 1.557646-1.84426595s1.491108-.64796689 2.404882-.64796689c.997029 0 1.811168.19926944 2.442415.59814953.631589.39853888 1.096664 1.01340793 1.39591 1.84426595.38216-.74794282.942776-1.34165656 1.682189-1.78216486.739412-.44016708 1.574365-.66025062 2.504858-.66025062 2.774758 0 4.162138 1.65318567 4.162138 4.95955697z"/><path d="m119.911067 17.3415594.672876-1.4955444c.681406.5316126 1.371001.9137732 2.068785 1.1464817s1.478825.3490627 2.342781.3490627c.946871 0 1.665469-.162077 2.155795-.4862311.489984-.3238128.735318-.7933244.735318-1.4078522 0-.4985148-.166172-.8973949-.498515-1.1962991-.332343-.2992453-.880675-.5319538-1.644996-.6981254l-2.118603-.4981736c-1.046506-.2327085-1.85655-.6483081-2.429791-1.2464577-.573241-.5981495-.859861-1.3123121-.859861-2.14317008 0-1.09666435.440167-1.98962346 1.320843-2.67921855.880675-.6895951 2.043876-1.03422204 3.489262-1.03422204.880675 0 1.711533.14092171 2.492233.42344756.781041.28252584 1.437197.68959509 1.96915 1.22120774l-.673216 1.47063576c-1.17958-.9803101-2.442416-1.47063576-3.788167-1.47063576-.897054 0-1.591085.17026618-2.081069.51113976-.489984.34053236-.735318.81823307-.735318 1.43310213 0 .51489308.153888.92196238.461323 1.22120778.307093.2989041.801513.5316126 1.482919.6977842l2.118261.5234235c1.163202.2658063 2.027158.6769702 2.592209 1.2334915.564711.5568625.847237 1.28365.847237 2.1807037 0 1.0802861-.440168 1.9442419-1.320843 2.5922088s-2.076974.9721209-3.588897.9721209c-2.110414 0-3.779978-.540143-5.009716-1.6200878z"/><path d="m146.77832 17.0672227h3.91271v1.7197226h-9.894546v-1.7197226h3.913051v-13.48310252l-3.638715 2.31753087v-1.96880935l4.53611-2.89111294h1.17139z"/><path d="m156.722343 16.2199864v1.8193573c0 .6977842-.116013 1.3375619-.348722 1.918992-.232708.5817712-.623058 1.1464817-1.17139 1.6948138l-.947212-.7226929c.647967-.7476016 1.013749-1.4621054 1.096664-2.1435113h-1.196299v-2.5669589z"/><path d="m171.801648 17.0672227v1.7197226h-11.415341v-1.5450206l6.204991-6.8788902c.832564-.93049277 1.436515-1.76953995 1.818675-2.51714156.382161-.74794282.573241-1.49554443.573241-2.24314604 0-.9803101-.279796-1.73200629-.846213-2.25542978-.563004-.5234235-1.371683-.78513524-2.4158-.78513524-1.696179 0-3.374274.68106472-5.03599 2.04353539l-.77251-1.56992926c.697784-.66468642 1.57846-1.19629906 2.641685-1.59517916 1.063567-.39888009 2.136346-.59814953 3.214585-.59814953 1.627594 0 2.917386.41935298 3.862551 1.25874137.948577.83904718 1.422866 1.97290393 1.422866 3.40191149 0 1.01340793-.228614 1.98962345-.685842 2.92830535-.457228.93868189-1.218137 1.98962347-2.279315 3.15282467l-5.061239 5.4829805z"/><path d="m177.435104 16.2199864v1.8193573c0 .6977842-.119425 1.3375619-.351451 1.918992-.232026.5817712-.621011 1.1464817-1.170367 1.6948138l-.948577-.7226929c.648308-.7476016 1.01682-1.4621054 1.098712-2.1435113h-1.197664v-2.5669589z"/><path d="m191.339607 11.2102708c.549356.7312233.822328 1.6535269.822328 2.7665695 0 1.5453618-.522059 2.762475-1.569588 3.6513395-1.04753.8888646-2.466983 1.3334674-4.261773 1.3334674-1.146482 0-2.245193-.1910802-3.302959-.5732408-1.054354-.3821606-1.948337-.9223036-2.678536-1.6200878l.798442-1.5702705c1.644656 1.3624706 3.354142 2.0438766 5.131871 2.0438766 1.265907 0 2.22472-.2825259 2.879853-.8475776.658544-.5647104.98611-1.3955685.98611-2.4922328 0-2.1766092-1.364859-3.2650844-4.087753-3.2650844h-2.043876v-1.71938129h1.644655c1.313677 0 2.316848-.29105622 3.016339-.87248623.696078-.58143001 1.047529-1.41228803 1.047529-2.49223284 0-.96359058-.290033-1.70300303-.859861-2.21823737-.573241-.51489312-1.385332-.77251029-2.432862-.77251029-1.692425 0-3.371202.68106472-5.032918 2.04353539l-.771145-1.56992926c.713139-.68140594 1.590061-1.21711317 2.627354-1.6078041 1.037293-.39034973 2.122356-.58552459 3.251777-.58552459 1.596885 0 2.873028.40706925 3.82843 1.22120775.955401.81413849 1.433102 1.91080284 1.433102 3.28999303 0 1.01340793-.252499 1.90227247-.750673 2.6665936-.498174.76432114-1.187427 1.31265331-2.067762 1.64499652 1.04753.29890416 1.845972.81413848 2.391916 1.54502058z"/></g><g transform="translate(1238.737766 301.42884)"><path d="m.162355.124952h196.432387v68.608179h-196.432387z" fill="#0083c0"/><path d="m196.594742 68.7331309h-196.43238687v-68.60817855h196.43238687zm-193.8939261-66.06958614v63.53099374h191.3558681v-63.53099374z" fill="#000"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1249.006069 345.842567)"><path d="m.56874621 14.4291604 1.02879531-13.08192845h2.88430112l-.8634532 10.74723665h5.84208763l-.18371345 2.3346918z"/><path d="m10.8383279 14.4291604.7348538-9.31580278h2.7740731l-.7348538 9.31580278zm.95531-13.68665188h2.9761578l-.2020848 2.6102619h-2.9761578z"/><path d="m15.320936 13.4340458.9001959-1.9289912c.5143977.3597722 1.065538.6276877 1.6534211.8190558.587883.1913682 1.175766.2832249 1.7636491.2832249.5143976 0 .8940721-.0688925 1.1390233-.2143323.2449513-.1530946.3674269-.3444627.3674269-.589414 0-.2602607-.1439088-.4592836-.4317266-.6047234-.2878177-.1530946-.756287-.3214986-1.4054078-.5205215-.673616-.1837134-1.2247564-.3674269-1.6534211-.5511403-.4286647-.18371346-.7991535-.4516289-1.1114663-.81140107-.3123129-.36742689-.4684693-.83436524-.4684693-1.40846976 0-.59706871.168404-1.12524487.505212-1.57687376.3368079-.45928362.8144629-.81140106 1.4329648-1.07166178.618502-.25260599 1.3257988-.38273635 2.1218904-.38273635.6981111 0 1.3809127.10716618 2.0484049.31384381s1.2278182.48990253 1.6809781.84201997l-.8818246 1.86009865c-.4531598-.33680798-.9308148-.58175925-1.4329649-.75781797-.5021501-.16840399-.9920526-.25260599-1.4697076-.25260599-.5021501 0-.8818245.06889254-1.1390233.21433236-.2571989.15309454-.3857983.35211744-.3857983.61237816 0 .26791544.1530946.4822478.4592836.64299706.3061891.15309454.7715965.32149853 1.3962222.48990253.673616.1990229 1.2216945.39039107 1.6442354.57410452s.7899678.45162889 1.1022807.81905582c.3123128.3597721.4684693.8267105.4684693 1.400815 0 .9185672-.364365 1.6381116-1.093095 2.158633-.7287301.5205214-1.711597.7807822-2.9486009.7807822-1.5921832 0-3.0129005-.3750817-4.262152-1.1405544z"/><path d="m28.7871317 10.8084745c-.0367426.5128667.0673616.895603.3123129 1.1405543s.5817593.3674269 1.010424.3674269c.2816939 0 .5940068-.0459284.9369385-.1454398l-.1837134 2.1509783c-.4164171.168404-.9553099.252606-1.6166783.252606-1.0532905 0-1.8585677-.2832249-2.4158319-.84202-.5572641-.5664498-.8358962-1.3625414-.8358962-2.3882748 0-.2066776.0061238-.3674269.0183714-.4822478l.2939415-3.67426897h-1.7636491l.1653421-2.07443101h1.7636491l.1653421-2.18159719 2.8475584-.90325778-.2388274 3.08485497h2.3699034l-.1653421 2.07443101h-2.3699034z"/><path d="m31.7449182 13.4340458.9001959-1.9289912c.5143977.3597722 1.065538.6276877 1.6534211.8190558.587883.1913682 1.175766.2832249 1.7636491.2832249.5143976 0 .8940721-.0688925 1.1390233-.2143323.2449513-.1530946.3674269-.3444627.3674269-.589414 0-.2602607-.1439088-.4592836-.4317266-.6047234-.2878177-.1530946-.756287-.3214986-1.4054078-.5205215-.673616-.1837134-1.2247564-.3674269-1.6534211-.5511403-.4286647-.18371346-.7991535-.4516289-1.1114663-.81140107-.3123129-.36742689-.4684693-.83436524-.4684693-1.40846976 0-.59706871.168404-1.12524487.505212-1.57687376.3368079-.45928362.8144629-.81140106 1.4329649-1.07166178.6185019-.25260599 1.3257987-.38273635 2.1218903-.38273635.6981111 0 1.3809127.10716618 2.0484049.31384381s1.2278182.48990253 1.6809781.84201997l-.8818246 1.86009865c-.4531598-.33680798-.9308148-.58175925-1.4329649-.75781797-.5021501-.16840399-.9920526-.25260599-1.4697076-.25260599-.5021501 0-.8818245.06889254-1.1390233.21433236-.2571989.15309454-.3857983.35211744-.3857983.61237816 0 .26791544.1530946.4822478.4592836.64299706.3061891.15309454.7715965.32149853 1.3962222.48990253.673616.1990229 1.2216945.39039107 1.6442354.57410452s.7899678.45162889 1.1022807.81905582c.3123128.3597721.4684693.8267105.4684693 1.400815 0 .9185672-.364365 1.6381116-1.093095 2.158633-.7287301.5205214-1.711597.7807822-2.9486009.7807822-1.5921832 0-3.0129005-.3750817-4.262152-1.1405544z"/><path d="m52.3208244 13.1584757h2.8843011v1.2706847h-7.2934239v-1.2706847h2.8843011v-9.93583564l-2.6822163 1.70700411v-1.4467434l3.3435848-2.13566882h.8634532z"/><path d="m59.6509909 12.5384428v1.3395772c0 .5128667-.0857329.9874598-.2571988 1.4161245s-.4592836.84202-.8634532 1.2477205l-.6981111-.5358309c.4776549-.5511403.7471013-1.0716618.8083392-1.5768737h-.8818246v-1.8907176z"/><path d="m70.7656545 13.1584757v1.2706847h-8.4140759v-1.1405544l4.5744648-5.06742923c.6123782-.68892542 1.0594142-1.30895831 1.3411082-1.86009865.2816939-.55114034.4225409-1.10228069.4225409-1.65342103 0-.71954434-.2082085-1.27068468-.6246257-1.66107575-.4164171-.38273635-1.010424-.57410453-1.7820204-.57410453-1.2492515 0-2.4862554.49755726-3.7110117 1.50032649l-.5695117-1.15586377c.5143977-.48990253 1.1635185-.8802936 1.9473626-1.17117323.783844-.29853435 1.5738118-.44397416 2.3699035-.44397416 1.2002611 0 2.1494473.30618907 2.8475584.92622196.6981111.62003288 1.0471666 1.45439813 1.0471666 2.51075045 0 .74250851-.168404 1.46205285-.5052119 2.15863301-.336808.68892542-.897134 1.46205285-1.6809781 2.31938227l-3.729383 4.04169587z"/><path d="m74.9175784 12.5384428v1.3395772c0 .5128667-.0857329.9874598-.2571988 1.4161245s-.4592837.84202-.8634532 1.2477205l-.6981111-.5358309c.4776549-.5511403.7471013-1.0716618.8083391-1.5768737h-.8818245v-1.8907176z"/><path d="m85.1687888 8.84120966c.4041695.54348561.6062543 1.22475634.6062543 2.04381214 0 1.1405543-.3857982 2.0361573-1.1573947 2.6868091-.7715965.6583065-1.8187631.9874598-3.1414999.9874598-.8450819 0-1.6564829-.1454398-2.4342032-.42101-.7777203-.2832249-1.4360268-.6812707-1.9749196-1.1941374l.5878831-1.1635185c1.2125087 1.010424 2.4740077 1.5079812 3.784497 1.5079812.9308148 0 1.6381116-.2066776 2.1218903-.6200329.4837787-.4210099.7256681-1.0333881.7256681-1.8371344 0-1.60749269-1.0043002-2.41123903-3.0129005-2.41123903h-1.5064503v-1.26302995h1.2125088c.9675574 0 1.708535-.21433235 2.2229327-.64299706.5143976-.42866471.7715965-1.04104287.7715965-1.83713448 0-.71188961-.2112705-1.25537522-.6338114-1.63811157-.422541-.38273635-1.0196097-.5664498-1.7912062-.5664498-1.2492514 0-2.4862553.49755726-3.7110116 1.50032649l-.5695117-1.15586377c.5266452-.49755726 1.1727042-.89560306 1.9381769-1.18648268.7654727-.2832249 1.5646262-.42866471 2.3974605-.42866471 1.175766 0 2.1157665.29853435 2.8200014.90325778.7042349.5970687 1.0563523 1.40846976 1.0563523 2.41889372 0 .75016325-.1837134 1.40846977-.5511403 1.96726484-.3674269.56644979-.8757008.97215032-1.5248216 1.21710159.7715964.21433235 1.3594795.5970687 1.7636491 1.13289959z"/><path d="m90.1841659 12.5384428v1.3395772c0 .5128667-.085733.9874598-.2571988 1.4161245-.1714659.4286647-.4592837.84202-.8634533 1.2477205l-.6981111-.5358309c.477655-.5511403.7471014-1.0716618.8083392-1.5768737h-.8818245v-1.8907176z"/><path d="m101.776484 10.3338814v1.2477205h-1.9841048v2.8475585h-1.5064503v-2.8475585h-6.0258011v-1.1405543l6.3013713-9.09381565h1.2308801v8.98664945zm-7.9547919 0h4.4642368v-6.42997064z"/><path d="m105.450753 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257198 1.4161245-.171466.4286647-.459284.84202-.863454 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m114.847696 6.74381447c.618502.34446271 1.093095.83436524 1.423779 1.45439812.330685.62768761.496027 1.34723195.496027 2.17394251 0 .8190557-.180652 1.5462548-.541955 2.1815971-.361303.6353424-.875701 1.1328996-1.543193 1.4773623-.667492.3521175-1.448274.5281762-2.342346.5281762-.796092 0-1.579936-.1454398-2.351532-.4363194-.771597-.2832249-1.420718-.6812707-1.947363-1.178828l.569512-1.1635185c1.212508 1.010424 2.455636 1.5079812 3.729383 1.5079812.918567 0 1.638111-.2602607 2.158633-.7807821.520521-.5205215.780782-1.2247563.780782-2.1203594 0-.87263887-.257199-1.56921902-.771597-2.10504991-.514397-.52817616-1.200261-.79609161-2.05759-.79609161-1.249252 0-2.247428.50521198-2.994529 1.52329067h-1.047167v-7.6623817h7.844564v1.2477205h-6.338114v4.66938345c.722606-.69658015 1.647297-1.04869759 2.774073-1.04869759.820587 0 1.540131.17605872 2.158633.52817616z"/><path d="m120.717341 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245s-.459284.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747101-1.0716618.808339-1.5768737h-.881825v-1.8907176z"/><path d="m130.077541 6.74381447c.618502.34446271 1.099219.83436524 1.442151 1.46970758.342931.62768761.514397 1.34723194.514397 2.15863305 0 .8037463-.180651 1.5309453-.541954 2.1662877-.361304.6353423-.860392 1.1328996-1.497265 1.4926717-.636873.3674269-1.35948.5434857-2.167819.5434857-1.579935 0-2.798568-.5511404-3.655897-1.6534211-.85733-1.1022806-1.285994-2.6714997-1.285994-4.70000233 0-1.46970758.199022-2.73273753.597068-3.78908985.398046-1.0486976.973681-1.85244393 1.726907-2.40358427.753225-.55114034 1.656483-.82671051 2.709773-.82671051.759349 0 1.497265.13778508 2.213747.42100998s1.34417.6812707 1.883063 1.19413741l-.569512 1.15586377c-.612378-.51286671-1.200261-.88794833-1.763649-1.13289959s-1.139023-.3674269-1.726906-.3674269c-1.126776 0-2.002477.49755726-2.627103 1.50032649-.624625 1.01042396-.936938 2.41889373-.936938 4.22540929v.27557017c.281694-.69658015.740977-1.24772049 1.377851-1.65342102.636873-.39804581 1.365603-.60472343 2.18619-.60472343.796091 0 1.503388.17605872 2.12189.52817616zm-.303127 5.76400943c.514397-.5281762.771596-1.2400658.771596-2.1203594 0-.87263887-.26026-1.56921902-.780782-2.10504991-.520521-.52817616-1.197199-.79609161-2.030033-.79609161-.85733 0-1.555441.26791545-2.094334.80374634-.538893.54348561-.808339 1.24006577-.808339 2.09739518 0 .8726389.269446 1.5768738.808339 2.1127047.538893.5358308 1.243128.811401 2.112705.811401.832834 0 1.50645-.2679154 2.020848-.8037463z"/><path d="m135.983928 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245-.171465.4286647-.459283.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m138.353832 1.34723195h8.634532v1.12524486l-6.136029 11.95668359h-1.616679l6.099287-11.81124377h-6.981111z"/><path d="m151.250516 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245s-.459284.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747101-1.0716618.808339-1.5768737h-.881825v-1.8907176z"/><path d="m161.915081 8.9101022c.471532.5664498.707297 1.2477205.707297 2.0438121 0 1.1175901-.422541 1.9978837-1.267623 2.6408808-.845081.6429971-1.984105.9644956-3.41707.9644956s-2.571988-.3214985-3.41707-.9644956-1.267623-1.5232907-1.267623-2.6408808c0-.7960916.24189-1.4773623.725669-2.05146683.483778-.58175925 1.148209-.97980505 1.99329-1.1941374-.783844-.23729654-1.383974-.62003289-1.800391-1.14820905-.416418-.53583089-.624626-1.1635185-.624626-1.88306284 0-.70423488.183713-1.30895831.55114-1.82947974.367427-.52052144.884887-.92622197 1.552379-1.21710159.667492-.2832249 1.429903-.42866471 2.287232-.42866471.85733 0 1.619741.14543981 2.287233.42866471.667492.29087962 1.184951.69658015 1.552378 1.21710159.367427.52052143.551141 1.12524486.551141 1.82947974 0 .71954434-.211271 1.34723195-.633812 1.88306284-.422541.52817616-1.013486.91091251-1.772834 1.14820905.857329.2296418 1.521759.62768761 1.99329 1.20179213zm-6.080915-2.42654845c.520522.43631944 1.221695.70423488 2.103519.7960916.881825-.09185672 1.582998-.35977216 2.103519-.7960916.520522-.43631944.780782-1.00276923.780782-1.69934939 0-.71954434-.254137-1.29364886-.76241-1.70700412-.508274-.42100998-1.215571-.62768761-2.121891-.62768761-.906319 0-1.613616.20667763-2.12189.62768761-.508274.41335526-.762411.98745978-.762411 1.70700412 0 .69658016.260261 1.26302995.780782 1.69934939zm4.473423 6.20032885c.55114-.4133553.82671-1.0257334.82671-1.821825 0-.7195444-.290879-1.30130361-.872639-1.72996832-.581759-.43631943-1.356417-.70423488-2.323975-.80374633-.967557.09951145-1.742216.3674269-2.323975.80374633-.581759.42866471-.872639 1.01042392-.872639 1.72996832 0 .7960916.27557 1.4084697.826711 1.821825.55114.4133553 1.341108.6276876 2.369903.6276876 1.028796 0 1.818763-.2143323 2.369904-.6276876z"/><path d="m166.517103 12.5384428v1.3395772c0 .5128667-.085733.9874598-.257199 1.4161245-.171465.4286647-.459283.84202-.863453 1.2477205l-.698111-.5358309c.477655-.5511403.747102-1.0716618.808339-1.5768737h-.881824v-1.8907176z"/><path d="m176.456001 2.85521316c.857329 1.10228069 1.285994 2.67149972 1.285994 4.70000237 0 2.21987082-.443974 3.94218437-1.331923 5.17459547-.887948 1.232411-2.128014 1.8447892-3.720197 1.8447892-.747101 0-1.478893-.1377851-2.195376-.42101-.716482-.2832249-1.350293-.6812707-1.901434-1.1941374l.587883-1.1558638c.624626.5281762 1.218633.9109125 1.782021 1.148209.563388.2372966 1.132899.3597722 1.708535.3597722 1.126776 0 1.999414-.505212 2.617916-1.5079812s.927753-2.411239.927753-4.22540929v-.23729654c-.281694.6812707-.740977 1.22475632-1.377851 1.62280212-.636873.3980458-1.365603.5970687-2.18619.5970687-.796091 0-1.500326-.17605872-2.112704-.52052143-.612378-.35211744-1.090033-.84201997-1.432965-1.46970758-.342932-.63534234-.514398-1.35488667-.514398-2.15863301 0-.81140106.180652-1.53094539.541955-2.17394246.361303-.63534234.860391-1.13289959 1.497265-1.49267176.636873-.35977217 1.359479-.54348561 2.167818-.54348561 1.579936 0 2.798568.55114034 3.655898 1.65342102zm-1.469708 4.63110982c.538893-.54348561.808339-1.24006577.808339-2.09739519 0-.86498415-.269446-1.56921903-.808339-2.11270464-.538893-.53583089-1.243127-.80374634-2.112704-.80374634-.832835 0-1.506451.26026072-2.020848.79609161-.514398.53583089-.771597 1.24006577-.771597 2.12035937 0 .87263888.257199 1.56921903.771597 2.10504992.514397.53583089 1.194137.79609161 2.039219.79609161.857329 0 1.55544-.26791545 2.094333-.80374634z"/></g><g fill="#f2f2f2" fill-rule="nonzero" transform="translate(1307.966463 315.478416)"><path d="m15.7309762 20.418335h-2.3788531l-2.4066219-6.4812177c-.2915715-.8025158-.6979203-1.3403033-1.21719525-1.6133623-.51927495-.2739846-1.2532946-.4100513-2.20205898-.4100513h-4.86785547v8.5046313h-2.21501771v-19.47142187h7.74006606c2.09653785 0 3.70527205.46466314 4.82620245 1.39491504 1.121856.92932627 1.6818584 2.26962951 1.6818584 4.01998408 0 1.2764352-.332299 2.34738191-.9978225 3.21284015-.6655235.8663839-1.6272466 1.4819237-2.8851693 1.8466194.5655561.0907112 1.0487317.332299 1.4495268.7247635.4007951.3915388.7386478.9524668 1.0117068 1.6818584zm-7.73914047-10.3651351c2.98976477 0 4.48464727-1.22089777 4.48464727-3.66454456 0-1.20331091-.3646958-2.10116598-1.0940874-2.6935652-.7284659-.59239922-1.85957813-.88859883-3.39055987-.88859883h-5.33344423v7.24670859z"/><path d="m18.2745903 18.1755486.8478714-1.7225859c.9663512.8201027 1.9502893 1.4041713 2.9536655 1.7503546 1.0024506.3461833 2.1696621.5192749 3.5007091.5192749 1.5680067 0 2.7759458-.3054558 3.6228915-.9154419.8478714-.6109117 1.2718071-1.4726674 1.2718071-2.5843416 0-.6571929-.2045629-1.1903522-.6146142-1.6004035-.410977-.4100513-.9487644-.7340197-1.6142879-.9709794-.6655235-.2369596-1.5541223-.4831756-2.6657965-.7377221-1.495808-.3285964-2.725962-.684036-3.6923132-1.0672442-.9663513-.3822826-1.7503546-.93395442-2.3520101-1.65408972-.6016554-.72013531-.9024831-1.66427156-.9024831-2.83055753 0-1.11259978.2915714-2.09190974.8747144-2.93978113.5840686-.84787138 1.4087994-1.50876676 2.475118-1.98268614 1.0672442-.474845 2.3112826-.71180469 3.7330407-.71180469 1.3495595 0 2.6074822.2101166 3.7746938.62942417 1.166286.41930758 2.1511497 1.03021927 2.9536655 1.83180947l-.8756401 1.72351148c-.9117394-.78400334-1.8364376-1.35881571-2.7759457-1.72351148-.9385825-.36377015-1.9641737-.54611803-3.0767735-.54611803-1.5133948 0-2.6981933.3230427-3.5553209.97005372-.856202.64793665-1.2847658 1.53653548-1.2847658 2.66672212 0 .9848637.373952 1.72258585 1.1209304 2.21501771.747904.49243185 1.8966031.92099566 3.4460973 1.28569143 1.6772303.40079512 2.994393.77011902 3.9514879 1.10797162.957095.3369271 1.7549827.8469458 2.3927375 1.5309818.6386804.684036.9580206 1.5911473.9580206 2.7213339 0 1.0940873-.2924971 2.0558104-.8756401 2.8851693-.5831429.8293589-1.41713 1.4726675-2.501961 1.9280744-1.0848311.4554069-2.3566382.6840359-3.8154213.6840359-3.0443766 0-5.4695109-.8210283-7.2744773-2.4621592z"/><path d="m35.3125473 18.1755486.8478714-1.7225859c.9663512.8201027 1.9502893 1.4041713 2.9536654 1.7503546 1.0024506.3461833 2.1696622.5192749 3.5007092.5192749 1.5680067 0 2.7750201-.3054558 3.6228915-.9154419.8478714-.6109117 1.271807-1.4726674 1.271807-2.5843416 0-.6571929-.2045628-1.1903522-.6155398-1.6004035-.4100513-.4100513-.9478387-.7340197-1.6133622-.9709794-.6655235-.2369596-1.5541223-.4831756-2.6657965-.7377221-1.495808-.3285964-2.725962-.684036-3.6923133-1.0672442-.9663512-.3822826-1.7503545-.93395442-2.35201-1.65408972-.6016555-.72013531-.9024832-1.66427156-.9024832-2.83055753 0-1.11259978.2915715-2.09190974.8747145-2.93978113.5840686-.84787138 1.4087994-1.50876676 2.475118-1.98268614 1.0672442-.474845 2.3112826-.71180469 3.7330407-.71180469 1.3495595 0 2.6074822.2101166 3.7746938.62942417 1.1662859.41930758 2.1511496 1.03021927 2.9536655 1.83180947l-.8756401 1.72351148c-.9117395-.78400334-1.8364376-1.35881571-2.7759458-1.72351148-.9385825-.36377015-1.9641736-.54611803-3.0767734-.54611803-1.5133949 0-2.6981933.3230427-3.555321.97005372-.856202.64793665-1.2847658 1.53653548-1.2847658 2.66672212 0 .9848637.373952 1.72258585 1.1209304 2.21501771.747904.49243185 1.8966032.92099566 3.4460974 1.28569143 1.6772303.40079512 2.9943929.77011902 3.9514879 1.10797162.957095.3369271 1.7549827.8469458 2.3927375 1.5309818.6386804.684036.9580206 1.5911473.9580206 2.7213339 0 1.0940873-.2924971 2.0558104-.8756401 2.8851693s-1.41713 1.4726675-2.5019611 1.9280744-2.3566381.6840359-3.8154212.6840359c-3.0443766 0-5.469511-.8210283-7.2744773-2.4621592z"/></g><g transform="translate(1132.952069 387.954528)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m23.6732656 32.2046798v3.383959h-22.46109685v-3.0406798l12.21155275-13.5355472c1.6346218-1.8308227 2.8280084-3.4819151 3.5798709-4.953277.7521514-1.4710729 1.1280827-2.9424349 1.1280827-4.4137968 0-1.92877865-.5559506-3.40823133-1.6675628-4.43806909-1.1116122-1.03012673-2.6971116-1.54504561-4.7570761-1.54504561-3.33483658 0-6.63673225 1.34046504-9.90626489 4.02168407l-1.52048438-3.08980225c1.37340598-1.30781306 3.10598377-2.35383234 5.19860024-3.13863575 2.09232752-.78480342 4.2011255-1.17691617 6.32639393-1.17691617 3.2039397 0 5.7377914.82554616 7.6015551 2.47663847 1.8634746 1.65109231 2.7953564 3.88240747 2.7953564 6.69394548 0 1.99437155-.4496149 3.91534845-1.3488447 5.76264155-.8989409 1.8470042-2.394864 3.9150595-4.4871916 6.2035878l-9.95538731 10.7893133z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1144.791113 397.615433)"/><g transform="translate(1191.307406 387.954528)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.0150941-52.05176699v49.51333329h42.4764253v-49.51333329z" fill="#000"/></g><path d="m21.6572224 20.6796856c1.0789602 1.4387099 1.6184403 3.2533511 1.6184403 5.4436346 0 3.0406798-1.0298378 5.4355438-3.0895133 7.184881-2.0599645 1.7490483-4.855321 2.6237169-8.3860695 2.6237169-2.25616532 0-4.42217651-.3762202-6.49803356-1.1280827-2.076146-.7518625-3.83357397-1.8146412-5.27199496-3.1877582l1.56931788-3.0895133c3.2365917 2.6809301 6.60408028 4.0213951 10.10246574 4.0213951 2.4847292 0 4.3730541-.5559506 5.6643967-1.6675628s1.9371583-2.746234 1.9371583-4.9041544c0-4.2829-2.68093-6.4243499-8.0427902-6.4243499h-4.02168406v-3.3839591h3.23688066c2.5829741 0 4.5608752-.5721321 5.9339922-1.7163963 1.3731171-1.1442642 2.0599645-2.779175 2.0599645-4.90415445 0-1.89641562-.5640413-3.35130707-1.692124-4.36467437-1.1277937-1.01365625-2.7216728-1.52048438-4.7816373-1.52048438-3.33483658 0-6.63673225 1.34046504-9.90626489 4.02168407l-1.52048437-3.08980225c1.40605796-1.34046504 3.13054499-2.39486403 5.17403901-3.16319698 2.04349402-.76833294 4.17685323-1.15235494 6.40007765-1.15235494 3.1386357 0 5.6479262.80098493 7.5278713 2.40295479 1.8799452 1.60196986 2.8199177 3.75989029 2.8199177 6.47347235 0 1.99437156-.4906466 3.74341986-1.4713619 5.24743376s-2.3376508 2.5829741-4.0705175 3.2368806c2.0596755.5883136 3.6292823 1.6019699 4.7079536 3.0403909z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1203.470522 396.880376)"/><g transform="translate(1249.976943 388.127483)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m25.5263379 24.074336v3.3348366h-5.2965562v7.601555h-4.0213951v-7.601555h-16.08558047v-3.0406798l16.82126147-24.27573805h3.2857141v23.98158125zm-21.23505825 0h11.91710695v-17.16454069z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1260.680298 397.799392)"/><g transform="translate(1072.3219 388.127483)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.0150941-52.05176699v49.51333329h42.4764253v-49.51333329z" fill="#000"/></g><path d="m12.0107286 31.6267686h7.6995109v3.383959h-19.46953948v-3.383959h7.69951097v-26.53161447l-7.16003086 4.56087523v-3.87431672l8.92554959-5.68895789h2.30499888z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1086.781678 397.799392)"/><g transform="translate(1310.293872 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m18.2209624 14.4865002c1.6510923.9318818 2.9181626 2.2316041 3.8009219 3.8988779.8827594 1.6675628 1.3239946 3.5963414 1.3239946 5.7869138 0 2.1905725-.4822669 4.1358216-1.4468007 5.8360363-.9642448 1.7002148-2.3376508 3.0161186-4.119351 3.9480004-1.7819892.9315929-3.866226 1.3976783-6.2529993 1.3976783-2.12497947 0-4.21730699-.384311-6.27727148-1.1526439-2.05967553-.768333-3.79254227-1.822732-5.19831128-3.163197l1.52019542-3.0895133c3.23688066 2.6809301 6.55524679 4.0213951 9.95538734 4.0213951 2.4523662 0 4.3730541-.6946492 5.7626416-2.0842367 1.3892985-1.3895875 2.0842368-3.2776234 2.0842368-5.6643967 0-2.3211804-.6865586-4.1930347-2.0596756-5.6152742-1.373406-1.4222395-3.2042286-2.1333592-5.492757-2.1333592-3.33483662 0-5.99958518 1.3569355-7.99395675 4.0705175h-2.79535649v-20.45054375h20.94090144v3.3348366h-16.91950633v12.45687605c1.9290676-1.8637637 4.39761531-2.7956455 7.40535413-2.7956455 2.1905725 0 4.1112603.4660854 5.7623527 1.3976783z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1322.999783 398.270213)"/><g transform="translate(1374.317793 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m19.2788288 15.0644114c1.6510923.9318818 2.9343442 2.2396948 3.8497555 3.9234391.9154114 1.6837443 1.373117 3.6047212 1.373117 5.7623526 0 2.1579205-.4822669 4.0869881-1.4468007 5.7869139-.9642448 1.7002148-2.2966191 3.032589-3.9968339 3.9971228-1.6999258.9642449-3.6289934 1.4465118-5.7869138 1.4465118-4.21759597 0-7.47065814-1.471073-9.75918651-4.4137968-2.28881733-2.9424349-3.43308151-7.1273789-3.43308151-12.554543 0-3.9234392.53138935-7.2909278 1.5938791-10.10246581 1.06248975-2.81182696 2.59915564-4.95327693 4.60999768-6.42463886 2.01055308-1.47136192 4.42188754-2.20675393 7.23371454-2.20675393 2.0270235 0 3.9968339.37593124 5.909431 1.12779372 1.9125972.75215143 3.5882507 1.81464118 5.0266717 3.1877582l-1.5201954 3.08980225c-1.6346219-1.37340597-3.2039398-2.38677327-4.7079537-3.0406798s-3.0406798-.98100427-4.6099976-.98100427c-3.0077389 0-5.34538973 1.34046504-7.01295251 4.02168407-1.66727383 2.68093003-2.5011997 6.44053143-2.5011997 11.27938193v.735681c.75215144-1.8634747 1.97819006-3.3348366 3.67811586-4.4137969 1.70021477-1.0789602 3.64546385-1.6184403 5.83603635-1.6184403 2.1252684 0 4.0133043.4660854 5.6643966 1.3976783zm-.8090757 15.3993109c1.3731171-1.4222395 2.0596756-3.3102754 2.0596756-5.6643967 0-2.3211804-.6949383-4.1930347-2.0842368-5.6152742-1.3895875-1.4222395-3.195849-2.1333592-5.4190734-2.1333592-2.2888173 0-4.15229196.7192105-5.5910019 2.1579204-1.43842099 1.438421-2.15763148 3.3021846-2.15763148 5.590713 0 2.3211803.71921049 4.2011255 2.15763148 5.6398354 1.43870994 1.438421 3.3186551 2.1579205 5.6398354 2.1579205 2.2232244 0 4.0213952-.7111198 5.3948011-2.1333592z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1384.69083 397.697106)"/><g transform="translate(1436.988825 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01528916-52.05176699v49.51333329h42.47662036v-49.51333329z" fill="#000"/></g><path d="m.04045378.09275475h23.04969942v2.99155735l-16.38002621 31.9264155h-4.31555192l16.28178133-31.5340138h-18.63590262z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1447.938813 398.275017)"/><g transform="translate(1499.78573 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m23.338655 20.8516142c1.2586906 1.5201954 1.8880359 3.3429273 1.8880359 5.4679068 0 2.9753759-1.1277937 5.3211174-3.3836701 7.0375137-2.2561653 1.7166852-5.2965562 2.5748834-9.1217504 2.5748834-3.82548323 0-6.86587408-.8581982-9.12175046-2.5748834-2.25616535-1.7163963-3.38395906-4.0621378-3.38395906-7.0375137 0-2.1249795.64552681-3.9558022 1.93715836-5.4924681 1.29134258-1.5366659 3.06495207-2.5994446 5.32082845-3.1877582-2.09232751-.6212545-3.69429737-1.6430015-4.80590957-3.065241s-1.66756278-3.0976041-1.66756278-5.02667165c0-1.86347468.49064661-3.49029472 1.47136193-4.87959325.98071531-1.38958749 2.36221204-2.46854771 4.14391229-3.23688066 1.78198919-.76833294 3.81710354-1.15235494 6.10592084-1.15235494 2.2885284 0 4.3236427.384022 6.1056319 1.15235494 1.7817002.76833295 3.1631969 1.84729317 4.1439122 3.23688066.9810043 1.38929853 1.471362 3.01611857 1.471362 4.87959325 0 1.92906755-.5640414 3.60443215-1.692124 5.02667165-1.1277937 1.4222395-2.7052024 2.4439865-4.7325149 3.065241 2.2888173.6212546 4.0624268 1.6918351 5.3211174 3.2123195zm-16.23265883-6.4737613c1.38929853 1.1607346 3.26115293 1.8718543 5.61527423 2.1333592 2.3538323-.2615049 4.2256867-.9726246 5.6152742-2.1333592 1.3892985-1.1604457 2.0842368-2.6725504 2.0842368-4.53631405 0-1.92877864-.6784678-3.44926302-2.0354033-4.56087522-1.3566466-1.1116122-3.2449714-1.66727383-5.6641077-1.66727383-2.4194253 0-4.30775013.55566163-5.66439668 1.66727383-1.35693551 1.1116122-2.03540327 2.63209658-2.03540327 4.56087522 0 1.86376365.69493823 3.37586835 2.08452572 4.53631405zm11.94166813 16.5516658c1.471073-1.1116122 2.206754-2.7300525 2.206754-4.855032 0-1.9290676-.7764237-3.4738243-2.3295601-4.6345589-1.5528474-1.1607347-3.6209026-1.8718544-6.2035878-2.1333592-2.5829741.2615048-4.65102939.9726245-6.20387679 2.1333592-1.55313637 1.1607346-2.32956007 2.7054913-2.32956007 4.6345589 0 2.1249795.73568096 3.7434198 2.20704289 4.855032 1.47107297 1.1116122 3.57987096 1.6675628 6.32639397 1.6675628 2.746234 0 4.855032-.5559506 6.3263939-1.6675628z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1509.579895 397.697106)"/><g transform="translate(1565.056846 388.430153)"><path d="m.039304.099422h47.553665v54.590201h-47.553665z" fill="#00a88a"/><path d="m47.5929694 54.6896229h-47.55366538v-54.59020073h47.55366538zm-45.01519163-52.05176699v49.51333329h42.47652283v-49.51333329z" fill="#000"/></g><path d="m21.1125411 4.69235002c2.2885283 2.9424349 3.4330815 7.12737888 3.4330815 12.55454298 0 5.9178108-1.1852959 10.5194287-3.5555987 13.8051429-2.3703028 3.2860031-5.6805782 4.9287157-9.9311151 4.9287157-1.99437156 0-3.94771143-.3759313-5.86030856-1.1277937-1.91259713-.7521515-3.60472114-1.8146412-5.07579411-3.1877582l1.56931788-3.0895133c1.66727382 1.405769 3.25306216 2.427516 4.75707607 3.064952 1.50372496.6374361 3.02420934.9564431 4.56087522.9564431 3.0077389 0 5.3372989-1.3404651 6.9883912-4.0213951 1.6510924-2.6812191 2.4766385-6.4408204 2.4766385-11.2796709v-.637725c-.7521514 1.8311116-1.97819 3.2776234-3.6781158 4.3404021-1.7002148 1.0624897-3.6454639 1.5938791-5.8360363 1.5938791-2.1252685 0-4.00521365-.4660854-5.63983549-1.3976783-1.63462184-.9318818-2.90978291-2.2396949-3.82519426-3.9234391-.91541134-1.6837443-1.37311702-3.6047212-1.37311702-5.7623527 0-2.1579204.4822669-4.086988 1.44651175-5.78691381.9645338-1.70021476 2.29690808-3.03258905 3.99712284-3.99712285 1.69992581-.96424484 3.62899341-1.44651174 5.78691388-1.44651174 4.2175959 0 7.4706581 1.47107297 9.7591865 4.41379682zm-3.9234392 12.35834218c1.4387099-1.438421 2.1579204-3.3021847 2.1579204-5.590713 0-2.32118037-.7192105-4.20112552-2.1579204-5.63983546-1.438421-1.43842099-3.3183661-2.15792044-5.6395465-2.15792044-2.22322439 0-4.02168405.71111974-5.39480107 2.13335921-1.37311703 1.42223948-2.05967554 3.31027538-2.05967554 5.66439669 0 2.3211803.68655851 4.1930347 2.05967554 5.6152742 1.37311702 1.4222395 3.1877582 2.1333592 5.44363457 2.1333592 2.2888173 0 4.152292-.7192105 5.590713-2.1579204z" fill="#f2f2f2" fill-rule="nonzero" transform="translate(1575.139966 397.697106)"/><g stroke="#000"><path d="m1096.073546 379.827207v8.703347" stroke-width="2.540471"/><path d="m1334.698583 379.827107h-238.625356" stroke-width="2.536666"/><path d="m1157.047962 379.827207v8.703347" stroke-width="2.540471"/><path d="m1214.724654 379.827207v8.703347" stroke-width="2.540471"/><path d="m1273.792589 379.827207v8.703347" stroke-width="2.540471"/><path d="m.25679382.11881745v8.70067791h253.66824618v8.70607874" stroke-width="2.537062" transform="translate(1333.854479 371.007868)"/><path d="m1522.192353 379.827363v8.706079" stroke-width="2.538373"/><path d="m1460.272258 379.827363v8.706079" stroke-width="2.538373"/><path d="m1398.172318 379.827363v8.706079" stroke-width="2.538373"/><path d="m461.035492 332.200017v30.871702" stroke-width="2.538347"/><path d="m555.359389 347.854087v15.218407" stroke-width="2.537588"/><path d="m695.541211 347.854373v14.187222" stroke-width="2.538524"/><path d="m790.885848 362.040642v-30.871702" stroke-width="2.538347"/><path d="m887.942518 362.041595v-14.187222" stroke-width="2.538524"/><path d="m.019213 15.299472.406607-15.172668" stroke-width="2.539569" transform="matrix(-1 0 0 1 367.859321 347.727644)"/></g><g transform="translate(728.528993 23.597628)"><path d="m.027562.06972h33.346975v38.281514h-33.346975z" fill="#00a88a"/><path d="m33.3745364 38.3512337h-33.34697449v-38.28151366h33.34697449zm-30.80847438-35.74309116v33.20466866h28.26976908v-33.20466866z" fill="#000"/></g><g fill="#000" transform="translate(771.880716 31.029736)"><path d="m12.5751769 7.68008917v1.60645421h-12.54602874v-1.60645421zm0 5.15096053v1.6066044h-12.54602874v-1.6066044z"/><path d="m26.1286201 17.4720676c-1.3345049-.7649138-2.3587471-1.8486543-3.0727268-3.2512217-.7141299-1.4025673-1.0711197-3.0473348-1.0711197-4.93430252 0-1.86998963.3569898-3.50634324 1.0711197-4.90876034.7139797-1.40256734 1.7382219-2.48210096 3.0727268-3.23860086 1.3345049-.75649991 2.8942319-1.13467473 4.6793313-1.13467473 1.2239222 0 2.3757252.19126601 3.4552588.57364779 1.0795337.38253202 1.9762152.91380981 2.6901948 1.59383335l-1.0709695 2.39706047c-.8159982-.6630455-1.6277894-1.14338913-2.4352235-1.44088065-.8075843-.29749152-1.6703097-.44623728-2.5883264-.44623728-1.7509931 0-3.1068332.56959109-4.06722 1.70862301-.960537 1.13888168-1.4408806 2.77102834-1.4408806 4.89598924 0 2.14193892.4761367 3.78670642 1.4281095 4.93430252.9519729 1.1474458 2.31202 1.7212439 4.0799911 1.7212439.9180167 0 1.7807421-.1487458 2.5883264-.4462373.8074341-.2974915 1.6192253-.7778352 2.4352235-1.4407304l1.0709695 2.3969102c-.7139796.6800236-1.6106611 1.2113013-2.6901948 1.5938334-1.0795336.382532-2.2313366.573798-3.4552588.573798-1.7850994 0-3.3448264-.382532-4.6793313-1.1475961z"/><path d="m41.938792 17.7781233c-.9944932-.5440489-1.7595572-1.3217338-2.295042-2.333205-.5354847-1.0116214-.8032271-2.1973805-.8032271-3.5574276 0-1.3598968.2677424-2.54565597.8032271-3.55727739.5354848-1.01147117 1.3005488-1.78915607 2.295042-2.33320496.9944931-.54404888 2.1462961-.8159982 3.4552588-.8159982 1.2919846 0 2.4310166.27194932 3.4169455.8159982.9860792.54404889 1.7467861 1.32173379 2.2822708 2.33320496.535635 1.01162142.8033774 2.19738059.8033774 3.55727739 0 1.3600471-.2677424 2.5458062-.8033774 3.5574276-.5354847 1.0114712-1.2961916 1.7891561-2.2822708 2.333205-.9859289.5440489-2.1249609.8159982-3.4169455.8159982-1.3089627 0-2.4607657-.2719493-3.4552588-.8159982zm5.9160245-2.7412792c.5694408-.7055657.8543115-1.7552.8543115-3.1493534 0-1.3768749-.2890776-2.42665936-.8670826-3.14920316s-1.3940032-1.08374057-2.4479946-1.08374057c-1.0709695 0-1.8955318.36119677-2.4735368 1.08374057s-.8670826 1.77232826-.8670826 3.14920316c0 1.3941534.2848706 2.4437877.8543115 3.1493534.5695911.7055658 1.3897962 1.0581984 2.4607657 1.0581984 1.0880978 0 1.9167168-.3526326 2.4863079-1.0581984z"/><path d="m66.6356966 10.4850736v7.9050108h-3.1875165v-7.7520581c0-1.0200353-.1954729-1.7637641-.5864189-2.23118638-.3910962-.46757253-.9946433-.7013588-1.8106415-.7013588-.968951 0-1.7509931.31026262-2.3459761.93078786-.594983.62052525-.8924746 1.44073042-.8924746 2.46076572v7.2930497h-3.1621245v-9.23110178c0-1.35989684-.0679122-2.57540513-.2038868-3.64652485h2.9834793l.2295793 2.116547c.4418801-.78204211 1.0412203-1.38543905 1.7977202-1.81049133s1.6108115-.63750329 2.5627843-.63750329c3.0769338 0 4.6154758 1.76797107 4.6154758 5.30406345z"/><path d="m74.0818492 7.90951823v5.76307187c0 1.5129998.7054155 2.2694997 2.1163968 2.2694997.3910962 0 .8161484-.0680625 1.2751568-.2040371v2.5246212c-.5610269.2038869-1.2410505.3059054-2.0400706.3059054-1.4620657 0-2.5841195-.407924-3.3660114-1.2239222-.7820421-.8159982-1.172988-1.9891365-1.172988-3.5191143v-5.91602457h-2.4735368v-2.39706046h2.4735368v-3.13643206l3.1875164-1.07111972v4.20755178h3.4169456v2.39706046z"/><path d="m90.9629905 12.11707h-8.8741119c.0680624 1.3770252.4122812 2.3927033 1.0328064 3.0473349.6205252.6544813 1.542749.981722 2.7666711.981722 1.4111315 0 2.7200942-.4590084 3.9270384-1.3770251l.9180167 2.1930233c-.6119611.4929645-1.364254.8882676-2.2567286 1.1857591-.8924745.2974915-1.7977202.4462373-2.715737.4462373-2.1081331 0-3.7655214-.594983-4.9726158-1.7849491-1.2069441-1.1901163-1.8104913-2.8221128-1.8104913-4.8961395 0-1.3089627.2635354-2.47353681.790456-3.49357213.5270708-1.01988507 1.2665927-1.81469827 2.2185655-2.38413911.9519729-.56959109 2.0315065-.85431151 3.2386009-.85431151 1.7679711 0 3.1661812.57379804 4.1947807 1.72124387 1.0284492 1.14759607 1.5427489 2.72430113 1.5427489 4.73026538zm-7.7392869-3.88872499c-.535635.50137838-.8798538 1.22812913-1.0328065 2.18025229h5.9925009c-.1020185-.96910121-.3951528-1.70005891-.8797034-2.1930234-.4845506-.49311473-1.151803-.73952185-2.0017574-.73952185-.8501045 0-1.5427489.25076432-2.0782336.75229296z"/><path d="m105.651108 10.4850736v7.9050108h-3.187516v-7.7520581c0-1.0200353-.195473-1.7637641-.586569-2.23118638-.390946-.46757253-.994493-.7013588-1.810491-.7013588-.9689514 0-1.7509935.31026262-2.3459765.93078786-.594983.62052525-.8924746 1.44073042-.8924746 2.46076572v7.2930497h-3.1621245v-9.23110178c0-1.35989684-.0679122-2.57540513-.2040371-3.64652485h2.9836296l.2294291 2.116547c.4420303-.78204211 1.0412203-1.38543905 1.7977202-1.81049133.7566501-.42505228 1.6108118-.63750329 2.5627838-.63750329 3.077084 0 4.615626 1.76797107 4.615626 5.30406345z"/><path d="m113.097111 7.90951823v5.76307187c0 1.5129998.705566 2.2694997 2.116547 2.2694997.391096 0 .815998-.0680625 1.275006-.2040371v2.5246212c-.561026.2038869-1.24105.3059054-2.03992.3059054-1.462066 0-2.584119-.407924-3.366162-1.2239222-.781891-.8159982-1.172988-1.9891365-1.172988-3.5191143v-5.91602457h-2.473536v-2.39706046h2.473536v-3.13643206l3.187517-1.07111972v4.20755178h3.417096v2.39706046z"/><path d="m125.923803.23393651h7.879619c1.95488 0 3.476444.47177949 4.564542 1.41533845 1.087947.94340871 1.631996 2.2311864 1.631996 3.86318281s-.548256 2.9241313-1.644767 3.87610416c-1.096512.95197287-2.613869 1.42795927-4.551771 1.42795927h-4.590084v7.5735632h-3.289535zm7.497087 8.03257155c1.139032 0 2.001758-.23378627 2.588176-.70120855.58657-.46757253.879854-1.14323888.879854-2.02729954 0-.90103871-.289078-1.5852692-.867083-2.05269149-.578004-.46757253-1.444937-.70135879-2.600947-.70135879h-4.207552v5.48255837z"/><path d="m154.509583 5.51245777v12.87762663h-3.136582v-2.0654626c-.390946.7139797-.951973 1.2707996-1.683081 1.6703097-.730958.3995101-1.563934.59919-2.498929.59919-1.122054 0-2.116547-.2719493-2.983479-.8159982-.867083-.5440489-1.538542-1.3175268-2.014528-2.3205841-.476137-1.002907-.71413-2.1674811-.71413-3.4934219 0-1.326091.24235-2.50328596.72675-3.53188543.484551-1.02844922 1.160368-1.82746937 2.0273-2.39691021.867083-.56959109 1.853012-.85431151 2.958087-.85431151.934995 0 1.767971.19967991 2.498929.59918999.731108.39951008 1.292135.95633006 1.683081 1.67030971v-1.93805208zm-4.003514 9.48607303c.578005-.7309577.866932-1.7594069.866932-3.0854979 0-1.3600471-.288927-2.40547436-.866932-3.13643206-.578005-.73110795-1.402568-1.09651167-2.473537-1.09651167-1.053992 0-1.874347.37817482-2.460766 1.13467473-.586569.7564999-.879854 1.8062844-.879854 3.1493534 0 1.3259408.293285 2.3459761.879854 3.0599557.586419.7139797 1.415188 1.0709695 2.486158 1.0709695 1.053991 0 1.87014-.3654037 2.448145-1.0965117z"/><path d="m170.421623 5.51245777v12.46970263c0 2.0059643-.552462 3.5275283-1.657388 4.5645416-1.105076 1.0370134-2.728658 1.5555201-4.870597 1.5555201-1.988987 0-3.73998-.4164881-5.25313-1.2496147l.510093-2.4224524c1.563934.8159982 3.119454 1.2239222 4.66656 1.2239222 2.295042 0 3.442488-1.1388817 3.442488-3.4169455v-2.5500132c-.390946.6970016-.960537 1.2622355-1.708473 1.6957017-.748086.4336164-1.589626.6502744-2.524621.6502744-1.121904 0-2.120754-.2677424-2.99625-.8032271-.875497-.5354848-1.55552-1.2919847-2.039921-2.2694997-.48455-.9775151-.72675-2.095362-.72675-3.3532403 0-1.2580286.2422-2.37587548.72675-3.35339054.484401-.97751507 1.164424-1.73401497 2.039921-2.26949971.875496-.53548473 1.874346-.8032271 2.99625-.8032271.952123 0 1.797871.19967991 2.537392.59918999.739522.39951008 1.304756.95633006 1.695702 1.67030971v-1.93805208zm-4.06722 8.97613053c.603548-.6970016.905246-1.6575386.905246-2.8814608 0-1.2240724-.297491-2.18460946-.892474-2.88161106s-1.42811-1.04542727-2.499079-1.04542727c-1.053992 0-1.882761.34842567-2.486308 1.04542727-.603397.6970016-.905246 1.65753866-.905246 2.88161106 0 1.2239222.301849 2.1844592.905246 2.8814608.603547.6970016 1.432316 1.0455775 2.486308 1.0455775 1.053991 0 1.88276-.3485759 2.486307-1.0455775z"/><path d="m185.135284 12.11707h-8.874112c.068062 1.3770252.412281 2.3927033 1.032806 3.0473349.620525.6544813 1.542749.981722 2.766821.981722 1.410982 0 2.719944-.4590084 3.927039-1.3770251l.918016 2.1930233c-.612111.4929645-1.364254.8882676-2.256878 1.1857591-.892475.2974915-1.797721.4462373-2.715737.4462373-2.107983 0-3.765522-.594983-4.972466-1.7849491-1.207094-1.1901163-1.810491-2.8221128-1.810491-4.8961395 0-1.3089627.263385-2.47353681.790456-3.49357213.52692-1.01988507 1.266442-1.81469827 2.218565-2.38413911.951973-.56959109 2.031507-.85431151 3.238451-.85431151 1.767971 0 3.166331.57379804 4.194781 1.72124387 1.028599 1.14759607 1.542749 2.72430113 1.542749 4.73026538zm-7.739287-3.88872499c-.535485.50137838-.879704 1.22812913-1.032807 2.18025229h5.992651c-.102018-.96910121-.395303-1.70005891-.879853-2.1930234-.484401-.49311473-1.151653-.73952185-2.001758-.73952185-.849954 0-1.542749.25076432-2.078233.75229296z"/></g><path d="m367.838539 347.854154h94.040308" stroke="#000" stroke-width="2.538462"/><path d="m461.878846 347.854154h93.484616" stroke="#000" stroke-width="2.538462"/><path d="m.33230769 1.70030769 96.35538461-1.24846154 96.0461537 1.24846154" stroke="#000" stroke-width="2.538462" transform="translate(695.209615 346.153846)"/><path d="m.05446154.45184615h95.96584616l96.7416923 1.24846154" stroke="#000" stroke-width="2.538462" transform="translate(36.132692 346.153846)"/></g></svg>
\ No newline at end of file