Initial checkin of a static documentation website
Building this site requires Hugo (not yet included in the README or in the installation of dependencies in the Makefile). Still very much work in progress, this is basically the [Geekdocks theme][1] + one page. [1]: https://geekdocs.de/
1
.gitignore
vendored
@ -19,6 +19,7 @@ __pycache__
|
||||
*.pyc
|
||||
.mypy_cache/
|
||||
.openapi-generator/
|
||||
.hugo_build.lock
|
||||
|
||||
web/manager-api/dist/
|
||||
web/static/
|
||||
|
6
web/flamenco-io-site/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
117
web/flamenco-io-site/config.toml
Normal file
@ -0,0 +1,117 @@
|
||||
baseURL = "http://flamenco.io"
|
||||
title = "Flamenco"
|
||||
theme = "hugo-geekdoc"
|
||||
|
||||
pluralizeListTitles = false
|
||||
|
||||
# Geekdoc required configuration
|
||||
pygmentsUseClasses = true
|
||||
pygmentsCodeFences = true
|
||||
disablePathToLower = true
|
||||
|
||||
# Required if you want to render robots.txt template
|
||||
enableRobotsTXT = true
|
||||
|
||||
# Needed for mermaid shortcodes
|
||||
[markup]
|
||||
[markup.goldmark.renderer]
|
||||
# Needed for mermaid shortcode
|
||||
unsafe = true
|
||||
[markup.tableOfContents]
|
||||
startLevel = 1
|
||||
endLevel = 9
|
||||
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
|
||||
|
||||
[params]
|
||||
# (Optional, default 6) Set how many table of contents levels to be showed on page.
|
||||
# Use false to hide ToC, note that 0 will default to 6 (https://gohugo.io/functions/default/)
|
||||
# You can also specify this parameter per page in front matter.
|
||||
# geekdocToC = 3
|
||||
|
||||
# (Optional, default static/brand.svg) Set the path to a logo for the Geekdoc
|
||||
# relative to your 'static/' folder.
|
||||
# geekdocLogo = "logo.png"
|
||||
|
||||
# (Optional, default false) Render menu from data file in 'data/menu/main.yaml'.
|
||||
# See also https://geekdocs.de/usage/menus/#bundle-menu.
|
||||
# geekdocMenuBundle = true
|
||||
|
||||
# (Optional, default false) Collapse all menu entries, can not be overwritten
|
||||
# per page if enabled. Can be enabled per page via 'geekdocCollapseSection'.
|
||||
# geekdocCollapseAllSections = true
|
||||
|
||||
# (Optional, default true) Show page navigation links at the bottom of each
|
||||
# docs page (bundle menu only).
|
||||
# geekdocNextPrev = false
|
||||
|
||||
# (Optional, default true) Show a breadcrumb navigation bar at the top of each docs page.
|
||||
# You can also specify this parameter per page in front matter.
|
||||
# geekdocBreadcrumb = false
|
||||
|
||||
# (Optional, default none) Set source repository location. Used for 'Edit page' links.
|
||||
# You can also specify this parameter per page in front matter.
|
||||
# geekdocRepo = "https://github.com/thegeeklab/hugo"
|
||||
|
||||
# (Optional, default none) Enable 'Edit page' links. Requires 'GeekdocRepo' param
|
||||
# and the path must point to the parent directory of the 'content' folder.
|
||||
# You can also specify this parameter per page in front matter.
|
||||
# geekdocEditPath = "edit/main/exampleSite"
|
||||
|
||||
# (Optional, default true) Enables search function with flexsearch.
|
||||
# Index is built on the fly and might slow down your website.
|
||||
# geekdocSearch = false
|
||||
|
||||
# (Optional, default false) Display search results with the parent folder as prefix. This
|
||||
# option allows you to distinguish between files with the same name in different folders.
|
||||
# NOTE: This parameter only applies when 'geekdocSearch = true'.
|
||||
# geekdocSearchShowParent = true
|
||||
|
||||
# (Optional, default none) Add a link to your Legal Notice page to the site footer.
|
||||
# It can be either a remote url or a local file path relative to your content directory.
|
||||
# geekdocLegalNotice = "https://blog.example.com/legal"
|
||||
|
||||
# (Optional, default none) Add a link to your Privacy Policy page to the site footer.
|
||||
# It can be either a remote url or a local file path relative to your content directory.
|
||||
# geekdocPrivacyPolicy = "/privacy"
|
||||
|
||||
# (Optional, default true) Add an anchor link to headlines.
|
||||
# geekdocAnchor = true
|
||||
|
||||
# (Optional, default true) Copy anchor url to clipboard on click.
|
||||
# geekdocAnchorCopy = true
|
||||
|
||||
# (Optional, default true) Enable or disable image lazy loading for images rendered
|
||||
# by the 'img' shortcode.
|
||||
# geekdocImageLazyLoading = true
|
||||
|
||||
# (Optional, default false) Set HTMl <base> to .Site.BaseURL if enabled. It might be required
|
||||
# if a subdirectory is used within Hugos BaseURL.
|
||||
# See https://developer.mozilla.org/de/docs/Web/HTML/Element/base.
|
||||
# geekdocOverwriteHTMLBase = false
|
||||
|
||||
# (Optional, default false) Auto-decrease brightness of images and add a slightly grayscale to avoid
|
||||
# bright spots while using the dark mode.
|
||||
# geekdocDarkModeDim = false
|
||||
|
||||
# (Optional, default false) Enforce code blocks to always use the dark color theme.
|
||||
# geekdocDarkModeCode = false
|
||||
|
||||
# (Optional, default true) Display a "Back to top" link in the site footer.
|
||||
# geekdocBackToTop = true
|
||||
|
||||
# (Optional, default false) Enable or disable adding tags for post pages automatically to the navigation sidebar.
|
||||
# geekdocTagsToMenu = true
|
||||
|
||||
# (Optional, default 'title') Configure how to sort file-tree menu entries. Possible options are 'title', 'linktitle',
|
||||
# 'date', 'publishdate', 'expirydate' or 'lastmod'. Every option can be used with a reverse modifier as well
|
||||
# e.g. 'title_reverse'.
|
||||
# geekdocFileTreeSortBy = "title"
|
||||
|
||||
# (Optional, default none) Adds a "Content licensed under <license>" line to the footer.
|
||||
# Could be used if you want to define a default license for your content.
|
||||
[params.geekdocContentLicense]
|
||||
name = "CC BY-SA 4.0"
|
||||
link = "https://creativecommons.org/licenses/by-sa/4.0/"
|
46
web/flamenco-io-site/content/_index.md
Normal file
@ -0,0 +1,46 @@
|
||||
---
|
||||
title: "Flamenco"
|
||||
geekdocNav: false
|
||||
geekdocAlign: center
|
||||
geekdocAnchor: false
|
||||
---
|
||||
|
||||
Take control of your computing infrastructure and get things done.
|
||||
Flamenco is used in production at Blender Institute.
|
||||
|
||||
{{< button size="large" relref="usage/getting-started/" >}}Getting Started{{< /button >}}
|
||||
|
||||
## Feature overview
|
||||
|
||||
{{< columns >}}
|
||||
|
||||
### Free and Private
|
||||
|
||||
Flamenco runs on your own hardware.<br>
|
||||
Your data is yours, and yours alone.
|
||||
|
||||
<--->
|
||||
|
||||
### Simple
|
||||
|
||||
Flamenco v3 is the simplest version of Flamenco so far, consisting of less
|
||||
components, and requiring less configuration, than any of its predecessors.
|
||||
|
||||
<--->
|
||||
|
||||
### Easy customization
|
||||
|
||||
The available job types, and how these are turned into concrete tasks for
|
||||
Workers, are all defined in JavaScript.<br>
|
||||
Designed to customise to your specific needs.
|
||||
|
||||
{{< /columns >}}
|
||||
|
||||
Released under GPL 3.0, every component of Flamenco is Free and Open Source
|
||||
software. We use Go and SQLite, and host the sources on
|
||||
[developer.blender.org](https://developer.blender.org/project/profile/58/)
|
||||
|
||||
|
||||
-------------------
|
||||
|
||||
Looking for the old [Flamenco v2 documentation](/v2/)?
|
@ -0,0 +1,2 @@
|
||||
.*/fonts/KaTeX_.*.ttf
|
||||
https://github.com/thegeeklab/hugo-geekdoc/edit/main/.*
|
21
web/flamenco-io-site/themes/hugo-geekdoc/LICENSE
Normal file
@ -0,0 +1,21 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Robert Kaussow <mail@thegeeklab.de>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is furnished
|
||||
to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice (including the next
|
||||
paragraph) shall be included in all copies or substantial portions of the
|
||||
Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
|
||||
OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
|
||||
OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
44
web/flamenco-io-site/themes/hugo-geekdoc/README.md
Normal file
@ -0,0 +1,44 @@
|
||||
# Geekdoc
|
||||
|
||||
[](https://drone.thegeeklab.de/thegeeklab/hugo-geekdoc)
|
||||
[](https://gohugo.io)
|
||||
[](https://github.com/thegeeklab/hugo-geekdoc/releases/latest)
|
||||
[](https://github.com/thegeeklab/hugo-geekdoc/graphs/contributors)
|
||||
[](https://github.com/thegeeklab/hugo-geekdoc/blob/main/LICENSE)
|
||||
|
||||
Geekdoc is a simple Hugo theme for documentations. It is intentionally designed as a fast and lean theme and may not fit the requirements of complex projects. If a more feature-complete theme is required there are a lot of good alternatives out there. You can find a demo and the full documentation at [https://geekdocs.de](https://geekdocs.de).
|
||||
|
||||

|
||||
|
||||
## Build and release process
|
||||
|
||||
This theme is subject to a CI driven build and release process common for software development. During the release build, all necessary assets are automatically built by [webpack](https://webpack.js.org/) and bundled in a release tarball. You can download the latest release from the GitHub [release page](https://github.com/thegeeklab/hugo-geekdoc/releases).
|
||||
|
||||
Due to the fact that `webpack` and `npm scripts` are used as pre-processors, the theme cannot be used from the main branch by default. If you want to use the theme from a cloned branch instead of a release tarball you'll need to install `webpack` locally and run the build script once to create all required assets.
|
||||
|
||||
```Shell
|
||||
# install required packages from package.json
|
||||
npm install
|
||||
|
||||
# run the build script to build required assets
|
||||
npm run build
|
||||
```
|
||||
|
||||
See the [Getting Started Guide](https://geekdocs.de/usage/getting-started/) for details about the different setup options.
|
||||
|
||||
## Contributors
|
||||
|
||||
Special thanks goes to all [contributors](https://github.com/thegeeklab/hugo-geekdoc/graphs/contributors). If you would like to contribute,
|
||||
please see the [instructions](https://github.com/thegeeklab/hugo-geekdoc/blob/main/CONTRIBUTING.md).
|
||||
|
||||
Geekdoc is inspired and partially based on the [hugo-book](https://github.com/alex-shpak/hugo-book) theme, thanks [Alex Shpak](https://github.com/alex-shpak/) for your work.
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](https://github.com/thegeeklab/hugo-geekdoc/blob/main/LICENSE) file for details.
|
||||
|
||||
The used SVG icons and generated icon fonts are licensed under the license of the respective icon pack:
|
||||
|
||||
- Font Awesome: [CC BY 4.0 License](https://github.com/FortAwesome/Font-Awesome#license)
|
||||
- IcoMoon Free Pack: [GPL/CC BY 4.0](https://icomoon.io/#icons-icomoon)
|
||||
- Material Icons: [Apache License 2.0](https://github.com/google/material-design-icons/blob/main/LICENSE)
|
1
web/flamenco-io-site/themes/hugo-geekdoc/VERSION
Normal file
@ -0,0 +1 @@
|
||||
v0.32.4
|
@ -0,0 +1,7 @@
|
||||
---
|
||||
title: "{{ .Name | humanize | title }}"
|
||||
weight: 1
|
||||
# geekdocFlatSection: false
|
||||
# geekdocToc: 6
|
||||
# geekdocHidden: false
|
||||
---
|
@ -0,0 +1,4 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
---
|
@ -0,0 +1,7 @@
|
||||
{{- $searchDataFile := printf "search/%s.data.json" .Language.Lang -}}
|
||||
{{- $searchData := resources.Get "search/data.json" | resources.ExecuteAsTemplate $searchDataFile . | resources.Minify -}}
|
||||
{
|
||||
"dataFile": {{ $searchData.RelPermalink | jsonify }},
|
||||
"indexConfig": {{ .Site.Params.GeekdocSearchConfig | jsonify }},
|
||||
"showParent": {{ if .Site.Params.GeekdocSearchShowParent }}true{{ else }}false{{ end }}
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
[
|
||||
{{ range $index, $page := (where .Site.Pages "Params.GeekdocProtected" "ne" true) }}
|
||||
{{ if ne $index 0 }},{{ end }}
|
||||
{
|
||||
"id": {{ $index }},
|
||||
"href": "{{ $page.RelPermalink }}",
|
||||
"title": {{ (partial "utils/title" $page) | jsonify }},
|
||||
"parent": {{ with $page.Parent }}{{ (partial "utils/title" .) | jsonify }}{{ else }}""{{ end }},
|
||||
"content": {{ $page.Plain | jsonify }}
|
||||
}
|
||||
{{ end }}
|
||||
]
|
After Width: | Height: | Size: 17 KiB |
498
web/flamenco-io-site/themes/hugo-geekdoc/data/assets.json
Normal file
@ -0,0 +1,498 @@
|
||||
{
|
||||
"main.js": {
|
||||
"src": "js/main-51ef884d.bundle.min.js",
|
||||
"integrity": "sha512-N2Kn8ofPbqAp701o6xD6Pe/l7xTrGXqGPuTl2ossRg2PneJpmti0sEL3Qh49NKoHfHULmyOe8P0Qlvozaz3ZTQ=="
|
||||
},
|
||||
"mermaid.js": {
|
||||
"src": "js/mermaid-cb6d4919.bundle.min.js",
|
||||
"integrity": "sha512-5lubmps5WW+bFS73EzoJQb4YdNnqFqJGBi3GrWpCA3s6rsIKhFR0JdXROZBO2GyrJMyWD1iLcmPCfCZO/KrUVg=="
|
||||
},
|
||||
"katex.js": {
|
||||
"src": "js/katex-8f5d1c53.bundle.min.js",
|
||||
"integrity": "sha512-V6pdV2EI9DxULqCVNz8JNsDv06IR4gVRNhOjIDW4e7AZFuXh0JhSTbHq2nU5sUXaTP/X+p8YS2OcoZyTDiioow=="
|
||||
},
|
||||
"search.js": {
|
||||
"src": "js/search-1c4cfb2d.bundle.min.js",
|
||||
"integrity": "sha512-wK0vKlf8b3uje5GnRC4RN0aL7HzWDu7slqHlbfqCmCbHW30ede6D5H4rc/VqrpOx/Pf1ZfTV5L4Tx4pka1TwXQ=="
|
||||
},
|
||||
"js/273-0d96b20d.chunk.min.js": {
|
||||
"src": "js/273-0d96b20d.chunk.min.js",
|
||||
"integrity": "sha512-KAp0BChF8IbfeQbiTyiFk717Vinm69T+RuZLf3Bf8Z2EXk6UL/+SxJLHgdc2uDsvGLeozgItqW9RkJXBA3w1cQ=="
|
||||
},
|
||||
"js/116-2bf49fb1.chunk.min.js": {
|
||||
"src": "js/116-2bf49fb1.chunk.min.js",
|
||||
"integrity": "sha512-yBCqcmxpVT8L4nP8RCIINK6ZzP27Ms1hPS4Whkg7tMl9FUmOHt/podhi9o988CZnEbzblGx/51+cDhN1ngIP6w=="
|
||||
},
|
||||
"fonts/LiberationSans-Italic.woff": {
|
||||
"src": "fonts/LiberationSans-Italic.woff",
|
||||
"integrity": "sha512-3rg7qqlEgAeip3NcoxqNNKeVrPvkXCxHbybcidDz8/aKmNhtp9LG45K20dOaOxvWrB+XbjM6bBPnRuzJj8Pltw=="
|
||||
},
|
||||
"fonts/LiberationSans-BoldItalic.woff": {
|
||||
"src": "fonts/LiberationSans-BoldItalic.woff",
|
||||
"integrity": "sha512-l+QH9jdBUO/jvAiX27bbZvr5vCiPwBt1IJqfTy3545wRaqGOP2qeFNvolbaj7kIS7d0rc841Lgf7NACrcMFCmQ=="
|
||||
},
|
||||
"fonts/LiberationSans-Bold.woff": {
|
||||
"src": "fonts/LiberationSans-Bold.woff",
|
||||
"integrity": "sha512-dcvCYm+u+bCFKnERGNyS94DBqaNaaXr7TdD6cNXNvCwNV1jk7mOnRXub3rjX2hoIEcyMSBbeIny9nP5QCBij2g=="
|
||||
},
|
||||
"fonts/LiberationSans.woff": {
|
||||
"src": "fonts/LiberationSans.woff",
|
||||
"integrity": "sha512-X8iWtp7gsJFHLyWhQzM8IZMH97LUsxhB5Hzv9smPHsqmRrDhl/S5xClHq3lUEtupVjCxcthMXl2qQvXcM3XVkA=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2732x2048.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2732x2048.png",
|
||||
"integrity": "sha512-520ICJWMPSzTibQuHKpyYHgznwGlf3T95MTLoETOEpTzuxSYelNYNJhcYIhyv6I0r+PtLXNDfxMaIGAJewU2Dw=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2048x2732.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2048x2732.png",
|
||||
"integrity": "sha512-zSQs1F7Hz5qUzsyvq/kOycugg2k1t42QxIPAQIHXC87EwzjPPPewWinVDkqi+GIuGSa1xqzHv3srOCpKmgE0QA=="
|
||||
},
|
||||
"fonts/LiberationMono.woff": {
|
||||
"src": "fonts/LiberationMono.woff",
|
||||
"integrity": "sha512-fP8icFlpIzR+72w2iaQLQAImsyFi7T1hjZhT4102/kw2k0EJ8Q4iufSfjxhlKyeh7EAzF8OaEsOKeOmA7MfHVA=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2224x1668.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2224x1668.png",
|
||||
"integrity": "sha512-WXbw/s6qbt56l3Id4IFpLFhVx+otXWyFN/EwpJ5TU+hY5JGA8Ro3f+vOFYXP04Mwdubg5kEqzw/4HzD6uZRMVw=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1668x2224.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1668x2224.png",
|
||||
"integrity": "sha512-WCqMLLCyfHzTprEAoaPFaeHwJYEsusnb12rdoLXXbMbXA6v6KKUYDfziu2Z4HQ/34MpGSf7wvxfZss76rrHivg=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2388x1668.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2388x1668.png",
|
||||
"integrity": "sha512-xrkXrwGMnitt+kmv275t0MBE6S6+zxBZIYo87N3JdEVoq1HdG3PpO1gJZ4FaDWDWBH/1OF6/pYVmtF4QoTActQ=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2160x1620.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2160x1620.png",
|
||||
"integrity": "sha512-MMXrqQtIn50RcyBDPW/a9lTQ55/ad0cz6x5Ilv3Fv5JRZDgzGwlzJnD6YcNyvod2PCsKgoCAF+KqHa/odyJccQ=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1668x2388.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1668x2388.png",
|
||||
"integrity": "sha512-iZGmjl4HG8f2LKnAIsJpoplLTPbwbpydO+2V/3mI73rSY5haG5JhcdU5ZGzqeuGjSdm11MK5j7w4IZ9VRpyyhQ=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1620x2160.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1620x2160.png",
|
||||
"integrity": "sha512-D2Ad9ZPnEd1Ld5t6u5ljx3mdRy/VOyR11Qeee4rk1QVTThehfgx2slFfH86o36B6CBHaDZYMrWlMyXS6H8DI0A=="
|
||||
},
|
||||
"fonts/LiberationSans-Italic.woff2": {
|
||||
"src": "fonts/LiberationSans-Italic.woff2",
|
||||
"integrity": "sha512-boZm4ZsUNEmYS85TJvhuBiOUS18gpj0+9WbFgBpAQbCWdU5yde32bVS6rP0YvNvZMuS/R92y+e/bKbcgbMGDtg=="
|
||||
},
|
||||
"fonts/LiberationSans-BoldItalic.woff2": {
|
||||
"src": "fonts/LiberationSans-BoldItalic.woff2",
|
||||
"integrity": "sha512-5MVxBiZI9GlXK/F6eeZnwsLBYOMzoQ+ncAmSIoBa+kkrYnMfWaEHJaJO9tA6ml44ety3gt4e9tNmYZULvO86ug=="
|
||||
},
|
||||
"fonts/LiberationSans-Bold.woff2": {
|
||||
"src": "fonts/LiberationSans-Bold.woff2",
|
||||
"integrity": "sha512-msH61PCwMuCScUPTyVOjuQgZBhYICioAyJxifpioqircJqe1voESkLNzFz6NBmhewRZvfwJHKzwAne1cxg7mpQ=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2048x1536.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2048x1536.png",
|
||||
"integrity": "sha512-JL85dQr6+4HH6oukUWxPs1rbTKe2ZZE+t148UJBE6B4BGy8JYdtDZ8RMnks6vfzDNP7mk58GF1K6vEPZD/O/CQ=="
|
||||
},
|
||||
"fonts/LiberationSans.woff2": {
|
||||
"src": "fonts/LiberationSans.woff2",
|
||||
"integrity": "sha512-/se1p5pF9DbDIpOqEIdjqpr1J3v84dQAHPFdMsK1ZiojTlOWQJuqCH4jZ+oZh2K7TtOJa8lyY14RIHTvGh3+SQ=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1536x2048.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1536x2048.png",
|
||||
"integrity": "sha512-zd8Wn/2cJh9AFShTRz9iMIPIuCHnxOyabursGmH17EbbyEsL66xYP/F2FggCD6vc4/KOk73NQc8UFXLd6ZFx3A=="
|
||||
},
|
||||
"fonts/LiberationMono.woff2": {
|
||||
"src": "fonts/LiberationMono.woff2",
|
||||
"integrity": "sha512-p5oGo6T78XQ6SECsAez1Sc9HBw0SvLJlhndS+pJ0KyauzBdilh7/8/M/V8ivTjbJKU+rJHtIjHtMUVhPQjXq+g=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2208x1242.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2208x1242.png",
|
||||
"integrity": "sha512-Oei3vVNEzEvSajRyWJV0ZzFPwULEdbGklMa9s59PtFwCEfBU87HCzQfNxGEG7lze2TKftuLZqIqj0N15ZZ8JcA=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1242x2208.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1242x2208.png",
|
||||
"integrity": "sha512-rX1o6UJqKhO11hs6wQWOVNns6aafDqcVlPxuLx6TCCgIN4+evdu0M1X/7ZZalxaH4HHcDb3F72OjMw0JrzC8DA=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2688x1242.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2688x1242.png",
|
||||
"integrity": "sha512-M0IjR8gLlbqqql5/qjIhYyfm/poMOz70jRQIQyL1wYQBCquD4N7G3lm9Mqc3bJP0yvmBGgrflV9fg8sikxjWdw=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1242x2688.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1242x2688.png",
|
||||
"integrity": "sha512-xigXQLupadhWPZNsRFDri8f/Cm4J20shvo/wIM3P+qHIxAcj/kqgRfON/UHr2Lrn6eA11uEGrg8CkngM+F8zbw=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-2436x1125.png": {
|
||||
"src": "favicon/apple-touch-startup-image-2436x1125.png",
|
||||
"integrity": "sha512-Q6kqiD5/zHEEM/XYaSf+VjpBw++Jg3KSSqycIBiVFj2UGwArcxxesmzuCvfbtUmOoKAtso+Bjh38sXrEcrYD/A=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1125x2436.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1125x2436.png",
|
||||
"integrity": "sha512-uDKdJPnbrR3sjbZxVTnhUwWFgc02uUgG/Oj4G0sb0jJtcyVShsPBCefDdV1EalLkhZiVrHnSkiiM1hOIQ9aJjg=="
|
||||
},
|
||||
"main.scss": {
|
||||
"src": "main-2437a034.min.css",
|
||||
"integrity": "sha512-KraOMcVfNL7GMdB3uZLnkjZDlYUa3BcMUUiiEgDMeOthszfq+97zUk/FKz5aJFWlB5gheaKLikGiM5qqIhyECw=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1792x828.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1792x828.png",
|
||||
"integrity": "sha512-SclwE8AAOyR81/CdPU5XjiybQ9sQhmPht+Sz4/d7PR7gZhpoLEKBj0ovrWNV4xsiVKPhJCsdmkl17UIHftlWHg=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-828x1792.png": {
|
||||
"src": "favicon/apple-touch-startup-image-828x1792.png",
|
||||
"integrity": "sha512-UkZGpIoAUN4QBxO8q2qv/dsmyexeOmatgoz5W0sYrcwMyANSXdh/AzkUCATEur+2nDNa7FpycVZ+H7ox9teiww=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-750x1334.png": {
|
||||
"src": "favicon/apple-touch-startup-image-750x1334.png",
|
||||
"integrity": "sha512-fXVcGmV8nj/H4wZRG24ZgUOPO3qjMNMtMPGArIjsdtFC7MugmT2oZlmlZJTN1v6JIOoQPfDEmRBC2OY+83aOFg=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1334x750.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1334x750.png",
|
||||
"integrity": "sha512-8XSFf8v/KZW7sETjasY2xo7QOjF4rIAyKVlMg0ln3f6ltia/PgMmT2uyZtpfEmVjxhKzCE5sBprWWQMPgCnB5A=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-640x1136.png": {
|
||||
"src": "favicon/apple-touch-startup-image-640x1136.png",
|
||||
"integrity": "sha512-XXoL6TF7XiLsGSozR/i/rHSLxq4+EYSuJy1yVXkuYD1Z5pKLE79mEixZtIAlFAUH4vp5/jDnqUeLZEF0WKj3Fg=="
|
||||
},
|
||||
"favicon/apple-touch-icon-1024x1024.png": {
|
||||
"src": "favicon/apple-touch-icon-1024x1024.png",
|
||||
"integrity": "sha512-24xfiS1TIVCTRTPPBBFqdDquj1YjC5Uv4/27/X6rXavl3EFm8jvyKHJoNNBZnADuPDnNUp3fZ3w8YjFjh/72eg=="
|
||||
},
|
||||
"favicon/apple-touch-startup-image-1136x640.png": {
|
||||
"src": "favicon/apple-touch-startup-image-1136x640.png",
|
||||
"integrity": "sha512-sCGiDX6KSnVLTN3SxgxU3idna/C4kSpxEg1e0LDd5Va9GKGU9Pwxsxbfztovdoa4dCzUQor7bNkP9AV31ZUhHw=="
|
||||
},
|
||||
"favicon/android-chrome-512x512.png": {
|
||||
"src": "favicon/android-chrome-512x512.png",
|
||||
"integrity": "sha512-4LwQNKmVInikOHD2/rQlGO+YsQ20ty8OPlvY1ZkCTW6z79PzYu7sxBKChoRWZz29Qu+5pswP4gcnlFJM8h16Ig=="
|
||||
},
|
||||
"fonts/KaTeX_AMS-Regular.woff": {
|
||||
"src": "fonts/KaTeX_AMS-Regular.woff",
|
||||
"integrity": "sha512-9OTmXDiUyTZC10JExwbsf9iq5LBx+9l7D9C4/6i+l0df+q4VmoRuBkqtOGsQJq6Ak3lnikurNrXbfpooemNRWw=="
|
||||
},
|
||||
"favicon/favicon.ico": {
|
||||
"src": "favicon/favicon.ico",
|
||||
"integrity": "sha512-eiPeWA9BpWCHB8RTkHgjSniPpdfHwX28K4PwZRbsFvw/iSg643dh0kzSxoP9PM7TP7HOTtsTjhjkivaLucn8fg=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Main-Regular.woff",
|
||||
"integrity": "sha512-e/R6E/kxpe/ZJOoelEE/Up1luI+TGgnZk7sqD5WEgZni3mT7SuJIXeg+Tds6aQVW3EU5OdrzkQgy7SKvgmlwNw=="
|
||||
},
|
||||
"favicon/android-chrome-384x384.png": {
|
||||
"src": "favicon/android-chrome-384x384.png",
|
||||
"integrity": "sha512-z6jq3E8UfsKnmAvAqe3f/6zU3G4J64Si2leW1zd+aOXeEmOit/TLX+95PP+nt8RccwNZLSdcvxSSbnO3QOvgiA=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Bold.woff": {
|
||||
"src": "fonts/KaTeX_Main-Bold.woff",
|
||||
"integrity": "sha512-+UGGXn4fqiTI5j9vbHK7pGg1ArRyP1KjM10tTyRjdEXUXl8VYS8VFuKcZm7TYzSAUbKCyMROpMarzCPNdhwUYA=="
|
||||
},
|
||||
"favicon/firefox_app_512x512.png": {
|
||||
"src": "favicon/firefox_app_512x512.png",
|
||||
"integrity": "sha512-t7wJcQ8LAHmPf6wFzun/zUzG9Ul3VDyzIibk26esgRzt9YAxXQ4QURKjKbdSX+Chozn+hHgbGdwGHUhZCDeIkw=="
|
||||
},
|
||||
"fonts/KaTeX_AMS-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_AMS-Regular.woff2",
|
||||
"integrity": "sha512-gAE8LJexY6Fb4a8zluSx/+2E4uy09m2cU4S2aUbdJVMhYine4XXka/ehaMYIPso+KvEjy22Nu9LicCgefbF/gg=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Main-Regular.woff2",
|
||||
"integrity": "sha512-G/qfHSw59EYNIAQD8uKjJ9K5ZLpOANYUlemDOCbMgEFEt1NoYHBPdBaUk12AWMo1BYb5fMsxnlfRRyMQD0iGIA=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Bold.woff2": {
|
||||
"src": "fonts/KaTeX_Main-Bold.woff2",
|
||||
"integrity": "sha512-H+N2wqGFzd+GKbPWL2b/P2EMC2x9xHwWWkv2qsb56vSMQZA+sxRpebHebFddNq3kSXdlE7bhofyupEO+H7oPlg=="
|
||||
},
|
||||
"favicon/mstile-310x310.png": {
|
||||
"src": "favicon/mstile-310x310.png",
|
||||
"integrity": "sha512-QMpRgeWeAmOnY+5kV7ko2T90q5Ssf/BdkDlils8RA/os/00+s85+LqCv75LA6x0mURQBRslXAYTvlExXQc8nnQ=="
|
||||
},
|
||||
"katex.css": {
|
||||
"src": "katex-93898449.min.css",
|
||||
"integrity": "sha512-+jN99xaxTfEnkXs3pd7HbOx3huOnHRvLCSHTSo5guaqvNSZmQuHzlU0F6iqxROksLb9MatYIhinBDlSY59UPQg=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Italic.woff": {
|
||||
"src": "fonts/KaTeX_Main-Italic.woff",
|
||||
"integrity": "sha512-OjmWMTSIDlTf1ZGhOQiZsZAQ1cySo4EizhqshTvbuqZkgbUtV0291hC/QN+o4+VFc7OBxaKWYaJgjFRszpQnuA=="
|
||||
},
|
||||
"fonts/KaTeX_Main-BoldItalic.woff": {
|
||||
"src": "fonts/KaTeX_Main-BoldItalic.woff",
|
||||
"integrity": "sha512-AXQBZ7CFEPmUhTEmD290away1CMsXG+6B1M2c0kKewQFg5ynwIe/FryXq4dNvcTh6Cjt4PqMMss8oi95k0itSw=="
|
||||
},
|
||||
"fonts/KaTeX_Math-Italic.woff": {
|
||||
"src": "fonts/KaTeX_Math-Italic.woff",
|
||||
"integrity": "sha512-TUy17s9hPgsK0he3aJxEtpu4tdrXIgAwSR0wJnkr4b0BNKSEAap1orh7MA2QgT/KOV5ob6ZOWO7HqbwwQ9GVcg=="
|
||||
},
|
||||
"fonts/KaTeX_Math-BoldItalic.woff": {
|
||||
"src": "fonts/KaTeX_Math-BoldItalic.woff",
|
||||
"integrity": "sha512-vOUuWrtWrswqo6byaXpdKXUyJVAQjZdovxjXMqt2d6077hOXP4buD9+CEGzgiJdFOLXgVyt663Qg24V6tq7q0g=="
|
||||
},
|
||||
"favicon/android-chrome-256x256.png": {
|
||||
"src": "favicon/android-chrome-256x256.png",
|
||||
"integrity": "sha512-hrtqFFkYWcGSiynPdzkSpODgNSTLfpzDvmYou56Qzi8t3HhZ3jyMDE9g0JcWJ1I6SbaWSfZdkAHXDj2v56x1Og=="
|
||||
},
|
||||
"fonts/KaTeX_Main-Italic.woff2": {
|
||||
"src": "fonts/KaTeX_Main-Italic.woff2",
|
||||
"integrity": "sha512-SNdgxBdi/h31Ew67zOq7HpN4HMSa4vcCObb4qEywoA1tsMO8V+FQjZMrzVggok/ZIOK54mYOZBwNHPxiJLwhlw=="
|
||||
},
|
||||
"fonts/KaTeX_Main-BoldItalic.woff2": {
|
||||
"src": "fonts/KaTeX_Main-BoldItalic.woff2",
|
||||
"integrity": "sha512-R8cMx8fydyMLYJCaCwtZOVO5dDNFXr7+HQ4k3anhEEwt1D/apo8SHVx6P9z+0b1WiCB3HayQkQmWWgW39rKstQ=="
|
||||
},
|
||||
"fonts/KaTeX_Math-Italic.woff2": {
|
||||
"src": "fonts/KaTeX_Math-Italic.woff2",
|
||||
"integrity": "sha512-LRyb4qX7MDVXzDJUxajFm8w3ycI/0r+z6F4qY8c/YbZUYFx246I2HiNeQfpsTCa6nsCtrF4Uah6G0rzJhZR+uA=="
|
||||
},
|
||||
"fonts/KaTeX_Math-BoldItalic.woff2": {
|
||||
"src": "fonts/KaTeX_Math-BoldItalic.woff2",
|
||||
"integrity": "sha512-sR3fQuYKVLlf6OGCMP7Fk/S8itLYLDZY/yN9YADDDPEbY0Ii3XaOAR0ytOTUgL8nehwjBdaCw+iMXMwT0rtKqQ=="
|
||||
},
|
||||
"fonts/Metropolis.woff": {
|
||||
"src": "fonts/Metropolis.woff",
|
||||
"integrity": "sha512-fqZj5Y6hMExrGIb+OuLPY4hnQ+/ILiPON6MpAc77iKhzTWNn7KvSdfwS2NY5hmAYGfggxl55cYRUgT6F/W/RjQ=="
|
||||
},
|
||||
"fonts/KaTeX_Typewriter-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Typewriter-Regular.woff",
|
||||
"integrity": "sha512-B1qvhsqVeoK6poFsOdVkSoAG3RcVLila6oTE8GeRxtrRsGTF2eWKwdY3C6Td1Cijbh6UvjkunBI/2pWW6mCaXg=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Bold.woff": {
|
||||
"src": "fonts/KaTeX_SansSerif-Bold.woff",
|
||||
"integrity": "sha512-x8XDvU1FWtV3VSVxwu9zpioBXeiCPU5ePRJintoxp1HuPg3LBF0XC0X9fOnObO6VHEtQtKwzKfevNLhrQWzi9w=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Italic.woff": {
|
||||
"src": "fonts/KaTeX_SansSerif-Italic.woff",
|
||||
"integrity": "sha512-WNH/1HTzqy+zZJp9UuT4yMSK/ynD0f2Wd4aY3w0mKUezWJtXn9uUaa3tAdw5rE7finAD2STy24CzwVku+lc5xg=="
|
||||
},
|
||||
"fonts/KaTeX_Typewriter-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Typewriter-Regular.woff2",
|
||||
"integrity": "sha512-S0dhh+bWsw9RVuG+u7wuf+MKUhB6FozZMooTc172VAUU+g1jjXAki8d+/7ecphrmo2/4uumB2bbMdWbvU5u/oA=="
|
||||
},
|
||||
"fonts/KaTeX_Fraktur-Bold.woff": {
|
||||
"src": "fonts/KaTeX_Fraktur-Bold.woff",
|
||||
"integrity": "sha512-bbDj1QAzneCTF9//oni1rIQ3wKjtMX2kGbSrYaVNJOCOPOHWD+Mn8ZCACQAKzsVnWX9IB8X1Uwazyjz95kmPAg=="
|
||||
},
|
||||
"fonts/KaTeX_Fraktur-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Fraktur-Regular.woff",
|
||||
"integrity": "sha512-bphDtaXYbimBkkS8AIyw0aBbDWoMVkeEIwAnz+Ra1LrcrZxPCaqiV615P3g8zRvWCUifq1fNBAqvHYLqkhd1TA=="
|
||||
},
|
||||
"favicon/android-chrome-192x192.png": {
|
||||
"src": "favicon/android-chrome-192x192.png",
|
||||
"integrity": "sha512-Tb4H9uC/7OYYBQxRJMO1SIDOvlBS6jHMENnsoKROAUCCjbsptwwMTR0xisgwkJdDkgEH88s9yLj/sy55OJqwtA=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Regular.woff": {
|
||||
"src": "fonts/KaTeX_SansSerif-Regular.woff",
|
||||
"integrity": "sha512-O4mHHzWemAibL1YVBTG0lPZWRdcNQ/Qbn2/SvQ5gz9CREHr3pWQgrLI7VuqScudj74azd1v0S4YUiNuoFjwfoA=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Bold.woff2": {
|
||||
"src": "fonts/KaTeX_SansSerif-Bold.woff2",
|
||||
"integrity": "sha512-VWDeiG3/j21h8nr6IlK3IcD9ST9gTGHTAaDC0hFMIqCqWztrzO6H7bVJ2GWOlp9seqrFCQvkrcoEKULdYBxSEg=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Italic.woff2": {
|
||||
"src": "fonts/KaTeX_SansSerif-Italic.woff2",
|
||||
"integrity": "sha512-hZ3bBm8cZVRGJ8lu3C9HAvGbBBWc3a5gK7PZj5BcUPmP0zHxCnUQwAjw5M90j26Nu49DmGHd6BpUC3tGRdgSVw=="
|
||||
},
|
||||
"favicon/apple-touch-icon-180x180.png": {
|
||||
"src": "favicon/apple-touch-icon-180x180.png",
|
||||
"integrity": "sha512-G/pMzRUISFGsqqFUi+3GgVi2TXN2PmPbpCiYXo9YSi+Rn1dtPmeGDY5GAz4rRzf6kIAlXThmSKTS/rpbKgObuA=="
|
||||
},
|
||||
"favicon/apple-touch-icon-precomposed.png": {
|
||||
"src": "favicon/apple-touch-icon-precomposed.png",
|
||||
"integrity": "sha512-G/pMzRUISFGsqqFUi+3GgVi2TXN2PmPbpCiYXo9YSi+Rn1dtPmeGDY5GAz4rRzf6kIAlXThmSKTS/rpbKgObuA=="
|
||||
},
|
||||
"favicon/apple-touch-icon.png": {
|
||||
"src": "favicon/apple-touch-icon.png",
|
||||
"integrity": "sha512-G/pMzRUISFGsqqFUi+3GgVi2TXN2PmPbpCiYXo9YSi+Rn1dtPmeGDY5GAz4rRzf6kIAlXThmSKTS/rpbKgObuA=="
|
||||
},
|
||||
"fonts/KaTeX_Fraktur-Bold.woff2": {
|
||||
"src": "fonts/KaTeX_Fraktur-Bold.woff2",
|
||||
"integrity": "sha512-y7piX+9FWnsdHdn+ZeIbANy0v3KeCMwb0Ygq8IKnZq9tCtyFyEk9NSmqSc+thy0MSyQUhHYhdPCkjSHijHbJgA=="
|
||||
},
|
||||
"fonts/KaTeX_Fraktur-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Fraktur-Regular.woff2",
|
||||
"integrity": "sha512-scyZ311eKDPdtO9dnq+j8r21ahTaiygTrpRE14e7YxUs/7tjMv61mCA+cpLAz0+lzrDaZoyMuCr8yTvqgsSX5Q=="
|
||||
},
|
||||
"fonts/Metropolis.woff2": {
|
||||
"src": "fonts/Metropolis.woff2",
|
||||
"integrity": "sha512-oS5Y/tXC8/vG4f7KiHpDicy0yE4zs1TMps9Mzfk3M8O7/QNeC9Q7ZcsjnncuGo0vQB5RXU8g460XpSUB5Luc4Q=="
|
||||
},
|
||||
"favicon/firefox_app_128x128.png": {
|
||||
"src": "favicon/firefox_app_128x128.png",
|
||||
"integrity": "sha512-NV/H3Ya562iH3lsTWu3+nE1RZ+wxKKYEMxkYPCH4JLqaesUQfefWavIN0PUzB4TQ0ONmmp4fwkAtXmMh4hplHQ=="
|
||||
},
|
||||
"fonts/KaTeX_Script-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Script-Regular.woff",
|
||||
"integrity": "sha512-GnZ6z38QaaRNmfOLaikoe5x0HgxQ0qhfi5eGO6QzdHTXdGiTWxV+RjYPrvoW/vc9Bk/BdVH9vBcIODhXtwsYZg=="
|
||||
},
|
||||
"fonts/KaTeX_SansSerif-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_SansSerif-Regular.woff2",
|
||||
"integrity": "sha512-E9Kz6Ra6gXiS2dEGdOw6t9bDwwqYaLGplO0sYwtsh9aveV9xu/j0kwSkr0VZJ+otqrSPzox6sJKTvzlVjQtQsQ=="
|
||||
},
|
||||
"favicon/apple-touch-icon-167x167.png": {
|
||||
"src": "favicon/apple-touch-icon-167x167.png",
|
||||
"integrity": "sha512-03qCnveVmQRddor+JMS5JGMGqdkcbCc+rUuXqQGhB34lanb92p2Ipigqa1FINeyYc64DJRrQkzRkWorEqPom6A=="
|
||||
},
|
||||
"fonts/KaTeX_Script-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Script-Regular.woff2",
|
||||
"integrity": "sha512-/jhfsi53uEpLeJpQXaN1nzNSIuRztZkiF6tZ16/KKJ631DD61mQBX80CEnFaQ6+t7t2cuqTUH2xR/WoY8xvvOw=="
|
||||
},
|
||||
"favicon/apple-touch-icon-152x152.png": {
|
||||
"src": "favicon/apple-touch-icon-152x152.png",
|
||||
"integrity": "sha512-AZqdsbtWe2Kccqa1Q8gE/dUCTGo2ZlkdG0rGiamZ3XdynYBL5GnEguQDJjiMWnkblEmlQ8CWE5pxoOQ1TVnQqA=="
|
||||
},
|
||||
"favicon/mstile-150x150.png": {
|
||||
"src": "favicon/mstile-150x150.png",
|
||||
"integrity": "sha512-JJCSnHo3cpid9GAXaJz3/PMXcjlWzVYgmKlUwTC7+NJ4vUXdQ6bjHtomGhZMcHOHKy6bT6bwxBip3ngVoAlzNw=="
|
||||
},
|
||||
"favicon/apple-touch-icon-144x144.png": {
|
||||
"src": "favicon/apple-touch-icon-144x144.png",
|
||||
"integrity": "sha512-sxApsYMBq0EyzbVYkxKtKTau+noTtKH65s9UEm5LVbeFjMlR5XDTxsEbYNesz/p/DHEg/oeNXAOG1QvCdV+8yw=="
|
||||
},
|
||||
"favicon/android-chrome-144x144.png": {
|
||||
"src": "favicon/android-chrome-144x144.png",
|
||||
"integrity": "sha512-GHmf/LdyneSuxyqoiRP4en4ZDfyU/vJOd5mLK1cW95Hk5Pi+3rvk/R3Cqtkdd4E6tyIwZGHNh+WHL+D6eoOxiA=="
|
||||
},
|
||||
"favicon/mstile-144x144.png": {
|
||||
"src": "favicon/mstile-144x144.png",
|
||||
"integrity": "sha512-GHmf/LdyneSuxyqoiRP4en4ZDfyU/vJOd5mLK1cW95Hk5Pi+3rvk/R3Cqtkdd4E6tyIwZGHNh+WHL+D6eoOxiA=="
|
||||
},
|
||||
"fonts/KaTeX_Caligraphic-Bold.woff": {
|
||||
"src": "fonts/KaTeX_Caligraphic-Bold.woff",
|
||||
"integrity": "sha512-dfUme9QtfyLoXukghFSnTuTlLsQ/8O6YC0QnfbcJermS4BcnS4yWkZT1MEkDPL7/OUnVHcBSuLlvPbQQviJLGw=="
|
||||
},
|
||||
"fonts/KaTeX_Caligraphic-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Caligraphic-Regular.woff",
|
||||
"integrity": "sha512-31Lt1ryrvtQyFxwrABw2xZiojGGAxgDf1ojQFVy11mzmlJfn38QVSwxISnudZVBrslsHyahoDuZK6wBrayJ/LA=="
|
||||
},
|
||||
"favicon/apple-touch-icon-120x120.png": {
|
||||
"src": "favicon/apple-touch-icon-120x120.png",
|
||||
"integrity": "sha512-SxZdzj6QHtW/aA1qzqxFt+7ukVK1bzTsileyHR8xhVyk7U10DhLH+lkX7/04jctPFQ16p1/aW1XYfus0Az7mxw=="
|
||||
},
|
||||
"favicon/mstile-310x150.png": {
|
||||
"src": "favicon/mstile-310x150.png",
|
||||
"integrity": "sha512-iby/HgTBJo85KRrZdnhz7cb7ilVeD5sFCeKcCoTf/HAcVqJACSWyRi8zjYVp8QrtjCL2yi9yZ0sUsKfzsKIJdQ=="
|
||||
},
|
||||
"fonts/KaTeX_Caligraphic-Bold.woff2": {
|
||||
"src": "fonts/KaTeX_Caligraphic-Bold.woff2",
|
||||
"integrity": "sha512-Ljf53JaOUtVkASUsf8k9tpv6UeNL81MK9LR5Zco6qeIZ7l7oL3heh4SgT5mljccYcPeQ3+qB0JG8GLOiyXcNAg=="
|
||||
},
|
||||
"fonts/KaTeX_Caligraphic-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Caligraphic-Regular.woff2",
|
||||
"integrity": "sha512-lxXHdk259ffCje8TkPwi9v0jtJzlnd2O4FKYgzmdPOGHFdEzdM+7FiAumS0ClHPuqU90I2hTSmpDcpmIT/P8yQ=="
|
||||
},
|
||||
"favicon/apple-touch-icon-114x114.png": {
|
||||
"src": "favicon/apple-touch-icon-114x114.png",
|
||||
"integrity": "sha512-LGiIXYDx+ERXCQDJCktzcb03hmvkGZdRBh2X9SX9esa/A9GXQyWIwN4+6KxKD+Wtvy4YxzaJK98HZs3538CDGg=="
|
||||
},
|
||||
"fonts/KaTeX_Size1-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Size1-Regular.woff",
|
||||
"integrity": "sha512-XkOjZvm8Ok63zQ6QfZMMFYV0/WG59qxy8+n8Iu6Vqzbo9S+HhvsUpoQDEKLOS/BlLmvWQxjKoDJRdwuht5XP7A=="
|
||||
},
|
||||
"fonts/KaTeX_Size2-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Size2-Regular.woff",
|
||||
"integrity": "sha512-8lcSsq+0OUHQ1txGOO+hbXlRT9HjF0XmcVXU1trgKtDJx+fq2ejI00wJX/Jd+qw7e70BsOIuhvhY/9Og5wGxiw=="
|
||||
},
|
||||
"fonts/KaTeX_Size4-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Size4-Regular.woff",
|
||||
"integrity": "sha512-Yn3rCn0/wh7IJxqTkxIMQmE2R1WuooBx1NXlsrmmodUYljKoXDiY5V/ENfqav4ZaVoHfuahfqQyvwQ8GyMgtLQ=="
|
||||
},
|
||||
"favicon/android-chrome-96x96.png": {
|
||||
"src": "favicon/android-chrome-96x96.png",
|
||||
"integrity": "sha512-Yf4VS4jjOTKPur035TkNhAybS3p2x+jrNli0lyHZJRbfNy2Csi0a7ilwhsVCUl4LFp/JxwFmXFxprI7WwW8o4Q=="
|
||||
},
|
||||
"fonts/KaTeX_Size1-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Size1-Regular.woff2",
|
||||
"integrity": "sha512-LWpGCcgzMsmdUrmsBIN5OaYPFpbpYpEn+YmrnLfiCbdq8s7aNTtNqdyUxmExvdZ2Vo2Bz87pfzjvN+xtL4+JTg=="
|
||||
},
|
||||
"fonts/GeekdocIcons.woff": {
|
||||
"src": "fonts/GeekdocIcons.woff",
|
||||
"integrity": "sha512-gsV/o3FjlJTaGl4XpO0lc2kMeZQ8JLvZUNgMCXuP7ye3GlMUmPbdK7VYdyzsWbzDCcJMwDaWv9Le3HvoQFvKoA=="
|
||||
},
|
||||
"fonts/KaTeX_Size2-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Size2-Regular.woff2",
|
||||
"integrity": "sha512-BHXH2ZEkl2rojultow0zLPFK6z4CAw4f7zYtMCTNhaXYnmELwHufinI8V3Mc45cLgD+IPwsA9hoinugMQimuwQ=="
|
||||
},
|
||||
"fonts/KaTeX_Size4-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Size4-Regular.woff2",
|
||||
"integrity": "sha512-F6rlkx62QlxNW+vGsxhQWgaktNw+Gzb6fmNF9fEzx5O/FWE+6L7711Q5jKjzMQVeegEdiSeSqvncYFE3j81Dzw=="
|
||||
},
|
||||
"favicon/firefox_app_60x60.png": {
|
||||
"src": "favicon/firefox_app_60x60.png",
|
||||
"integrity": "sha512-YrL6darERXRvnGbTP7MWZFaIqiXEurdbwsg6HeWl+0wlZPC6Wy9DHUcTfjtixv+1+DAVal8YLoIqXTAyYcN+lw=="
|
||||
},
|
||||
"fonts/KaTeX_Size3-Regular.woff": {
|
||||
"src": "fonts/KaTeX_Size3-Regular.woff",
|
||||
"integrity": "sha512-Eo35y+ZReFpmRgZv0N2dKAc5ggcXGE3wnrCf28qnu5G1+Ikvew0IFkdCYN1I6FnHsPDTnQzjJZU7+F7oBYvHKQ=="
|
||||
},
|
||||
"favicon/android-chrome-72x72.png": {
|
||||
"src": "favicon/android-chrome-72x72.png",
|
||||
"integrity": "sha512-PFMzr2iXImbdQDiZVNugaYzoQAUvLCsNrnm0pV0zLxIuczytBfu1nGKjfJZwyOfMzKQpQfYi4z0cdgit9bJ5IQ=="
|
||||
},
|
||||
"fonts/GeekdocIcons.woff2": {
|
||||
"src": "fonts/GeekdocIcons.woff2",
|
||||
"integrity": "sha512-gvev7ELVPLd4H5Pfane7+wc5boX7ChPZ8wV6M+cYZo4DLROSDdNzJtn8PusJUxpS0jK2jEJjPrxz2fVvN07pkQ=="
|
||||
},
|
||||
"favicon/apple-touch-icon-76x76.png": {
|
||||
"src": "favicon/apple-touch-icon-76x76.png",
|
||||
"integrity": "sha512-klHJxEbcTgx7V1TBM/gByA6vzXK5MUkaiQ1gTybEp6g0sMzpIdO9XTIrsDeelKGI1aHtSBEWPLqF1rYp5T1Oiw=="
|
||||
},
|
||||
"favicon/apple-touch-icon-72x72.png": {
|
||||
"src": "favicon/apple-touch-icon-72x72.png",
|
||||
"integrity": "sha512-UHXFta5GyLLQ5IoVQBJGP4yzOVwkRG6m6YTrhw/ABwjgsKX4P3u6h2VnbKpGyRgf5hdORwUFyYrJBgQpIzpNWQ=="
|
||||
},
|
||||
"favicon/mstile-70x70.png": {
|
||||
"src": "favicon/mstile-70x70.png",
|
||||
"integrity": "sha512-Wj4a4NiSy1axSDENK/8G13PQPQuaEaFPxOBCj+iVmZ0ifk2UMPbtZDo2fdpCTtwS7BWiHCyv97Kvg4sqAZbRjA=="
|
||||
},
|
||||
"fonts/KaTeX_Size3-Regular.woff2": {
|
||||
"src": "fonts/KaTeX_Size3-Regular.woff2",
|
||||
"integrity": "sha512-avq+5YU1Cd9KtJ0U6hujFkh4fMNVZC59Y/HPlqUXkxeUlWca4Fmqn1YA8WK1188GG59qRHBtoZzvRgC9k9fGZA=="
|
||||
},
|
||||
"favicon/favicon-48x48.png": {
|
||||
"src": "favicon/favicon-48x48.png",
|
||||
"integrity": "sha512-rs5vrXU7NuGuRCv1RimyERFr1DzyQBviAoYmJxD8uHjl0y57SAleg14A0piuXkRUDL1FE0ZyVA/INPz+8GQjpg=="
|
||||
},
|
||||
"favicon/apple-touch-icon-60x60.png": {
|
||||
"src": "favicon/apple-touch-icon-60x60.png",
|
||||
"integrity": "sha512-YTKtyy5p2t+jz9cFS1c9kFm0LMH95s37ZRuL5AS0Lhpkf8B+xSokR/v+3xxYskT3QRSx5vcyHai8ia44X6xT5Q=="
|
||||
},
|
||||
"favicon/apple-touch-icon-57x57.png": {
|
||||
"src": "favicon/apple-touch-icon-57x57.png",
|
||||
"integrity": "sha512-2yW78pw4eDZ7hEUoWvNaEEeXOf30rUaKXoZwSvrilX8xBvqij/opEMPF0OHHU2lQziDIGGN9YsUnASQbhd95bw=="
|
||||
},
|
||||
"favicon/android-chrome-48x48.png": {
|
||||
"src": "favicon/android-chrome-48x48.png",
|
||||
"integrity": "sha512-UTXsN/aHnuTWAyYmp+/Ov0H1ML3HnIfUvYuwPyeWTwRs/8bZETHUYsj4scx48YkAJ+fhRnobXYqwr0swY7cXeQ=="
|
||||
},
|
||||
"favicon/favicon-32x32.png": {
|
||||
"src": "favicon/favicon-32x32.png",
|
||||
"integrity": "sha512-cT9VQkceXZYw+3yDSljXGTmfHdp6Gh+ncc7mdtKoB3AK4a6MgMR1YTeGpC0IOm5EmMQoPICXwvMPWskD9YSUAA=="
|
||||
},
|
||||
"favicon/android-chrome-36x36.png": {
|
||||
"src": "favicon/android-chrome-36x36.png",
|
||||
"integrity": "sha512-uIOaCXbCeY2tIMUPros0wfBdDIh842crzDQ/4NjTeEqzFhwrK3HlTsdFXYNcqg9OOuO+aATZKwIGYbgaA8vQbA=="
|
||||
},
|
||||
"mobile.scss": {
|
||||
"src": "mobile-467819cb.min.css",
|
||||
"integrity": "sha512-HebydAISuYOx0io1hzOxsS95WxRV57CfFueceivz/H7bqrTjwBGSnLItaNmjUK0CRfy34X7J5+SYFNG9xIn7Zg=="
|
||||
},
|
||||
"favicon/manifest.json": {
|
||||
"src": "favicon/manifest.json",
|
||||
"integrity": "sha512-UncSB3MQSXZlaaxiclpQvvZDDYew4CITJ7JTlLcb8kZpyB3YgbqdHBIechH3HIQ1uJsYhgQyItxG3VMxOLfzKw=="
|
||||
},
|
||||
"favicon/favicon-16x16.png": {
|
||||
"src": "favicon/favicon-16x16.png",
|
||||
"integrity": "sha512-lQ+H0RYy3ZlksL5zUaV2WcH2PQdG6imd5hr1KfQOK4o1LXm7JAHvyjOSN3E+HC+AN1pCuoaITo6UI3SpW+CHNA=="
|
||||
},
|
||||
"print.scss": {
|
||||
"src": "print-19966b38.min.css",
|
||||
"integrity": "sha512-xpNQeJp9e4SbqEv+pFoGrOehV+RABxosG+toy6+HJ6SGFLxJNgG4+/RwPYdg3BxBvRXfkTmwf+iArAT3/a3+3g=="
|
||||
},
|
||||
"favicon/browserconfig.xml": {
|
||||
"src": "favicon/browserconfig.xml",
|
||||
"integrity": "sha512-RDr7E4dJmkJdQMyNa4dtxx3iYnrSnFHlifwV1LriUChccTz+aB0gNe0CRL94GXHGd1DiUU+QgEXXNC2Mupn9aw=="
|
||||
},
|
||||
"favicon/manifest.webapp": {
|
||||
"src": "favicon/manifest.webapp",
|
||||
"integrity": "sha512-XPr/eyO6YOVNkn3FS0wAMxe2FPIQmzn5YvV0E2kJ+feOQG4pzZVL09aa35gSUjLR18BVenKZTTtJy4Yh+reRTQ=="
|
||||
},
|
||||
"custom.css": {
|
||||
"src": "custom.css",
|
||||
"integrity": "sha512-1kALo+zc1L2u1rvyxPIew+ZDPWhnIA1Ei2rib3eHHbskQW+EMxfI9Ayyva4aV+YRrHvH0zFxvPSFIuZ3mfsbRA=="
|
||||
}
|
||||
}
|
49
web/flamenco-io-site/themes/hugo-geekdoc/i18n/de.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
edit_page: Seite bearbeiten
|
||||
|
||||
nav_navigation: Navigation
|
||||
nav_tags: Tags
|
||||
nav_more: Weitere
|
||||
nav_top: Nach oben
|
||||
|
||||
form_placeholder_search: Suchen
|
||||
|
||||
error_page_title: Verlaufen? Keine Sorge
|
||||
error_message_title: Verlaufen?
|
||||
error_message_code: Fehler 404
|
||||
error_message_text: >
|
||||
Wir können die Seite nach der Du gesucht hast leider nicht finden. Keine Sorge,
|
||||
wir bringen Dich zurück zur <a class="gdoc-error__link" href="{{ . }}">Startseite</a>.
|
||||
|
||||
button_toggle_dark: Wechsel zwischen Dunkel/Hell/Auto Modus
|
||||
button_nav_open: Navigation öffnen
|
||||
button_nav_close: Navigation schließen
|
||||
button_menu_open: Menüband öffnen
|
||||
button_menu_close: Menüband schließen
|
||||
button_homepage: Zurück zur Startseite
|
||||
|
||||
title_anchor_prefix: "Link zu:"
|
||||
|
||||
posts_read_more: Ganzen Artikel lesen
|
||||
posts_read_time:
|
||||
one: "Eine Minute Lesedauer"
|
||||
other: "{{ . }} Minuten Lesedauer"
|
||||
posts_update_prefix: Aktualisiert am
|
||||
posts_count:
|
||||
one: "Ein Artikel"
|
||||
other: "{{ . }} Artikel"
|
||||
posts_tagged_with: Alle Artikel mit dem Tag '{{ . }}'
|
||||
|
||||
footer_build_with: >
|
||||
Entwickelt mit <a href="https://gohugo.io/" class="gdoc-footer__link">Hugo</a> und
|
||||
<svg class="gdoc-icon gdoc_heart"><use xlink:href="#gdoc_heart"></use></svg>
|
||||
footer_legal_notice: Impressum
|
||||
footer_privacy_policy: Datenschutzerklärung
|
||||
footer_content_license_prefix: >
|
||||
Inhalt lizensiert unter
|
||||
|
||||
language_switch_no_tranlation_prefix: "Seite nicht übersetzt:"
|
||||
|
||||
propertylist_required: erforderlich
|
||||
propertylist_optional: optional
|
||||
propertylist_default: Standardwert
|
49
web/flamenco-io-site/themes/hugo-geekdoc/i18n/en.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
edit_page: Edit page
|
||||
|
||||
nav_navigation: Navigation
|
||||
nav_tags: Tags
|
||||
nav_more: More
|
||||
nav_top: Back to top
|
||||
|
||||
form_placeholder_search: Search
|
||||
|
||||
error_page_title: Lost? Don't worry
|
||||
error_message_title: Lost?
|
||||
error_message_code: Error 404
|
||||
error_message_text: >
|
||||
Seems like what you are looking for can't be found. Don't worry, we can
|
||||
bring you back to the <a class="gdoc-error__link" href="{{ . }}">homepage</a>.
|
||||
|
||||
button_toggle_dark: Toggle Dark/Light/Auto mode
|
||||
button_nav_open: Open Navigation
|
||||
button_nav_close: Close Navigation
|
||||
button_menu_open: Open Menu Bar
|
||||
button_menu_close: Close Menu Bar
|
||||
button_homepage: Back to homepage
|
||||
|
||||
title_anchor_prefix: "Anchor to:"
|
||||
|
||||
posts_read_more: Read full post
|
||||
posts_read_time:
|
||||
one: "One minute to read"
|
||||
other: "{{ . }} minutes to read"
|
||||
posts_update_prefix: Updated on
|
||||
posts_count:
|
||||
one: "One post"
|
||||
other: "{{ . }} posts"
|
||||
posts_tagged_with: All posts tagged with '{{ . }}'
|
||||
|
||||
footer_build_with: >
|
||||
Built with <a href="https://gohugo.io/" class="gdoc-footer__link">Hugo</a> and
|
||||
<svg class="gdoc-icon gdoc_heart"><use xlink:href="#gdoc_heart"></use></svg>
|
||||
footer_legal_notice: Legal Notice
|
||||
footer_privacy_policy: Privacy Policy
|
||||
footer_content_license_prefix: >
|
||||
Content licensed under
|
||||
|
||||
language_switch_no_tranlation_prefix: "Page not translated:"
|
||||
|
||||
propertylist_required: required
|
||||
propertylist_optional: optional
|
||||
propertylist_default: default
|
49
web/flamenco-io-site/themes/hugo-geekdoc/i18n/it.yaml
Normal file
@ -0,0 +1,49 @@
|
||||
---
|
||||
edit_page: Modifica la pagina
|
||||
|
||||
nav_navigation: Navigazione
|
||||
nav_tags: Etichette
|
||||
nav_more: Altro
|
||||
nav_top: Torna su
|
||||
|
||||
form_placeholder_search: Cerca
|
||||
|
||||
error_page_title: Perso? Non ti preoccupare
|
||||
error_message_title: Perso?
|
||||
error_message_code: Errore 404
|
||||
error_message_text: >
|
||||
Sembra che non sia possibile trovare quello che stavi cercando. Non ti preoccupare,
|
||||
possiamo riportarti alla <a class="gdoc-error__link" href="{{ . }}">pagina iniziale</a>.
|
||||
|
||||
button_toggle_dark: Seleziona il tema Chiaro/Scuro/Automatico
|
||||
button_nav_open: Apri la Navigazione
|
||||
button_nav_close: Chiudi la Navigazione
|
||||
button_menu_open: Apri la Barra del Menu
|
||||
button_menu_close: Chiudi la Barra del Menu
|
||||
button_homepage: Torna alla pagina iniziale
|
||||
|
||||
title_anchor_prefix: "Ancora a:"
|
||||
|
||||
posts_read_more: Leggi tutto il post
|
||||
posts_read_time:
|
||||
one: "Tempo di lettura: un minuto"
|
||||
other: "Tempo di lettura: {{ . }} minuti"
|
||||
posts_update_prefix: Aggiornato il
|
||||
posts_count:
|
||||
one: "Un post"
|
||||
other: "{{ . }} post"
|
||||
posts_tagged_with: Tutti i post etichettati con '{{ . }}'
|
||||
|
||||
footer_build_with: >
|
||||
Realizzato con <a href="https://gohugo.io/" class="gdoc-footer__link">Hugo</a> e
|
||||
<svg class="gdoc-icon gdoc_heart"><use xlink:href="#gdoc_heart"></use></svg>
|
||||
footer_legal_notice: Avviso Legale
|
||||
footer_privacy_policy: Politica sulla Privacy
|
||||
footer_content_license_prefix: >
|
||||
Contenuto sotto licenza
|
||||
|
||||
language_switch_no_tranlation_prefix: "Pagina non tradotta:"
|
||||
|
||||
propertylist_required: richiesto
|
||||
propertylist_optional: opzionale
|
||||
propertylist_default: valore predefinito
|
50
web/flamenco-io-site/themes/hugo-geekdoc/i18n/zh-cn.yaml
Normal file
@ -0,0 +1,50 @@
|
||||
---
|
||||
edit_page: 编辑页面
|
||||
|
||||
nav_navigation: 导航
|
||||
nav_tags: 标签
|
||||
nav_more: 更多
|
||||
nav_top: 回到顶部
|
||||
|
||||
form_placeholder_search: 搜索
|
||||
|
||||
error_page_title: 迷路了? 不用担心
|
||||
error_message_title: 迷路了?
|
||||
error_message_code: 错误 404
|
||||
error_message_text: >
|
||||
好像找不到你要找的东西。 别担心,我们可以
|
||||
带您回到<a class="gdoc-error__link" href="{{ . }}">主页</a>。
|
||||
|
||||
button_toggle_dark: 切换暗/亮/自动模式
|
||||
button_nav_open: 打开导航
|
||||
button_nav_close: 关闭导航
|
||||
button_menu_open: 打开菜单栏
|
||||
button_menu_close: 关闭菜单栏
|
||||
button_homepage: 返回首页
|
||||
|
||||
title_anchor_prefix: "锚定到:"
|
||||
|
||||
posts_read_more: 阅读全文
|
||||
posts_read_time:
|
||||
one: "一分钟阅读时间"
|
||||
other: "{{ . }} 分钟阅读时间"
|
||||
posts_update_prefix: 更新时间
|
||||
posts_count:
|
||||
one: 一篇文章
|
||||
other: "{{ . }} 个帖子"
|
||||
posts_tagged_with: 所有带有“{{ . }}”标签的帖子。
|
||||
|
||||
footer_build_with: >
|
||||
基于 <a href="https://gohugo.io/" class="gdoc-footer__link">Hugo</a>
|
||||
<svg class="gdoc-icon gdoc_heart"><use xlink:href="#gdoc_heart"></use></svg> 制作
|
||||
|
||||
footer_legal_notice: "法律声明"
|
||||
footer_privacy_policy: "隐私政策"
|
||||
footer_content_license_prefix: >
|
||||
内容许可证
|
||||
|
||||
language_switch_no_tranlation_prefix: "页面未翻译:"
|
||||
|
||||
propertylist_required: 需要
|
||||
propertylist_optional: 可选
|
||||
propertylist_default: 默认值
|
BIN
web/flamenco-io-site/themes/hugo-geekdoc/images/readme.png
Normal file
After Width: | Height: | Size: 225 KiB |
BIN
web/flamenco-io-site/themes/hugo-geekdoc/images/screenshot.png
Normal file
After Width: | Height: | Size: 508 KiB |
BIN
web/flamenco-io-site/themes/hugo-geekdoc/images/tn.png
Normal file
After Width: | Height: | Size: 130 KiB |
40
web/flamenco-io-site/themes/hugo-geekdoc/layouts/404.html
Normal file
@ -0,0 +1,40 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.Language.Lang }}">
|
||||
<head>
|
||||
{{ partial "head/meta" . }}
|
||||
<title>{{ i18n "error_page_title" }}</title>
|
||||
|
||||
{{ partial "head/favicons" . }}
|
||||
{{ partial "head/others" . }}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{ partial "svg-icon-symbols" . }}
|
||||
|
||||
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" class="hidden" id="menu-header-control" />
|
||||
|
||||
{{ partial "site-header" (dict "Root" . "MenuEnabled" false) }}
|
||||
|
||||
|
||||
<main class="gdoc-error flex-even">
|
||||
<div class="flex align-center justify-center">
|
||||
<div class="gdoc-error__icon">
|
||||
<svg class="gdoc-icon gdoc_cloud_off"><use xlink:href="#gdoc_cloud_off"></use></svg>
|
||||
</div>
|
||||
<div class="gdoc-error__message">
|
||||
<div class="gdoc-error__line gdoc-error__title">{{ i18n "error_message_title" }}</div>
|
||||
<div class="gdoc-error__line gdoc-error__code">{{ i18n "error_message_code" }}</div>
|
||||
<div class="gdoc-error__line gdoc-error__help">
|
||||
{{ i18n "error_message_text" .Site.BaseURL | safeHTML }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "site-footer" . }}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,21 @@
|
||||
{{- $showAnchor := (and (default true .Page.Params.GeekdocAnchor) (default true .Page.Site.Params.GeekdocAnchor)) -}}
|
||||
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
{{- if $showAnchor -}}
|
||||
<div class="gdoc-page__anchorwrap">
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}">
|
||||
{{ .Text | safeHTML }}
|
||||
<a data-clipboard-text="{{ .Page.Permalink }}#{{ .Anchor | safeURL }}" class="gdoc-page__anchor clip flex align-center" title="{{ i18n "title_anchor_prefix" }} {{ .Text | safeHTML }}" aria-label="{{ i18n "title_anchor_prefix" }} {{ .Text | safeHTML }}" href="#{{ .Anchor | safeURL }}">
|
||||
<svg class="gdoc-icon gdoc_link"><use xlink:href="#gdoc_link"></use></svg>
|
||||
</a>
|
||||
</h{{ .Level }}>
|
||||
</div>
|
||||
{{- else -}}
|
||||
<div class="gdoc-page__anchorwrap">
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}">
|
||||
{{ .Text | safeHTML }}
|
||||
</h{{ .Level }}>
|
||||
</div>
|
||||
{{- end -}}
|
||||
<!-- prettier-ignore-end -->
|
@ -0,0 +1,6 @@
|
||||
<img
|
||||
src="{{ .Destination | safeURL }}"
|
||||
alt="{{ .Text }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
/>
|
||||
{{- /* Drop trailing newlines */ -}}
|
@ -0,0 +1,14 @@
|
||||
{{- $raw := or (hasPrefix .Text "<img") (hasPrefix .Text "<figure") -}}
|
||||
{{- $code := hasPrefix .Text "<code" -}}
|
||||
<a
|
||||
class="gdoc-markdown__link{{ if $raw -}}
|
||||
--raw
|
||||
{{- else if $code -}}
|
||||
--code
|
||||
{{- end }}"
|
||||
href="{{ .Destination | safeURL }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
>
|
||||
{{- .Text | safeHTML -}}
|
||||
</a>
|
||||
{{- /* Drop trailing newlines */ -}}
|
@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html
|
||||
lang="{{ .Site.Language.Lang }}"
|
||||
class="color-toggle-hidden"
|
||||
{{ if default false .Site.Params.GeekdocDarkModeCode }}code-theme="dark"{{ end }}
|
||||
>
|
||||
<head>
|
||||
{{ partial "head/meta" . }}
|
||||
<title>
|
||||
{{- if eq .Kind "home" -}}
|
||||
{{ .Site.Title }}
|
||||
{{- else -}}
|
||||
{{ printf "%s | %s" (partial "utils/title" .) .Site.Title }}
|
||||
{{- end -}}
|
||||
</title>
|
||||
|
||||
{{ partial "head/favicons" . }}
|
||||
{{ partial "head/rel-me" . }}
|
||||
{{ partial "head/microformats" . }}
|
||||
{{ partial "head/others" . }}
|
||||
{{ partial "head/custom" . }}
|
||||
</head>
|
||||
|
||||
<body itemscope itemtype="https://schema.org/WebPage">
|
||||
{{ partial "svg-icon-symbols" . }}
|
||||
|
||||
|
||||
<div
|
||||
class="wrapper {{ if default false .Site.Params.GeekdocDarkModeDim }}dark-mode-dim{{ end }}"
|
||||
>
|
||||
<input type="checkbox" class="hidden" id="menu-control" />
|
||||
<input type="checkbox" class="hidden" id="menu-header-control" />
|
||||
{{ $navEnabled := default true .Page.Params.GeekdocNav }}
|
||||
{{ partial "site-header" (dict "Root" . "MenuEnabled" $navEnabled) }}
|
||||
|
||||
|
||||
<main class="container flex flex-even">
|
||||
{{ if $navEnabled }}
|
||||
<aside class="gdoc-nav">
|
||||
{{ partial "menu" . }}
|
||||
</aside>
|
||||
{{ end }}
|
||||
|
||||
|
||||
<div class="gdoc-page">
|
||||
{{ template "main" . }}
|
||||
|
||||
|
||||
<div class="gdoc-page__footer flex flex-wrap justify-between">
|
||||
{{ partial "menu-nextprev" . }}
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "site-footer" . }}
|
||||
</div>
|
||||
|
||||
{{ partial "foot" . }}
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,11 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "page-header" . }}
|
||||
|
||||
|
||||
<article
|
||||
class="gdoc-markdown gdoc-markdown__align--{{ default "left" (.Page.Params.GeekdocAlign | lower) }}"
|
||||
>
|
||||
<h1>{{ partial "utils/title" . }}</h1>
|
||||
{{ partial "utils/content" . }}
|
||||
</article>
|
||||
{{ end }}
|
@ -0,0 +1,11 @@
|
||||
{{ define "main" }}
|
||||
{{ partial "page-header" . }}
|
||||
|
||||
|
||||
<article
|
||||
class="gdoc-markdown gdoc-markdown__align--{{ default "left" (.Page.Params.GeekdocAlign | lower) }}"
|
||||
>
|
||||
<h1>{{ partial "utils/title" . }}</h1>
|
||||
{{ partial "utils/content" . }}
|
||||
</article>
|
||||
{{ end }}
|
@ -0,0 +1,48 @@
|
||||
{{ define "main" }}
|
||||
{{ range .Paginator.Pages }}
|
||||
<article class="gdoc-post">
|
||||
<header class="gdoc-post__header">
|
||||
<h1 class="gdoc-post__title">
|
||||
<a href="{{ .RelPermalink }}">{{ partial "utils/title" . }}</a>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<section class="gdoc-markdown">
|
||||
{{ .Summary }}
|
||||
</section>
|
||||
|
||||
<div class="gdoc-post__readmore">
|
||||
{{ if .Truncated }}
|
||||
<a
|
||||
class="flex-inline align-center fake-link"
|
||||
title="{{ i18n "posts_read_more" }}"
|
||||
href="{{ .RelPermalink }}"
|
||||
>
|
||||
{{ i18n "posts_read_more" }}
|
||||
<i class="gdoc-icon">gdoc_arrow_right_alt</i>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<footer class="gdoc-post__footer">
|
||||
<div class="flex flex-wrap align-center gdoc-post__meta">
|
||||
{{ partial "posts/metadata.html" . }}
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "post-tag" }}
|
||||
<span class="gdoc-post__tag">
|
||||
<span class="gdoc-button">
|
||||
<a
|
||||
class="gdoc-button__link"
|
||||
href="{{ .page.RelPermalink }}"
|
||||
title="{{ i18n "posts_tagged_with" .name }}"
|
||||
>
|
||||
{{ .name }}
|
||||
</a>
|
||||
</span>
|
||||
</span>
|
||||
{{ end }}
|
@ -0,0 +1,31 @@
|
||||
{{ define "main" }}
|
||||
{{ range .Paginator.Pages.ByTitle }}
|
||||
<article class="gdoc-post">
|
||||
<header class="gdoc-post__header">
|
||||
<h1 class="gdoc-post__title">
|
||||
<a href="{{ .RelPermalink }}">{{ partial "utils/title" . }}</a>
|
||||
</h1>
|
||||
</header>
|
||||
|
||||
<footer class="gdoc-post__meta flex align-center">
|
||||
<span class="flex align-center no-wrap">
|
||||
{{ $pageCount := len .Pages }}
|
||||
<svg class="gdoc-icon gdoc_tag"><use xlink:href="#gdoc_tag"></use></svg>
|
||||
<span class="gdoc-post__tag">
|
||||
{{ i18n "posts_count" $pageCount }}
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="flex align-center no-wrap">
|
||||
<svg class="gdoc-icon gdoc_star"><use xlink:href="#gdoc_star"></use></svg>
|
||||
<span>
|
||||
{{ $latet := index .Pages.ByDate 0 }}
|
||||
{{ with $latet }}
|
||||
<a href="{{ .RelPermalink }}">{{ partial "utils/title" . }}</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
</span>
|
||||
</footer>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
@ -0,0 +1,6 @@
|
||||
{{ if default true .Site.Params.GeekdocSearch }}
|
||||
<script defer src="{{ index (index .Site.Data.assets "search.js") "src" | relURL }}"></script>
|
||||
{{- $searchConfigFile := printf "search/%s.config.json" .Language.Lang -}}
|
||||
{{- $searchConfig := resources.Get "search/config.json" | resources.ExecuteAsTemplate $searchConfigFile . | resources.Minify -}}
|
||||
{{- $searchConfig.Publish -}}
|
||||
{{ end }}
|
@ -0,0 +1 @@
|
||||
<!-- You can add custom elements to the page header here. -->
|
@ -0,0 +1,13 @@
|
||||
<link rel="icon" type="image/svg+xml" href="{{ "favicon/favicon.svg" | relURL }}" />
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="32x32"
|
||||
href="{{ "favicon/favicon-32x32.png" | relURL }}"
|
||||
/>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/png"
|
||||
sizes="16x16"
|
||||
href="{{ "favicon/favicon-16x16.png" | relURL }}"
|
||||
/>
|
@ -0,0 +1,14 @@
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="referrer" content="no-referrer" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<meta name="color-scheme" content="light dark" />
|
||||
{{ hugo.Generator }}
|
||||
|
||||
{{ $keywords := default .Site.Params.Keywords .Keywords }}
|
||||
|
||||
{{- with partial "utils/description" . }}
|
||||
<meta name="description" content="{{ trim (. | plainify) "\n" | safeHTML }}" />
|
||||
{{- end }}
|
||||
{{- with $keywords }}
|
||||
<meta name="keywords" content="{{ delimit . "," }}" />
|
||||
{{- end }}
|
@ -0,0 +1,3 @@
|
||||
{{ partial "microformats/opengraph.html" . }}
|
||||
{{ partial "microformats/twitter_cards.html" . }}
|
||||
{{ partial "microformats/schema" . }}
|
@ -0,0 +1,70 @@
|
||||
<script src="{{ index (index .Site.Data.assets "main.js") "src" | relURL }}"></script>
|
||||
|
||||
<link
|
||||
rel="preload"
|
||||
as="font"
|
||||
href="{{ "fonts/Metropolis.woff2" | relURL }}"
|
||||
type="font/woff2"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
<link
|
||||
rel="preload"
|
||||
as="font"
|
||||
href="{{ "fonts/LiberationSans.woff2" | relURL }}"
|
||||
type="font/woff2"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
|
||||
<link
|
||||
rel="preload"
|
||||
href="{{ index (index .Site.Data.assets "main.scss") "src" | relURL }}"
|
||||
as="style"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ index (index .Site.Data.assets "main.scss") "src" | relURL }}"
|
||||
media="all"
|
||||
/>
|
||||
|
||||
<link
|
||||
rel="preload"
|
||||
href="{{ index (index .Site.Data.assets "mobile.scss") "src" | relURL }}"
|
||||
as="style"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ index (index .Site.Data.assets "mobile.scss") "src" | relURL }}"
|
||||
media="screen and (max-width: 45rem)"
|
||||
/>
|
||||
|
||||
<link
|
||||
rel="preload"
|
||||
href="{{ index (index .Site.Data.assets "print.scss") "src" | relURL }}"
|
||||
as="style"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ index (index .Site.Data.assets "print.scss") "src" | relURL }}"
|
||||
media="print"
|
||||
/>
|
||||
|
||||
<link
|
||||
rel="preload"
|
||||
href="{{ index (index .Site.Data.assets "custom.css") "src" | relURL }}"
|
||||
as="style"
|
||||
/>
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ index (index .Site.Data.assets "custom.css") "src" | relURL }}"
|
||||
media="all"
|
||||
/>
|
||||
|
||||
{{- with .OutputFormats.Get "html" }}
|
||||
{{ printf `<link href=%q rel=%q type=%q />` .Permalink .Rel .MediaType.Type | safeHTML }}
|
||||
{{- end }}
|
||||
|
||||
{{- if (default false $.Site.Params.GeekdocOverwriteHTMLBase) }}
|
||||
<base href="{{ .Site.BaseURL }}" />
|
||||
{{- end }}
|
||||
|
||||
{{ printf "<!-- %s -->" "Made with Geekdoc theme https://github.com/thegeeklab/hugo-geekdoc" | safeHTML }}
|
@ -0,0 +1 @@
|
||||
<!-- place to set your rel-me links https://microformats.org/wiki/rel-me -->
|
@ -0,0 +1,51 @@
|
||||
{{ if .Site.IsMultiLingual }}
|
||||
<span class="gdoc-language">
|
||||
<ul class="gdoc-language__selector" role="button" aria-pressed="false" tabindex="0">
|
||||
<li>
|
||||
{{ range .Site.Languages }}
|
||||
{{ if eq . $.Site.Language }}
|
||||
<span class="flex align-center">
|
||||
<svg class="gdoc-icon gdoc_language"><use xlink:href="#gdoc_language"></use></svg>
|
||||
<span>{{ .Lang | upper }}</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<ul class="gdoc-language__list">
|
||||
{{ if $.Translations }}
|
||||
{{ range $.Translations }}
|
||||
<li>
|
||||
<a
|
||||
class="flex gdoc-language__entry"
|
||||
title="{{ .Language.LanguageName }}"
|
||||
href="{{ .RelPermalink }}"
|
||||
hreflang="{{ .Lang }}"
|
||||
lang="{{ .Lang }}"
|
||||
>
|
||||
{{ .Language.LanguageName }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
{{ range .Site.Languages -}}
|
||||
{{ if ne $.Site.Language.Lang .Lang }}
|
||||
<li>
|
||||
<a
|
||||
class="flex gdoc-language__entry"
|
||||
title="{{ i18n "language_switch_no_tranlation_prefix" }} {{ .LanguageName }}"
|
||||
href="{{ .Lang | relLangURL }}"
|
||||
hreflang="{{ .Lang }}"
|
||||
lang="{{ .Lang }}"
|
||||
>
|
||||
{{ .LanguageName }}*
|
||||
</a>
|
||||
</li>
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</span>
|
||||
{{ end }}
|
@ -0,0 +1,82 @@
|
||||
{{ $current := .current }}
|
||||
{{ template "menu-file" dict "sect" .source "current" $current "site" $current.Site }}
|
||||
|
||||
|
||||
<!-- template -->
|
||||
{{ define "menu-file" }}
|
||||
{{ $current := .current }}
|
||||
{{ $site := .site }}
|
||||
|
||||
|
||||
<ul class="gdoc-nav__list">
|
||||
{{ range sort (default (seq 0) .sect) "weight" }}
|
||||
{{ $name := .name }}
|
||||
{{ if reflect.IsMap .name }}
|
||||
{{ $name = (index .name $site.Language.Lang) }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<li>
|
||||
{{ $ref := default false .ref }}
|
||||
{{ if $ref }}
|
||||
{{ $this := $site.GetPage .ref }}
|
||||
{{ $icon := default false .icon }}
|
||||
{{ $numberOfPages := (add (len $this.Pages) (len $this.Sections)) }}
|
||||
{{ $isCurrent := eq $current $this }}
|
||||
{{ $isAncestor := $this.IsAncestor $current }}
|
||||
{{ $id := substr (sha1 $this.Permalink) 0 8 }}
|
||||
{{ $doCollapse := and (isset . "sub") (or $this.Params.GeekdocCollapseSection (default false .Site.Params.GeekdocCollapseAllSections)) }}
|
||||
|
||||
{{ if or .external ($this.RelPermalink) }}
|
||||
<input
|
||||
type="checkbox"
|
||||
{{ if $doCollapse }}
|
||||
class="gdoc-nav__toggle" id="{{ printf "navtree-%s" $id }}"
|
||||
{{ if or $isCurrent $isAncestor }}checked{{ end }}
|
||||
{{ else }}
|
||||
class="hidden"
|
||||
{{ end }}
|
||||
/>
|
||||
<label
|
||||
{{ if $doCollapse }}
|
||||
for="{{ printf "navtree-%s" $id }}" class="flex justify-between align-center"
|
||||
{{ end }}
|
||||
>
|
||||
<span class="flex">
|
||||
{{ if $icon }}
|
||||
<svg class="gdoc-icon {{ .icon }}"><use xlink:href="#{{ .icon }}"></use></svg>
|
||||
{{ end }}
|
||||
<a
|
||||
href="{{ if .external }}
|
||||
{{ .ref }}
|
||||
{{- else -}}
|
||||
{{ $this.RelPermalink }}
|
||||
{{- end }}"
|
||||
class="gdoc-nav__entry{{- if not .external }}
|
||||
{{- if $isCurrent }}{{ printf " is-active" }}{{ end }}
|
||||
{{- end }}"
|
||||
>
|
||||
{{ $name }}
|
||||
</a>
|
||||
</span>
|
||||
{{ if $doCollapse }}
|
||||
<svg class="gdoc-icon toggle gdoc_keyboard_arrow_left">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_left"></use>
|
||||
</svg>
|
||||
<svg class="gdoc-icon toggle gdoc_keyboard_arrow_down hidden">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_down"></use>
|
||||
</svg>
|
||||
{{ end }}
|
||||
</label>
|
||||
{{ end }}
|
||||
{{ else }}
|
||||
<span class="flex">{{ $name }}</span>
|
||||
{{ end }}
|
||||
|
||||
{{ with .sub }}
|
||||
{{ template "menu-file" dict "sect" . "current" $current "site" $site }}
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
@ -0,0 +1,46 @@
|
||||
{{ $current := .current }}
|
||||
{{ template "menu-extra" dict "sect" .source "current" $current "site" $current.Site "target" .target }}
|
||||
|
||||
|
||||
<!-- template -->
|
||||
{{ define "menu-extra" }}
|
||||
{{ $current := .current }}
|
||||
{{ $site := .site }}
|
||||
{{ $target := .target }}
|
||||
{{ $sect := .sect }}
|
||||
|
||||
{{ range sort (default (seq 0) $sect) "weight" }}
|
||||
{{ if isset . "ref" }}
|
||||
{{ $this := $site.GetPage .ref }}
|
||||
{{ $isCurrent := eq $current $this }}
|
||||
{{ $icon := default false .icon }}
|
||||
|
||||
{{ $name := .name }}
|
||||
{{ if reflect.IsMap .name }}
|
||||
{{ $name = (index .name $site.Language.Lang) }}
|
||||
{{ end }}
|
||||
|
||||
{{ if not .icon }}
|
||||
{{ errorf "Missing 'icon' attribute in data file for '%s' menu item '%s'" $target $name }}
|
||||
{{ end }}
|
||||
|
||||
{{ if eq $target "header" }}
|
||||
<span>
|
||||
<a
|
||||
href="{{ if .external }}
|
||||
{{ .ref }}
|
||||
{{ else }}
|
||||
{{ relref $current .ref }}
|
||||
{{ end }}"
|
||||
class="gdoc-header__link"
|
||||
>
|
||||
<svg class="gdoc-icon {{ .icon }}">
|
||||
<title>{{ $name }}</title>
|
||||
<use xlink:href="#{{ .icon }}"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
@ -0,0 +1,98 @@
|
||||
{{ $current := . }}
|
||||
{{ template "tree-nav" dict "sect" .Site.Home.Sections "current" $current }}
|
||||
|
||||
|
||||
<!-- templates -->
|
||||
{{ define "tree-nav" }}
|
||||
{{ $current := .current }}
|
||||
|
||||
|
||||
<ul class="gdoc-nav__list">
|
||||
{{ $sortBy := (default "title" .current.Site.Params.GeekdocFileTreeSortBy | lower) }}
|
||||
{{ range .sect.GroupBy "Weight" }}
|
||||
{{ $rangeBy := .ByTitle }}
|
||||
|
||||
{{ if eq $sortBy "title" }}
|
||||
{{ $rangeBy = .ByTitle }}
|
||||
{{ else if eq $sortBy "linktitle" }}
|
||||
{{ $rangeBy = .ByLinkTitle }}
|
||||
{{ else if eq $sortBy "date" }}
|
||||
{{ $rangeBy = .ByDate }}
|
||||
{{ else if eq $sortBy "publishdate" }}
|
||||
{{ $rangeBy = .ByPublishDate }}
|
||||
{{ else if eq $sortBy "expirydate" }}
|
||||
{{ $rangeBy = .ByExpiryDate }}
|
||||
{{ else if eq $sortBy "lastmod" }}
|
||||
{{ $rangeBy = .ByLastmod }}
|
||||
{{ else if eq $sortBy "title_reverse" }}
|
||||
{{ $rangeBy = .ByTitle.Reverse }}
|
||||
{{ else if eq $sortBy "linktitle_reverse" }}
|
||||
{{ $rangeBy = .ByLinkTitle.Reverse }}
|
||||
{{ else if eq $sortBy "date_reverse" }}
|
||||
{{ $rangeBy = .ByDate.Reverse }}
|
||||
{{ else if eq $sortBy "publishdate_reverse" }}
|
||||
{{ $rangeBy = .ByPublishDate.Reverse }}
|
||||
{{ else if eq $sortBy "expirydate_reverse" }}
|
||||
{{ $rangeBy = .ByExpiryDate.Reverse }}
|
||||
{{ else if eq $sortBy "lastmod_reverse" }}
|
||||
{{ $rangeBy = .ByLastmod.Reverse }}
|
||||
{{ end }}
|
||||
|
||||
{{ range $rangeBy }}
|
||||
{{ if not .Params.GeekdocHidden }}
|
||||
{{ $numberOfPages := (add (len .Pages) (len .Sections)) }}
|
||||
{{ $isParent := and (ne $numberOfPages 0) (not .Params.GeekdocFlatSection) }}
|
||||
{{ $isCurrent := eq $current . }}
|
||||
{{ $isAncestor := .IsAncestor $current }}
|
||||
{{ $id := substr (sha1 .Permalink) 0 8 }}
|
||||
{{ $doCollapse := and $isParent (or .Params.GeekdocCollapseSection (default false .Site.Params.GeekdocCollapseAllSections)) }}
|
||||
|
||||
|
||||
<li>
|
||||
<input
|
||||
type="checkbox"
|
||||
{{ if $doCollapse }}
|
||||
class="gdoc-nav__toggle" id="{{ printf "navtree-%s" $id }}"
|
||||
{{ if or $isCurrent $isAncestor }}checked{{ end }}
|
||||
{{ else }}
|
||||
class="hidden"
|
||||
{{ end }}
|
||||
/>
|
||||
<label
|
||||
{{ if $doCollapse }}
|
||||
for="{{ printf "navtree-%s" $id }}" class="flex justify-between align-center"
|
||||
{{ end }}
|
||||
>
|
||||
{{ if or .Content .Params.GeekdocFlatSection }}
|
||||
<span class="flex">
|
||||
<a
|
||||
href="{{ .RelPermalink }}"
|
||||
class="gdoc-nav__entry{{- if eq $current . }}
|
||||
{{- printf " is-active" }}
|
||||
{{- end }}"
|
||||
>
|
||||
{{ partial "utils/title" . }}
|
||||
</a>
|
||||
</span>
|
||||
{{ else }}
|
||||
<span class="flex">{{ partial "utils/title" . }}</span>
|
||||
{{ end }}
|
||||
{{ if $doCollapse }}
|
||||
<svg class="gdoc-icon toggle gdoc_keyboard_arrow_left">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_left"></use>
|
||||
</svg>
|
||||
<svg class="gdoc-icon toggle gdoc_keyboard_arrow_down">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_down"></use>
|
||||
</svg>
|
||||
{{ end }}
|
||||
</label>
|
||||
|
||||
{{ if $isParent }}
|
||||
{{ template "tree-nav" dict "sect" .Pages "current" $current }}
|
||||
{{ end }}
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
@ -0,0 +1,78 @@
|
||||
{{ $current := . }}
|
||||
{{ $site := .Site }}
|
||||
{{ $current.Scratch.Set "prev" false }}
|
||||
{{ $current.Scratch.Set "getNext" false }}
|
||||
|
||||
{{ $current.Scratch.Set "nextPage" false }}
|
||||
{{ $current.Scratch.Set "prevPage" false }}
|
||||
|
||||
{{ template "menu_nextprev" dict "sect" $.Site.Data.menu.main.main "current" $current "site" $site }}
|
||||
|
||||
{{ define "menu_nextprev" }}
|
||||
{{ $current := .current }}
|
||||
{{ $site := .site }}
|
||||
|
||||
{{ range sort (default (seq 0) .sect) "weight" }}
|
||||
{{ $current.Scratch.Set "current" $current }}
|
||||
{{ $current.Scratch.Set "site" $site }}
|
||||
|
||||
{{ $ref := default false .ref }}
|
||||
{{ if $ref }}
|
||||
{{ $site := $current.Scratch.Get "site" }}
|
||||
{{ $this := $site.GetPage .ref }}
|
||||
{{ $current := $current.Scratch.Get "current" }}
|
||||
|
||||
{{ if reflect.IsMap .name }}
|
||||
{{ $current.Scratch.Set "refName" (index .name $site.Language.Lang) }}
|
||||
{{ else }}
|
||||
{{ $current.Scratch.Set "refName" .name }}
|
||||
{{ end }}
|
||||
{{ $name := $current.Scratch.Get "refName" }}
|
||||
|
||||
{{ if $current.Scratch.Get "getNext" }}
|
||||
{{ $current.Scratch.Set "nextPage" (dict "name" $name "this" $this) }}
|
||||
{{ $current.Scratch.Set "getNext" false }}
|
||||
{{ end }}
|
||||
|
||||
{{ if eq $current $this }}
|
||||
{{ $current.Scratch.Set "prevPage" ($current.Scratch.Get "prev") }}
|
||||
{{ $current.Scratch.Set "getNext" true }}
|
||||
{{ end }}
|
||||
|
||||
{{ $current.Scratch.Set "prev" (dict "name" $name "this" $this) }}
|
||||
{{ end }}
|
||||
|
||||
{{ $sub := default false .sub }}
|
||||
{{ if $sub }}
|
||||
{{ template "menu_nextprev" dict "sect" $sub "current" ($current.Scratch.Get "current") "site" ($current.Scratch.Get "site") }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $showPrevNext := (and (default true .Site.Params.GeekdocNextPrev) .Site.Params.GeekdocMenuBundle) }}
|
||||
{{ if $showPrevNext }}
|
||||
<span class="gdoc-page__nav">
|
||||
{{ with ($current.Scratch.Get "prevPage") }}
|
||||
<a
|
||||
class="gdoc-page__nav--prev flex align-center"
|
||||
href="{{ .this.RelPermalink }}"
|
||||
title="{{ .name }}"
|
||||
>
|
||||
<i class="gdoc-icon">gdoc_arrow_left_alt</i>
|
||||
{{ .name }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
<span class="gdoc-page__nav">
|
||||
{{ with ($current.Scratch.Get "nextPage") }}
|
||||
<a
|
||||
class="gdoc-page__nav--next flex align-center"
|
||||
href="{{ .this.RelPermalink }}"
|
||||
title="{{ .name }}"
|
||||
>
|
||||
{{ .name }}
|
||||
<i class="gdoc-icon">gdoc_arrow_right_alt</i>
|
||||
</a>
|
||||
{{ end }}
|
||||
</span>
|
||||
{{ end }}
|
@ -0,0 +1,44 @@
|
||||
<nav>
|
||||
{{ partial "search" . }}
|
||||
|
||||
|
||||
<section class="gdoc-nav--main">
|
||||
<h2>{{ i18n "nav_navigation" }}</h2>
|
||||
{{ if .Site.Params.GeekdocMenuBundle }}
|
||||
{{ partial "menu-bundle" (dict "current" . "source" .Site.Data.menu.main.main) }}
|
||||
{{ else }}
|
||||
{{ partial "menu-filetree" . }}
|
||||
{{ end }}
|
||||
</section>
|
||||
|
||||
{{ if and (in (slice "posts" "tags") .Section) (default false .Site.Params.GeekdocTagsToMenu) }}
|
||||
<section class="gdoc-nav--tags">
|
||||
<h2>{{ i18n "nav_tags" }}</h2>
|
||||
<ul class="gdoc-nav__list">
|
||||
{{ $currentPage := .RelPermalink }}
|
||||
{{ range $name, $taxonomy := .Site.Taxonomies.tags }}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
|
||||
<li>
|
||||
<a
|
||||
class="gdoc-nav__entry{{- if eq $currentPage .RelPermalink }}
|
||||
{{- printf " is-active" }}
|
||||
{{- end }}"
|
||||
href="{{ .RelPermalink }}"
|
||||
>
|
||||
{{ partial "utils/title" . }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
|
||||
<section class="gdoc-nav--more">
|
||||
{{ if .Site.Data.menu.more.more }}
|
||||
<h2>{{ i18n "nav_more" }}</h2>
|
||||
{{ partial "menu-bundle" (dict "current" . "source" .Site.Data.menu.more.more) }}
|
||||
{{ end }}
|
||||
</section>
|
||||
</nav>
|
@ -0,0 +1,68 @@
|
||||
{{ $isPage := or (and (ne .Type "posts") (in "section page" .Kind )) (and (eq .Type "posts") (eq .Kind "page")) }}
|
||||
|
||||
{{- if ne .Kind "home" }}
|
||||
<meta
|
||||
property="og:title"
|
||||
{{ partial "utils/title" . | printf "content=%q" | safeHTMLAttr }}
|
||||
/>
|
||||
{{- end }}
|
||||
{{- with .Site.Title }}
|
||||
<meta property="og:site_name" {{ . | printf "content=%q" | safeHTMLAttr }} />
|
||||
{{- end }}
|
||||
{{- with partial "utils/featured" . }}
|
||||
<meta property="og:image" content="{{ . }}" />
|
||||
{{- end }}
|
||||
{{- with partial "utils/description" . }}
|
||||
<meta property="og:description" content="{{ . | plainify | htmlUnescape | chomp }}" />
|
||||
{{- end }}
|
||||
<meta property="og:type" content="{{ if $isPage }}article{{ else }}website{{ end }}" />
|
||||
<meta property="og:url" content="{{ .Permalink }}" />
|
||||
{{- with .Params.audio }}
|
||||
<meta property="og:audio" content="{{ . }}" />
|
||||
{{- end }}
|
||||
{{- with .Params.locale }}
|
||||
<meta property="og:locale" 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 */}}
|
||||
{{- if .Site.Taxonomies.series }}
|
||||
{{- $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 }}
|
||||
{{- end }}
|
||||
|
||||
{{ if $isPage -}}
|
||||
{{- $iso8601 := "2006-01-02T15:04:05-07:00" -}}
|
||||
<meta property="article:section" content="{{ .Section | humanize | title }}" />
|
||||
{{- 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 }}
|
||||
|
||||
{{- /* Facebook Page Admin ID for Domain Insights */}}
|
||||
{{- with .Site.Social.facebook_admin }}
|
||||
<meta property="fb:admins" content="{{ . }}" />
|
||||
{{- end }}
|
@ -0,0 +1,70 @@
|
||||
{{ $isPage := or (and (ne .Type "posts") (in "section page" .Kind )) (and (eq .Type "posts") (eq .Kind "page")) }}
|
||||
{{- if eq .Kind "home" }}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "WebSite",
|
||||
"name": {{ .Site.Title }},
|
||||
"url": {{ .Site.BaseURL }},
|
||||
{{- with partial "utils/description" . }}
|
||||
"description": "{{ . | plainify | htmlUnescape | chomp }}",
|
||||
{{- end }}
|
||||
{{- with partial "utils/featured" . }}
|
||||
"thumbnailUrl": {{ . }},
|
||||
{{- end }}
|
||||
{{- with .Site.Params.GeekdocContentLicense }}
|
||||
"license": "{{ .name }}",
|
||||
{{- end }}
|
||||
"inLanguage": {{ .Lang }}
|
||||
}
|
||||
</script>
|
||||
{{- else if $isPage }}
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "TechArticle",
|
||||
"articleSection": "{{ .Section | humanize | title }}",
|
||||
"name": {{ partial "utils/title" . }},
|
||||
"url" : {{ .Permalink }},
|
||||
"headline": {{ partial "utils/title" . }},
|
||||
{{- with .Params.lead }}
|
||||
"alternativeHeadline": {{ . }},
|
||||
{{- end }}
|
||||
{{- with partial "utils/description" . }}
|
||||
"description": "{{ . | plainify | htmlUnescape | chomp }}",
|
||||
{{- end }}
|
||||
{{- with partial "utils/featured" . }}
|
||||
"thumbnailUrl": {{ . }},
|
||||
{{- end }}
|
||||
"wordCount" : "{{ .WordCount }}",
|
||||
{{- with .Site.Params.GeekdocContentLicense }}
|
||||
"license": "{{ .name }}",
|
||||
{{- end }}
|
||||
"inLanguage": {{ .Lang }},
|
||||
"isFamilyFriendly": "true",
|
||||
"mainEntityOfPage": {
|
||||
"@type": "WebPage",
|
||||
"@id": {{ .Permalink }}
|
||||
},
|
||||
{{- with $tags := .Params.tags }}
|
||||
"keywords" : [ {{ range $i, $tag := $tags }}{{ if $i }}, {{ end }}"{{ $tag }}" {{ end }}],
|
||||
{{- end }}
|
||||
"copyrightHolder" : "{{ .Site.Title }}",
|
||||
"copyrightYear" : "{{ .Date.Format "2006" }}",
|
||||
"dateCreated": "{{ .Date.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
|
||||
"datePublished": "{{ .PublishDate.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
|
||||
"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05.00Z" | safeJS }}",
|
||||
"publisher":{
|
||||
"@type":"Organization",
|
||||
"name": {{ .Site.Title }},
|
||||
"url": {{ .Site.BaseURL }},
|
||||
"logo": {
|
||||
"@type": "ImageObject",
|
||||
"url": {{ (default "brand.svg" .Site.Params.logo) | absURL }},
|
||||
"width":"32",
|
||||
"height":"32"
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
{{- end }}
|
@ -0,0 +1,15 @@
|
||||
{{- with partial "utils/featured" . }}
|
||||
<meta name="twitter:card" content="summary_large_image" />
|
||||
{{- else }}
|
||||
<meta name="twitter:card" content="summary" />
|
||||
{{- end }}
|
||||
<meta name="twitter:title" {{ partial "utils/title" . | printf "content=%q" | safeHTMLAttr }} />
|
||||
{{- with partial "utils/featured" . }}
|
||||
<meta property="twitter:image" content="{{ . }}" />
|
||||
{{- end }}
|
||||
{{- with partial "utils/description" . }}
|
||||
<meta name="twitter:description" content="{{ . | plainify | htmlUnescape | chomp }}" />
|
||||
{{- end }}
|
||||
{{- with .Site.Social.twitter -}}
|
||||
<meta name="twitter:site" content="@{{ . }}" />
|
||||
{{- end }}
|
@ -0,0 +1,57 @@
|
||||
{{ $geekdocRepo := default (default false .Site.Params.GeekdocRepo) .Page.Params.GeekdocRepo }}
|
||||
{{ $geekdocEditPath := default (default false .Site.Params.GeekdocEditPath) .Page.Params.GeekdocEditPath }}
|
||||
{{ if .File }}
|
||||
{{ $.Scratch.Set "geekdocFilePath" (default (path.Join (default "content" .Site.Params.contentDir) .File.Path) .Page.Params.GeekdocFilePath) }}
|
||||
{{ else }}
|
||||
{{ $.Scratch.Set "geekdocFilePath" false }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "breadcrumb" }}
|
||||
{{ $parent := .page.Parent }}
|
||||
{{ if $parent }}
|
||||
{{ $name := (partial "utils/title" $parent) }}
|
||||
{{ $position := (sub .position 1) }}
|
||||
{{ $value := (printf "<li itemprop='itemListElement' itemscope itemtype='https://schema.org/ListItem'><a itemscope itemtype='https://schema.org/WebPage' itemprop='item' itemid='%s' href='%s'><span itemprop='name'>%s</span></a><meta itemprop='position' content='%d' /></li><li> / </li>%s" $parent.RelPermalink $parent.RelPermalink $name $position .value) }}
|
||||
{{ template "breadcrumb" dict "page" $parent "value" $value "position" $position }}
|
||||
{{ else }}
|
||||
{{ .value | safeHTML }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ $showBreadcrumb := (and (default true .Page.Params.GeekdocBreadcrumb) (default true .Site.Params.GeekdocBreadcrumb)) }}
|
||||
{{ $showEdit := (and ($.Scratch.Get "geekdocFilePath") $geekdocRepo $geekdocEditPath) }}
|
||||
<div
|
||||
class="gdoc-page__header flex flex-wrap
|
||||
{{ if $showBreadcrumb }}
|
||||
justify-between
|
||||
{{ else }}
|
||||
justify-end
|
||||
{{ end }}
|
||||
{{ if not $showEdit }}hidden-mobile{{ end }}
|
||||
{{ if (and (not $showBreadcrumb) (not $showEdit)) }}hidden{{ end }}"
|
||||
itemprop="breadcrumb"
|
||||
>
|
||||
{{ if $showBreadcrumb }}
|
||||
<div>
|
||||
<svg class="gdoc-icon gdoc_path hidden-mobile"><use xlink:href="#gdoc_path"></use></svg>
|
||||
<ol class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">
|
||||
{{ $position := sub (len (split .RelPermalink "/")) 1 }}
|
||||
{{ $name := (partial "utils/title" .) }}
|
||||
{{ $value := (printf "<li itemprop='itemListElement' itemscope itemtype='https://schema.org/ListItem'><span itemprop='name'>%s</span><meta itemprop='position' content='%d' /></li>" $name $position ) }}
|
||||
{{ template "breadcrumb" dict "page" . "value" $value "position" $position }}
|
||||
</ol>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ if $showEdit }}
|
||||
<div>
|
||||
<span class="editpage">
|
||||
<svg class="gdoc-icon gdoc_code"><use xlink:href="#gdoc_code"></use></svg>
|
||||
<a
|
||||
href="{{ $geekdocRepo }}/{{ path.Join $geekdocEditPath ($.Scratch.Get "geekdocFilePath") }}"
|
||||
>
|
||||
{{ i18n "edit_page" }}
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
@ -0,0 +1,48 @@
|
||||
<span class="flex align-center no-wrap">
|
||||
<svg class="gdoc-icon gdoc_date"><use xlink:href="#gdoc_date"></use></svg>
|
||||
<span class="gdoc-post__tag">
|
||||
<time datetime="{{ .Lastmod.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}">
|
||||
{{ if .Lastmod.After (.Date.AddDate 0 0 1) }}
|
||||
{{ i18n "posts_update_prefix" }}
|
||||
{{ end }}
|
||||
{{ .Lastmod.Format "Jan 2, 2006" }}
|
||||
</time>
|
||||
</span>
|
||||
</span>
|
||||
|
||||
<span class="flex align-center no-wrap">
|
||||
<svg class="gdoc-icon gdoc_timer"><use xlink:href="#gdoc_timer"></use></svg>
|
||||
<span class="gdoc-post__tag">{{ i18n "posts_read_time" .ReadingTime }}</span>
|
||||
</span>
|
||||
|
||||
{{ $tc := 0 }}
|
||||
{{ with .Params.tags }}
|
||||
{{ range sort . }}
|
||||
{{ $name := . }}
|
||||
{{ with $.Site.GetPage (printf "/tags/%s" $name | urlize) }}
|
||||
{{ if eq $tc 0 }}
|
||||
<span class="flex align-center no-wrap">
|
||||
<svg class="gdoc-icon gdoc_bookmark"><use xlink:href="#gdoc_bookmark"></use></svg>
|
||||
{{ template "post-tag" dict "name" $name "page" . }}
|
||||
</span>
|
||||
{{ else }}
|
||||
<span class="flex align-center">
|
||||
{{ template "post-tag" dict "name" $name "page" . }}
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ $tc = (add $tc 1) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "post-tag" }}
|
||||
<span class="gdoc-post__tag gdoc-button gdoc-button--regular">
|
||||
<a
|
||||
class="gdoc-button__link"
|
||||
href="{{ .page.RelPermalink }}"
|
||||
title="{{ i18n "posts_tagged_with" .name }}"
|
||||
>
|
||||
{{ .name }}
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
@ -0,0 +1,17 @@
|
||||
{{ if default true .Site.Params.GeekdocSearch }}
|
||||
<div class="gdoc-search flex align-center">
|
||||
<svg class="gdoc-icon gdoc_search"><use xlink:href="#gdoc_search"></use></svg>
|
||||
<input
|
||||
type="text"
|
||||
id="gdoc-search-input"
|
||||
class="gdoc-search__input"
|
||||
placeholder="{{ i18n "form_placeholder_search" }}"
|
||||
aria-label="{{ i18n "form_placeholder_search" }}"
|
||||
maxlength="64"
|
||||
data-site-base-url="{{ .Site.BaseURL }}"
|
||||
data-site-lang="{{ .Site.Language.Lang }}"
|
||||
/>
|
||||
<div class="gdoc-search__spinner spinner hidden"></div>
|
||||
<ul id="gdoc-search-results" class="gdoc-search__list"></ul>
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1,45 @@
|
||||
<footer class="gdoc-footer">
|
||||
<nav class="container flex">
|
||||
<div>
|
||||
<section class="flex flex-wrap align-center">
|
||||
<span class="gdoc-footer__item gdoc-footer__item--row">
|
||||
{{ i18n "footer_build_with" | safeHTML }}
|
||||
</span>
|
||||
{{ with .Site.Params.GeekdocLegalNotice }}
|
||||
<span class="gdoc-footer__item gdoc-footer__item--row">
|
||||
<a href="{{ . | relURL }}" class="gdoc-footer__link">
|
||||
{{ i18n "footer_legal_notice" }}
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
{{ with .Site.Params.GeekdocPrivacyPolicy }}
|
||||
<span class="gdoc-footer__item gdoc-footer__item--row">
|
||||
<a href="{{ . | relURL }}" class="gdoc-footer__link">
|
||||
{{ i18n "footer_privacy_policy" }}
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</section>
|
||||
{{ with .Site.Params.GeekdocContentLicense }}
|
||||
<section class="flex flex-wrap align-center">
|
||||
<span class="gdoc-footer__item">
|
||||
{{ i18n "footer_content_license_prefix" }}
|
||||
<a href="{{ .link }}" class="gdoc-footer__link no-wrap">{{ .name }}</a>
|
||||
</span>
|
||||
</section>
|
||||
{{ end }}
|
||||
</div>
|
||||
{{ if (default true .Site.Params.GeekdocBackToTop) }}
|
||||
<div class="flex flex-25 justify-end">
|
||||
<span class="gdoc-footer__item text-right">
|
||||
<a class="gdoc-footer__link fake-link" href="#" aria-label="{{ i18n "nav_top" }}">
|
||||
<svg class="gdoc-icon gdoc_keyboard_arrow_up">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_up"></use>
|
||||
</svg>
|
||||
<span class="hidden-mobile">{{ i18n "nav_top" }}</span>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
{{ end }}
|
||||
</nav>
|
||||
</footer>
|
@ -0,0 +1,78 @@
|
||||
<header class="gdoc-header">
|
||||
<div class="container flex align-center justify-between">
|
||||
{{ if .MenuEnabled }}
|
||||
<label for="menu-control" class="gdoc-nav__control" tabindex="0">
|
||||
<svg class="gdoc-icon gdoc_menu">
|
||||
<title>{{ i18n "button_nav_open" }}</title>
|
||||
<use xlink:href="#gdoc_menu"></use>
|
||||
</svg>
|
||||
<svg class="gdoc-icon gdoc_arrow_back">
|
||||
<title>{{ i18n "button_nav_close" }}</title>
|
||||
<use xlink:href="#gdoc_arrow_back"></use>
|
||||
</svg>
|
||||
</label>
|
||||
{{ end }}
|
||||
<div>
|
||||
<a class="gdoc-brand gdoc-header__link" href="{{ .Root.Site.BaseURL }}">
|
||||
<span class="flex align-center">
|
||||
<img
|
||||
class="gdoc-brand__img"
|
||||
src="{{ (default "brand.svg" .Root.Site.Params.GeekdocLogo) | relURL }}"
|
||||
alt=""
|
||||
/>
|
||||
<span class="gdoc-brand__title">{{ .Root.Site.Title }}</span>
|
||||
</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="gdoc-menu-header">
|
||||
<span class="gdoc-menu-header__items">
|
||||
{{ if .Root.Site.Data.menu.extra.header }}
|
||||
{{ partial "menu-extra" (dict "current" .Root "source" .Root.Site.Data.menu.extra.header "target" "header") }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<span id="gdoc-color-theme">
|
||||
<svg class="gdoc-icon gdoc_brightness_dark">
|
||||
<title>{{ i18n "button_toggle_dark" }}</title>
|
||||
<use xlink:href="#gdoc_brightness_dark"></use>
|
||||
</svg>
|
||||
<svg class="gdoc-icon gdoc_brightness_light">
|
||||
<title>{{ i18n "button_toggle_dark" }}</title>
|
||||
<use xlink:href="#gdoc_brightness_light"></use>
|
||||
</svg>
|
||||
<svg class="gdoc-icon gdoc_brightness_auto">
|
||||
<title>{{ i18n "button_toggle_dark" }}</title>
|
||||
<use xlink:href="#gdoc_brightness_auto"></use>
|
||||
</svg>
|
||||
</span>
|
||||
|
||||
<span class="gdoc-menu-header__home">
|
||||
<a href="{{ .Root.Site.BaseURL }}" class="gdoc-header__link">
|
||||
<svg class="gdoc-icon gdoc_home">
|
||||
<title>{{ i18n "button_homepage" }}</title>
|
||||
<use xlink:href="#gdoc_home"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</span>
|
||||
|
||||
{{ partial "language" .Root }}
|
||||
|
||||
|
||||
<span class="gdoc-menu-header__control">
|
||||
<label for="menu-header-control">
|
||||
<svg class="gdoc-icon gdoc_keyboard_arrow_right">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_right"></use>
|
||||
<title>{{ i18n "button_menu_close" }}</title>
|
||||
</svg>
|
||||
</label>
|
||||
</span>
|
||||
</span>
|
||||
<label for="menu-header-control" class="gdoc-menu-header__control">
|
||||
<svg class="gdoc-icon gdoc_keyboard_arrow_left">
|
||||
<use xlink:href="#gdoc_keyboard_arrow_left"></use>
|
||||
<title>{{ i18n "button_menu_open" }}</title>
|
||||
</svg>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
@ -0,0 +1,4 @@
|
||||
{{ range resources.Match "sprites/*.svg" }}
|
||||
{{ printf "<!-- geekdoc include: %s -->" . | safeHTML }}
|
||||
{{ .Content | safeHTML }}
|
||||
{{ end }}
|
@ -0,0 +1,6 @@
|
||||
{{ $content := .Content }}
|
||||
|
||||
{{ $content = $content | replaceRE `<nav id="TableOfContents">\s*<ul>\s*<li>\s*<ul>` `<nav id="TableOfContents"><ul>` | replaceRE `</ul>\s*</li>\s*</ul>\s*</nav>` `</ul></nav>` | safeHTML }}
|
||||
{{ $content = $content | replaceRE `(<table>(?:.|\n)+?</table>)` `<div class="table-wrap"> ${1} </div>` | safeHTML }}
|
||||
|
||||
{{ return $content }}
|
@ -0,0 +1,14 @@
|
||||
{{ $isPage := or (and (ne .Type "posts") (in "section page" .Kind )) (and (eq .Type "posts") (eq .Kind "page")) }}
|
||||
{{ $description := "" }}
|
||||
|
||||
{{ if .Description }}
|
||||
{{ $description = .Description }}
|
||||
{{ else }}
|
||||
{{ if $isPage }}
|
||||
{{ $description = .Summary }}
|
||||
{{ else if .Site.Params.description }}
|
||||
{{ $description = .Site.Params.description }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ return $description }}
|
@ -0,0 +1,12 @@
|
||||
{{ $img := "" }}
|
||||
|
||||
{{ with $source := ($.Resources.ByType "image").GetMatch "{*feature*,*cover*,*thumbnail*}" }}
|
||||
{{ $featured := .Fill (printf "1200x630 %s" (default "Smart" .Params.anchor)) }}
|
||||
{{ $img = $featured.Permalink }}
|
||||
{{ else }}
|
||||
{{ with default $.Site.Params.images $.Params.images }}
|
||||
{{ $img = index . 0 | absURL }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ return $img }}
|
@ -0,0 +1,11 @@
|
||||
{{ $title := "" }}
|
||||
|
||||
{{ if .Title }}
|
||||
{{ $title = .Title }}
|
||||
{{ else if and .IsSection .File }}
|
||||
{{ $title = path.Base .File.Dir | humanize | title }}
|
||||
{{ else if and .IsPage .File }}
|
||||
{{ $title = .File.BaseFileName | humanize | title }}
|
||||
{{ end }}
|
||||
|
||||
{{ return $title }}
|
@ -0,0 +1,46 @@
|
||||
{{ define "main" }}
|
||||
{{ range .Paginator.Pages }}
|
||||
<article class="gdoc-markdown gdoc-post">
|
||||
<header class="gdoc-post__header">
|
||||
<h1 class="gdoc-post__title">
|
||||
<a href="{{ .RelPermalink }}">{{ partial "utils/title" . }}</a>
|
||||
</h1>
|
||||
</header>
|
||||
<section>
|
||||
{{ .Summary }}
|
||||
</section>
|
||||
<div class="gdoc-post__readmore">
|
||||
{{ if .Truncated }}
|
||||
<a
|
||||
class="flex-inline align-center fake-link"
|
||||
title="{{ i18n "posts_read_more" }}"
|
||||
href="{{ .RelPermalink }}"
|
||||
>
|
||||
{{ i18n "posts_read_more" }}
|
||||
<i class="gdoc-icon">gdoc_arrow_right_alt</i>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<footer class="gdoc-post__footer">
|
||||
<div class="flex flex-wrap align-center gdoc-post__meta">
|
||||
{{ partial "posts/metadata.html" . }}
|
||||
</div>
|
||||
</footer>
|
||||
</article>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "post-tag" }}
|
||||
<span class="gdoc-post__tag">
|
||||
<span class="gdoc-button">
|
||||
<a
|
||||
class="gdoc-button__link"
|
||||
href="{{ .page.RelPermalink }}"
|
||||
title="{{ i18n "posts_tagged_with" .name }}"
|
||||
>
|
||||
{{ .name }}
|
||||
</a>
|
||||
</span>
|
||||
</span>
|
||||
{{ end }}
|
@ -0,0 +1,13 @@
|
||||
{{ define "main" }}
|
||||
<article class="gdoc-post">
|
||||
<header class="gdoc-post__header">
|
||||
<h1 class="gdoc-post__title">{{ partial "utils/title" . }}</h1>
|
||||
<div class="flex flex-wrap align-center gdoc-post__meta gdoc-post__meta--head">
|
||||
{{ partial "posts/metadata.html" . }}
|
||||
</div>
|
||||
</header>
|
||||
<section class="gdoc-markdown">
|
||||
{{ partial "utils/content" . }}
|
||||
</section>
|
||||
</article>
|
||||
{{ end }}
|
@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Disallow: /tags/*
|
||||
|
||||
Sitemap: {{ "sitemap.xml" | absURL }}
|
@ -0,0 +1,29 @@
|
||||
{{- $ref := "" }}
|
||||
{{- $class := "" }}
|
||||
{{- $size := default "regular" (.Get "size" | lower) }}
|
||||
|
||||
{{- if not (in (slice "regular" "large") $size) }}
|
||||
{{- $size = "regular" }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "href" }}
|
||||
{{- $ref = . }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "relref" }}
|
||||
{{- $ref = relref $ . }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "class" }}
|
||||
{{- $class = . }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
<span class="gdoc-button gdoc-button--{{ $size }}{{ with $class }}{{ printf " %s" . }}{{ end }}">
|
||||
<a
|
||||
class="gdoc-button__link"
|
||||
{{- with $ref }}{{ printf " href=\"%s\"" . | safeHTMLAttr }}{{ end }}
|
||||
>
|
||||
{{ $.Inner }}
|
||||
</a>
|
||||
</span>
|
@ -0,0 +1,7 @@
|
||||
<div class="gdoc-columns flex flex-wrap flex-mobile-column">
|
||||
{{ range split .Inner "<--->" }}
|
||||
<div class="gdoc-columns__content gdoc-markdown--nested flex-even">
|
||||
{{ . | $.Page.RenderString }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
@ -0,0 +1,11 @@
|
||||
{{ $id := substr (sha1 .Inner) 0 8 }}
|
||||
<div class="gdoc-expand">
|
||||
<label class="gdoc-expand__head flex justify-between" for="{{ $id }}-{{ .Ordinal }}">
|
||||
<span>{{ default "Expand" (.Get 0) }}</span>
|
||||
<span>{{ default "↕" (.Get 1) }}</span>
|
||||
</label>
|
||||
<input id="{{ $id }}-{{ .Ordinal }}" type="checkbox" class="gdoc-expand__control hidden" />
|
||||
<div class="gdoc-markdown--nested gdoc-expand__content">
|
||||
{{ .Inner | $.Page.RenderString | htmlUnescape | safeHTML }}
|
||||
</div>
|
||||
</div>
|
@ -0,0 +1,16 @@
|
||||
{{ $type := default "note" (.Get "type") }}
|
||||
{{ $icon := .Get "icon" }}
|
||||
{{ $title := default ($type | title) (.Get "title") }}
|
||||
|
||||
|
||||
<blockquote class="gdoc-hint {{ $type | lower }}">
|
||||
<div class="gdoc-hint__title flex align-center">
|
||||
{{- with $icon -}}
|
||||
<svg class="gdoc-icon {{ . }}"><use xlink:href="#{{ . }}"></use></svg>
|
||||
<span>{{ $title }}</span>
|
||||
{{- else -}}
|
||||
<i class="fa {{ $type | lower }}" title="{{ $title }}"></i>
|
||||
{{- end -}}
|
||||
</div>
|
||||
<div class="gdoc-hint__text">{{ .Inner | $.Page.RenderString }}</div>
|
||||
</blockquote>
|
@ -0,0 +1,5 @@
|
||||
{{ $id := .Get 0 }}
|
||||
|
||||
{{- with $id -}}
|
||||
<svg class="gdoc-icon {{ . }}"><use xlink:href="#{{ . }}"></use></svg>
|
||||
{{- end -}}
|
@ -0,0 +1,44 @@
|
||||
{{ $source := ($.Page.Resources.ByType "image").GetMatch (printf "%s" (.Get "name")) }}
|
||||
{{ $customAlt := .Get "alt" }}
|
||||
{{ $customSize := .Get "size" }}
|
||||
{{ $lazyLoad := default (default true $.Site.Params.GeekdocImageLazyLoading) (.Get "lazy") }}
|
||||
|
||||
{{ with $source }}
|
||||
{{ $caption := default .Title $customAlt }}
|
||||
|
||||
{{ $tiny := (.Resize "320x").Permalink }}
|
||||
{{ $small := (.Resize "600x").Permalink }}
|
||||
{{ $medium := (.Resize "1200x").Permalink }}
|
||||
{{ $large := (.Resize "1800x").Permalink }}
|
||||
|
||||
{{ $size := dict "tiny" $tiny "small" $small "medium" $medium "large" $large }}
|
||||
|
||||
|
||||
<div class="flex justify-center">
|
||||
<figure class="gdoc-markdown__figure">
|
||||
<a class="gdoc-markdown__link--raw" href="{{ .Permalink }}">
|
||||
<picture>
|
||||
<source
|
||||
{{ with $customSize }}
|
||||
srcset="{{ index $size $customSize }}"
|
||||
{{ else }}
|
||||
srcset="{{ $size.small }} 600w, {{ $size.medium }} 1200w" sizes="100vw"
|
||||
{{ end }}
|
||||
/>
|
||||
<img
|
||||
{{ if $lazyLoad }}
|
||||
loading="lazy"
|
||||
{{ end }}
|
||||
src="{{ $size.large }}"
|
||||
alt="{{ $caption }}"
|
||||
/>
|
||||
</picture>
|
||||
</a>
|
||||
{{ with $caption -}}
|
||||
<figcaption>
|
||||
{{ . }}{{ with $source.Params.credits }}({{ . | $.Page.RenderString }}){{ end }}
|
||||
</figcaption>
|
||||
{{- end }}
|
||||
</figure>
|
||||
</div>
|
||||
{{ end }}
|
@ -0,0 +1,18 @@
|
||||
{{ $file := .Get "file" }}
|
||||
{{ $page := .Site.GetPage $file }}
|
||||
{{ $type := .Get "type" }}
|
||||
{{ $language := .Get "language" }}
|
||||
{{ $options :=.Get "options" }}
|
||||
|
||||
|
||||
<div class="gdoc-include">
|
||||
{{- if (.Get "language") -}}
|
||||
{{- highlight ($file | readFile) $language (default "linenos=table" $options) -}}
|
||||
{{- else if eq $type "html" -}}
|
||||
{{- $file | readFile | safeHTML -}}
|
||||
{{- else if eq $type "page" -}}
|
||||
{{- with $page }}{{ .Content }}{{ end -}}
|
||||
{{- else -}}
|
||||
{{- $file | readFile | $.Page.RenderString -}}
|
||||
{{- end -}}
|
||||
</div>
|
@ -0,0 +1,18 @@
|
||||
<!-- prettier-ignore-start -->
|
||||
{{ if not (.Page.Scratch.Get "katex") }}
|
||||
<!-- Include katex only first time -->
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="{{ index (index .Site.Data.assets "katex.css") "src" | relURL }}"
|
||||
/>
|
||||
<script defer src="{{ index (index .Site.Data.assets "katex.js") "src" | relURL }}"></script>
|
||||
{{ .Page.Scratch.Set "katex" true }}
|
||||
{{ end }}
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<span class="gdoc-katex {{ with .Get "class" }}{{ . }}{{ end }}">
|
||||
{{ cond (in .Params "display") "\\[" "\\(" -}}
|
||||
{{- trim .Inner "\n" -}}
|
||||
{{- cond (in .Params "display") "\\]" "\\)" -}}
|
||||
</span>
|
||||
{{- /* Drop trailing newlines */ -}}
|
@ -0,0 +1,11 @@
|
||||
<!-- prettier-ignore-start -->
|
||||
{{ if not (.Page.Scratch.Get "mermaid") }}
|
||||
<!-- Include mermaid only first time -->
|
||||
<script defer src="{{ index (index .Site.Data.assets "mermaid.js") "src" | relURL }}"></script>
|
||||
{{ .Page.Scratch.Set "mermaid" true }}
|
||||
{{ end }}
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<pre class="gdoc-mermaid mermaid{{ with .Get "class" }}{{ printf " %s" . }}{{ end }}">
|
||||
{{- .Inner -}}
|
||||
</pre>
|
@ -0,0 +1,49 @@
|
||||
{{- $name := .Get "name" -}}
|
||||
|
||||
{{- if .Site.Data.properties }}
|
||||
<dl class="gdoc-props">
|
||||
{{- with (index .Site.Data.properties (split $name ".")) }}
|
||||
{{- range $key, $value := .properties }}
|
||||
<dt class="flex flex-wrap align-center gdoc-props__meta">
|
||||
<span class="gdoc-props__title">{{ $key }}</span>
|
||||
{{- if $value.required }}
|
||||
<span class="gdoc-props__tag warning">{{ i18n "propertylist_required" | lower }}</span>
|
||||
{{ else }}
|
||||
<span class="gdoc-props__tag tip">{{ i18n "propertylist_optional" | lower }}</span>
|
||||
{{- end }}
|
||||
{{- with $value.type }}
|
||||
<span class="gdoc-props__tag note">{{ . }}</span>
|
||||
{{- end }}
|
||||
|
||||
{{- with $value.tags }}
|
||||
{{- $tags := . }}
|
||||
{{- if reflect.IsMap $tags }}
|
||||
{{- $tags = (index $tags $.Site.Language.Lang) }}
|
||||
{{- end }}
|
||||
{{- range $tags }}
|
||||
<span class="gdoc-props__tag">{{ . }}</span>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</dt>
|
||||
<dd>
|
||||
<div class="gdoc-props__description">
|
||||
{{- with $value.description }}
|
||||
{{- $desc := . }}
|
||||
{{- if reflect.IsMap $desc }}
|
||||
{{- $desc = (index $desc $.Site.Language.Lang) }}
|
||||
{{- end }}
|
||||
|
||||
{{ $desc | $.Page.RenderString }}
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="gdoc-props__default">
|
||||
{{- with default "none" ($value.defaultValue | string) }}
|
||||
<span>{{ i18n "propertylist_default" | title }}:</span>
|
||||
<span>{{ . }}</span>
|
||||
{{- end }}
|
||||
</div>
|
||||
</dd>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</dl>
|
||||
{{- end }}
|
@ -0,0 +1,12 @@
|
||||
{{ if .Parent }}
|
||||
{{ $name := .Get 0 }}
|
||||
{{ $group := printf "tabs-%s" (.Parent.Get 0) }}
|
||||
|
||||
{{ if not (.Parent.Scratch.Get $group) }}
|
||||
{{ .Parent.Scratch.Set $group slice }}
|
||||
{{ end }}
|
||||
|
||||
{{ .Parent.Scratch.Add $group (dict "Name" $name "Content" .Inner) }}
|
||||
{{ else }}
|
||||
{{ errorf "%q: 'tab' shortcode must be inside 'tabs' shortcode" .Page.Path }}
|
||||
{{ end }}
|
@ -0,0 +1,22 @@
|
||||
{{ if .Inner }}{{ end }}
|
||||
{{ $id := .Get 0 }}
|
||||
{{ $group := printf "tabs-%s" $id }}
|
||||
|
||||
|
||||
<div class="gdoc-tabs">
|
||||
{{ range $index, $tab := .Scratch.Get $group }}
|
||||
<input
|
||||
type="radio"
|
||||
class="gdoc-tabs__control hidden"
|
||||
name="{{ $group }}"
|
||||
id="{{ printf "%s-%d" $group $index }}"
|
||||
{{ if not $index }}checked="checked"{{ end }}
|
||||
/>
|
||||
<label for="{{ printf "%s-%d" $group $index }}" class="gdoc-tabs__label">
|
||||
{{ $tab.Name }}
|
||||
</label>
|
||||
<div class="gdoc-markdown--nested gdoc-tabs__content">
|
||||
{{ .Content | $.Page.RenderString }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
@ -0,0 +1,39 @@
|
||||
{{- $tocLevels := default (default 6 .Site.Params.GeekdocToC) .Page.Params.GeekdocToC }}
|
||||
|
||||
{{- if $tocLevels }}
|
||||
<div class="gdoc-toc gdoc-toc__level--{{ $tocLevels }}">
|
||||
{{ template "toc-tree" dict "sect" .Page.Pages }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
|
||||
<!-- templates -->
|
||||
{{- define "toc-tree" }}
|
||||
<ul>
|
||||
{{- range .sect.GroupBy "Weight" }}
|
||||
{{- range .ByTitle }}
|
||||
{{- if or (not .Params.GeekdocHidden) (not (default true .Params.GeekdocHiddenTocTree)) }}
|
||||
<li>
|
||||
{{- if or .Content .Params.GeekdocFlatSection }}
|
||||
<span>
|
||||
<a href="{{ .RelPermalink }}" class="gdoc-toc__entry">
|
||||
{{- partial "utils/title" . }}{{ with .Params.GeekdocDescription }}:{{ end }}
|
||||
</a>
|
||||
{{- with .Params.GeekdocDescription }}{{ . }}{{ end }}
|
||||
</span>
|
||||
{{- else -}}
|
||||
<span>
|
||||
{{- partial "utils/title" . }}{{ with .Params.GeekdocDescription }}: {{ . }}{{ end }}
|
||||
</span>
|
||||
{{- end -}}
|
||||
|
||||
{{- $numberOfPages := (add (len .Pages) (len .Sections)) }}
|
||||
{{- if and (ne $numberOfPages 0) (not .Params.GeekdocFlatSection) }}
|
||||
{{- template "toc-tree" dict "sect" .Pages }}
|
||||
{{- end }}
|
||||
</li>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</ul>
|
||||
{{- end }}
|
@ -0,0 +1,13 @@
|
||||
{{- $format := default "html" (.Get "format") }}
|
||||
{{- $tocLevels := default (default 6 .Site.Params.GeekdocToC) .Page.Params.GeekdocToC }}
|
||||
|
||||
{{- if and $tocLevels .Page.TableOfContents -}}
|
||||
{{- if not (eq ($format | lower) "raw") -}}
|
||||
<div class="gdoc-toc gdoc-toc__level--{{ $tocLevels }}">
|
||||
{{ .Page.TableOfContents }}
|
||||
<hr />
|
||||
</div>
|
||||
{{- else -}}
|
||||
{{ .Page.TableOfContents }}
|
||||
{{- end -}}
|
||||
{{- end -}}
|
88
web/flamenco-io-site/themes/hugo-geekdoc/static/brand.svg
Normal file
@ -0,0 +1,88 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="128.54926mm"
|
||||
height="128.54977mm"
|
||||
viewBox="0 0 128.54926 128.54977"
|
||||
version="1.1"
|
||||
id="svg4543"
|
||||
inkscape:export-filename="/home/rknet/rkau2905/Bilder/favicon-32.png"
|
||||
inkscape:export-xdpi="6.3228416"
|
||||
inkscape:export-ydpi="6.3228416"
|
||||
inkscape:version="0.92.4 (unknown)"
|
||||
sodipodi:docname="geekdoc_invert.svg">
|
||||
<defs
|
||||
id="defs4537" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.1503906"
|
||||
inkscape:cx="159.02327"
|
||||
inkscape:cy="275.63348"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="g5186"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1600"
|
||||
inkscape:window-height="844"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="28"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata4540">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Ebene 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-39.442039,-40.637613)">
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
id="layer2"
|
||||
inkscape:label="Layer 1"
|
||||
style="display:none">
|
||||
<rect
|
||||
style="fill:#666666;fill-opacity:1;stroke-width:0.27813107"
|
||||
id="rect831"
|
||||
width="142.59648"
|
||||
height="143.05647"
|
||||
x="36.912102"
|
||||
y="37.170635" />
|
||||
</g>
|
||||
<g
|
||||
id="g5186"
|
||||
transform="translate(1.0583346,1.851866)">
|
||||
<path
|
||||
id="path5105"
|
||||
d="M 388,146.5918 A 242.92773,242.92871 0 0 0 145.07227,389.51953 242.92773,242.92871 0 0 0 388,632.44922 242.92773,242.92871 0 0 0 630.92773,389.51953 242.92773,242.92871 0 0 0 388,146.5918 Z m 0,10 A 232.92773,232.92871 0 0 1 620.92773,389.51953 232.92773,232.92871 0 0 1 388,622.44922 232.92773,232.92871 0 0 1 155.07227,389.51953 232.92773,232.92871 0 0 1 388,156.5918 Z"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:1.12989867"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="scale(0.26458333)" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke-width:0.29306456"
|
||||
d="m 102.65833,40.051097 a 63.008755,63.00902 0 0 0 -63.008753,63.009283 63.008755,63.00902 0 0 0 63.008753,63.00876 63.008755,63.00902 0 0 0 63.00876,-63.00876 63.008755,63.00902 0 0 0 -63.00876,-63.009283 z m -39.513148,32.79431 h 79.026298 a 4.3907643,6.0435574 0 1 1 0,12.086202 H 63.145182 a 4.3907643,6.0435574 0 1 1 0,-12.086202 z m 0,24.171874 h 79.026298 a 4.3907643,6.0435574 0 1 1 0,12.086199 H 63.145182 a 4.3907643,6.0435574 0 1 1 0,-12.086199 z m -0.594905,24.171869 h 53.247233 a 3.8037628,6.0435574 0 1 1 0,12.08621 H 62.550277 a 3.8037628,6.0435574 0 1 1 0,-12.08621 z"
|
||||
id="ellipse5130"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 3.5 KiB |
@ -0,0 +1 @@
|
||||
/* You can add custom styles here. */
|
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 18 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 30 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 34 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 5.8 KiB |
After Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 7.2 KiB |
After Width: | Height: | Size: 8.9 KiB |
After Width: | Height: | Size: 9.4 KiB |
After Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 3.2 KiB |
After Width: | Height: | Size: 4.0 KiB |
After Width: | Height: | Size: 4.2 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 77 KiB |
After Width: | Height: | Size: 45 KiB |