fix: respect geekdocFileTreeSortBy
parameter while creating the toc tree (#771)
This commit is contained in:
parent
1d789048f3
commit
b750f4ab53
3 changed files with 50 additions and 4 deletions
|
@ -8,10 +8,18 @@ The `toc-tree` shortcode will generate a Table of Content from a section file tr
|
|||
|
||||
<!-- prettier-ignore-start -->
|
||||
```tpl
|
||||
{{</* toc-tree */>}}
|
||||
{{</* toc-tree [sortBy="title"] */>}}
|
||||
```
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
### Attributes
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- spellchecker-disable -->
|
||||
{{< propertylist name=shortcode-toc-tree sort=name order=asc >}}
|
||||
<!-- spellchecker-enable -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
## Example
|
||||
|
||||
As said, the root will be the site on which the shortcode was used, you can see a demo including nesting in the [ToC Tree](/toc-tree/) section.
|
||||
|
|
8
exampleSite/data/properties/shortcode-toc-tree.yaml
Normal file
8
exampleSite/data/properties/shortcode-toc-tree.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
properties:
|
||||
- name: sortBy
|
||||
type: string
|
||||
description: |
|
||||
Override the default sort parameter set by [`geekdocFileTreeSortBy`](/usage/configuration/#site-configuration).
|
||||
required: false
|
||||
defaultValue: .Site.Params.geekdocFileTreeSortBy
|
|
@ -1,8 +1,10 @@
|
|||
{{- $current := . }}
|
||||
{{- $tocLevels := default (default 6 .Site.Params.geekdocToC) .Page.Params.geekdocToC }}
|
||||
{{- $sortBy := (default (default "title" .Site.Params.geekdocFileTreeSortBy) (.Get "sortBy") | lower) }}
|
||||
|
||||
{{- if $tocLevels }}
|
||||
<div class="gdoc-toc gdoc-toc__level--{{ $tocLevels }}">
|
||||
{{ template "toc-tree" dict "sect" .Page.Pages }}
|
||||
{{ template "toc-tree" dict "sect" .Page.Pages "current" $current "sortBy" $sortBy }}
|
||||
</div>
|
||||
{{- end }}
|
||||
|
||||
|
@ -10,8 +12,36 @@
|
|||
<!-- templates -->
|
||||
{{- define "toc-tree" }}
|
||||
<ul>
|
||||
{{- range .sect.GroupBy "Weight" }}
|
||||
{{- range .ByTitle }}
|
||||
{{ 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 or (not .Params.geekdocHidden) (not (default true .Params.geekdocHiddenTocTree)) }}
|
||||
<li>
|
||||
{{- if or .Content .Params.geekdocFlatSection }}
|
||||
|
|
Loading…
Reference in a new issue