diff options
author | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:10:46 +0200 |
---|---|---|
committer | Dimitri Staessens <dimitri@ouroboros.rocks> | 2019-10-06 21:10:46 +0200 |
commit | 568553394d0a8b34668a75c9839a0f1f426469b2 (patch) | |
tree | 175c08844f05611b059ba6900fb6519dbbc735d2 /themes/docsy/layouts/partials | |
parent | d5d6f70371958eec0679831abd283498ff2731e5 (diff) | |
download | website-568553394d0a8b34668a75c9839a0f1f426469b2.tar.gz website-568553394d0a8b34668a75c9839a0f1f426469b2.zip |
theme: Switch to docsy theme
Diffstat (limited to 'themes/docsy/layouts/partials')
23 files changed, 427 insertions, 0 deletions
diff --git a/themes/docsy/layouts/partials/breadcrumb.html b/themes/docsy/layouts/partials/breadcrumb.html new file mode 100644 index 0000000..0403f6a --- /dev/null +++ b/themes/docsy/layouts/partials/breadcrumb.html @@ -0,0 +1,18 @@ +<nav aria-label="breadcrumb" class="d-none d-md-block d-print-none"> + <ol class="breadcrumb spb-1"> + {{ template "breadcrumbnav" (dict "p1" . "p2" .) }} + </ol> +</nav > +{{ define "breadcrumbnav" }} +{{ if .p1.Parent }} +{{ if not .p1.Parent.IsHome }} +{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }} +{{ end }} +{{ else if not .p1.IsHome }} +{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }} +{{ end }} +{{ $isActive := eq .p1 .p2 }} +<li class="breadcrumb-item{{ if $isActive }} active{{ end }}" {{ if $isActive }}aria-current="page"{{ end }}> + <a href="{{ .p1.Permalink }}">{{ .p1.LinkTitle }}</a> +</li> +{{ end }}
\ No newline at end of file diff --git a/themes/docsy/layouts/partials/community_links.html b/themes/docsy/layouts/partials/community_links.html new file mode 100644 index 0000000..48d6458 --- /dev/null +++ b/themes/docsy/layouts/partials/community_links.html @@ -0,0 +1,29 @@ +{{ $links := .Site.Params.links }} + +<section class="row td-box td-box--4 td-box--gradient td-box--height-auto linkbox"> +<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6"> +<h2>Learn and Connect</h2> +<p>Using or want to use {{ .Site.Title }}? Find out more here: +{{ with index $links "user"}} +{{ template "community-links-list" . }} +{{ end }} +</div> +<div class="col-xs-12 col-sm-6 col-md-6 col-lg-6"> +<h2>Develop and Contribute</h2> +<p>If you want to get more involved by contributing to {{ .Site.Title }}, join us here: +{{ with index $links "developer"}} +{{ template "community-links-list" . }} +{{ end }} +<p>You can find out how to contribute to these docs in our <a href="/docs/contribution-guidelines/">Contribution Guidelines</a>. +</div> +</section> + +{{ define "community-links-list" }} +<ul> + {{ range . }} + <li title="{{ .name }}"> + <a target="_blank" href="{{ .url }}"><i class="{{ .icon }}"></i> {{ .name }}:</a> {{ .desc }} + </li> + {{ end }} +</ul> +{{ end }} diff --git a/themes/docsy/layouts/partials/disqus-comment.html b/themes/docsy/layouts/partials/disqus-comment.html new file mode 100644 index 0000000..c3ae3f9 --- /dev/null +++ b/themes/docsy/layouts/partials/disqus-comment.html @@ -0,0 +1,23 @@ +<div class="page-blank"> + +<div id="disqus_thread"></div> +<script> + +/** +* RECOMMENDED CONFIGURATION VARIABLES: EDIT AND UNCOMMENT THE SECTION BELOW TO INSERT DYNAMIC VALUES FROM YOUR PLATFORM OR CMS. +* LEARN WHY DEFINING THESE VARIABLES IS IMPORTANT: https://disqus.com/admin/universalcode/#configuration-variables*/ +/* +var disqus_config = function () { +this.page.url = PAGE_URL; // Replace PAGE_URL with your page's canonical URL variable +this.page.identifier = PAGE_IDENTIFIER; // Replace PAGE_IDENTIFIER with your page's unique identifier variable +}; +*/ +(function() { // DON'T EDIT BELOW THIS LINE +var d = document, s = d.createElement('script'); +s.src = 'https://' + {{ .Site.DisqusShortname }} + '.disqus.com/embed.js'; +s.setAttribute('data-timestamp', +new Date()); +(d.head || d.body).appendChild(s); +})(); +</script> +<noscript>Please enable JavaScript to view the <a href="https://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript> +</div> diff --git a/themes/docsy/layouts/partials/favicons.html b/themes/docsy/layouts/partials/favicons.html new file mode 100644 index 0000000..43e5c90 --- /dev/null +++ b/themes/docsy/layouts/partials/favicons.html @@ -0,0 +1,12 @@ + +<!-- Favicons as generated by http://cthedot.de/icongen --> +<link rel="shortcut icon" href="/favicons/favicon.ico" > +<link rel="apple-touch-icon" href="{{ "favicons/apple-touch-icon-180x180.png" | relURL }}" sizes="180x180"> +<link rel="icon" type="image/png" href="{{ "favicons/favicon-16x16.png" | relURL }}" sizes="16x16"> +<link rel="icon" type="image/png" href="{{ "favicons/favicon-32x32.png" | relURL }}" sizes="32x32"> +<link rel="icon" type="image/png" href="{{ "favicons/android-36x36.png" | relURL }}" sizes="36x36"> +<link rel="icon" type="image/png" href="{{ "favicons/android-48x48.png" | relURL }}" sizes="48x48"> +<link rel="icon" type="image/png" href="{{ "favicons/android-72x72.png" | relURL }}" sizes="72x72"> +<link rel="icon" type="image/png" href="{{ "favicons/android-96x196.png" | relURL }}" sizes="96x196"> +<link rel="icon" type="image/png" href="{{ "favicons/android-144x144.png" | relURL }}" sizes="144x144"> +<link rel="icon" type="image/png" href="{{ "favicons/android-192x192.png" | relURL }}"sizes="192x192"> diff --git a/themes/docsy/layouts/partials/featured-image.html b/themes/docsy/layouts/partials/featured-image.html new file mode 100644 index 0000000..5756999 --- /dev/null +++ b/themes/docsy/layouts/partials/featured-image.html @@ -0,0 +1,14 @@ +{{ $w := .w | default 480 }} +{{ $h := .h | default 180 }} +{{ $p := .p }} +{{ $class := .class | default "ml-3" }} +{{ $image := ($p.Resources.ByType "image").GetMatch "**featured*" }} +{{ with $image }} +{{ $image := .Fill (printf "%dx%d" $w $h ) }} +<figure class="{{ $class }}" style="width: {{ $image.Width }}px"> +<img src="{{ $image.RelPermalink }}" alt="Featured Image for {{ $p.Title }}" width="{{ $image.Width }}" height="{{ $image.Height }}"> +{{ with $image.Params.byline }} + <figcaption class="mt-2 mt-md-0"><small class="text-muted">{{ . | html }}</small></figcaption> +{{ end }} +</figure> +{{ end }}
\ No newline at end of file diff --git a/themes/docsy/layouts/partials/feedback.html b/themes/docsy/layouts/partials/feedback.html new file mode 100644 index 0000000..0978321 --- /dev/null +++ b/themes/docsy/layouts/partials/feedback.html @@ -0,0 +1,57 @@ +<style> + .feedback--answer { + display: inline-block; + } + .feedback--answer-no { + margin-left: 1em; + } + .feedback--response { + display: none; + margin-top: 1em; + } + .feedback--response__visible { + display: block; + } +</style> +<h2 class="feedback--title">Feedback</h2> +<p class="feedback--question">Was this page helpful?</p> +<button class="feedback--answer feedback--answer-yes">Yes</button> +<button class="feedback--answer feedback--answer-no">No</button> +<p class="feedback--response feedback--response-yes"> + {{ .yes | safeHTML }} +</p> +<p class="feedback--response feedback--response-no"> + {{ .no | safeHTML }} +</p> +<script> + const yesButton = document.querySelector('.feedback--answer-yes'); + const noButton = document.querySelector('.feedback--answer-no'); + const yesResponse = document.querySelector('.feedback--response-yes'); + const noResponse = document.querySelector('.feedback--response-no'); + const disableButtons = () => { + yesButton.disabled = true; + noButton.disabled = true; + }; + const sendFeedback = (value) => { + if (typeof ga !== 'function') return; + const args = { + command: 'send', + hitType: 'event', + category: 'Helpful', + action: 'click', + label: window.location.pathname, + value: value + }; + ga(args.command, args.hitType, args.category, args.action, args.label, args.value); + }; + yesButton.addEventListener('click', () => { + yesResponse.classList.add('feedback--response__visible'); + disableButtons(); + sendFeedback(1); + }); + noButton.addEventListener('click', () => { + noResponse.classList.add('feedback--response__visible'); + disableButtons(); + sendFeedback(0); + }); +</script> diff --git a/themes/docsy/layouts/partials/footer.html b/themes/docsy/layouts/partials/footer.html new file mode 100644 index 0000000..dfb1f64 --- /dev/null +++ b/themes/docsy/layouts/partials/footer.html @@ -0,0 +1,39 @@ +{{ $links := .Site.Params.links }} +<footer class="bg-dark py-5 row d-print-none"> + <div class="container-fluid mx-sm-5"> + <div class="row"> + <div class="col-6 col-sm-4 text-xs-center order-sm-2"> + {{ with $links }} + {{ with index . "user"}} + {{ template "footer-links-block" . }} + {{ end }} + {{ end }} + </div> + <div class="col-6 col-sm-4 text-right text-xs-center order-sm-3"> + {{ with $links }} + {{ with index . "developer"}} + {{ template "footer-links-block" . }} + {{ end }} + {{ end }} + </div> + <div class="col-12 col-sm-4 text-center py-2 order-sm-2"> + {{ with .Site.Params.copyright }}<small class="text-white">© {{ now.Year}} {{ .}} {{ T "footer_all_rights_reserved" }}</small>{{ end }} + {{ with .Site.Params.privacy_policy }}<small class="ml-1"><a href="{{ . }}" target="_blank">{{ T "footer_privacy_policy" }}</a></small>{{ end }} + {{ if not .Site.Params.ui.footer_about_disable }} + {{ with .Site.GetPage "about" }}<p class="mt-2"><a href="{{ .RelPermalink }}">{{ .Title }}</a></p>{{ end }} + {{ end }} + </div> + </div> + </div> +</footer> +{{ define "footer-links-block" }} +<ul class="list-inline mb-0"> + {{ range . }} + <li class="list-inline-item mx-2 h3" data-toggle="tooltip" data-placement="top" title="{{ .name }}" aria-label="{{ .name }}"> + <a class="text-white" target="_blank" href="{{ .url }}"> + <i class="{{ .icon }}"></i> + </a> + </li> + {{ end }} +</ul> +{{ end }} diff --git a/themes/docsy/layouts/partials/head-css.html b/themes/docsy/layouts/partials/head-css.html new file mode 100644 index 0000000..603da38 --- /dev/null +++ b/themes/docsy/layouts/partials/head-css.html @@ -0,0 +1,11 @@ + +{{ $scssMain := "scss/main.scss"}} +{{ if .Site.IsServer }} +{{/* Note the missing postCSS. This makes it snappier to develop in Chrome, but makes it look sub-optimal in other browsers. */}} +{{ $css := resources.Get $scssMain | toCSS (dict "enableSourceMap" true) }} +<link href="{{ $css.RelPermalink }}" rel="stylesheet"> +{{ else }} +{{ $css := resources.Get $scssMain | toCSS (dict "enableSourceMap" false) | postCSS | minify | fingerprint }} +<link rel="preload" href="{{ $css.RelPermalink }}" as="style"> +<link href="{{ $css.RelPermalink }}" rel="stylesheet" integrity="{{ $css.Data.integrity }}"> +{{ end }}
\ No newline at end of file diff --git a/themes/docsy/layouts/partials/head.html b/themes/docsy/layouts/partials/head.html new file mode 100644 index 0000000..b4b707f --- /dev/null +++ b/themes/docsy/layouts/partials/head.html @@ -0,0 +1,26 @@ +<meta charset="utf-8"> +<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> +{{ hugo.Generator }} +{{ if eq (getenv "HUGO_ENV") "production" }} +<META NAME="ROBOTS" CONTENT="INDEX, FOLLOW"> +{{ else }} +<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW"> +{{ end }} +{{ range .AlternativeOutputFormats -}} +<link rel="{{ .Rel }}" type="{{ .MediaType.Type }}" href="{{ .Permalink | safeURL }}"> +{{ end -}} +{{ partialCached "favicons.html" . }} +<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{ . }} | {{ end }}{{ .Site.Title }}{{ end }}</title> +{{- template "_internal/opengraph.html" . -}} +{{- template "_internal/google_news.html" . -}} +{{- template "_internal/schema.html" . -}} +{{- template "_internal/twitter_cards.html" . -}} +{{ if eq (getenv "HUGO_ENV") "production" }} +{{ partial "matomo/analytics.html" . }} +{{ end }} +{{ partialCached "head-css.html" . "asdf" }} +<script + src="https://code.jquery.com/jquery-3.3.1.min.js" + integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" + crossorigin="anonymous"></script> +{{ partial "hooks/head-end.html" . }} diff --git a/themes/docsy/layouts/partials/hooks/body-end.html b/themes/docsy/layouts/partials/hooks/body-end.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/docsy/layouts/partials/hooks/body-end.html diff --git a/themes/docsy/layouts/partials/hooks/head-end.html b/themes/docsy/layouts/partials/hooks/head-end.html new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/themes/docsy/layouts/partials/hooks/head-end.html diff --git a/themes/docsy/layouts/partials/navbar-lang-selector.html b/themes/docsy/layouts/partials/navbar-lang-selector.html new file mode 100644 index 0000000..dc59294 --- /dev/null +++ b/themes/docsy/layouts/partials/navbar-lang-selector.html @@ -0,0 +1,10 @@ +{{/* Link directly to documentation etc., if possible. */}} +{{ $langPage := cond (gt (len .Translations) 0) . .Site.Home }} +<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + {{ $langPage.Language.LanguageName }} +</a> +<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> + {{ range $langPage.Translations }} + <a class="dropdown-item" href="{{ .RelPermalink }}">{{ .Language.LanguageName }}</a> + {{ end }} +</div>
\ No newline at end of file diff --git a/themes/docsy/layouts/partials/navbar-version-selector.html b/themes/docsy/layouts/partials/navbar-version-selector.html new file mode 100644 index 0000000..6ac1ef6 --- /dev/null +++ b/themes/docsy/layouts/partials/navbar-version-selector.html @@ -0,0 +1,8 @@ +<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> + {{ .Site.Params.version_menu }} +</a> +<div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> + {{ range .Site.Params.versions }} + <a class="dropdown-item" href="{{ .url }}">{{ .version }}</a> + {{ end }} +</div> diff --git a/themes/docsy/layouts/partials/navbar.html b/themes/docsy/layouts/partials/navbar.html new file mode 100644 index 0000000..284283b --- /dev/null +++ b/themes/docsy/layouts/partials/navbar.html @@ -0,0 +1,33 @@ +{{ $cover := .HasShortcode "blocks/cover" }} +<nav class="js-navbar-scroll navbar navbar-expand navbar-dark {{ if $cover}} td-navbar-cover {{ end }}flex-column flex-md-row td-navbar"> + <a class="navbar-brand" href="{{ .Site.Home.RelPermalink }}"> + <span class="navbar-logo">{{ if .Site.Params.ui.navbar_logo }}{{ with resources.Get "icons/logo.svg" }}{{ ( . | minify).Content | safeHTML }}{{ end }}{{ end }}</span><span class="text-uppercase font-weight-bold">{{ .Site.Title }}</span> + </a> + <div class="td-navbar-nav-scroll ml-md-auto" id="main_navbar"> + <ul class="navbar-nav mt-2 mt-lg-0"> + {{ $p := . }} + {{ range .Site.Menus.main }} + <li class="nav-item mr-4 mb-2 mb-lg-0"> + {{ $active := or ($p.IsMenuCurrent "main" .) ($p.HasMenuCurrent "main" .) }} + {{ with .Page }} + {{ $active = or $active ( $.IsDescendant .) }} + {{ end }} + {{ $url := urls.Parse .URL }} + {{ $baseurl := urls.Parse $.Site.Params.Baseurl }} + <a class="nav-link{{if $active }} active{{end}}" href="{{ with .Page }}{{ .RelPermalink }}{{ else }}{{ .URL | relLangURL }}{{ end }}" {{ if ne $url.Host $baseurl.Host }}target="_blank" {{ end }}><span{{if $active }} class="active"{{end}}>{{ .Name }}</span></a> + </li> + {{ end }} + {{ if .Site.Params.versions }} + <li class="nav-item dropdown d-none d-lg-block"> + {{ partial "navbar-version-selector.html" . }} + </li> + {{ end }} + {{ if (gt (len .Site.Home.Translations) 0) }} + <li class="nav-item dropdown d-none d-lg-block"> + {{ partial "navbar-lang-selector.html" . }} + </li> + {{ end }} + </ul> + </div> + <div class="navbar-nav d-none d-lg-block">{{ partial "search-input.html" . }}</div> +</nav> diff --git a/themes/docsy/layouts/partials/page-meta-lastmod.html b/themes/docsy/layouts/partials/page-meta-lastmod.html new file mode 100644 index 0000000..b24e62d --- /dev/null +++ b/themes/docsy/layouts/partials/page-meta-lastmod.html @@ -0,0 +1 @@ +{{ T "post_last_mod"}} {{ .Lastmod.Format .Site.Params.time_format_default }}{{ with .GitInfo }}: <a href="{{ $.Site.Params.github_repo }}/commit/{{ .Hash }}">{{ .Subject }} ({{ .AbbreviatedHash }})</a>{{end }} diff --git a/themes/docsy/layouts/partials/page-meta-links.html b/themes/docsy/layouts/partials/page-meta-links.html new file mode 100644 index 0000000..8e2650f --- /dev/null +++ b/themes/docsy/layouts/partials/page-meta-links.html @@ -0,0 +1,24 @@ +{{ if .Path }} +{{ $gh_repo := ($.Param "github_repo") }} +{{ $gh_subdir := ($.Param "github_subdir") }} +{{ $gh_project_repo := ($.Param "github_project_repo") }} +{{ if $gh_repo }} +<div class="td-page-meta ml-2 pb-1 pt-2 mb-0"> +{{ $editURL := printf "%s/edit/master/content/%s" $gh_repo .Path }} +{{ if and ($gh_subdir) (.Site.Language.Lang) }} +{{ $editURL = printf "%s/edit/master/%s/content/%s/%s" $gh_repo $gh_subdir ($.Site.Language.Lang) $.Path }} +{{ else if .Site.Language.Lang }} +{{ $editURL = printf "%s/edit/master/content/%s/%s" $gh_repo ($.Site.Language.Lang) .Path }} +{{ else if $gh_subdir }} +{{ $editURL = printf "%s/edit/master/%s/content/%s" $gh_repo $gh_subdir $.Path }} +{{ end }} +{{ $issuesURL := printf "%s/issues/new?title=%s" $gh_repo (htmlEscape $.Title )}} +<a href="{{ $editURL }}" target="_blank"><i class="fa fa-edit fa-fw"></i> {{ T "post_edit_this" }}</a> +<a href="{{ $issuesURL }}" target="_blank"><i class="fab fa-github fa-fw"></i> {{ T "post_create_issue" }}</a> +{{ if $gh_project_repo }} +{{ $project_issueURL := printf "%s/issues/new" $gh_project_repo }} +<a href="{{ $project_issueURL }}" target="_blank"><i class="fas fa-tasks fa-fw"></i> {{ T "post_create_project_issue" }}</a> +{{ end }} +</div> +{{ end }} +{{ end }} diff --git a/themes/docsy/layouts/partials/pager.html b/themes/docsy/layouts/partials/pager.html new file mode 100644 index 0000000..fd547c5 --- /dev/null +++ b/themes/docsy/layouts/partials/pager.html @@ -0,0 +1,7 @@ +<ul class="list-unstyled d-flex justify-content-between align-items-center mb-0 pt-5"> + <li> + <a {{if .PrevInSection}}href="{{.PrevInSection.RelPermalink}}"{{end}} class="btn btn-primary {{if not .PrevInSection}} disabled{{end}}"><span class="mr-1">←</span> {{ T "ui_pager_prev" }}</a> + </li> + <a {{if .NextInSection}}href="{{.NextInSection.RelPermalink}}"{{end}} class="btn btn-primary {{if not .NextInSection}} disabled{{end}}">{{ T "ui_pager_next" }} <span class="ml-1">→</span></a> + </li> +</ul> diff --git a/themes/docsy/layouts/partials/scripts.html b/themes/docsy/layouts/partials/scripts.html new file mode 100644 index 0000000..cc8dc07 --- /dev/null +++ b/themes/docsy/layouts/partials/scripts.html @@ -0,0 +1,14 @@ + +<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> +<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> +{{ $jsBase := resources.Get "js/base.js" }} +{{ $jsAnchor := resources.Get "js/anchor.js" }} +{{ $jsSearch := resources.Get "js/search.js" | resources.ExecuteAsTemplate "js/search.js" .Site.Home }} +{{ $js := (slice $jsBase $jsAnchor $jsSearch) | resources.Concat "js/main.js" }} +{{ if .Site.IsServer }} +<script src="{{ $js.RelPermalink }}"></script> +{{ else }} +{{ $js := $js | minify | fingerprint }} +<script src="{{ $js.RelPermalink }}" integrity="{{ $js.Data.Integrity }}" crossorigin="anonymous"></script> +{{ end }} +{{ partial "hooks/body-end.html" . }} diff --git a/themes/docsy/layouts/partials/search-input.html b/themes/docsy/layouts/partials/search-input.html new file mode 100644 index 0000000..883ca3c --- /dev/null +++ b/themes/docsy/layouts/partials/search-input.html @@ -0,0 +1,3 @@ +{{ with .Site.Params.gcs_engine_id }} + <input type="search" class="form-control td-search-input" placeholder=" {{ T "ui_search" }}" aria-label="{{ T "ui_search" }}" autocomplete="off"> +{{ end }}
\ No newline at end of file diff --git a/themes/docsy/layouts/partials/section-index.html b/themes/docsy/layouts/partials/section-index.html new file mode 100644 index 0000000..987f0a2 --- /dev/null +++ b/themes/docsy/layouts/partials/section-index.html @@ -0,0 +1,29 @@ +<div class="section-index"> + {{ $pages := (where .Site.Pages "Section" .Section).ByWeight }} + {{ $parent := .Page }} + {{ if $parent.Params.no_list }} + {{/* If no_list is true we don't show a list of subpages */}} + {{ else if $parent.Params.simple_list }} + {{/* If simple_list is true we show a bulleted list of subpages */}} + <ul> + {{ range $pages }} + {{ if eq .Parent $parent }} + <li><a href="{{ .RelPermalink }}">{{- .Title -}}</a></li> + {{ end }} + {{ end }} + </ul> + {{ else }} + {{/* Otherwise we show a nice formatted list of subpages with page descriptions */}} + <hr class="panel-line"> + {{ range $pages }} + {{ if eq .Parent $parent }} + <div class="entry"> + <h5> + <a href="{{ .RelPermalink }}">{{- .Title -}}</a> + </h5> + <p>{{ .Description }}</p> + </div> + {{ end }} + {{ end }} + {{ end }} +</div> diff --git a/themes/docsy/layouts/partials/sidebar-tree.html b/themes/docsy/layouts/partials/sidebar-tree.html new file mode 100644 index 0000000..a3eeb2a --- /dev/null +++ b/themes/docsy/layouts/partials/sidebar-tree.html @@ -0,0 +1,47 @@ +{{/* We cache this partial for bigger sites and set the active class client side. */}} +{{ $shouldDelayActive := ge (len .Site.Pages) 2000 }} +<div id="td-sidebar-menu" class="td-sidebar__inner{{ if $shouldDelayActive }} d-none{{ end }}"> + {{ if not .Site.Params.ui.sidebar_search_disable }} + <form class="td-sidebar__search d-flex align-items-center"> + {{ partial "search-input.html" . }} + <button class="btn btn-link td-sidebar__toggle d-md-none p-0 ml-3 fas fa-bars" type="button" data-toggle="collapse" data-target="#td-section-nav" aria-controls="td-docs-nav" aria-expanded="false" aria-label="Toggle section navigation"> + </button> + </form> + {{ end }} + <nav class="collapse td-sidebar-nav pt-2 pl-4" id="td-section-nav"> + {{ if (gt (len .Site.Home.Translations) 0) }} + <div class="nav-item dropdown d-block d-lg-none"> + {{ partial "navbar-lang-selector.html" . }} + </div> + {{ end }} + {{ template "section-tree-nav-section" (dict "page" . "section" .FirstSection "delayActive" $shouldDelayActive) }} + </nav> +</div> +{{ define "section-tree-nav-section" }} +{{ $s := .section }} +{{ $p := .page }} +{{ $shouldDelayActive := .delayActive }} +{{ $active := eq $p.CurrentSection $s }} +{{ $show := or (and (not $p.Site.Params.ui.sidebar_menu_compact) ($p.IsAncestor $s)) ($p.IsDescendant $s) }} +{{ $sid := $s.RelPermalink | anchorize }} +<ul class="td-sidebar-nav__section pr-md-3"> + <li class="td-sidebar-nav__section-title"> + <a href="{{ $s.RelPermalink }}" class="align-left pl-0 pr-2{{ if not $show }} collapsed{{ end }}{{ if $active}} active{{ end }} td-sidebar-link td-sidebar-link__section">{{ $s.LinkTitle }}</a> + </li> + <ul> + <li class="collapse {{ if $show }}show{{ end }}" id="{{ $sid }}"> + {{ $pages := where (union $s.Pages $s.Sections).ByWeight ".Params.toc_hide" "!=" true }} + {{ $pages := $pages | first 50 }} + {{ range $pages }} + {{ if .IsPage }} + {{ $mid := printf "m-%s" (.RelPermalink | anchorize) }} + {{ $active := eq . $p }} + <a class="td-sidebar-link td-sidebar-link__page {{ if and (not $shouldDelayActive) $active }} active{{ end }}" id="{{ $mid }}" href="{{ .RelPermalink }}">{{ .LinkTitle }}</a> + {{ else }} + {{ template "section-tree-nav-section" (dict "page" $p "section" .) }} + {{ end }} + {{ end }} + </li> + </ul> +</ul> +{{ end }} diff --git a/themes/docsy/layouts/partials/sidebar.html b/themes/docsy/layouts/partials/sidebar.html new file mode 100644 index 0000000..bf568e2 --- /dev/null +++ b/themes/docsy/layouts/partials/sidebar.html @@ -0,0 +1,14 @@ +{{/* The "active" toggle here may delay rendering, so we only cache this side bar menu for bigger sites. */}} +{{ $shouldCache := ge (len .Site.Pages) 2000 }} +{{ if $shouldCache }} +{{ $mid := printf "m-%s" (.RelPermalink | anchorize) }} +<script> + $(function() { + $("#td-sidebar-menu #{{ $mid }}").toggleClass("active"); + $("#td-sidebar-menu").toggleClass("d-none"); +}); +</script> +{{ partialCached "sidebar-tree.html" . .CurrentSection.RelPermalink }} +{{ else }} +{{ partial "sidebar-tree.html" . }} +{{ end }} diff --git a/themes/docsy/layouts/partials/toc.html b/themes/docsy/layouts/partials/toc.html new file mode 100644 index 0000000..f155f8b --- /dev/null +++ b/themes/docsy/layouts/partials/toc.html @@ -0,0 +1,8 @@ +{{ partial "page-meta-links.html" . }} +{{ if not .Params.notoc }} +{{ with .TableOfContents }} +{{ if ge (len .) 200 }} +{{ . }} +{{ end }} +{{ end }} +{{ end }}
\ No newline at end of file |