docs: add hugo site
Signed-off-by: David Karlsson <35727626+dvdksn@users.noreply.github.com>
This commit is contained in:
parent
f7b3869062
commit
e2ae76f1f2
291 changed files with 2833 additions and 2 deletions
40
docs/themes/hugo-geekdoc/layouts/404.html
vendored
Normal file
40
docs/themes/hugo-geekdoc/layouts/404.html
vendored
Normal file
|
@ -0,0 +1,40 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ .Site.Language.Lang }}">
|
||||
<head>
|
||||
{{ partial "head/meta" . }}
|
||||
<title>{{ i18n "error_page_title" }}</title>
|
||||
|
||||
{{ partial "head/favicons" . }}
|
||||
{{ partial "head/others" . }}
|
||||
</head>
|
||||
|
||||
<body>
|
||||
{{ partial "svg-icon-symbols" . }}
|
||||
|
||||
|
||||
<div class="wrapper">
|
||||
<input type="checkbox" class="hidden" id="menu-header-control" />
|
||||
|
||||
{{ partial "site-header" (dict "Root" . "MenuEnabled" false) }}
|
||||
|
||||
|
||||
<main class="gdoc-error flex-even">
|
||||
<div class="flex align-center justify-center">
|
||||
<div class="gdoc-error__icon">
|
||||
<svg class="gdoc-icon gdoc_cloud_off"><use xlink:href="#gdoc_cloud_off"></use></svg>
|
||||
</div>
|
||||
<div class="gdoc-error__message">
|
||||
<div class="gdoc-error__line gdoc-error__title">{{ i18n "error_message_title" }}</div>
|
||||
<div class="gdoc-error__line gdoc-error__code">{{ i18n "error_message_code" }}</div>
|
||||
<div class="gdoc-error__line gdoc-error__help">
|
||||
{{ i18n "error_message_text" .Site.BaseURL | safeHTML }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
|
||||
{{ partial "site-footer" . }}
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
11
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-codeblock-mermaid.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-codeblock-mermaid.html
vendored
Normal file
|
@ -0,0 +1,11 @@
|
|||
<!-- prettier-ignore-start -->
|
||||
{{ if not (.Page.Scratch.Get "mermaid") }}
|
||||
<!-- Include mermaid only first time -->
|
||||
<script defer src="{{ index (index .Page.Site.Data.assets "mermaid.js") "src" | relURL }}"></script>
|
||||
{{ .Page.Scratch.Set "mermaid" true }}
|
||||
{{ end }}
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<pre class="gdoc-mermaid mermaid text-center">
|
||||
{{- .Inner -}}
|
||||
</pre>
|
27
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-heading.html
vendored
Normal file
27
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-heading.html
vendored
Normal file
|
@ -0,0 +1,27 @@
|
|||
{{- $showAnchor := (and (default true .Page.Params.geekdocAnchor) (default true .Page.Site.Params.geekdocAnchor)) -}}
|
||||
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
{{- if $showAnchor -}}
|
||||
<div class="flex align-center gdoc-page__anchorwrap">
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" {{- with .Attributes.class }}
|
||||
class="{{ . }}"
|
||||
{{- end }}
|
||||
>
|
||||
{{ .Text | safeHTML }}
|
||||
</h{{ .Level }}>
|
||||
<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>
|
||||
</div>
|
||||
{{- else -}}
|
||||
<div class="gdoc-page__anchorwrap">
|
||||
<h{{ .Level }} id="{{ .Anchor | safeURL }}" {{- with .Attributes.class }}
|
||||
class="{{ . }}"
|
||||
{{- end }}
|
||||
>
|
||||
{{ .Text | safeHTML }}
|
||||
</h{{ .Level }}>
|
||||
</div>
|
||||
{{- end -}}
|
||||
<!-- prettier-ignore-end -->
|
6
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-image.html
vendored
Normal file
6
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-image.html
vendored
Normal file
|
@ -0,0 +1,6 @@
|
|||
<img
|
||||
src="{{ .Destination | safeURL }}"
|
||||
alt="{{ .Text }}"
|
||||
{{ with .Title }}title="{{ . }}"{{ end }}
|
||||
/>
|
||||
{{- /* Drop trailing newlines */ -}}
|
14
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-link.html
vendored
Normal file
14
docs/themes/hugo-geekdoc/layouts/_default/_markup/render-link.html
vendored
Normal file
|
@ -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 }}{{ printf "title=\"%s\"" . | safeHTMLAttr }}{{- end }}
|
||||
>
|
||||
{{- .Text | safeHTML -}}
|
||||
</a>
|
||||
{{- /* Drop trailing newlines */ -}}
|
60
docs/themes/hugo-geekdoc/layouts/_default/baseof.html
vendored
Normal file
60
docs/themes/hugo-geekdoc/layouts/_default/baseof.html
vendored
Normal file
|
@ -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>
|
11
docs/themes/hugo-geekdoc/layouts/_default/list.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/_default/list.html
vendored
Normal file
|
@ -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 }}
|
11
docs/themes/hugo-geekdoc/layouts/_default/single.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/_default/single.html
vendored
Normal file
|
@ -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 }}
|
49
docs/themes/hugo-geekdoc/layouts/_default/taxonomy.html
vendored
Normal file
49
docs/themes/hugo-geekdoc/layouts/_default/taxonomy.html
vendored
Normal file
|
@ -0,0 +1,49 @@
|
|||
{{ 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 }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ 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 }}
|
32
docs/themes/hugo-geekdoc/layouts/_default/terms.html
vendored
Normal file
32
docs/themes/hugo-geekdoc/layouts/_default/terms.html
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
{{ 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 }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
6
docs/themes/hugo-geekdoc/layouts/partials/foot.html
vendored
Normal file
6
docs/themes/hugo-geekdoc/layouts/partials/foot.html
vendored
Normal file
|
@ -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 }}
|
1
docs/themes/hugo-geekdoc/layouts/partials/head/custom.html
vendored
Normal file
1
docs/themes/hugo-geekdoc/layouts/partials/head/custom.html
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
<!-- You can add custom elements to the page header here. -->
|
13
docs/themes/hugo-geekdoc/layouts/partials/head/favicons.html
vendored
Normal file
13
docs/themes/hugo-geekdoc/layouts/partials/head/favicons.html
vendored
Normal file
|
@ -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 }}"
|
||||
/>
|
14
docs/themes/hugo-geekdoc/layouts/partials/head/meta.html
vendored
Normal file
14
docs/themes/hugo-geekdoc/layouts/partials/head/meta.html
vendored
Normal file
|
@ -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 }}
|
3
docs/themes/hugo-geekdoc/layouts/partials/head/microformats.html
vendored
Normal file
3
docs/themes/hugo-geekdoc/layouts/partials/head/microformats.html
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
{{ partial "microformats/opengraph.html" . }}
|
||||
{{ partial "microformats/twitter_cards.html" . }}
|
||||
{{ partial "microformats/schema" . }}
|
73
docs/themes/hugo-geekdoc/layouts/partials/head/others.html
vendored
Normal file
73
docs/themes/hugo-geekdoc/layouts/partials/head/others.html
vendored
Normal file
|
@ -0,0 +1,73 @@
|
|||
{{- if default true .Site.Params.geekdocDarkModeToggle }}
|
||||
<script src="{{ index (index .Site.Data.assets "colortheme.js") "src" | relURL }}"></script>
|
||||
{{- end }}
|
||||
<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 }}
|
1
docs/themes/hugo-geekdoc/layouts/partials/head/rel-me.html
vendored
Normal file
1
docs/themes/hugo-geekdoc/layouts/partials/head/rel-me.html
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
<!-- place to set your rel-me links https://microformats.org/wiki/rel-me -->
|
51
docs/themes/hugo-geekdoc/layouts/partials/language.html
vendored
Normal file
51
docs/themes/hugo-geekdoc/layouts/partials/language.html
vendored
Normal file
|
@ -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 }}
|
87
docs/themes/hugo-geekdoc/layouts/partials/menu-bundle.html
vendored
Normal file
87
docs/themes/hugo-geekdoc/layouts/partials/menu-bundle.html
vendored
Normal file
|
@ -0,0 +1,87 @@
|
|||
{{ $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)) }}
|
||||
|
||||
{{ $anchor := default "" .anchor }}
|
||||
{{ if $anchor }}
|
||||
{{ $anchor = printf "#%s" $anchor }}
|
||||
{{ end }}
|
||||
|
||||
{{ 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 -}}
|
||||
{{ path.Join $this.RelPermalink $anchor }}
|
||||
{{- 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 }}
|
46
docs/themes/hugo-geekdoc/layouts/partials/menu-extra.html
vendored
Normal file
46
docs/themes/hugo-geekdoc/layouts/partials/menu-extra.html
vendored
Normal file
|
@ -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 }}
|
98
docs/themes/hugo-geekdoc/layouts/partials/menu-filetree.html
vendored
Normal file
98
docs/themes/hugo-geekdoc/layouts/partials/menu-filetree.html
vendored
Normal file
|
@ -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 }}
|
78
docs/themes/hugo-geekdoc/layouts/partials/menu-nextprev.html
vendored
Normal file
78
docs/themes/hugo-geekdoc/layouts/partials/menu-nextprev.html
vendored
Normal file
|
@ -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 }}
|
44
docs/themes/hugo-geekdoc/layouts/partials/menu.html
vendored
Normal file
44
docs/themes/hugo-geekdoc/layouts/partials/menu.html
vendored
Normal file
|
@ -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>
|
68
docs/themes/hugo-geekdoc/layouts/partials/microformats/opengraph.html
vendored
Normal file
68
docs/themes/hugo-geekdoc/layouts/partials/microformats/opengraph.html
vendored
Normal file
|
@ -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 }}
|
70
docs/themes/hugo-geekdoc/layouts/partials/microformats/schema.html
vendored
Normal file
70
docs/themes/hugo-geekdoc/layouts/partials/microformats/schema.html
vendored
Normal file
|
@ -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 }}
|
15
docs/themes/hugo-geekdoc/layouts/partials/microformats/twitter_cards.html
vendored
Normal file
15
docs/themes/hugo-geekdoc/layouts/partials/microformats/twitter_cards.html
vendored
Normal file
|
@ -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 }}
|
57
docs/themes/hugo-geekdoc/layouts/partials/page-header.html
vendored
Normal file
57
docs/themes/hugo-geekdoc/layouts/partials/page-header.html
vendored
Normal file
|
@ -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 (strings.TrimPrefix hugo.WorkingDir .File.Filename) .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>
|
22
docs/themes/hugo-geekdoc/layouts/partials/pagination.html
vendored
Normal file
22
docs/themes/hugo-geekdoc/layouts/partials/pagination.html
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
{{ $pag := $.Paginator }}
|
||||
|
||||
|
||||
<nav class="gdoc-paging flex flex-even align-center" role="navigation">
|
||||
<div class="gdoc-paging__item gdoc-paging__item--prev">
|
||||
{{ if $pag.HasPrev }}
|
||||
<a class="flex-inline align-center fake-link no-wrap" href="{{ $pag.Prev.URL }}">
|
||||
<i class="gdoc-icon">gdoc_keyboard_arrow_left</i>
|
||||
{{ i18n "pagination_page_prev" | upper }}
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="gdoc-paging__state">{{ i18n "pagination_page_state" $pag }}</div>
|
||||
<div class="gdoc-paging__item gdoc-paging__item--next">
|
||||
{{ if $pag.HasNext }}
|
||||
<a class="flex-inline align-center fake-link no-wrap" href="{{ $pag.Next.URL }}">
|
||||
{{ i18n "pagination_page_next" | upper }}
|
||||
<i class="gdoc-icon">gdoc_keyboard_arrow_right</i>
|
||||
</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</nav>
|
48
docs/themes/hugo-geekdoc/layouts/partials/posts/metadata.html
vendored
Normal file
48
docs/themes/hugo-geekdoc/layouts/partials/posts/metadata.html
vendored
Normal file
|
@ -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 }}
|
16
docs/themes/hugo-geekdoc/layouts/partials/search.html
vendored
Normal file
16
docs/themes/hugo-geekdoc/layouts/partials/search.html
vendored
Normal file
|
@ -0,0 +1,16 @@
|
|||
{{ 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 }}"
|
||||
/>
|
||||
<ul id="gdoc-search-results" class="gdoc-search__list"></ul>
|
||||
</div>
|
||||
{{ end }}
|
45
docs/themes/hugo-geekdoc/layouts/partials/site-footer.html
vendored
Normal file
45
docs/themes/hugo-geekdoc/layouts/partials/site-footer.html
vendored
Normal file
|
@ -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>
|
78
docs/themes/hugo-geekdoc/layouts/partials/site-header.html
vendored
Normal file
78
docs/themes/hugo-geekdoc/layouts/partials/site-header.html
vendored
Normal file
|
@ -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>
|
4
docs/themes/hugo-geekdoc/layouts/partials/svg-icon-symbols.html
vendored
Normal file
4
docs/themes/hugo-geekdoc/layouts/partials/svg-icon-symbols.html
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
{{ range resources.Match "sprites/*.svg" }}
|
||||
{{ printf "<!-- geekdoc include: %s -->" . | safeHTML }}
|
||||
{{ .Content | safeHTML }}
|
||||
{{ end }}
|
6
docs/themes/hugo-geekdoc/layouts/partials/utils/content.html
vendored
Normal file
6
docs/themes/hugo-geekdoc/layouts/partials/utils/content.html
vendored
Normal file
|
@ -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 }}
|
14
docs/themes/hugo-geekdoc/layouts/partials/utils/description.html
vendored
Normal file
14
docs/themes/hugo-geekdoc/layouts/partials/utils/description.html
vendored
Normal file
|
@ -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 }}
|
12
docs/themes/hugo-geekdoc/layouts/partials/utils/featured.html
vendored
Normal file
12
docs/themes/hugo-geekdoc/layouts/partials/utils/featured.html
vendored
Normal file
|
@ -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 }}
|
11
docs/themes/hugo-geekdoc/layouts/partials/utils/title.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/partials/utils/title.html
vendored
Normal file
|
@ -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 }}
|
47
docs/themes/hugo-geekdoc/layouts/posts/list.html
vendored
Normal file
47
docs/themes/hugo-geekdoc/layouts/posts/list.html
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
{{ 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 }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ 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 }}
|
13
docs/themes/hugo-geekdoc/layouts/posts/single.html
vendored
Normal file
13
docs/themes/hugo-geekdoc/layouts/posts/single.html
vendored
Normal file
|
@ -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 }}
|
4
docs/themes/hugo-geekdoc/layouts/robots.txt
vendored
Normal file
4
docs/themes/hugo-geekdoc/layouts/robots.txt
vendored
Normal file
|
@ -0,0 +1,4 @@
|
|||
User-agent: *
|
||||
Disallow: /tags/*
|
||||
|
||||
Sitemap: {{ "sitemap.xml" | absURL }}
|
29
docs/themes/hugo-geekdoc/layouts/shortcodes/button.html
vendored
Normal file
29
docs/themes/hugo-geekdoc/layouts/shortcodes/button.html
vendored
Normal file
|
@ -0,0 +1,29 @@
|
|||
{{- $ref := "" }}
|
||||
{{- $class := "" }}
|
||||
{{- $size := default "regular" (.Get "size" | lower) }}
|
||||
|
||||
{{- if not (in (slice "regular" "large") $size) }}
|
||||
{{- $size = "regular" }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "href" }}
|
||||
{{- $ref = . }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "relref" }}
|
||||
{{- $ref = relref $ . }}
|
||||
{{- end }}
|
||||
|
||||
{{- with .Get "class" }}
|
||||
{{- $class = . }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
<span class="gdoc-button gdoc-button--{{ $size }}{{ with $class }}{{ printf " %s" . }}{{ end }}">
|
||||
<a
|
||||
class="gdoc-button__link"
|
||||
{{- with $ref }}{{ printf " href=\"%s\"" . | safeHTMLAttr }}{{ end }}
|
||||
>
|
||||
{{ $.Inner }}
|
||||
</a>
|
||||
</span>
|
14
docs/themes/hugo-geekdoc/layouts/shortcodes/columns.html
vendored
Normal file
14
docs/themes/hugo-geekdoc/layouts/shortcodes/columns.html
vendored
Normal file
|
@ -0,0 +1,14 @@
|
|||
{{- $size := default "regular" (.Get "size" | lower) }}
|
||||
|
||||
{{- if not (in (slice "regular" "large" "small") $size) }}
|
||||
{{- $size = "regular" }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
<div class="gdoc-columns gdoc-columns--{{ $size }} flex flex-gap flex-mobile-column">
|
||||
{{- range split .Inner "<--->" }}
|
||||
<div class="gdoc-columns__content gdoc-markdown--nested flex-even">
|
||||
{{ . | $.Page.RenderString -}}
|
||||
</div>
|
||||
{{- end }}
|
||||
</div>
|
11
docs/themes/hugo-geekdoc/layouts/shortcodes/expand.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/shortcodes/expand.html
vendored
Normal file
|
@ -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 }}
|
||||
</div>
|
||||
</div>
|
16
docs/themes/hugo-geekdoc/layouts/shortcodes/hint.html
vendored
Normal file
16
docs/themes/hugo-geekdoc/layouts/shortcodes/hint.html
vendored
Normal file
|
@ -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>
|
5
docs/themes/hugo-geekdoc/layouts/shortcodes/icon.html
vendored
Normal file
5
docs/themes/hugo-geekdoc/layouts/shortcodes/icon.html
vendored
Normal file
|
@ -0,0 +1,5 @@
|
|||
{{ $id := .Get 0 }}
|
||||
|
||||
{{- with $id -}}
|
||||
<svg class="gdoc-icon {{ . }}"><use xlink:href="#{{ . }}"></use></svg>
|
||||
{{- end -}}
|
71
docs/themes/hugo-geekdoc/layouts/shortcodes/img.html
vendored
Normal file
71
docs/themes/hugo-geekdoc/layouts/shortcodes/img.html
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
{{- $source := ($.Page.Resources.ByType "image").GetMatch (printf "%s" (.Get "name")) }}
|
||||
{{- $customAlt := .Get "alt" }}
|
||||
{{- $customSize := .Get "size" | lower }}
|
||||
{{- $lazyLoad := default (default true $.Site.Params.geekdocImageLazyLoading) (.Get "lazy") }}
|
||||
{{- $data := newScratch }}
|
||||
|
||||
{{- with $source }}
|
||||
{{- $caption := default .Title $customAlt }}
|
||||
{{- $isSVG := (eq .MediaType.SubType "svg") }}
|
||||
|
||||
{{- $origin := .Permalink }}
|
||||
{{- if $isSVG }}
|
||||
{{- $data.SetInMap "size" "profile" "180" }}
|
||||
{{- $data.SetInMap "size" "tiny" "320" }}
|
||||
{{- $data.SetInMap "size" "small" "600" }}
|
||||
{{- $data.SetInMap "size" "medium" "1200" }}
|
||||
{{- $data.SetInMap "size" "large" "1800" }}
|
||||
{{- else }}
|
||||
{{- $data.SetInMap "size" "profile" (.Fill "180x180 Center").Permalink }}
|
||||
{{- $data.SetInMap "size" "tiny" (.Resize "320x").Permalink }}
|
||||
{{- $data.SetInMap "size" "small" (.Resize "600x").Permalink }}
|
||||
{{- $data.SetInMap "size" "medium" (.Resize "1200x").Permalink }}
|
||||
{{- $data.SetInMap "size" "large" (.Resize "1800x").Permalink }}
|
||||
{{- end }}
|
||||
|
||||
|
||||
<div class="flex justify-center">
|
||||
<figure
|
||||
class="gdoc-markdown__figure
|
||||
{{- if eq $customSize "profile" }}{{ print " gdoc-post__figure--round" }}{{ end }}"
|
||||
>
|
||||
<a class="gdoc-markdown__link--raw" href="{{ .Permalink }}">
|
||||
<picture>
|
||||
{{- $size := $data.Get "size" }}
|
||||
{{- if not $isSVG }}
|
||||
<source
|
||||
{{- with $customSize }}
|
||||
srcset="{{ index $size $customSize }}"
|
||||
{{- else }}
|
||||
srcset="{{ $size.small }} 600w, {{ $size.medium }} 1200w" sizes="100vw"
|
||||
{{- end }}
|
||||
/>
|
||||
{{- end }}
|
||||
<img
|
||||
{{- if $isSVG }}
|
||||
src="{{ $origin }}" width="{{ index $size (default "medium" $customSize) }}"
|
||||
{{- else }}
|
||||
{{- if $lazyLoad }}{{ print " loading=\"lazy\"" | safeHTMLAttr }}{{- end }}
|
||||
{{- if eq $customSize "origin" }}
|
||||
src="{{ $origin }}"
|
||||
{{- else }}
|
||||
src="{{ $size.large }}"
|
||||
{{- end }}
|
||||
alt="{{ $caption }}"
|
||||
{{- end }}
|
||||
/>
|
||||
</picture>
|
||||
</a>
|
||||
{{- if not (eq $customSize "profile") }}
|
||||
{{- with $caption }}
|
||||
<figcaption>
|
||||
{{ . }}
|
||||
{{- with $source.Params.credits }}
|
||||
{{ printf " (%s)" . | $.Page.RenderString }}
|
||||
{{- end }}
|
||||
</figcaption>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</figure>
|
||||
</div>
|
||||
{{- end }}
|
18
docs/themes/hugo-geekdoc/layouts/shortcodes/include.html
vendored
Normal file
18
docs/themes/hugo-geekdoc/layouts/shortcodes/include.html
vendored
Normal file
|
@ -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>
|
18
docs/themes/hugo-geekdoc/layouts/shortcodes/katex.html
vendored
Normal file
18
docs/themes/hugo-geekdoc/layouts/shortcodes/katex.html
vendored
Normal file
|
@ -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 */ -}}
|
11
docs/themes/hugo-geekdoc/layouts/shortcodes/mermaid.html
vendored
Normal file
11
docs/themes/hugo-geekdoc/layouts/shortcodes/mermaid.html
vendored
Normal file
|
@ -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>
|
23
docs/themes/hugo-geekdoc/layouts/shortcodes/progress.html
vendored
Normal file
23
docs/themes/hugo-geekdoc/layouts/shortcodes/progress.html
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{{- $value := default 0 (.Get "value") -}}
|
||||
{{- $title := .Get "title" -}}
|
||||
{{- $icon := .Get "icon" -}}
|
||||
|
||||
|
||||
<div class="gdoc-progress">
|
||||
<div class="gdoc-progress__label flex justify-between">
|
||||
<div class="gdoc-progress__label--name flex align-center">
|
||||
{{ with $icon -}}
|
||||
<svg class="gdoc-icon {{ . }}"><use xlink:href="#{{ . }}"></use></svg>
|
||||
{{- end }}
|
||||
{{ with $title }}<span>{{ . }}</span>{{ end }}
|
||||
</div>
|
||||
<div>{{ $value }}%</div>
|
||||
</div>
|
||||
<div class="gdoc-progress__wrap">
|
||||
<div
|
||||
class="gdoc-progress__bar"
|
||||
data-percent="{{ $value }}"
|
||||
style="width: {{ $value }}%;"
|
||||
></div>
|
||||
</div>
|
||||
</div>
|
60
docs/themes/hugo-geekdoc/layouts/shortcodes/propertylist.html
vendored
Normal file
60
docs/themes/hugo-geekdoc/layouts/shortcodes/propertylist.html
vendored
Normal file
|
@ -0,0 +1,60 @@
|
|||
{{- $name := .Get "name" -}}
|
||||
{{- $sort := .Get "sort" -}}
|
||||
{{- $order := default "asc" (.Get "order") -}}
|
||||
{{- $showAnchor := (and (default true .Page.Params.geekdocAnchor) (default true .Page.Site.Params.geekdocAnchor)) -}}
|
||||
|
||||
{{- if .Site.Data.properties }}
|
||||
<dl class="gdoc-props">
|
||||
{{- with (index .Site.Data.properties (split $name ".")) }}
|
||||
{{- $properties := .properties }}
|
||||
{{- with $sort }}
|
||||
{{- $properties = (sort $properties . $order) }}
|
||||
{{- end }}
|
||||
{{- range $properties }}
|
||||
<dt class="flex flex-wrap align-center gdoc-props__meta"{{ if $showAnchor }} id="{{ anchorize .name }}"{{ end }}>
|
||||
<span class="gdoc-props__title">{{ .name }}</span>
|
||||
{{- if .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 .type }}
|
||||
<span class="gdoc-props__tag note">{{ . }}</span>
|
||||
{{- end }}
|
||||
|
||||
{{- with .tags }}
|
||||
{{- $tags := . }}
|
||||
{{- if reflect.IsMap $tags }}
|
||||
{{- $tags = (index $tags $.Site.Language.Lang) }}
|
||||
{{- end }}
|
||||
{{- range $tags }}
|
||||
<span class="gdoc-props__tag">{{ . }}</span>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if $showAnchor }}
|
||||
<a data-clipboard-text="{{ .Page.Permalink }}#{{ anchorize .name | safeHTML }}" class="gdoc-page__anchor clip flex align-center" title="{{ i18n "title_anchor_prefix" }} {{ .name | safeHTML }}" aria-label="{{ i18n "title_anchor_prefix" }} {{ .name | safeHTML }}" href="#{{ anchorize .name | safeHTML }}">
|
||||
<svg class="gdoc-icon gdoc_link"><use xlink:href="#gdoc_link"></use></svg>
|
||||
</a>
|
||||
{{- end }}
|
||||
</dt>
|
||||
<dd>
|
||||
<div class="gdoc-props__description">
|
||||
{{- with .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" (.defaultValue | string) }}
|
||||
<span>{{ i18n "propertylist_default" | title }}:</span>
|
||||
<span>{{ . }}</span>
|
||||
{{- end }}
|
||||
</div>
|
||||
</dd>
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
</dl>
|
||||
{{- end }}
|
12
docs/themes/hugo-geekdoc/layouts/shortcodes/tab.html
vendored
Normal file
12
docs/themes/hugo-geekdoc/layouts/shortcodes/tab.html
vendored
Normal file
|
@ -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 }}
|
22
docs/themes/hugo-geekdoc/layouts/shortcodes/tabs.html
vendored
Normal file
22
docs/themes/hugo-geekdoc/layouts/shortcodes/tabs.html
vendored
Normal file
|
@ -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>
|
41
docs/themes/hugo-geekdoc/layouts/shortcodes/toc-tree.html
vendored
Normal file
41
docs/themes/hugo-geekdoc/layouts/shortcodes/toc-tree.html
vendored
Normal file
|
@ -0,0 +1,41 @@
|
|||
{{- $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 }}
|
13
docs/themes/hugo-geekdoc/layouts/shortcodes/toc.html
vendored
Normal file
13
docs/themes/hugo-geekdoc/layouts/shortcodes/toc.html
vendored
Normal file
|
@ -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 -}}
|
Loading…
Add table
Add a link
Reference in a new issue