production build from commit xxx
|
@ -0,0 +1,23 @@
|
|||
# Changelog
|
||||
|
||||
{{ range .Versions -}}
|
||||
## {{ if .Tag.Previous }}[{{ .Tag.Name }}]({{ $.Info.RepositoryURL }}/compare/{{ .Tag.Previous.Name }}...{{ .Tag.Name }}){{ else }}{{ .Tag.Name }}{{ end }} ({{ datetime "2006-01-02" .Tag.Date }})
|
||||
|
||||
{{ range .CommitGroups -}}
|
||||
### {{ .Title }}
|
||||
|
||||
{{ range .Commits -}}
|
||||
- {{ if .Scope }}**{{ .Scope }}:** {{ end }}{{ (regexReplaceAll "(.*)/issues/(.*)" (regexReplaceAll "(Co-\\w*-by.*)" .Subject "") "${1}/pull/${2}") | trim }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
|
||||
{{- if .NoteGroups -}}
|
||||
{{ range .NoteGroups -}}
|
||||
### {{ .Title }}
|
||||
|
||||
{{ range .Notes }}
|
||||
{{ .Body }}
|
||||
{{ end }}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
||||
{{ end -}}
|
|
@ -0,0 +1,25 @@
|
|||
style: github
|
||||
template: CHANGELOG.tpl.md
|
||||
info:
|
||||
title: CHANGELOG
|
||||
repository_url: https://github.com/thegeeklab/hugo-geekdoc
|
||||
options:
|
||||
commit_groups:
|
||||
title_maps:
|
||||
feat: Features
|
||||
fix: Bug Fixes
|
||||
perf: Performance Improvements
|
||||
refactor: Code Refactoring
|
||||
chore: Others
|
||||
test: Testing
|
||||
ci: CI Pipeline
|
||||
docs: Documentation
|
||||
header:
|
||||
pattern: "^(\\w*)(?:\\(([\\w\\$\\.\\-\\*\\s]*)\\))?\\:\\s(.*)$"
|
||||
pattern_maps:
|
||||
- Type
|
||||
- Scope
|
||||
- Subject
|
||||
notes:
|
||||
keywords:
|
||||
- BREAKING CHANGE
|
|
@ -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 }}
|
||||
]
|
|
@ -0,0 +1,498 @@
|
|||
{
|
||||
"main.js": {
|
||||
"src": "js/main-15838548.bundle.min.js",
|
||||
"integrity": "sha512-NXftHW6heszVci06QH+n3ioSugIt4QD3iGGPo2Q+Cyri501Gn29CLYumZ8oZYZpSiMe6DRCTYgn99YuUFE3+oA=="
|
||||
},
|
||||
"mermaid.js": {
|
||||
"src": "js/mermaid-71c664cc.bundle.min.js",
|
||||
"integrity": "sha512-xaZ1QkWVi9OyWnu01I+4Aj4+X8J1f2ry1EoXYc9mn5gguMu4dugn++gxtjRD2t5w/ziw7odCD8ouRM3FjXJSIg=="
|
||||
},
|
||||
"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-0f8b4fc3.chunk.min.js": {
|
||||
"src": "js/273-0f8b4fc3.chunk.min.js",
|
||||
"integrity": "sha512-O4HqmC4S3ZQjLkgoql5qv92CjugR/Q8UTHGwdZjf1doBvjCCYzBcgEKoJRzzvVM47fS+clt8qKDJOi7Umfw+Jg=="
|
||||
},
|
||||
"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-33f7b719.min.css",
|
||||
"integrity": "sha512-dAc7oyDv8UnhrvZYBdLUWBkTHss5jAQqWfgrfUcAR8jD7aL4s6ikr+3EFmFnQxQEOD+C/BRl1PIwomUDtPzjmw=="
|
||||
},
|
||||
"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-5btjmOv8fXYQHEkd2cpIV6NYnU82rbC09R7TVtwAwPIgoU/R5Pucq5W0Oj2NZRvWLY6ii8e3cNXtednZ9Gp9mw=="
|
||||
},
|
||||
"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-J95XHIfN8rOOU5Jo38cRiKw8UzZx1tKaroTMHohKvke7gRNE91fpt9Q6YSocgpZw8r2B8A5OtY8lpFIfh2Q/wQ=="
|
||||
},
|
||||
"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=="
|
||||
}
|
||||
}
|
|
@ -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
|
|
@ -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
|
|
@ -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
|
|
@ -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: 默认值
|
After Width: | Height: | Size: 225 KiB |
After Width: | Height: | Size: 508 KiB |
After Width: | Height: | Size: 130 KiB |
|
@ -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,27 @@
|
|||
{{ $ref := "" }}
|
||||
{{ $target := "" }}
|
||||
{{ $size := default "regular" (.Get "size" | lower) }}
|
||||
|
||||
{{ if not (in (slice "regular" "large") $size) }}
|
||||
{{ $size = "regular" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with .Get "href" }}
|
||||
{{ $ref = . }}
|
||||
{{ $target = "_blank" }}
|
||||
{{ end }}
|
||||
|
||||
{{ with .Get "relref" }}
|
||||
{{ $ref = relref $ . }}
|
||||
{{ end }}
|
||||
|
||||
|
||||
<span class="gdoc-button gdoc-button--{{ $size }}{{ with .Get "class" }}{{ . }}{{ end }}">
|
||||
<a
|
||||
{{ with $ref }}href="{{ . }}"{{ end }}
|
||||
{{ with $target }}target="{{ . }}"{{ end }}
|
||||
class="gdoc-button__link"
|
||||
>
|
||||
{{ $.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 -}}
|
|
@ -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 |
After Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 86 KiB |
After Width: | Height: | Size: 54 KiB |
After Width: | Height: | Size: 129 KiB |
After Width: | Height: | Size: 136 KiB |
After Width: | Height: | Size: 142 KiB |
After Width: | Height: | Size: 138 KiB |
After Width: | Height: | Size: 55 KiB |