Squashed 'docs/' changes from 73a01565c..d1a251933

d1a251933 theme: Optimize for printing
d906488d5 theme: Add border to highlighted code blocks within list items
9630c38cb theme: Display short command on commands list
7f81dd997 content: Regen commands markup
a84008e99 content: Cleanup primary list page
0874b03e9 content: Publish QR code examples to the images/qr directory
ef1ce3498 Restore static/img
489a68458 content: Restore KeyCDN screen captures
7d6e6184b theme: Move search button in navbar to the right on smaller screens
b03b96082 theme: Misc style adjustments
ecad97821 theme: Misc fixes
cf5e07b0f content: Restore example data and images
c7265041f content: Reformat css.TailwindCSS setup steps
3226e668f theme: Make the search button more compact on mobile
1f6614ee8 content: Update css.TailwindCSS example
49a2e7d71 theme: Improve search output
7e6b81ffa misc: Create issue template
826740223 theme: Misc search improvements
75f32b2f6 theme:  Remove the search alert
fd3de4ac2 config: Enable link render hook warnings
769e387cd Adjust logic to mark current section for Algolia
ba73ce646 Adjust markup to make it easier to match in Algolia
5accec5f1 Misc adjustments
eb5842566 Some content adjustments
bdf97b7b4 Add new theme
b19d68ee5 Remove old theme
a04e96e55 Rewrite the css.TailwindCSS page
1c46f1864 Update deprecation notes
aedcb444c Fix typo
c3290b876 Changes related to release of v0.144.0
a0012fcce netlify: Hugo 0.143.1
9e4d73e87 Include sections in quick-reference page collection
4591058f5 Miscellaneous edits
612b8528f glossary: More edits
1f0c54e60 Fit typo
6f14084c1 Move glossary to quick reference section
2d94905be Improve branch bundle admonition
2ea56bef3 Fix typos found with codespell
71c5fe951 Close shortcode
e95d06592 Document the responseHeaders option for resources.GetRemote
da7c12aaa Deprecate gist shortcode
c2d3e2c25 netlify: Bump to 0.143.0
367d3a7ab Improve new-in shortcode
1a7413a16 Clean up shortcode documentation
d847892aa Improve glossary
6a7fd42ff Update pages describing Store methods and functions
fa7643d1b Revert "Improve link render hook performance"
fe4c86ec4 Reformat MathJax example
cea44922a Update MathJax example to use safe mode
0b6d0292c Update KaTeX example to use latest version
fd4508645 Improve link render hook performance
23aeb5bd0 Update purgecss example
f7ef83e56 Refer each Hugo Pipe page to the corresponding function
81b91ef4e Remove related pages from pages for deprecated functions and methods
53c7627d5 Remove body from deprecated functions and methods
d9cf034c8 Consolidate css.ToCSS information
b7ed108f9 Improve js.Build example and presentation of options
86a4a5088 Improve babel example and description of options
d1874c5f5 Consistently use "edition" when referring to standard, extended, etc.
92f03a350 Revise description of privacy settings
152a92d80 Update Last.md
82a2365bd Add print-only QR code example
d22cadc25 Update mathematics.md
b8160af03 Delete page self-reference in page/type.md
ce24fe4e0 Update param.md
51cb92180 Improve description of output format template selection
78bcf358e Update Tailwind CSS npm package version to 4.0
2ca9da4af Include winget command to uninstall

git-subtree-dir: docs
git-subtree-split: d1a2519330f3647447053c89c49d6098af29519f
This commit is contained in:
Bjørn Erik Pedersen 2025-02-13 10:40:34 +01:00
parent 346b60358d
commit a024bc7d76
817 changed files with 5301 additions and 14766 deletions

13
.codespellrc Normal file
View file

@ -0,0 +1,13 @@
# Config file for codespell.
# https://github.com/codespell-project/codespell#using-a-config-file
[codespell]
# Comma separated list of dirs to be skipped.
skip = _vendor,.cspell.json,chroma.css,chroma_dark.css
# Comma separated list of words to be ignored. Words must be lowercased.
ignore-words-list = abl,edn,te,ue,trys,januar,womens,crossreferences
# Check file names as well.
check-filenames = true

View file

@ -68,6 +68,7 @@
"# ----------------------------------------------------------------------",
"# cspell: ignore hugo terminology",
"# ----------------------------------------------------------------------",
"alignx",
"attrlink",
"canonify",
"codeowners",
@ -85,6 +86,7 @@
"stringifier",
"struct",
"toclevels",
"unmarshal",
"unpublishdate",
"zgotmplz",
"# ----------------------------------------------------------------------",
@ -158,6 +160,8 @@
"# cspell: ignore miscellaneous",
"# ----------------------------------------------------------------------",
"achristie",
"ccpa",
"crpa",
"ddmaurier",
"dring",
"fleqn",
@ -171,6 +175,7 @@
"rsmith",
"tdewolff",
"tjones",
"vcard",
"wcag",
"xfeff"
]

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View file

@ -0,0 +1 @@
blank_issues_enabled: false

6
.github/ISSUE_TEMPLATE/default.md vendored Normal file
View file

@ -0,0 +1,6 @@
---
name: Default
about: This is the default issue template.
labels:
- NeedsTriage
---

View file

@ -20,3 +20,8 @@ jobs:
incremental_files_only: true
inline: warning
strict: false
- uses: codespell-project/actions-codespell@v2
with:
check_filenames: true
check_hidden: true
# by default, codespell uses configuration from the .codespellrc

15
.gitignore vendored
View file

@ -1,10 +1,13 @@
.DS_Store
.hugo_build.lock
/.idea
/.vscode
/public
/dist
node_modules
/public
hugo_stats.json
node_modules/
nohup.out
.DS_Store
trace.out
.hugo_build.lock
resources/_gen/images/
package-lock.json
public/
resources/
trace.out

View file

@ -1,201 +1,3 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
See [content/LICENSE.md](content/LICENSE.md) for the license of the content of this repository.
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
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.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
The theme (layouts, CSS, JavaScript etc.) of this repository has no open source license. It is custom made for the Hugo sites and is not meant for reuse.

View file

@ -16,3 +16,12 @@ Please see the [contributing] section for guidelines, examples, and process.
[friends]: https://github.com/gohugoio/hugo/graphs/contributors
[go]: https://go.dev/
[contributing]: https://gohugo.io/contribute/documentation
# Install
```bash
npm i
hugo server
```
**Note:** We're working on removing the need to run `npm i` for local development. Stay tuned.

File diff suppressed because one or more lines are too long

View file

@ -1,21 +0,0 @@
.animated {
animation-duration: .5s;
animation-fill-mode: forwards;
animation-timing-function: ease-in-out;
}
@keyframes fadeIn {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
.fadeIn {
animation-name: fadeIn;
}
.animated-delay-1 {
animation-delay: 0.5s;
}

View file

@ -1,25 +0,0 @@
/* These styles enhance the home page carousel, located here: themes/gohugoioTheme/layouts/partials/home-page-sections/showcase.html */
.overflow-x-scroll{
-webkit-overflow-scrolling: touch;
}
.row {
transition: 450ms transform;
font-size: 0;
}
.tile {
transition: 450ms all;
}
.details {
background: -webkit-gradient(linear, left bottom, left top, from(rgba(0,0,0,0.9)), to(rgba(0,0,0,0)));
background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%);
transition: 450ms opacity;
}
.tile:hover .details {
opacity: 1;
}
.row:hover .tile {
opacity: 0.3;
}
.row:hover .tile:hover {
opacity: 1;
}

View file

@ -1,89 +0,0 @@
.chroma .lntable pre {
padding: 0;
margin: 0;
border: 0;
}
.chroma .lntable pre code {
padding: 0;
margin: 0;
}
code {
padding: 2px 3px;
margin: 0;
font-size: 93.75%;
background-color: rgba(27,31,35,0.05);
border-radius: 3px;
}
pre code {
display: block;
padding: 1.5em 1.5em;
font-size: .875rem;
line-height: 2;
overflow-x: auto;
}
pre {
background-color: #fff;
color: #333;
white-space: pre;
hyphens: none;
position: relative;
border-width: 1px;
border-color: #ccc;
border-style: solid;
}
/* The Pygments highlighter comes with its own styles. */
.highlight pre {
background-color: inherit;
color: inherit;
padding: 0.5em;
font-size: .875rem;
}
/*We are adding the copy button content here so we can change it with javascript. See the "Clipboard scripts"*/
.copy:after {
content: "Copy"
}
.copied:after {
content: "Copied"
}
@media (--breakpoint-large) {
.full-width
{
/*width: 100vw;
position: relative;
left: 50%;
right: 50%;
margin-left: -50vw;
margin-right: -50vw;*/
/*width: 60vw;*/
/*position: relative;
left: 50%;
right: 50%;*/
/*margin-left: -30vw;*/
margin-right: -30vw;
max-width: 100vw;
}
}
.code-block .line-numbers-rows {
background: #2f3a46;
border: none;
bottom: -50px;
color: #98a4b3;
left: -178px;
padding: 50px 0;
top: -50px;
width: 138px
}
.code-block .line-numbers-rows>span:before {
color: inherit;
padding-right: 30px
}

View file

@ -1,38 +0,0 @@
.primary-color {color: var(--primary-color)}
.bg-primary-color {background-color: var(--primary-color)}
.hover-bg-primary-color:hover {background-color: var(--primary-color)}
.primary-color-dark {color: var(--primary-color-dark)}
.bg-primary-color-dark {background-color: var(--primary-color-dark)}
.hover-bg-primary-color-dark:hover {background-color: var(--primary-color-dark)}
.primary-color-light {color: var(--primary-color-light)}
.bg-primary-color-light {background-color: var(--primary-color-light)}
.hover-bg-primary-color-light:hover {background-color: var(--primary-color-light)}
.accent-color {color: var(--accent-color)}
.bg-accent-color {background-color: var(--accent-color)}
.hover-bg-accent-color:hover {background-color: var(--accent-color)}
.accent-color-light {color: var(--accent-color-light)}
.hover-accent-color-light:hover {color: var(--accent-color-light)}
.bg-accent-color-light {background-color: var(--accent-color-light)}
.hover-bg-accent-color-light:hover {background-color: var(--accent-color-light)}
.accent-color-dark {color: var(--accent-color-dark)}
.bg-accent-color-dark {background-color: var(--accent-color-dark)}
.hover-bg-accent-color-dark:hover {background-color: var(--accent-color-dark)}
.text-color-primary {color: var(--text-color-primary)}
.text-on-primary-color {color: var(--text-on-primary-color)}
.text-color-secondary {color: var(--text-color-secondary)}
.text-color-disabled {color: var(--text-color-disabled)}
.divider-color {color: var(--divider-color)}
.warn-color {color: var(--warn-color)}
.nested-links a {
color: var(--primary-color);
text-decoration: none;
}

View file

@ -1,11 +0,0 @@
.column-count-2 {column-count: 1}
.column-gap-1 {column-gap: 0}
.break-inside-avoid {break-inside: auto}
@media (--breakpoint-large) {
.column-count-3-l {column-count: 3}
.column-count-2-l {column-count: 2}
.column-gap-1-l {column-gap: 1}
.break-inside-avoid-l {break-inside: avoid}
}

View file

@ -1,28 +0,0 @@
.prose table {
width: 100%;
margin-bottom: 3em;
border-collapse: collapse;
border-spacing: 0;
font-size: 1em;
border: 1px solid var(--light-gray);
& th {
background-color: var(--primary-color);
border-bottom: 1px solid var(--primary-color);
color: white;
font-weight: 400;
text-align: left;
padding: .375em .5em;
}
& td, & tc {
padding: .75em .5em;
text-align: left;
border-right: 1px solid var(--light-gray);
}
}
.prose table tr:nth-child(even) {
background-color: var(--light-gray);
}

View file

@ -1,53 +0,0 @@
.prose ul, .prose ol {
margin-bottom: 2em;
}
.prose ul li, .prose ol li {
margin-bottom: .5em;
}
.prose li:hover {
background-color: var(--light-gray)
}
.prose ::selection {
background: var(--primary-color); /* WebKit/Blink Browsers */
color: white;
}
.prose-glossary h3 {
margin-top: 0;
font-size: 1.125rem;
}
.prose-glossary h3:first-of-type {
margin-top: 3em;
}
.prose-glossary h3 ~ p {
margin: 0.5em 0 2em 0;
}
body {
line-height: 1.45;
}
p {margin-bottom: 1.3em;}
h1, h2, h3, h4 {
margin: 1.414em 0 0.5em;
line-height: 1.2;
}
h1 {
margin-top: 0;
font-size: 2.441em;
}
h2 {font-size: 1.953em;}
h3 {font-size: 1.563em;}
h4 {font-size: 1.25em;}
small, .font_small {font-size: 0.8em;}

View file

@ -1,9 +0,0 @@
dl dt {
font-weight: bold;
font-size: 1.125rem;
}
dd {
margin: .5em 0 2em 0;
padding: 0;
}

View file

@ -1,54 +0,0 @@
.note,
.warning {
border-left-width: 4px;
border-left-style: solid;
position: relative;
border-color: var(--primary-color);
display: block;
}
.note #exclamation-icon,
.warning #exclamation-icon {
fill: var(--primary-color);
position: absolute;
top: 35%;
left: -12px;
/*background-color: white;*/
}
.admonition-content {
display: block;
margin: 0px;
padding: .125em 1em;
/*margin-left: 1em;*/
margin-top: 2em;
margin-bottom: 2em;
overflow-x: auto;
/*font-size: .9375em;*/
background-color: var(--black-05);
}
.hide-child-menu .child-menu {
display: none;
}
.hide-child-menu:hover .child-menu,
.hide-child-menu:focus .child-menu,
.hide-child-menu:active .child-menu {
display: block;
}
/*documentation-copy headings exaggerate spacing and size to chunk content */
.documentation-copy h2 {
margin-top: 3em;
&.minor {
font-size: inherit;
margin-top: inherit;
border-bottom: none;
}
}

View file

@ -1,10 +0,0 @@
.f2-fluid {
font-size: 2.25rem;
}
@media (--breakpoint-large) {
.f2-fluid {
font-size: 1.25rem;
font-size: calc(0.875rem + 0.5 * ((100vw - 20rem) / 60));
}
}

View file

@ -1,74 +0,0 @@
/* From https://www.cssfontstack.com */
code, .code, pre code, .highlight pre {
font-family: 'inconsolata',Menlo,Monaco,'Courier New',monospace;
}
.sans-serif {
font-family: 'Muli', Avenir, 'Helvetica Neue', Helvetica, Roboto, Noto, 'Segoe UI', Arial, sans-serif;
}
.serif {
font-family: Palatino,"Palatino Linotype","Palatino LT STD","Book Antiqua",Georgia,serif;
}
/* Monospaced Typefaces (for code) */
.courier {
font-family: 'Courier Next',
courier,
monospace;
}
/* Sans-Serif Typefaces */
.helvetica {
font-family: 'helvetica neue', helvetica,
sans-serif;
}
.avenir {
font-family: 'avenir next', avenir,
sans-serif;
}
/* Serif Typefaces */
.athelas {
font-family: athelas,
georgia,
serif;
}
.georgia {
font-family: georgia,
serif;
}
.times {
font-family: times,
serif;
}
.bodoni {
font-family: "Bodoni MT",
serif;
}
.calisto {
font-family: "Calisto MT",
serif;
}
.garamond {
font-family: garamond,
serif;
}
.baskerville {
font-family: baskerville,
serif;
}

View file

@ -1,15 +0,0 @@
.header-link:after {
position: relative;
left: 0.5em;
opacity: 0;
font-size: 0.8em;
-moz-transition: opacity 0.2s ease-in-out 0.1s;
-ms-transition: opacity 0.2s ease-in-out 0.1s;
}
h2:hover .header-link,
h3:hover .header-link,
h4:hover .header-link,
h5:hover .header-link,
h6:hover .header-link {
opacity: 1;
}

View file

@ -1,52 +0,0 @@
/* pagination.html: https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/template_embedded.go#L117 */
.pagination {
margin: 3rem 0;
}
.pagination li {
display: inline-block;
margin-right: .375rem;
font-size: .875rem;
margin-bottom: 2.5em;
}
.pagination li a {
padding: .5rem .625rem;
background-color: white;
color: #333;
border: 1px solid #ddd;
border-radius: 3px;
text-decoration: none;
}
.pagination li.disabled {
display: none;
}
.pagination li.active a:link,
.pagination li.active a:active,
.pagination li.active a:visited {
background-color: #ddd;
}
/* Hides non-meaningful TOC items*/
#TableOfContents ul li ul li ul li{
display: none;
}
#TableOfContents ul li {
color: black;
display: block;
margin-bottom: .375em;
line-height: 1.375;
}
#TableOfContents ul li a{
width: 100%;
padding: .25em .375em;
margin-left: -.375em;
}
#TableOfContents ul li a:hover {
background-color: #999;
color: white;
}

View file

@ -1,7 +0,0 @@
.no-js .needs-js {
opacity: 0
}
.js .needs-js {
opacity: 1;
transition: opacity .15s ease-in;
}

View file

@ -1,7 +0,0 @@
@media print {
#page-footer,
body > footer,
body > nav {
display: none;
}
}

View file

@ -1,11 +0,0 @@
#right-sidebar {
scrollbar-width: none; /* hide scrollbar: Firefox */
-ms-overflow-style: none; /* hide scrollbar: Internet Explorer 10+ */
height: calc(100vh - 9rem);
overflow-y: auto;
}
#right-sidebar::-webkit-scrollbar { /* hide scrollbar: WebKit */
width: 0;
height: 0;
}

View file

@ -1,25 +0,0 @@
/*
Make h6 elements behave like dt elements. Initially implemented to support
linkable glossary entries.
Yes, it's a hack. That's why it's in the shame file.
*/
h6 {
margin-top: 0;
margin-bottom: 0;
font-size: 1.125rem;
}
h6:first-of-type {
margin-top: 3em;
}
h6 ~ p {
margin: 0.5em 0 2em 0;
}
/* QR codes */
img.qrcode {
width: initial;
}

View file

@ -1,52 +0,0 @@
.facebook,
.twitter,
.instagram,
.youtube {
fill: #bababa;
}
.facebook:hover {
fill: #3b5998;
}
.twitter {
fill: #55acee;
}
.twitter:hover {
fill: #bababa;
}
.instagram:hover {
fill: #e95950;
}
.youtube:hover {
fill: #bb0000;
}
.mstdn {
display: inline-block;
background-color: #282c37;
color: #d9e1e8;
text-decoration: none;
padding: 4px 10px 4px 30px;
border-radius: 4px;
font-size: 16px;
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2261.076954mm%22%20height%3D%2265.47831mm%22%20viewBox%3D%220%200%20216.4144%20232.00976%22%3E%3Cpath%20d%3D%22M211.80734%20139.0875c-3.18125%2016.36625-28.4925%2034.2775-57.5625%2037.74875-15.15875%201.80875-30.08375%203.47125-45.99875%202.74125-26.0275-1.1925-46.565-6.2125-46.565-6.2125%200%202.53375.15625%204.94625.46875%207.2025%203.38375%2025.68625%2025.47%2027.225%2046.39125%2027.9425%2021.11625.7225%2039.91875-5.20625%2039.91875-5.20625l.8675%2019.09s-14.77%207.93125-41.08125%209.39c-14.50875.7975-32.52375-.365-53.50625-5.91875C9.23234%20213.82%201.40609%20165.31125.20859%20116.09125c-.365-14.61375-.14-28.39375-.14-39.91875%200-50.33%2032.97625-65.0825%2032.97625-65.0825C49.67234%203.45375%2078.20359.2425%20107.86484%200h.72875c29.66125.2425%2058.21125%203.45375%2074.8375%2011.09%200%200%2032.975%2014.7525%2032.975%2065.0825%200%200%20.41375%2037.13375-4.59875%2062.915%22%20fill%3D%22%233088d4%22%2F%3E%3Cpath%20d%3D%22M177.50984%2080.077v60.94125h-24.14375v-59.15c0-12.46875-5.24625-18.7975-15.74-18.7975-11.6025%200-17.4175%207.5075-17.4175%2022.3525v32.37625H96.20734V85.42325c0-14.845-5.81625-22.3525-17.41875-22.3525-10.49375%200-15.74%206.32875-15.74%2018.7975v59.15H38.90484V80.077c0-12.455%203.17125-22.3525%209.54125-29.675%206.56875-7.3225%2015.17125-11.07625%2025.85-11.07625%2012.355%200%2021.71125%204.74875%2027.8975%2014.2475l6.01375%2010.08125%206.015-10.08125c6.185-9.49875%2015.54125-14.2475%2027.8975-14.2475%2010.6775%200%2019.28%203.75375%2025.85%2011.07625%206.36875%207.3225%209.54%2017.22%209.54%2029.675%22%20fill%3D%22%23fff%22%2F%3E%3C%2Fsvg%3E");
background-size: 16px;
background-repeat: no-repeat;
background-position: top 50% left 8px;
transition: all 0.5s;
}
.mstdn:hover {
background-color: #484c56;
}
.mstdn > span {
color: #9baec8;
font-size: 12px;
padding-left: 3px;
}
.mstdn > span:before {
content: "@";
}

View file

@ -1,15 +0,0 @@
@media (min-width: 75em) {
[data-scrolldir="down"] .sticky {
position: fixed;
top:100px;
right:0;
}
[data-scrolldir="up"] .sticky {
position: fixed;
top:100px;
right:0;
}
}

View file

@ -1 +0,0 @@
.fill-current { fill: currentColor; }

View file

@ -1,34 +0,0 @@
.tab-button{
margin-bottom:1px;
position: relative;
z-index: 1;
color:#333;
border-color:#ccc;
outline: none;
background-color:white;
}
.tab-pane code{
background:#f1f2f2;
border-radius:0;
}
.tab-pane .chroma{
background:none;
padding:0;
}
.tab-button.active{
border-bottom-color:#f1f2f2;
background-color: #f1f2f2;
}
.tab-content .tab-pane{
display: none;
}
.tab-content .tab-pane.active{
display: block;
}
/* Treatment of copy buttons inside a tab module */
.tab-content .copy, .tab-content .copied{
display: none;
}
.tab-content .tab-pane.active + .copy, .tab-content .tab-pane.active + .copied{
display: block;
}

View file

@ -1,94 +0,0 @@
/*! TACHYONS v4.7.0 | http://tachyons.io */
/*
* NOTE: The Tachyons folder is for backup/reference only. This file references the module
* ________ ______
* ___ __/_____ _________ /______ ______________________
* __ / _ __ `/ ___/_ __ \_ / / / __ \_ __ \_ ___/
* _ / / /_/ // /__ _ / / / /_/ // /_/ / / / /(__ )
* /_/ \__,_/ \___/ /_/ /_/_\__, / \____//_/ /_//____/
* /____/
*
* TABLE OF CONTENTS
*
* 1. External Library Includes
* - Normalize.css | http://normalize.css.github.io
* 2. Tachyons Modules
* 3. Variables
* - Media Queries
* - Colors
* 4. Debugging
* - Debug all
* - Debug children
*
*/
/* External Library Includes */
@import 'tachyons/src/_normalize';
/* Modules */
@import 'tachyons/src/_box-sizing';
/*@import 'tachyons/src/_aspect-ratios';*/
@import 'tachyons/src/_images';
@import 'tachyons/src/_background-size';
@import 'tachyons/src/_background-position';
/*@import 'tachyons/src/_outlines';*/
@import 'tachyons/src/_borders';
@import 'tachyons/src/_border-colors';
@import 'tachyons/src/_border-radius';
@import 'tachyons/src/_border-style';
@import 'tachyons/src/_border-widths';
@import 'tachyons/src/_box-shadow';
/*@import 'tachyons/src/_code';*/
@import 'tachyons/src/_coordinates';
@import 'tachyons/src/_clears';
@import 'tachyons/src/_display';
@import 'tachyons/src/_flexbox';
@import 'tachyons/src/_floats';
/*@import 'tachyons/src/_font-family';*/
@import 'tachyons/src/_font-style';
@import 'tachyons/src/_font-weight';
@import 'tachyons/src/_forms';
@import 'tachyons/src/_heights';
@import 'tachyons/src/_letter-spacing';
@import 'tachyons/src/_line-height';
@import 'tachyons/src/_links';
@import 'tachyons/src/_lists';
@import 'tachyons/src/_max-widths';
@import 'tachyons/src/_widths';
@import 'tachyons/src/_overflow';
@import 'tachyons/src/_position';
@import 'tachyons/src/_opacity';
/*@import 'tachyons/src/_rotations';*/
@import 'tachyons/src/_skins';
@import 'tachyons/src/_skins-pseudo';
@import 'tachyons/src/_spacing';
@import 'tachyons/src/_negative-margins';
@import 'tachyons/src/_tables';
@import 'tachyons/src/_text-decoration';
@import 'tachyons/src/_text-align';
@import 'tachyons/src/_text-transform';
@import 'tachyons/src/_type-scale';
@import 'tachyons/src/_typography';
@import 'tachyons/src/_utilities';
@import 'tachyons/src/_visibility';
@import 'tachyons/src/_white-space';
@import 'tachyons/src/_vertical-align';
@import 'tachyons/src/_hovers';
@import 'tachyons/src/_z-index';
@import 'tachyons/src/_nested';
/*@import 'tachyons/src/_styles';*/
/* Variables */
/* Importing here will allow you to override any variables in the modules */
@import 'tachyons/src/_colors';
@import 'tachyons/src/_media-queries';
/* Debugging */
/*@import 'tachyons/src/_debug-children';
@import 'tachyons/src/_debug-grid';*/
/* Uncomment out the line below to help debug layout issues */
/* @import 'tachyons/src/_debug'; */

View file

@ -1,16 +0,0 @@
:root {
--primary-color: #0594CB;
--primary-color-dark: #0A1922;
--primary-color-light: #f9f9f9;
--accent-color: #EBB951;
--accent-color-light: #FF4088;
--accent-color-dark: #33ba91;
--text-color-primary: #373737;
--text-on-primary-color: #fff;
--text-color-secondary: #ccc;
--text-color-disabled: #F7f7f7;
--divider-color: #f6f6f6;
--warn-color: red;
--blue: var(--primary-color);
}

View file

@ -1,39 +0,0 @@
/*Base Styles*/
@import '_tachyons';
/* purgecss start ignore */
@import '_header-link';
@import '_animation';
@import '_documentation-styles';
@import 'docsearch.js/dist/cdn/docsearch.min';
@import '_carousel';
@import '_code';
@import '_tabs';
@import '_color-scheme';
@import '_columns';
@import '_content';
@import '_content-tables';
@import '_definition-lists';
@import '_fluid-type';
@import '_font-family';
@import '_hugo-internal-template-styling';
@import '_no-js';
@import '_social-icons';
@import '_stickyheader';
@import '_right-sidebar';
@import '_svg';
@import '_chroma';
@import '_variables';
@import '_print';
@import '_shame';
.nested-blockquote blockquote {
border-left: 4px solid var(--primary-color);
padding-left: 1em;
}
.mw-90 {
max-width:90%;
}
/* purgecss end ignore */

View file

@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 575.8 178.3" viewBox="0 0 575.8 178.3"><path d="m148.6 78.9-24.7-13.6-20.8 12.7-.3 13-10.1-6.7-13.8 8.4c-.2-3.9-.4-8.6-.6-14.2l-14.2-9.5c3.9-2 8.4-4.3 13.5-7-.1 0 .1 1.4-2-46.5l-32-15.4-43.6 13.6 9.7 46.9 14.6 11.4-11.1 5.3 7.3 35.3 10.2 9.6-7.3 4.5 5.7 27.3 22.9 24.3c.1-.1 2.4-1.9 29.5-23.5l-.8-18.6 11.7 9.9c.2-.2 2.4-1.9 23.7-18.8l.8-13.7 8.8 6.1c.1-.2 2.1-1.7 19.3-15.3z"></path><path d="m128.1 93.5 20.5-14.6-24.7-13.6-20.8 12.7z" fill="#141414"></path><path d="m125.8 119.5 2.3-26-25-15.5-.5 25.4z" fill="#004b16"></path><path d="m92.6 146-.3-27-25.1-19.1 1.9 26.4z" fill="#004b16"></path><path d="m92.3 119 25.5-18.2-25.1-16.5-25.5 15.6z" fill="#141414"></path><path d="m52.1 178.2-4.1-27.6-24.6-24.1 5.7 27.4z" fill="#004b16"></path><path d="m48 150.6 32.4-23.1-25.1-20.4-31.9 19.4z" fill="#141414"></path><path d="m45.9 136.3-5.3-36.4-27.4-22.8 7.3 35.4z" fill="#004b16"></path><path d="m40.6 99.9 37.7-21.4-28.2-18.9-36.9 17.5z" fill="#141414"></path><path d="m38 82.5-7.3-49.9-30.7-19 9.7 46.9z" fill="#004b16"></path><path d="m30.7 32.6 44.9-17.2-32-15.4-43.6 13.6z" fill="#141414"></path><g fill="#1cb35c"><path d="m145.2 104.2c-19 15.1-19.4 15.4-19.3 15.4 2.4-27.2 2.2-26 2.3-26 21.8-15.5 20.4-14.6 20.5-14.6z"></path><path d="m116.2 127.2c-23.5 18.7-23.8 18.8-23.7 18.8-.2-28.2-.3-27-.2-27 27.1-19.4 25.4-18.2 25.5-18.2z"></path><path d="m81.6 154.7c-29.4 23.3-29.6 23.5-29.5 23.5-4.2-28.4-4.1-27.5-4-27.5 34.5-24.6 32.3-23.1 32.4-23.1z"></path><path d="m75.6 15.4c2.1 47.9 1.9 46.5 2 46.5-38.8 20.2-39.7 20.6-39.6 20.6-7.5-51-7.4-49.9-7.3-49.9z"></path><path d="m78.3 78.5c1.6 36.3 1.4 35.1 1.5 35.1-33.6 22.6-34 22.8-33.9 22.8-5.5-37.4-5.4-36.4-5.3-36.4z"></path></g><path d="m191.4 33.6 16.8-4c0 81.8-3.1 93.5 8 97.1-2.6 4.9-7.1 7.4-13.3 7.4-15.3 0-11.5-11.3-11.5-100.5z"></path><path d="m233.7 132.7v-58.4h-9.2v-13.8h26.3v72.2zm8.7-100.1c12.9 0 12.9 19.5 0 19.5s-12.9-19.5 0-19.5z"></path><path d="m316.8 132.7c0-43.6 1.1-49.6-3.5-55.2-5.8-6.9-20-5-26.1 3v52.2h-16.8v-72.2h12.1l3.1 6.7c9.1-10.8 30.4-10.9 40.6-.4 9.7 10 7.4 20.5 7.4 65.8z"></path><path d="m347.2 96.4c0-49.2 69.4-51.1 69.4 0-.1 50.7-69.4 50.8-69.4 0zm17.5 0c0 28.8 22.2 27.7 29.7 17.7 7-9.4 8.8-41.2-12.5-41.2-12.3 0-17.2 11.3-17.2 23.5z"></path><path d="m476.4 132.7c0-7.4 1.8-3.4-7.1-.4-10.2 3.5-25.1 2-34.1-7.9-11.1-12.3-12.6-39.5 1.3-54.6 11.4-12.3 28.5-13.1 39.9-7.4v-28.9l16.9-4v103.1zm0-54.9c-8.9-7.1-20.9-4.8-26.8 1.9-8.1 9.1-11.2 40.2 16.2 40.2 2.9 0 9-2.2 10.6-4.4z"></path><path d="m574.6 101.8h-51.6c1.2 22.3 29 21.4 38.1 12.2l6.5 12.9c-14 11.3-62.3 15-62.3-29.5.1-54.1 81.3-49 69.3 4.4zm-51-12.7h35.5c-1.2-10.6-7-15.8-17.5-15.8-9.7 0-15.6 5.2-18 15.8z"></path></svg>

Before

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -1,10 +0,0 @@
require('typeface-muli');
import styles from './css/main.css';
import './js/clipboardjs.js';
import './js/docsearch.js';
import './js/lazysizes.js';
import './js/menutoggle.js';
import './js/scrolldir.js';
import './js/smoothscroll.js';
import './js/tabs.js';
import './js/nojs.js';

View file

@ -1,30 +0,0 @@
var Clipboard = require('clipboard/dist/clipboard.js');
new Clipboard('.copy', {
target: function(trigger) {
if(trigger.classList.contains('copy-toggle')){
return trigger.previousElementSibling;
}
return trigger.nextElementSibling;
}
}).on('success', function(e) {
successMessage(e.trigger, 'Copied!');
e.clearSelection();
}).on('error', function(e) {
successMessage(e.trigger, fallbackMessage(e.action));
});
function successMessage(elem, msg) {
elem.setAttribute('class', 'copied bg-primary-color-dark f6 absolute top-0 right-0 lh-solid hover-bg-primary-color-dark bn white ph3 pv2');
elem.setAttribute('aria-label', msg);
}
function fallbackMessage(elem, action) {
var actionMsg = '';
var actionKey = (action === 'cut' ? 'X' : 'C');
if (isMac) {
actionMsg = 'Press ⌘-' + actionKey;
} else {
actionMsg = 'Press Ctrl-' + actionKey;
}
return actionMsg;
}

View file

@ -1,8 +0,0 @@
var docsearch = require('docsearch.js/dist/cdn/docsearch.js');
docsearch({
appId: 'D1BPLZHGYQ',
apiKey: '6df94e1e5d55d258c56f60d974d10314',
indexName: 'hugodocs',
inputSelector: '#search-input',
debug: true, // Set debug to true if you want to inspect the dropdown
});

View file

@ -1,3 +0,0 @@
var lazysizes = require('lazysizes');
// var lsnoscript = require('lazysizes/plugins/noscript/ls.noscript.js');
var unveilhooks = require('lazysizes/plugins/unveilhooks/ls.unveilhooks.js');

View file

@ -1,22 +0,0 @@
import styles from './../css/main.css';
import './clipboardjs.js'
import './codeblocks.js'
import './docsearch.js'
import './lazysizes.js'
import './menutoggle.js'
import './scrolldir.js'
import './smoothscroll.js'
import './tabs.js'
import './nojs.js'
// TO use jQuery, just call the modules you want
// var $ = require('jquery/src/core');
// require('jquery/src/core/init');
// require('jquery/src/manipulation');
// OR, use all of them
// var $ = require('jquery/src/jquery');
// And write your code
// $('body').append('<p>Jquery is working</p>');
//

View file

@ -1,31 +0,0 @@
// Grab any element that has the 'js-toggle' class and add an event listener for the toggleClass function
var toggleBtns = document.getElementsByClassName('js-toggle')
for (var i = 0; i < toggleBtns.length; i++) {
toggleBtns[i].addEventListener('click', toggleClass, false)
}
function toggleClass() {
// Define the data target via the dataset "target" (e.g. data-target=".docsmenu")
var content = this.dataset.target.split(' ')
// Find any menu items that are open
var mobileCurrentlyOpen = document.querySelector('.mobilemenu:not(.dn)')
var desktopCurrentlyOpen = document.querySelector('.desktopmenu:not(.dn)')
var desktopActive = document.querySelector('.desktopmenu:not(.dn)')
// Loop through the targets' divs
for (var i = 0; i < content.length; i++) {
var matches = document.querySelectorAll(content[i]);
//for each, if the div has the 'dn' class (which is "display:none;"), remove it, otherwise, add that class
[].forEach.call(matches, function(dom) {
dom.classList.contains('dn') ?
dom.classList.remove('dn') :
dom.classList.add('dn');
return false;
});
// close the currently open menu items
if (mobileCurrentlyOpen) mobileCurrentlyOpen.classList.add('dn')
if (desktopCurrentlyOpen) desktopCurrentlyOpen.classList.add('dn')
if (desktopActive) desktopActive.classList.remove('db')
}
}

View file

@ -1 +0,0 @@
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js');

View file

@ -1 +0,0 @@
var scrollDir = require('scrolldir/dist/scrolldir.auto.min.js');

View file

@ -1,80 +0,0 @@
// query selector targets Hugo TOC
(function() {
'use strict';
// Feature Test
if ('querySelector' in document && 'addEventListener' in window && Array.prototype.forEach) {
// Function to animate the scroll
var smoothScroll = function(anchor, duration) {
// Calculate how far and how fast to scroll
var startLocation = window.pageYOffset;
var endLocation = anchor.offsetTop;
var distance = endLocation - startLocation;
var increments = distance / (duration / 16);
var stopAnimation;
// Scroll the page by an increment, and check if it's time to stop
var animateScroll = function() {
window.scrollBy(0, increments);
stopAnimation();
};
// If scrolling down
if (increments >= 0) {
// Stop animation when you reach the anchor OR the bottom of the page
stopAnimation = function() {
var travelled = window.pageYOffset;
if ((travelled >= (endLocation - increments)) || ((window.innerHeight + travelled) >= document.body.offsetHeight)) {
clearInterval(runAnimation);
}
};
}
// If scrolling up
else {
// Stop animation when you reach the anchor OR the top of the page
stopAnimation = function() {
var travelled = window.pageYOffset;
if (travelled <= (endLocation || 0)) {
clearInterval(runAnimation);
}
};
}
// Loop the animation function
var runAnimation = setInterval(animateScroll, 16);
};
// Define smooth scroll links
var scrollToggle = document.querySelectorAll('#TableOfContents ul li a');
// For each smooth scroll link
[].forEach.call(scrollToggle, function(toggle) {
// When the smooth scroll link is clicked
toggle.addEventListener('click', function(e) {
// Prevent the default link behavior
e.preventDefault();
// Get anchor link and calculate distance from the top
var dataID = toggle.getAttribute('href');
var dataTarget = document.querySelector(dataID);
var dataSpeed = toggle.getAttribute('data-speed');
// If the anchor exists
if (dataTarget) {
// Scroll to the anchor
smoothScroll(dataTarget, dataSpeed || 500);
}
}, false);
});
}
})();

View file

@ -1,43 +0,0 @@
/**
* Scripts which manages Code Toggle tabs.
*/
var i;
// store tabs variable
var allTabs = document.querySelectorAll("[data-toggle-tab]");
var allPanes = document.querySelectorAll("[data-pane]");
function toggleTabs(event) {
if(event.target){
event.preventDefault();
var clickedTab = event.currentTarget;
var targetKey = clickedTab.getAttribute("data-toggle-tab")
}else {
var targetKey = event
}
// We store the config language selected in users' localStorage
if(window.localStorage){
window.localStorage.setItem("configLangPref", targetKey)
}
var selectedTabs = document.querySelectorAll("[data-toggle-tab='" + targetKey + "']");
var selectedPanes = document.querySelectorAll("[data-pane='" + targetKey + "']");
for (var i = 0; i < allTabs.length; i++) {
allTabs[i].classList.remove("active");
allPanes[i].classList.remove("active");
}
for (var i = 0; i < selectedTabs.length; i++) {
selectedTabs[i].classList.add("active");
selectedPanes[i].classList.add("active");
}
}
for (i = 0; i < allTabs.length; i++) {
allTabs[i].addEventListener("click", toggleTabs)
}
// Upon page load, if user has a preferred language in its localStorage, tabs are set to it.
if(window.localStorage.getItem('configLangPref')) {
toggleTabs(window.localStorage.getItem('configLangPref'))
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -1,4 +0,0 @@
[module]
[module.hugoVersion]
min = "0.56.0"

View file

@ -1,10 +0,0 @@
{{ define "main" }}
<main class="cf pa5 pa4-l f4 tc center measure-wide lh-copy gray">
<h1 class="f3 f2-ns">The page you're looking for doesn't exist. Perhaps you'd like to gopher something else? Sorry.</h1>
<div class="h6">
<img src="/images/gopher-hero.svg" alt="" class="h5">
</div>
{{ .Content }}
</main>
{{ end }}

View file

@ -1,4 +0,0 @@
<pre class="mermaid">
{{- .Inner | safeHTML }}
</pre>
{{ .Page.Store.Set "hasMermaid" true }}

View file

@ -1,5 +0,0 @@
<h{{ .Level }} id="{{ .Anchor | safeURL }}">{{ .Text | safeHTML }}
{{- if in (slice 2 3 4 6) .Level }}{{" " -}}
<a class="header-link" href="#{{ .Anchor | safeURL }}"><svg class="fill-current o-60 hover-accent-color-light" height="22px" viewBox="0 0 24 24" width="22px" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg></a>
{{- end -}}
</h{{ .Level }}>

View file

@ -1,245 +0,0 @@
{{- /* Last modified: 2024-04-26T13:54:00-07:00 */}}
{{- /*
Copyright 2023 Veriphor LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance with the License. You may obtain a copy of
the License at
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
License for the specific language governing permissions and limitations under
the License.
*/}}
{{- /*
This render hook resolves internal destinations by looking for a matching:
1. Content page
2. Page resource (a file in the current page bundle)
3. Section resource (a file in the current section)
4. Global resource (a file in the assets directory)
It skips the section resource lookup if the current page is a leaf bundle.
External destinations are not modified.
You must place global resources in the assets directory. If you have placed
your resources in the static directory, and you are unable or unwilling to move
them, you must mount the static directory to the assets directory by including
both of these entries in your site configuration:
[[module.mounts]]
source = 'assets'
target = 'assets'
[[module.mounts]]
source = 'static'
target = 'assets'
By default, if this render hook is unable to resolve a destination, including a
fragment if present, it passes the destination through without modification. To
emit a warning or error, set the error level in your site configuration:
[params.render_hooks.link]
errorLevel = 'warning' # ignore (default), warning, or error (fails the build)
When you set the error level to warning, and you are in a development
environment, you can visually highlight broken internal links:
[params.render_hooks.link]
errorLevel = 'warning' # ignore (default), warning, or error (fails the build)
highlightBroken = true # true or false (default)
This will add a "broken" class to anchor elements with invalid src attributes.
Add a rule to your CSS targeting the broken links:
a.broken {
background: #ff0;
border: 2px solid #f00;
padding: 0.1em 0.2em;
}
This render hook may be unable to resolve destinations created with the ref and
relref shortcodes. Unless you set the error level to ignore you should not use
either of these shortcodes in conjunction with this render hook.
@context {string} Destination The link destination.
@context {page} Page A reference to the page containing the link.
@context {string} PlainText The link description as plain text.
@context {string} Text The link description.
@context {string} Title The link title.
@returns {template.html}
*/}}
{{- /* Initialize. */}}
{{- $renderHookName := "link" }}
{{- /* Verify minimum required version. */}}
{{- $minHugoVersion := "0.120.0" }}
{{- if lt hugo.Version $minHugoVersion }}
{{- errorf "The %q render hook requires Hugo v%s or later." $renderHookName $minHugoVersion }}
{{- end }}
{{- /* Error level when unable to resolve destination: ignore, warning, or error. */}}
{{- $errorLevel := or site.Params.render_hooks.link.errorLevel "ignore" | lower }}
{{- /* If true, adds "broken" class to broken links. Applicable in development environment when errorLevel is warning. */}}
{{- $highlightBrokenLinks := or site.Params.render_hooks.link.highlightBroken false }}
{{- /* Validate error level. */}}
{{- if not (in (slice "ignore" "warning" "error") $errorLevel) }}
{{- errorf "The %q render hook is misconfigured. The errorLevel %q is invalid. Please check your site configuration." $renderHookName $errorLevel }}
{{- end }}
{{- /* Determine content path for warning and error messages. */}}
{{- $contentPath := .Page.String }}
{{- /* Parse destination. */}}
{{- $u := urls.Parse .Destination }}
{{- /* Set common message. */}}
{{- $msg := printf "The %q render hook was unable to resolve the destination %q in %s" $renderHookName $u.String $contentPath }}
{{- /* Set attributes for anchor element. */}}
{{- $attrs := dict "href" $u.String }}
{{- if $u.IsAbs }}
{{- /* Destination is a remote resource. */}}
{{- $attrs = merge $attrs (dict "rel" "external") }}
{{- else }}
{{- with $u.Path }}
{{- with $p := or ($.PageInner.GetPage .) ($.PageInner.GetPage (strings.TrimRight "/" .)) }}
{{- /* Destination is a page. */}}
{{- $href := .RelPermalink }}
{{- with $u.RawQuery }}
{{- $href = printf "%s?%s" $href . }}
{{- end }}
{{- with $u.Fragment }}
{{- $ctx := dict
"contentPath" $contentPath
"errorLevel" $errorLevel
"page" $p
"parsedURL" $u
"renderHookName" $renderHookName
}}
{{- partial "inline/h-rh-l/validate-fragment.html" $ctx }}
{{- $href = printf "%s#%s" $href . }}
{{- end }}
{{- $attrs = dict "href" $href }}
{{- else }}
{{- with $.PageInner.Resources.Get $u.Path }}
{{- /* Destination is a page resource; drop query and fragment. */}}
{{- $attrs = dict "href" .RelPermalink }}
{{- else }}
{{- with (and (ne $.Page.BundleType "leaf") ($.Page.CurrentSection.Resources.Get $u.Path)) }}
{{- /* Destination is a section resource, and current page is not a leaf bundle. */}}
{{- $attrs = dict "href" .RelPermalink }}
{{- else }}
{{- with resources.Get $u.Path }}
{{- /* Destination is a global resource; drop query and fragment. */}}
{{- $attrs = dict "href" .RelPermalink }}
{{- else }}
{{- if eq $errorLevel "warning" }}
{{- warnf $msg }}
{{- if and $highlightBrokenLinks hugo.IsDevelopment }}
{{- $attrs = merge $attrs (dict "class" "broken") }}
{{- end }}
{{- else if eq $errorLevel "error" }}
{{- errorf $msg }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- else }}
{{- with $u.Fragment }}
{{- /* Destination is on the same page; prepend relative permalink. */}}
{{- $ctx := dict
"contentPath" $contentPath
"errorLevel" $errorLevel
"page" $.Page
"parsedURL" $u
"renderHookName" $renderHookName
}}
{{- partial "inline/h-rh-l/validate-fragment.html" $ctx }}
{{- $attrs = dict "href" (printf "%s#%s" $.Page.RelPermalink .) }}
{{- else }}
{{- if eq $errorLevel "warning" }}
{{- warnf $msg }}
{{- if and $highlightBrokenLinks hugo.IsDevelopment }}
{{- $attrs = merge $attrs (dict "class" "broken") }}
{{- end }}
{{- else if eq $errorLevel "error" }}
{{- errorf $msg }}
{{- end }}
{{- end }}
{{- end }}
{{- end }}
{{- $attrs = merge $attrs (dict "title" (.Title | transform.HTMLEscape)) }}
{{- /* Render anchor element. */ -}}
<a
{{- range $k, $v := $attrs }}
{{- if $v }}
{{- printf " %s=%q" $k $v | safeHTMLAttr }}
{{- end }}
{{- end -}}
>{{ .Text | safeHTML }}</a>
{{- define "partials/inline/h-rh-l/validate-fragment.html" }}
{{- /*
Validates the fragment portion of a link destination.
@context {string} contentPath The page containing the link.
@context {string} errorLevel The error level when unable to resolve destination; ignore (default), warning, or error.
@context {page} page The page corresponding to the link destination
@context {struct} parsedURL The link destination parsed by urls.Parse.
@context {string} renderHookName The name of the render hook.
*/}}
{{- /* Initialize. */}}
{{- $contentPath := .contentPath }}
{{- $errorLevel := .errorLevel }}
{{- $p := .page }}
{{- $u := .parsedURL }}
{{- $renderHookName := .renderHookName }}
{{- /* Validate. */}}
{{- with $u.Fragment }}
{{- if $p.Fragments.Identifiers.Contains . }}
{{- if gt ($p.Fragments.Identifiers.Count .) 1 }}
{{- $msg := printf "The %q render hook detected duplicate heading IDs %q in %s" $renderHookName . $contentPath }}
{{- if eq $errorLevel "warning" }}
{{- warnf $msg }}
{{- else if eq $errorLevel "error" }}
{{- errorf $msg }}
{{- end }}
{{- end }}
{{- else }}
{{- /* Determine target path for warning and error message. */}}
{{- $targetPath := "" }}
{{- with $p.File }}
{{- $targetPath = .Path }}
{{- else }}
{{- $targetPath = .Path }}
{{- end }}
{{- /* Set common message. */}}
{{- $msg := printf "The %q render hook was unable to find heading ID %q in %s. See %s" $renderHookName . $targetPath $contentPath }}
{{- if eq $targetPath $contentPath }}
{{- $msg = printf "The %q render hook was unable to find heading ID %q in %s" $renderHookName . $targetPath }}
{{- end }}
{{- /* Throw warning or error. */}}
{{- if eq $errorLevel "warning" }}
{{- warnf $msg }}
{{- else if eq $errorLevel "error" }}
{{- errorf $msg }}
{{- end }}
{{- end }}
{{- end }}
{{- end -}}

View file

@ -1,122 +0,0 @@
<!doctype html>
<html
class="no-js"
lang="{{ with $.Site.LanguageCode }}
{{ . }}
{{ else }}
en-us
{{ end }}
">
<head>
<meta charset="utf-8" />
{{/* https://www.zachleat.com/web/preload/ */}}
<link
rel="preload"
href="{{ "fonts/muli-latin-200.woff2" | absURL }}"
as="font"
type="font/woff2"
crossorigin />
<link
rel="preload"
href="{{ "fonts/muli-latin-400.woff2" | absURL }}"
as="font"
type="font/woff2"
crossorigin />
<link
rel="preload"
href="{{ "fonts/muli-latin-800.woff2" | absURL }}"
as="font"
type="font/woff2"
crossorigin />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
{{/* NOTE: the Site's title, and if there is a page title, that is set too */}}
<title>
{{ block "title" . }}
{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}
{{ end }}
</title>
<meta name="viewport" content="width=device-width,minimum-scale=1" />
{{ hugo.Generator }}
{{ if hugo.IsProduction }}
<meta name="robots" content="index, follow" />
{{ else }}
<meta name="robots" content="noindex, nofollow" />
{{ end }}
{{ range .AlternativeOutputFormats -}}
<link
rel="{{ .Rel }}"
type="{{ .MediaType.Type }}"
href="{{ .Permalink | safeURL }}" />
{{ end -}}
{{ $isDev := eq hugo.Environment "development" }}
{{ $stylesheet := resources.Get "output/css/app.css" }}
{{ if not $isDev }}
{{ $stylesheet = $stylesheet | minify | fingerprint }}
{{ end }}
{{ with $stylesheet }}
{{ if $isDev }}
<link
rel="stylesheet"
href="{{ .RelPermalink }}"
crossorigin="anonymous" />
{{ else }}
<link
rel="stylesheet"
href="{{ .RelPermalink }}"
integrity="{{ .Data.Integrity }}"
crossorigin="anonymous" />
{{ end }}
{{ $.Scratch.Set "stylesheet" . }}
{{ end }}
<meta
name="description"
content="{{ with .Description }}
{{ . }}
{{ else }}
{{ with .Site.Params.description }}{{ . }}{{ end }}
{{ end }}
" />
{{ block "scripts" . }}
{{- partial "site-scripts.html" . -}}
{{ end }}
{{ partial "site-manifest.html" . }}
{{- partial "head-additions.html" . -}}
{{- partial "opengraph/opengraph.html" . -}}
{{- template "_internal/schema.html" . -}}
{{- partial "opengraph/twitter_cards.html" . -}}
{{ if hugo.IsProduction }}
{{ partial "gtag.html" . }}
{{ end }}
{{ $hasMath := .Param "math" }}
{{ if $hasMath }}
{{ partialCached "math.html" . }}
{{ end }}
</head>
<body
class="ma0 sans-serif bg-primary-color-light{{ with getenv "HUGO_ENV" }} {{ . }}{{ end }}">
{{ partial "hooks/after-body-start.html" . }}
{{ block "nav" . }}{{ partial "site-nav.html" . }}{{ end }}
{{ block "header" . }}{{ end }}
<main role="main" class="content-with-sidebar min-vh-100 pb7 pb0-ns">
{{ block "main" . }}{{ end }}
</main>
{{ block "footer" . }}{{ partialCached "site-footer.html" . }}{{ end }}
{{ partial "hooks/before-body-end.html" . }}
</body>
</html>

View file

@ -1,4 +0,0 @@
{{ define "main" }}
{{ $section_to_display := (.Site.Taxonomies.categories.fundamentals).Pages | lang.Merge (.Sites.Default.Taxonomies.categories.fundamentals).Pages }}
{{ partial "pagelayout.html" (dict "context" . "section_to_display" $section_to_display ) }}
{{ end }}

View file

@ -1,5 +0,0 @@
{{ define "main" }}
{{ $paginator := .Paginate (.Pages | lang.Merge (where .Sites.Default.RegularPages "Section" .Section)) }}
{{ $section_to_display := .Sections | default $paginator.Pages }}
{{ partial "pagelayout.html" (dict "context" . "section_to_display" $section_to_display ) }}
{{ end }}

View file

@ -1,48 +0,0 @@
<header class="flex-none w-100">
{{ if in (slice "functions" "methods") .Type }}
{{ with .FirstSection }}
<a href="{{ .RelPermalink }}" class="f6 fw8 mb0 link mid-gray dim mr3">
{{ humanize .Title | upper }}
</a>
{{ end }}
{{ with .CurrentSection }}
<a href="{{ .RelPermalink }}" class="f6 fw8 mb0 link mid-gray dim mr3">
{{ humanize .Title | upper }}
</a>
{{ end }}
{{ else }}
{{ range .Params.categories }}
<a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}" class="f6 fw8 mb0 link mid-gray dim mr3">
{{ humanize . | upper }}
</a>
{{ end }}
{{ end }}
<h1 class="lh-title mb3 mv0 pt3 primary-color-dark">
{{ .Title }}
</h1>
</header>
<aside class="bt bw1 pt3 mt2 mid-gray b--mid-gray fn w-100">
{{ with .Params.description }}
<div class="mb4 f4 fw4 lh-copy">
{{ . | markdownify }}
</div>
{{ end }}
<!--
NOTE: Removed to test builds without it.
partial "components/author-github-data" (dict "context" . "size" "110") -->
</aside>
{{ with .Params.featured_image_path }}
<img src="{{ . }}" alt="Featured Image for {{ $.Title }}" class="mw-100">
{{ end }}
<div class="prose" id="prose">
<div class="mb4">
{{- partial "docs/functions-signatures.html" . -}}
{{- partial "docs/functions-return-type.html" . -}}
{{- partial "docs/functions-aliases.html" . -}}
</div>
{{ .Content }}
</div>

View file

@ -1,29 +0,0 @@
{{ define "main" }}
<article class="w-100 ph4 pb5 pb6-ns pt1 pt5-ns">
<div class="flex-l">
<div class="order-0 w-20 dn db-l">
{{ partial "nav-links-docs.html" . }}
</div>
<div class="order-1 flex-grow-1 ph0 ph5-ns mt0-ns mid-gray nested-copy-line-height no-underline nested-links nested-img nested-copy-seperator nested-blockquote">
<div style="max-width: 40rem;" class="documentation-copy">
<div id="readout" class="fixed right-0 bottom-0"></div>
{{ .Render "page" }}
{{ partial "related.html" . }}
</div>
</div>
<div id="right-sidebar" class="order-2 w-20 dn db-l sticky pt2">
{{ partial "right-sidebar.html" . }}
</div>
</div>
</article>
<div id="page-footer" class="w-100 bg-light-gray">
<div class="mw7 pa4 center nested-lh-copy lh-copy">
{{ partial "docs/page-meta-data.html" . }}
{{ partial "page-edit.html" . }}
{{ partial "tags.html" . }}
</div>
</div>
{{ end }}

View file

@ -1,4 +0,0 @@
{{ define "main" }}
{{ $section_to_display := .Pages }}
{{ partial "pagelayout.html" (dict "context" . "section_to_display" $section_to_display ) }}
{{ end }}

View file

@ -1,48 +0,0 @@
{{ define "main" }}
{{ $section_to_display := .Pages }}
<div class="w-100 ph4 pb5 pb6-ns pt1 pt3-ns">
<div class="flex">
<div class="dn db-l w-20">
{{ partial "nav-links-docs.html" . }}
</div>
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
{{ .Title }}
</h1>
</article>
<div class="pa3 pa4-ns w-100 v-top column-count-3-l column-gap-1-l">
{{ range $key, $value := .Data.Terms }}
<div class="break-inside-avoid-l nested-copy-line-height mb5">
<h2 class="f3">
<a href="{{ "/" | relLangURL }}{{ $.Data.Plural | urlize }}/{{ $key | urlize }}" class="link black hover-blue">
{{ $key }} <span class="f6 gray"> &#8599;</span>
</a>
</h2>
{{ range $value.Pages }}
<h3>
<a href="{{ .Permalink }}" class="link blue">
{{ .Title }}
</a>
</h3>
{{ end }}
</div>
{{ end }}
</div>
</div>
</div>
</div>
{{ end }}

View file

@ -1,27 +0,0 @@
{{ define "header" }}
{{ partial "hero.html" . }}
{{ partial "boxes-small-news.html" . }}
{{ end }}
{{ define "main" }}
<section class="w-100 ph4 ph5-ns pv4">
{{- partial "home-page-sections/features-icons.html" . -}}
</section>
{{ partial "home-page-sections/sponsors.html" (dict "cx" . "gtag" "home" ) }}
{{- partial "home-page-sections/features-single.html" . -}}
{{/*- partial "home-page-sections/showcase.html" . -*/}}
<section class="w-100 ph4 ph5-ns pv4 pv6-ns mid-gray bg-white bb bt b--light-gray">
{{- partial "home-page-sections/installation.html" . -}}
</section>
<section class="w-100 ph4 ph5-ns pv4 pv6-ns mid-gray bg-accent-color-dark">
{{- partial "home-page-sections/tweets.html" . -}}
</section>
<section class="w-100 ph4 ph5-ns pt4 pb5 mid-gray bg-primary-color-light bb bt b--light-gray ">
{{- partial "home-page-sections/open-source-involvement.html" . -}}
</section>
{{ end }}

View file

@ -1,78 +0,0 @@
{{ define "main" }}
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex-l">
<div class="order-2 w-100 w-20-l ph5-m ph0-l mb4 sticky">
<aside
class="fixed-lTK mw5-l right-0 f6 bl-l b--moon-gray pv4 pv0-ns ph4-l nested-list-reset nested-links nested-copy-line-height">
<p class="b">What's on this Page</p>
<ul>
<li><a href="#last-updated">Last Updated</a></li>
<li>
<a href="#least-recently-updated">Least Recently Updated</a>
</li>
<li><a href="#todos">Pages marked with TODO</a></li>
<li>
<a href="#dependencies">Project dependencies (Hugo Modules)</a>
</li>
</ul>
</aside>
</div>
<div class="w-100">
{{ $byLastMod := .Site.RegularPages.ByLastmod }}
{{ $recent := ($byLastMod | last 30).Reverse }}
{{ $leastRecent := $byLastMod | first 10 }}
<h2 id="last-updated">Last Updated</h2>
{{ partial "maintenance-pages-table.html" $recent }}
<h2 id="least-recently-updated">Least Recently Updated</h2>
{{ partial "maintenance-pages-table.html" $leastRecent }}
{{/* Don't think this is possible with where directly. Should investigate. */}}
{{ .Scratch.Set "todos" slice }}
{{ range .Site.RegularPages }}
{{ if .HasShortcode "todo" }}
{{ $.Scratch.Add "todos" . }}
{{ end }}
{{ end }}
<h2 id="todos">Pages marked with TODO</h2>
{{ partial "maintenance-pages-table.html" (.Scratch.Get "todos") }}
<h2 id="dependencies">Dependencies</h2>
<table class="collapse ba br2 b--black-10 pv2 ph3">
<thead>
<tr>
<th class="pv2 ph3 tl f6 fw6 ttu">#</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Owner</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Path</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Version</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Time</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Vendor</th>
</tr>
</thead>
<tbody>
{{ range $index, $element := hugo.Deps }}
<tr class="striped--light-gray">
<th class="pv2 ph3">{{ add $index 1 }}</th>
<td class="pv2 ph3">
{{ with $element.Owner }}{{ .Path }}{{ end }}
</td>
<td class="pv2 ph3">
{{ $element.Path }}
{{ with $element.Replace }}
=>
{{ .Path }}
{{ end }}
</td>
<td class="pv2 ph3">{{ $element.Version }}</td>
<td class="pv2 ph3">
{{ with $element.Time }}{{ . }}{{ end }}
</td>
<td class="pv2 ph3">{{ $element.Vendor }}</td>
</tr>
{{ end }}
</tbody>
</table>
</div>
</div>
</div>
{{ end }}

View file

@ -1,64 +0,0 @@
{{ define "main" }}
<div class="w-100 ph4 ph5-ns pb5 pb6-ns pt1 pt3-ns ">
<article class="cf pa3 pa4-m pa4-l nested-copy-line-height nested-img">
<h1 class="primary-color-dark">
{{ .Title }}
</h1>
<div class="nested-copy-line-height">
{{ .Content }}
</div>
</article>
<div class="flex flex-wrap">
{{ $interior_classes := $.Site.Params.flex_box_interior_classes }}
<section class="flex-ns flex-wrap justify-between w-100 w-80-nsTK v-top">
{{ $news_items := slice }}
{{/* Get releases from GitHub. */}}
{{ $u := "https://api.github.com/repos/gohugoio/hugo/releases" }}
{{ $releases := partial "utilities/get-remote-data.html" $u }}
{{ $releases = where $releases "draft" false }}
{{ $releases = where $releases "prerelease" false }}
{{ range $releases | first 20 }}
{{ $publishDate := .published_at | time.AsTime }}
{{/* Correct the v0.138.0 release date. See https://github.com/gohugoio/hugo/issues/13066. */}}
{{ if eq .name "v0.138.0" }}
{{ $publishDate = "2024-11-06T11:22:34Z" | time.AsTime }}
{{ end }}
{{ $ctx := dict
"Date" $publishDate
"Title" (printf "Release %s" .name)
"Permalink" .html_url
"Section" "news"
"Summary" ""
}}
{{ $news_items = $news_items | append $ctx }}
{{ end }}
{{/* Get content pages from news section. */}}
{{ range .Pages }}
{{ $ctx := dict
"Date" .Date
"Title" .Title
"RelPermalink" .RelPermalink
"Section" "news"
"Summary" .Summary
"Params" (dict "description" .Description)
}}
{{ $news_items = $news_items | append $ctx }}
{{ end }}
{{/* Sort by date (descending) and render. */}}
{{ range sort $news_items "Date" "desc" }}
{{ partial "boxes-section-summaries.html" (dict "context" . "classes" $interior_classes "fullcontent" false) }}
{{ end }}
</section>
</div>
</div>
{{ end }}

View file

@ -1,75 +0,0 @@
{{- printf "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"yes\"?>" | safeHTML }}
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Hugo News</title>
<description>Recent news about Hugo, a static site generator written in Go, optimized for speed and designed for flexibility.</description>
<link>{{ .Permalink }}</link>
<generator>Hugo {{ hugo.Version }}</generator>
<language>{{ or site.Language.LanguageCode site.Language.Lang }}</language>
{{- with site.Copyright }}
<copyright>{{ . }}</copyright>
{{- end }}
{{- with .OutputFormats.Get "RSS" }}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{- end }}
{{- $news_items := slice }}
{{- /* Get releases from GitHub. */}}
{{- $u := "https://api.github.com/repos/gohugoio/hugo/releases" }}
{{- $releases := partial "utilities/get-remote-data.html" $u }}
{{- $releases = where $releases "draft" false }}
{{- $releases = where $releases "prerelease" false }}
{{- range $releases | first 20 }}
{{- $publishDate := .published_at | time.AsTime }}
{{- /* Correct the v0.138.0 release date. See https://github.com/gohugoio/hugo/issues/13066. */}}
{{- if eq .name "v0.138.0" }}
{{- $publishDate = "2024-11-06T11:22:34Z" | time.AsTime }}
{{- end }}
{{- $summary := printf
"Hugo %s was released on %s. See [release notes](%s) for details."
.tag_name
($publishDate | time.AsTime | time.Format "2 Jan 2006")
.html_url
}}
{{- $ctx := dict
"PublishDate" $publishDate
"Title" (printf "Release %s" .name)
"Permalink" .html_url
"Section" "news"
"Summary" ($summary | $.Page.RenderString)
}}
{{- $news_items = $news_items | append $ctx }}
{{- end }}
{{- /* Get content pages from news section. */}}
{{- range .Pages }}
{{- $ctx := dict
"PublishDate" .PublishDate
"Title" .Title
"RelPermalink" .RelPermalink
"Section" "news"
"Summary" .Summary
"Params" (dict "description" .Description)
}}
{{- $news_items = $news_items | append $ctx }}
{{- end }}
{{- /* Sort, limit, and render lastBuildDate. */}}
{{- $limit := cond (gt site.Config.Services.RSS.Limit 1) site.Config.Services.RSS.Limit 999 }}
{{- $news_items = sort $news_items "PublishDate" "desc" | first $limit }}
<lastBuildDate>{{ (index $news_items 0).PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>
{{- /* Render items. */}}
{{- range $news_items }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .PublishDate.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
<guid>{{ .Permalink }}</guid>
<description>{{ .Summary | transform.XMLEscape | safeHTML }}</description>
</item>
{{- end }}
</channel>
</rss>

View file

@ -1,85 +0,0 @@
{{ define "main" }}
{{ $currentPageUrl := .RelPermalink }}
<article class="cf ph4 pv3 pv5-ns">
<!-- header spans the full width -->
<header class="flex-none w-100 pb3">
{{ if .Params.categories }}
{{ range .Params.categories }}
<a href="{{ "/categories/" | relLangURL }}{{ . | urlize }}" class="f6 fw8 mb0 link mid-gray dim mr3">
{{ humanize . | upper }}
</a>
{{ end }}
{{end}}
<h1 class="lh-title fw9 mb7 mv0 pt3">
<a href="{{ .RelPermalink }}" class="link primary-color dim">
{{ .Title }}
</a>
</h1>
</header>
<div class="flex-l">
<aside class="mid-gray fn w-100 w-25-l">
{{ with .Params.description }}
<h2 class="f3 lh-title">
{{ . | markdownify }}
</h2>
{{ end }}
<time class="f6 mt2 db ttu tracked" datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" }}">
{{ .Date.Format "January 2, 2006" }}
</time>
{{ if in .Params.categories "Releases" }}
<p>
Go to <a href="https://github.com/gohugoio/hugo/releases" class="link primary-color dim">Hugo Releases</a> for the release downloads.
</p>
{{ end }}
<div class="nested-links mt4">
{{- partial "previous-next-links-in-section.html" . -}}
</div>
</aside>
<div class="fn pl5-l pt3 mid-gray w-100 w-two-third-l sans-serif nested-copy-line-height no-underline nested-links nested-img nested-copy-seperator nested-blockquote measure-wide-l"><!-- TODO: Can the content top and the description top line up more precisely, or is just winging it with padding the best we've got? -->
{{ with .Params.featured_image_path }}
<img src="{{ . }}" alt="Featured Image for {{ $.Title }}" class="mw-100">
{{ else }}
{{ $featured := (.Resources.ByType "image").GetMatch "*featured*" }}
{{ with $featured }}
{{ $featured := .Resize "480x" }}
<img src="{{ $featured.RelPermalink }}" alt="Featured Image for {{ $.Title }}" class="mw-100">
{{ end }}
{{ end }}
{{ .Content }}
</div>
</div>
{{ if and .Params.tags .Site.Taxonomies.tags }}
<div class="mt5 f6 gray nested-lh-copy bg-light-gray ph3 pv2 measure-wide-l">
{{ $name := index .Params.tags 0 }}
{{ $name := $name | urlize }}
{{ $tags := index .Site.Taxonomies.tags $name }}
<ul class="list dib nested-links ml0 pl0">
<li class="dib mb2 mr2">Related:</li>
{{ range $tags.Pages }}
{{ if ne .RelPermalink $currentPageUrl }}
<li class="mb2 mr3">
<a href="{{ .RelPermalink }}" class="link">
{{ .LinkTitle }}
</a>
</li>
{{ end }}
{{end}}
</ul>
</div>
{{end}}
<div class="gray f6 mv6">
Last Update: {{ .Lastmod.Format "January 2, 2006" }} <br>
{{ partial "page-edit.html" . }}
</div>
</article>
{{ end }}

View file

@ -1,46 +0,0 @@
<div class="relative {{ .classes }} weight-{{ .context.Weight }}">
<div class="bg-white mb2 pa3 pa4-l gray">
{{ $href := .context.RelPermalink }}
{{ if eq .context.Section "news" }}
{{ $href = .context.Permalink }}
<time class="f6 db" datetime="{{ .context.Date.Format `2006-01-02T15:04:05Z07:00` }}">
{{ .context.Date.Format "January 2, 2006" }}
</time>
{{ end }}
<h1 class="near-black f3">
<a href="{{ $href }}" class="link primary-color dim">
{{ .context.Title }}
</a>
</h1>
<div class="lh-copy links">
{{ if eq .context.Section "commands" }}
{{ replaceRE `(?s).*?##\s.*?\n\n(.*?)\n.*` "$1" .context.RawContent }}
{{ else }}
{{ if in (slice "functions" "methods") .context.Type }}
{{ with $signature := index .context.Params.action.signatures 0 }}
{{ if $.context.Params.action.returnType }}
{{ $signature = printf "%s ⟼ %s" $signature $.context.Params.action.returnType }}
{{ end }}
<pre class="f6 mb3 ph3 pv2 bg-light-gray overflow-x-auto">
{{- $signature -}}
</pre>
{{ end }}
{{ end }}
{{ if .context.Params.description }}
{{ .context.Params.description | markdownify }}
{{ else }}
{{ .context.Summary }}
{{ end }}
{{ end }}
<a href="{{ $href }}" class="f6 mt2 db link primary-color dim">
Read More &raquo;
</a>
</div>
</div>
</div>

View file

@ -1 +0,0 @@
{{/* Empty for now. */}}

View file

@ -1,43 +0,0 @@
{{ $author := .context.Params.author }}
{{ if $author }}
<aside class="mw5 center bg-white br3 pa3 pa4-ns mv3 ba b--black-10 nested-links">
{{ $data := "" }}
{{ $url := urls.JoinPath "https://api.github.com/users" $author }}
{{ with try (resources.GetRemote $url) }}
{{ with .Err }}
{{ errorf "%s" . }}
{{ else with .Value }}
{{ $data = . | transform.Unmarshal }}
{{ else }}
{{ errorf "Unable to get remote resource %q" $url }}
{{ end }}
{{ end }}
<div class="tc">
{{ with $data }}
{{ with .avatar_url }}
<a href="{{ . }}" class="link hover-bg-light-gray pa1 br-100">
<img src="{{ . }}&size={{ $.size }}" alt="" class="br-100 ba b--light-gray">
</a>
{{ end }}
{{ with .name }}
<h3 class="f4">
<a href="{{ $data.html_url }}" class="link dim">
{{ . | htmlEscape }}
</a>
</h3>
<hr class="mw3 bb bw1 b--black-10">
{{ end }}
{{ with .bio }}
<p class="lh-copy measure center f6 black-70">
{{ . | htmlEscape }}
</p>
{{ end }}
{{ end }}
</div>
</aside>
{{ end }}

View file

@ -1,36 +0,0 @@
{{ $author := .context.Params.author }}
{{ if $author }}
<aside class="mw5 br3 mv3 nested-links">
{{ $data := "" }}
{{ $url := urls.JoinPath "https://api.github.com/users" $author }}
{{ with try (resources.GetRemote $url) }}
{{ with .Err }}
{{ errorf "%s" . }}
{{ else with .Value }}
{{ $data = . | transform.Unmarshal }}
{{ else }}
{{ errorf "Unable to get remote resource %q" $url }}
{{ end }}
{{ end }}
{{ with $data }}
{{ with .name }}
<h3 class="f4 dib">
{{ . | htmlEscape }}
</h3>
{{ end }}
{{ with .bio }}
<p class="lh-copy measure center mt0 f6 black-60">
{{ . | htmlEscape }}
</p>
{{ end }}
{{ with .html_url }}
<a href="{{ . }}" class="link dim v-mid dib">
{{ partial "svg/github-squared.svg" (dict "fill" "gray" "width" "16" "height" "18") }}
</a>
{{ end }}
{{ end }}
</aside>
{{ end }}

View file

@ -1,6 +0,0 @@
{{- with .Params.action.returnType }}
<p class="fw7 primary-color-dark">Returns</p>
<pre class="f5 ph3 pv2 bg-light-gray" style="border-left:4px solid #0594CB;">
{{- . -}}
</pre>
{{- end -}}

View file

@ -1,3 +0,0 @@
<h6 class="f6 dark-gray mb2">
Last updated: {{ .Lastmod.Format "January 2, 2006" }}{{ with .GitInfo }}: <a class="hide-child link primary-color" href="{{$.Site.Params.ghrepo}}commit/{{ .Hash }}">{{ .Subject }} ({{ .AbbreviatedHash }})</a>{{end }}
</h6>

View file

@ -1,13 +0,0 @@
<div class="relative w-100 mb4 bg-white nested-copy-line-height">
<div class="bg-white mb3 pa4 gray overflow-hidden">
<span class="f6 db">{{ humanize .Section }}</span>
<h1 class="f3 near-black">
<a href="{{ .RelPermalink }}" class="link black dim">
{{ .Title }}
</a>
</h1>
<div class="nested-links f5 lh-copy nested-copy-line-height">
{{ .Summary }}
</div>
</div>
</div>

View file

@ -1 +0,0 @@
<!-- EMPTY -->

View file

@ -1,18 +0,0 @@
<header class="bg-primary-color-dark ph4 tc" role="banner">
<section class="center pb4 pb5-l ph4-l pt3 pt5-ns w-90 w-60-l">
<div class="center w-100 w-50-ns">
<img src="/images/hugo-logo-wide.svg" alt="Hugo Logo">
</div>
{{ with .Site.Params.description }}
<h2 class="f3 f1-l fw4 white-90 m0 lh-title pt2 pb3 pv0-ns">
{{ . }}
</h2>
{{ end }}
<div class="lh-copy f4 w-90-ns center fw2 silver tc tc-ns">
{{ .Content }}
</div>
<div class="w4 mv4 center">
<a class="f5 db link grow tc v-mid bg-blue white ba b--blue ph3 pv2 br1" href="/getting-started/quick-start/">Quick Start</a>
</div>
</section>
</header>

View file

@ -1,34 +0,0 @@
<div class="w-90-l center">
{{ if .Params.features }}
<div class=" flex-ns flex-wrap justify-center center mw9">
{{ $features := .Params.features }}
{{ range $i, $e := $features }}
{{ $features_count := $e | len }}
<div class="w-100{{ if and (eq $i $features_count) (ne (modBool $features_count 2) true) }} w-70-ns {{ else }} w-50-ns {{ end }}ph5-l pv5-l nested-copy-line-height">
<!-- NOTE: "if eq $i $features_count" makes the last item a bit wider for balance. If we use an even number of items, we'll want to remove this -->
<div class="flex-l flex-wrap justify-between">
<div class="flex-auto w-100 w-20-ns pt1 ">
{{ with .image_path }}
<img src="{{ . }}" alt="icon depicting {{ $e.heading }}" class="h3 o-80 v-mid center w-100">
{{ end }}
</div>
<div class="flex-auto tc tl-ns w-100 w-80-ns">
<h3 class="lh-title gray o-80 f4 f5-ns mb2 fw8 bmt1 mt0-l">
{{ .heading }}
</h3>
<div class="db v-mid w-100 gray measure-wide mb5 mb0-l">
<p class="f3 primary-color mt0 mb2">{{.tagline}}</p>
<div class="lh-copy">
{{ .copy }}
</div>
</div>
</div>
</div>
</div>
{{ end }}
</div>
{{ end }}
</div>

View file

@ -1,32 +0,0 @@
{{ if .Params.sections }}
{{ range .Params.sections }}
{{ $.Scratch.Add "i" 1 }}{{ $i := $.Scratch.Get "i" }}
<section class="w-100 ph4 ph5-ns pv4 pv6-ns mid-gray {{ .color_classes }}">
<div class="flex-ns flex-wrap center mw9">
<div class="w-100 w-50-l {{ if modBool $i 2 }}order-1{{ else }}order-0{{ end }}">
<div class="w-90-ns center">
<img src="{{ .image }}" alt="image depicting an example of {{ .heading }}" class="img shadow-5">
</div>
</div>
<div class="w-100 w-50-l">
<div class="w-80-ns center tc">
<h3 class="f1 fw4 black ma0 pt4 lh-title pt0-l">{{ .heading }}</h3>
<p class="f3 lh-copy">
{{ .copy }}
</p>
<p class="f4 lh-copy nested-linksTK">
<a href="{{ .link | absURL }}" class="link black dim">
{{ .cta }} {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
</a>
</p>
</div>
</div>
</div>
</section>
{{ end }}
{{ end }}

View file

@ -1,38 +0,0 @@
<div class="flex-ns flex-wrap center mw9">
<!-- LEFT -->
<div class="w-100 w-50-ns">
<div class="w-80 center tc nested-copy-line-height">
<h3 class="f2 black">Install in seconds, build in milliseconds.</h3>
<p class="f3">Hugo works on macOS, Windows, Linux, FreeBSD, and others.</p>
<p class="f3">Host on any server or your favorite CDN.</p>
</div>
</div>
<!-- RIGHT -->
<div class="w-100 w-50-ns tc">
<div class="h4">
<img src="/images/gopher-hero.svg" alt="Hugo Gopher" class="h4">
</div>
<p class="f6 mid-gray m0 p0 pt3">macOS</p>
<div class="code f6 bg-black light-green lh-copy pv3 ph3 br2 w-100 w-50-ns center mb2 tl">
$ brew install hugo <br />
</div>
<p class="f6 mid-gray">Windows</p>
<div class="code f6 bg-black light-green lh-copy pv3 ph3 br2 w-100 w-50-ns center tl">
$ choco install hugo-extended<br />
</div>
<p class="f6 mid-gray">Linux</p>
<div class="code f6 bg-black light-green lh-copy pv3 ph3 br2 w-100 w-50-ns center tl">
$ sudo snap install hugo<br />
</div>
<p class="f5 nested-links"><a href="{{ "getting-started/installing/" | absURL }}" class="link">See the Getting Started Guide for other methods. {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}</a></p>
</div>
<!-- TODO: the install section should have a tab menu for selecting the preferred installation method, i.e. the binaries from GitHub or the commands for the installation via a package manager https://github.com/rdwatters/hugo-docs-concept/issues/3#issuecomment-287498412 -->
<!-- TODO: Animate the gopher https://github.com/rdwatters/hugo-docs-concept/issues/3#issuecomment-287194777 -->
</div>

View file

@ -1,59 +0,0 @@
<div class="w-100 center pt5">
<div class="w-100 w-40-l tc center">
<img src="/images/Github.svg" alt="Github Logo" class="tc center">
</div>
</div>
<div class="flex-ns flex-wrap center pb4 center mw9">
<!-- LEFT -->
<div class="w-100 tc w-third-l">
<h3 class="f3 mv3 accent-color-light">We welcome all contributions</h3>
<ul class="list ma0 pa0">
<li class="mb3 f4">
<a href="https://github.com/gohugoio/hugo/blob/master/CONTRIBUTING.md" class="link mid-gray dim">
Fork the repo and work on an issue {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
</a>
</li>
<li class="mb3 f4">
<a href="https://themes.gohugo.io/" class="link mid-gray dim">
Design a theme {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
</a>
</li>
</ul>
</div>
<div class="w-100 w-third-l tc">
<div class="w-60-l center">
<p class="f4">Hugo is open-source and completely free.</p>
<p class="f4">Our hundreds of contributors make Hugo great.</p>
</div>
</div>
<div class="w-100 tc w-third-l">
<h3 class="f3 mv3 accent-color-light">More ways to contribute</h3>
<ul class="list ma0 pa0">
<li class="mb3 f4">
<a href="https://gohugo.io/overview/introduction/" class="link mid-gray dim">
Help improve the docs {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
</a>
</li>
<li class="mb3 f4">
<a href="https://discourse.gohugo.io/" class="link mid-gray dim">
Help others in the forums {{ partial "svg/link-ext.svg" (dict "fill" "#333" "size" "14") }}
</a>
</li>
</ul>
</div>
<!-- RIGHT -->
</div>

View file

@ -1,44 +0,0 @@
<section class="bg-near-white mid-gray pb5 ph4 ph5-ns pt4 w-100">
<h3 class="black f1 fw4 lh-title ma0 pb3 pt0-l pt4">Showcase</h3>
{{/* NOTE: transitions for this section are in themes/gohugoioTheme/src/css/_carousel.css */}}
<div class="w-100">
<div class="w-100 overflow-x-scroll">
<div class="row nowrap mv2 pb1">
{{ $showcasePages := where .Site.RegularPages "Section" "showcase" }}
{{ if $showcasePages }}
{{ template "home_showcase_item" (index $showcasePages 0) }}
{{ range $p := first 10 ($showcasePages | after 1 | shuffle) }}
{{template "home_showcase_item" $p }}
{{end}}
{{end}}
</div>
</div>
</div>
{{/* END */}}
<div class="flex w-100 mt4 justify-end">{{/* using Flex to make the button show up on the right side */}}
<a href="/showcase/" class="br2 f6 bg-primary-color-dark hover-bg-primary-color link ph3 pv2 ttu white">See All</a>
</div>
</section>
{{ define "home_showcase_item" }}
{{ $img := (.Resources.ByType "image").GetMatch "*featured*" }}
{{ with $img }}
{{ $big := .Fill "1024x512 top" }}
{{ $small := $big.Resize "512x" }}
<a href="{{ $.RelPermalink}}" class="tile lazyload cover dib f4 h5 ml1 mr4 bg-black relative mw-100 shadow-5" style="width:{{ $small.Width }}px;"
data-bg="{{ $img.RelPermalink }}"
data-sizes="auto"
data-srcset="{{ $small.RelPermalink }} 1x,
{{ $big.RelPermalink }} 2x" data-src="small"
>
{{with $.Title}}
<div class="details absolute bottom-0 f3-ns f4 left-0 o-0 right-0 top-0">
<div class="absolute bottom-0 pa2 tc white">
{{.}} &#8594;
</div>
</div>
{{end}}
</a>
{{ end }}
{{ end }}

View file

@ -1,60 +0,0 @@
{{ $classes_box := "ba b--dark-gray bg-light-gray br3 flex flex-column flex-wrap items-center justify-center ph3 pv4 mb4 w-100 w-30-l " }}
{{ $gtag := .gtag | default "unknown" }}
{{ $classes_box := "ba b--dark-gray bg-light-gray br3 flex flex-column flex-wrap items-center justify-center ph3 pv4 mb4 w-100 w-30-l " }}
{{ $gtag := .gtag | default "unknown" }}
{{ $isFooter := (eq $gtag "footer") }}
{{ $utmSource := cond $isFooter "hugofooter" "hugohome" }}
{{ with .cx.Site.Data.sponsors }}
<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">
<h3 class="b f3 mv0 light-gray">Hugo Sponsors</h3>
<div class="flex-ns flex-wrap center justify-between pt3">
{{ range .banners }}
<div
class="{{ $classes_box }} o-100"
style="background-color: {{ .bgcolor }};">
{{ $query_params := .query_params | default "" }}
{{ $url := .link }}
{{ if not .no_query_params }}
{{ $url = printf "%s?%s%s" .link $query_params (querify "utm_source" (.utm_source | default $utmSource ) "utm_medium" (.utm_medium | default "banner") "utm_campaign" (.utm_campaign | default "hugosponsor") "utm_content" (.utm_content | default "gohugoio")) | safeURL }}
{{ end }}
{{ $logo := resources.Get .logo }}
{{ $gtagID := printf "Sponsor %s %s" .name $gtag | title }}
{{ $classes := "" }}
{{ if .show_on_hover }}
{{ $classes = printf "%s show-on-hover" $classes }}
{{ end }}
{{ if $isFooter }}
{{ $classes = printf "%s f3" $classes }}
{{ else }}
{{ $classes = printf "%s f1" $classes }}
{{ end }}
<a
href="{{ $url }}"
title="{{ .title | default .name }}"
{{ if hugo.IsProduction }}
onclick="trackOutboundLink({{ printf "'%s', '%s'" $gtagID $url | safeJS }});"
{{ end }}
class="w-100 grow pa3 {{ $classes }}"
{{ with .link_attr }}{{ . | safeHTMLAttr }}{{ end }}>
{{ with $logo }}
{{ .Content | safeHTML }}
{{ else }}
{{ .name }}
{{ end }}
</a>
</div>
{{ end }}
</div>
</div>
</section>
{{ end }}

View file

@ -1,27 +0,0 @@
<div class="flex-ns flex-wrap center mw9">
{{ $interior_classes := $.Site.Params.flex_box_interior_classes }}
<h3 class="f2 fw4 white">See what others are saying about Hugo…</h3>
<div class="flex-ns flex-wrap justify-between">
{{ if $.Site.Data.homepagetweets }}
{{ range first 4 (sort $.Site.Data.homepagetweets.tweet "date" "desc" ) }}
<div class="homepage-tweet relative {{ $interior_classes }} br1 mid-gray pv3 nested-links shadow-5">
<div class="absolute top-0 left-0 ma2 o-10">
{{ partial "svg/twitter.svg" . }}
</div>
<blockquote>
<p class="f4">
{{.quote | safeHTML}}
</p>
<cite class="homepage-tweet-attribution gray f6">&#9472; {{ .name }} ({{ .twitter_handle }}) <a href="{{ .link }}">
{{ dateFormat "January 2, 2006" .date }}</a>
</cite>
</blockquote>
</div>
{{ end }}
{{ end }}
</div>
</div>

View file

@ -1 +0,0 @@
{{/* Deliberately empty */}}

View file

@ -1,7 +0,0 @@
{{ if .Page.Store.Get "hasMermaid" }}
<script type="module" async>
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@9/+esm';
mermaid.initialize({ startOnLoad: true });
</script>
{{ end }}

View file

@ -1 +0,0 @@
<a href="{{ .url }}" class="dim"><svg class="grow" fill="{{ .color }}" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg"><path d="M0 0h24v24H0z" fill="none"/><path d="M3.9 12c0-1.71 1.39-3.1 3.1-3.1h4V7H7c-2.76 0-5 2.24-5 5s2.24 5 5 5h4v-1.9H7c-1.71 0-3.1-1.39-3.1-3.1zM8 13h8v-2H8v2zm9-6h-4v1.9h4c1.71 0 3.1 1.39 3.1 3.1s-1.39 3.1-3.1 3.1h-4V17h4c2.76 0 5-2.24 5-5s-2.24-5-5-5z"/></svg></a>

View file

@ -1,24 +0,0 @@
<table class="collapse ba br2 b--black-10 pv2 ph3">
<thead>
<tr>
<th class="pv2 ph3 tl f6 fw6 ttu">LastMod</th>
<th class="pv2 ph3 tl f6 fw6 ttu">Link</th>
<th class="pv2 ph3 tl f6 fw6 ttu">GitHub</th>
</tr>
</thead>
<tbody>
{{ range . }}
<tr class="striped--light-gray">
<td class="pv2 ph3">{{ .Lastmod.Format "2006-01-02" }}</td>
<td class="pv2 ph3">
<a href="{{ .Permalink }}">{{ .Title }}</a>
</td>
<td class="pv2 ph3">
<a href="{{ .Site.Params.ghrepo }}blob/master/content/{{ .Language.Lang }}/{{ .File.Path }}">
{{ with .GitInfo }}{{ .Subject }}{{ else }}Source{{ end }}
</a>
</td>
</tr>
{{ end }}
</tbody>
</table>

View file

@ -1,9 +0,0 @@
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-chtml.js"></script>
<script>
MathJax = {
tex: {
displayMath: [['\\[', '\\]'], ['$$', '$$']], // block
inlineMath: [['\\(', '\\)']] // inline
}
};
</script>

View file

@ -1,11 +0,0 @@
{{ $currentPage := . }}
{{ $menu := .Site.Menus.docs.ByWeight }}
<ul class="list dib ph0 scrolling-touch tc">
{{ range $menu }}{{ $post := printf "%s" .Post }}
<li class="tl dib ma0 hover-bg-black w-100{{ if eq $post "break" }} mb2 bb b--mid-gray{{ end }}">
<a href="{{.URL}}" class="ttu f6 link primary-color-light hover-white db brand-font mb1 ma0 w-100 pv2 ph4{{if $currentPage.IsMenuCurrent "main" . }} bg-primary-color{{end}}">
{{ .Name }}
</a>
</li>
{{end}}
</ul>

View file

@ -1,23 +0,0 @@
{{ $currentPage := . }}
<nav role="navigation">
<ul class="list pa0 nl2">
{{ range .Site.Menus.docs.ByWeight }}
{{ $post := printf "%s" .Post }}
<li class="f5 w-100 hover-bg-light-gray hover-accent-color-light fw8{{ if eq $post "break" }} mb1 bb b--moon-gray{{ end }}">
<a href="{{ if .HasChildren }}javascript:void(0){{ else }}{{ .URL }}{{ end }}" class="js-toggle dib w-100 link mid-gray hover-accent-color-light pl2 pr2 pv2 {{if or ($currentPage.IsMenuCurrent "docs" .) ($currentPage.HasMenuCurrent "docs" .) }} primary-color{{end}}" data-target=".{{ .Identifier }}">{{ .Name }}</a>
{{- if .HasChildren }}
<ul class="{{ .Identifier }} desktopmenu animated fadeIn list pl0 bg-light-gray{{if $currentPage.HasMenuCurrent "docs" . }} db{{ else }} dn{{ end }}">
{{- range .Children }}
<li class="f6 fw4">
<a href="{{.URL}}" class="db link hover-bg-gray hover-white pl3 pr2 pv2 {{if $currentPage.IsMenuCurrent "docs" . }}primary-color {{ else }}black {{end}}">
{{ .Name }}
</a>
</li>
{{- end}}
</ul>
{{- end}}
</li>
{{- end}}
</ul>
</nav>

View file

@ -1,11 +0,0 @@
{{ $currentPage := . }}
{{ $menu := .Site.Menus.global }}
<ul class="list hidden dib ph0 scrolling-touch tc">
{{ range $menu }}
<li class="tl dib ma0 hover-bg-black w-100">
<a href="{{.URL}}" class="ttu f6 link primary-color-light overflow hover-white db brand-font ma0 w-100 pv3 ph4{{if $currentPage.IsMenuCurrent "main" . }} bg-primary-color{{end}}">
{{ .Name }}
</a>
</li>
{{end}}
</ul>

View file

@ -1,37 +0,0 @@
{{ $currentPage := . }}
{{ $.Scratch.Add "listlinkClasses" "f6 link primary-color-dark hover-white db brand-font ma0 w-100 pv3 ph4" }}
<!-- TODO: Not getting ismenucurrent -->
<ul class="list dib ph0 ma0 scrolling-touch tc">
{{ range .Site.Menus.main }}
<li class="tl-l dib ma0 hover-bg-black w-100{{ if .HasChildren }} dont-display-child-until-click{{end}}">
{{ if .HasChildren }}
<a href="#{{ .Name | urlize }}" class="ttu {{ $.Scratch.Get "listlinkClasses" }}{{if $currentPage.IsMenuCurrent "main" . }} o-50{{end}}">
{{ .Name }}
<!-- <img src="/images/ic_keyboard_arrow_down_white_24px.svg" alt="" class="static v-mid f6 ma0 pa0"> -->
</a>
<ul id="{{ .Name | urlize}}" class="list pa0 ma0">
<li class="ma0 pl3 brand-font">
<a href="{{.URL}}" class="{{ $.Scratch.Get "listlinkClasses" }}{{if $currentPage.IsMenuCurrent "main" . }} o-50{{end}}">
{{ .Name }} Overview
</a>
</li>
{{ range .Children }}
<li class="ma0 pl3 brand-font{{if $currentPage.IsMenuCurrent "main" . }} o-50{{end}}">
<a href="{{.URL}}" class="{{ $.Scratch.Get "listlinkClasses" }}">
{{ .Name }}
</a>
</li>
{{ end }}
</ul>
{{ else }}
<a href="{{.URL}}" class="ttu {{ $.Scratch.Get "listlinkClasses" }}{{if $currentPage.IsMenuCurrent "main" . }} bg-primary-color{{end}}">
{{ .Name }}
</a>
{{end}}
</li>
{{end}}
</ul>

View file

@ -1,12 +0,0 @@
<div class="globalmenu mobilemenu pb1 dn">
{{ partial "nav-links-global-mobile.html" . }}
</div>
<div class="docsmenu mobilemenu pb1 dn">
{{ partial "nav-links-docs-mobile.html" . }}
</div>
<div class="flex dn-l justify-between">
<button class="js-toggle flex-auto dib dn-l f6 tc db ph3 pv2 link mr2 white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".globalmenu">Menu</button>
<button class="js-toggle flex-auto dib dn-l f6 tc db ph3 pv2 link white bg-primary-color-dark hover-bg-primary-color ba b--white-40 w-auto" data-target=".docsmenu">Docs Menu</button>
</div>

View file

@ -1,16 +0,0 @@
{{ $currentPage := . }}
<header class="dn-lTK relative cf bg-primary-color-dark pl4 w-100 z-5">
<div class="flexTK items-centerTK dib ">
<a class="absolute top-0 left-0 ml4 w4 w4-ns ph3 mr3" href="/">
<img src="{{ .Site.Params.logo }}" alt="" class="w-100 shadow-2">
</a>
<a class="f4 f3-ns lh-solid brand-font fw7 link white hover-white no-underline dib mv0 ml6 pl3 mr5" href="/">
{{ .Site.Title | markdownify }}
</a>
</div>
{{ partial "nav-links.html" .}}
<div class="dn-l">
{{ partial "nav-button-open.html" .}}
</div>
</header>

View file

@ -1,24 +0,0 @@
{{ $images := $.Resources.ByType "image" }}
{{ $featured := $images.GetMatch "*feature*" }}
{{ if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end }}
{{ if not $featured }}
{{ $featured = resources.Get "/opengraph/gohugoio-card-base-1.png" }}
{{ $size := 80 }}
{{ $title := $.LinkTitle }}
{{ if gt (len $title) 20 }}
{{ $size = 70 }}
{{ end }}
{{ $text := $title }}
{{ $textOptions := dict
"color" "#FFF"
"size" $size
"lineSpacing" 10
"x" 65 "y" 80
"font" (resources.Get "/opengraph/mulish-black.ttf")
}}
{{ $featured = $featured | images.Filter (images.Text $text $textOptions) }}
{{ end }}
{{ return $featured }}

View file

@ -1,42 +0,0 @@
<meta property="og:title" content="{{ .Title }}" />
<meta property="og:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end }}" />
<meta property="og:type" content="{{ if .IsPage }}article{{ else }}website{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" />
{{- with $.Params.images -}}
{{- range first 6 . }}<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
{{- else -}}
{{- $featured := partial "opengraph/get-featured-image.html" . }}
{{- with $featured -}}
<meta property="og:image" content="{{ $featured.Permalink }}"/>
{{- else -}}
{{- with $.Site.Params.images }}<meta property="og:image" content="{{ index . 0 | absURL }}"/>{{ end -}}
{{- end -}}
{{- end -}}
{{- if .IsPage }}
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
<meta property="article:section" content="{{ .Section }}" />
{{ with .PublishDate }}<meta property="article:published_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
{{ with .Lastmod }}<meta property="article:modified_time" {{ .Format $iso8601 | printf "content=%q" | safeHTMLAttr }} />{{ end }}
{{- end -}}
{{- with .Params.audio }}<meta property="og:audio" content="{{ . }}" />{{ end }}
{{- with .Params.locale }}<meta property="og:locale" content="{{ . }}" />{{ end }}
{{- with .Site.Params.title }}<meta property="og:site_name" content="{{ . }}" />{{ end }}
{{- with .Params.videos }}{{- range . }}
<meta property="og:video" content="{{ . | absURL }}" />
{{ end }}{{ end }}
{{- /* If it is part of a series, link to related articles */}}
{{- $permalink := .Permalink }}
{{- $siteSeries := .Site.Taxonomies.series }}
{{ with .Params.series }}{{- range $name := . }}
{{- $series := index $siteSeries ($name | urlize) }}
{{- range $page := first 6 $series.Pages }}
{{- if ne $page.Permalink $permalink }}<meta property="og:see_also" content="{{ $page.Permalink }}" />{{ end }}
{{- end }}
{{ end }}{{ end }}
{{- /* Facebook Page Admin ID for Domain Insights */}}
{{- with site.Params.social.facebook_admin }}<meta property="fb:admins" content="{{ . }}" />{{ end }}

View file

@ -1,22 +0,0 @@
{{- with $.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{ else -}}
{{- $featured := partial "opengraph/get-featured-image.html" . }}
{{- with $featured -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ $featured.Permalink }}"/>
{{- else -}}
{{- with $.Site.Params.images -}}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ index . 0 | absURL }}"/>
{{ else -}}
<meta name="twitter:card" content="summary"/>
{{- end -}}
{{- end -}}
{{- end }}
<meta name="twitter:title" content="{{ .Title }}"/>
<meta name="twitter:description" content="{{ with .Description }}{{ . }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}{{ end -}}"/>
{{ with site.Params.social.twitter -}}
<meta name="twitter:site" content="@{{ . }}"/>
{{ end -}}

View file

@ -1,3 +0,0 @@
<a href="{{.Site.Params.ghrepo }}edit/master/content/{{ .Language.Lang }}/{{ .File.Path }}" class="
f6 ph3 pv1 br2 dib tc ttu mv3 bg-primary-color white hover-bg-green link
">Improve this page</a>

View file

@ -1,20 +0,0 @@
{{ $currentPage := . }}
{{ $currentURL := .RelPermalink }}
<header class="ph4 flex pv4 bg-light-gray">
<ul class="list ma0 pa0 ">
<!-- TODO: Active classes -->
<li class="f5 dib mr3 mb3 mb0-ns v-top white">
<a href="/news/" class="link primary-color-dark dim">
News:
</a>
</li>
{{ range $name, $taxonomy := .Site.Taxonomies.categories }}
{{ $link := $name | printf "%s%s" "/categories/" | printf "%s/" }}
<li class="f5 dib mr3 v-top mr3 mb3 mb0-ns">
<a href="{{ $link }}" class="link {{ if eq $currentURL $link }} bg-primary-color-dark {{ else }} bg-primary-color-dark {{ end }} white ph3 pv1 br2 hover-bg-accent-color-light">
{{ $name | humanize }}
</a>
</li>
{{ end }}
</ul>
</header>

View file

@ -1,36 +0,0 @@
{{ $section_to_display := .section_to_display }}
<div class="w-100 ph4 pb5 pb6-ns pt1 mt4 pt3-ns">
<div class="flex">
<div class="dn db-l w-20">
{{ partial "nav-links-docs.html" .context }}
</div>
<div class="w-100 w-80-l ph0 ph4-l">
<article class="w-100 nested-copy-line-height nested-links nested-img">
<h1 class="primary-color-dark f2">
{{ with $.context.Data.Singular }}{{ . | humanize }}: {{ end }}{{ .context.Title }}
</h1>
<div class="{{ .Site.Params.copyClass }} mid-gray f5 f4-l">
{{ .context.Content }}
</div>
</article>
<div class="flex flex-wrap">
{{ $interior_classes := .context.Site.Params.flex_box_interior_classes }}
<section class="flex-ns flex-wrap justify-between w-100">
{{ $pages := $section_to_display }}
{{ if in (slice "functions" "methods") $.context.Type }}
{{ $pages = $.context.Pages }}
{{ end }}
{{ range $pages }}
{{ partial "boxes-section-summaries.html" (dict "context" . "classes" $interior_classes "fullcontent" true) }}
{{ end }}
</section>
</div>
</div>
</div>
</div>

View file

@ -1,14 +0,0 @@
{{ if or .PrevInSection .NextInSection }}
{{/* this div holds these a tags as a unit for flex-box display */}}
<div date-pref class="white">
{{if .NextInSection}}
<a href="{{.NextInSection.Permalink }}" class="br2 db f6 ph2 pv2 bg-light-gray white" title="{{ .NextInSection.Title }} ">{{ partial "svg/ic_chevron_left_black_24px.svg" (dict "fill" "#fff" "size" "12px") }} {{.NextInSection.Title}}</a>
{{end}}
{{if .PrevInSection}}
<a href="{{ .PrevInSection.Permalink }}" class="br2 db f6 pr1 mt3 bg-light-gray ph2 pv2 white" title="{{ .PrevInSection.Title }}">
{{.PrevInSection.Title}} {{ partial "svg/ic_chevron_right_black_24px.svg" (dict "fill" "#fff" "size" "12px") }}
</a>
{{end}}
</div>
{{ end }}

View file

@ -1,16 +0,0 @@
{{ if or .PrevInSection .NextInSection }}
{{/* this div holds these a tags as a unit for flex-box display */}}
<div date-pref>
{{if .NextInSection}}
<a href="{{.NextInSection.Permalink }}" class="dib f6 pl1 hover-bg-light-gray br-100" title="{{ .NextInSection.Title }} ">
{{ partial "svg/ic_chevron_left_black_24px.svg" (dict "fill" "#0594CB" "size" "30px") }}
</a>
{{end}}
{{if .PrevInSection}}
<a href="{{ .PrevInSection.Permalink }}" class="dib f6 pr1 hover-bg-light-gray br-100" title="{{ .PrevInSection.Title }}">
{{ partial "svg/ic_chevron_right_black_24px.svg" (dict "fill" "#0594CB" "size" "30px") }}
</a>
{{end}}
</div>
{{ end }}

View file

@ -1,25 +0,0 @@
{{if .Prev }}
<a href="{{ .Prev.Permalink }}" class="db-l f4 f3-ns link primary-color hover-black fw8 mr4">
<span class="v-mid dib">{{ partial "svg/ic_chevron_left_black_24px.svg" (dict "size" "30px") }}</span> {{ .Prev.Title }}
</a>
{{end}}
{{if .Next }}
<a href="{{.Next.Permalink }}" class="db-l f4 f3-ns link primary-color hover-black fw8">
{{ .Next.Title }} <span class="v-mid dib">{{ partial "svg/ic_chevron_right_black_24px.svg" (dict "size" "30px") }}</span>
</a>
{{end}}
<script>
document.body.onkeyup = function(e){
if (!(e.ctrlKey || e.shiftKey || e.altKey || e.metaKey)) {
{{- if .Prev }}
if (e.keyCode == '37') { window.location = '{{ .Prev.Permalink }}'; }
{{- end }}
{{- if .Next }}
if (e.keyCode == '39') { window.location = '{{ .Next.Permalink }}'; }
{{- end }}
}
};
</script>

Some files were not shown because too many files have changed in this diff Show more