Compare commits
7 Commits
30b0cabf0e
...
0ad345832e
Author | SHA1 | Date |
---|---|---|
|
0ad345832e | |
|
34c8006ddf | |
|
bfd7b31d40 | |
|
667b675aa3 | |
|
c69fd0059f | |
|
dd9130a215 | |
|
0b5bd23643 |
31
.drone.yml
31
.drone.yml
|
@ -22,6 +22,18 @@ kind: secret
|
||||||
name: LAMELIO_AWS_SECRET_ACCESS_KEY
|
name: LAMELIO_AWS_SECRET_ACCESS_KEY
|
||||||
data: VcxVOlwmxcs01hi06TalHm0DggpmRZMQqKWcTgNWgBLkvZRiFf5pxx8dTbqjaJ+5zjzj9a/veHqFqZSCipyo5eVayIevJnosnMXjM7j29ij/xpegatmCHXflbc0=
|
data: VcxVOlwmxcs01hi06TalHm0DggpmRZMQqKWcTgNWgBLkvZRiFf5pxx8dTbqjaJ+5zjzj9a/veHqFqZSCipyo5eVayIevJnosnMXjM7j29ij/xpegatmCHXflbc0=
|
||||||
|
|
||||||
|
---
|
||||||
|
# drone encrypt ResiLien/portails $AWS_ACCESS_KEY_ID
|
||||||
|
kind: secret
|
||||||
|
name: CREMEAUX_AWS_ACCESS_KEY_ID
|
||||||
|
data: eWdafKap4inA/Jp/MzDkZG5D56lJFGVSbO3yt24En3jRMdNafmns97cWnMD/+qcQyRYFulSZ
|
||||||
|
|
||||||
|
---
|
||||||
|
# drone encrypt ResiLien/portails $AWS_SECRET_ACCESS_KEY
|
||||||
|
kind: secret
|
||||||
|
name: CREMEAUX_AWS_SECRET_ACCESS_KEY
|
||||||
|
data: L2G0Q59Ujb6TA1Y4VC0ykU7XaGG6wq834i8m3Jcnslj6LyB13L2c7jm0r3kwhp9dm/HmhjAsudVD5AILRKbIof7RHtFrdi5JcoCiAuDlHWQXf48nzDyC8c5uZVU=
|
||||||
|
|
||||||
---
|
---
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
|
@ -59,3 +71,22 @@ steps:
|
||||||
- hugo --minify --environment apps.lamelio.fr
|
- hugo --minify --environment apps.lamelio.fr
|
||||||
- hugo --minify --environment apps.lamelio.fr
|
- hugo --minify --environment apps.lamelio.fr
|
||||||
- hugo deploy --environment apps.lamelio.fr
|
- hugo deploy --environment apps.lamelio.fr
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: Cremeaux.org
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Installation des dépendances & construction du site
|
||||||
|
image: hugomods/hugo:exts-0.123.8
|
||||||
|
environment:
|
||||||
|
AWS_ACCESS_KEY_ID:
|
||||||
|
from_secret: CREMEAUX_AWS_ACCESS_KEY_ID
|
||||||
|
AWS_SECRET_ACCESS_KEY:
|
||||||
|
from_secret: CREMEAUX_AWS_SECRET_ACCESS_KEY
|
||||||
|
commands:
|
||||||
|
- npm install --ignore-scripts
|
||||||
|
- hugo --minify --environment cremeaux.org
|
||||||
|
- hugo --minify --environment cremeaux.org
|
||||||
|
- hugo deploy --environment cremeaux.org
|
||||||
|
|
|
@ -1 +1,17 @@
|
||||||
// Put your custom SCSS code here
|
// Put your custom SCSS code here
|
||||||
|
.docs-links {
|
||||||
|
overflow-y: inherit!important;
|
||||||
|
svg {
|
||||||
|
height: 24px!important;
|
||||||
|
width: 24px!important;
|
||||||
|
margin-bottom: 0!important;
|
||||||
|
}
|
||||||
|
.with-icon {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
svg {
|
||||||
|
position: absolute;
|
||||||
|
left: calc(-24px - 1rem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -10,9 +10,7 @@ disableLanguages = ["de", "nl", "en"]
|
||||||
poweredBy = false
|
poweredBy = false
|
||||||
|
|
||||||
[Params.doks]
|
[Params.doks]
|
||||||
[Params.doks.menu]
|
breadcrumbTrail = true
|
||||||
[Params.doks.menu.section]
|
|
||||||
collapsibleSidebar = false
|
|
||||||
|
|
||||||
[languages.fr.params]
|
[languages.fr.params]
|
||||||
footer = 'Mise en place et hébergé avec sobriété par <a class="text-muted" href="https://resilien.fr/">RésiLien</a>'
|
footer = 'Mise en place et hébergé avec sobriété par <a class="text-muted" href="https://resilien.fr/">RésiLien</a>'
|
||||||
|
|
|
@ -10,9 +10,7 @@ disableLanguages = ["de", "nl", "en"]
|
||||||
poweredBy = true
|
poweredBy = true
|
||||||
|
|
||||||
[Params.doks]
|
[Params.doks]
|
||||||
[Params.doks.menu]
|
breadcrumbTrail = true
|
||||||
[Params.doks.menu.section]
|
|
||||||
collapsibleSidebar = false
|
|
||||||
|
|
||||||
[languages.fr.params]
|
[languages.fr.params]
|
||||||
footer = 'Mise en place et hébergé avec sobriété par <a class="text-muted" href="https://resilien.fr/">RésiLien</a>'
|
footer = 'Mise en place et hébergé avec sobriété par <a class="text-muted" href="https://resilien.fr/">RésiLien</a>'
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
baseURL = "https://cremeaux.org/"
|
||||||
|
title = "Cremeaux.org"
|
||||||
|
languageCode = "fr-FR"
|
||||||
|
defaultContentLanguage = "fr"
|
||||||
|
disableLanguages = ["de", "nl", "en"]
|
||||||
|
|
||||||
|
[Params]
|
||||||
|
url = "cremeaux.org"
|
||||||
|
domain = "cremeaux.org"
|
||||||
|
poweredBy = false
|
||||||
|
|
||||||
|
[Params.doks]
|
||||||
|
breadcrumbTrail = true
|
||||||
|
|
||||||
|
[languages.fr.params]
|
||||||
|
footer = 'Mise en place et hébergé avec sobriété par <a class="text-muted" href="https://resilien.fr/">RésiLien</a>'
|
||||||
|
|
||||||
|
[deployment.targets]
|
||||||
|
name = "production"
|
||||||
|
URL = "s3://cremeaux.org?endpoint=https://s3.garage.resilien.cloud&disableSSL=true&s3ForcePathStyle=true®ion=garage"
|
|
@ -0,0 +1,19 @@
|
||||||
|
[[main]]
|
||||||
|
name = "Guides"
|
||||||
|
url = "/docs/introduction/bienvenue/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[footer]]
|
||||||
|
name = "Mentions légales"
|
||||||
|
url = "/mentions-legales/"
|
||||||
|
weight = 10
|
||||||
|
|
||||||
|
[[footer]]
|
||||||
|
name = "Sources du site"
|
||||||
|
url = "https://git.resilien.fr/ResiLien/portails/"
|
||||||
|
weight = 20
|
||||||
|
|
||||||
|
[[footer]]
|
||||||
|
name = "Statuts des services"
|
||||||
|
url = "https://status.cremeaux.org/"
|
||||||
|
weight = 30
|
|
@ -0,0 +1,108 @@
|
||||||
|
# mounts
|
||||||
|
## archetypes
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/archetypes"
|
||||||
|
target = "archetypes"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "archetypes"
|
||||||
|
target = "archetypes"
|
||||||
|
|
||||||
|
## assets
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/core/assets"
|
||||||
|
target = "assets"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/images/assets"
|
||||||
|
target = "assets"
|
||||||
|
excludeFiles = "/scss/**.scss"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/assets"
|
||||||
|
target = "assets"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@tabler/icons/icons"
|
||||||
|
target = "assets/svgs/tabler-icons"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "assets"
|
||||||
|
target = "assets"
|
||||||
|
|
||||||
|
## content
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/shared/content"
|
||||||
|
target = "content"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/cremeaux.org/content"
|
||||||
|
target = "content"
|
||||||
|
|
||||||
|
## data
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/data"
|
||||||
|
target = "data"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "data"
|
||||||
|
target = "data"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/shared/data"
|
||||||
|
target = "data"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/cremeaux.org/data"
|
||||||
|
target = "data"
|
||||||
|
|
||||||
|
## i18n
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/i18n"
|
||||||
|
target = "i18n"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "i18n"
|
||||||
|
target = "i18n"
|
||||||
|
|
||||||
|
## layouts
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/core/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/seo/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/images/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/inline-svg/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/shared/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "portails/cremeaux.org/layouts"
|
||||||
|
target = "layouts"
|
||||||
|
|
||||||
|
## static
|
||||||
|
[[mounts]]
|
||||||
|
source = "node_modules/@hyas/doks-core/static"
|
||||||
|
target = "static"
|
||||||
|
|
||||||
|
[[mounts]]
|
||||||
|
source = "static"
|
||||||
|
target = "static"
|
|
@ -0,0 +1,17 @@
|
||||||
|
---
|
||||||
|
title : "Outils numériques libres de <a href='https://cremeaux.fr'>Cremeaux</a>"
|
||||||
|
description: ""
|
||||||
|
lead: "Ce site web vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus <a href='/docs/introduction/vie-numérique/'>« saine »</a> sur la commune de <a href='https://cremeaux.fr'>Cremeaux</a>."
|
||||||
|
date: 2023-09-07T16:33:54+02:00
|
||||||
|
lastmod: 2023-09-07T16:33:54+02:00
|
||||||
|
draft: false
|
||||||
|
seo:
|
||||||
|
title: "Outils numériques libres de Cremeaux" # custom title (optional)
|
||||||
|
description: "Ce site web vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus « saine » sur la commune de Cremeaux." # custom description (recommended)
|
||||||
|
canonical: "" # custom canonical URL (optional)
|
||||||
|
noindex: false # false (default) or true
|
||||||
|
---
|
||||||
|
|
||||||
|
L'association [RésiLien](https://resilien.fr) met à disposition des outils informatiques pour la commune de [Crémeaux](https://cremeaux.fr).
|
||||||
|
|
||||||
|
Certains sont gratuit {{< inline-svg src="currency-euro-off" stroke-width="1" stroke="#ee52b7" height="1rem" width="1rem" class="svg-inline-custom" >}} tandis que d'autres nécessitent une adhésion à l'association ou sont payants {{< inline-svg src="currency-euro" stroke-width="1" stroke="#ee52b7" height="1rem" width="1rem" class="svg-inline-custom" >}} en fonction de l'espace utilisé. Vous pouvez nous contacter pour la création d'un compte à [comptes@cremeaux.org](mailto:comptes@cremeaux.org).
|
|
@ -0,0 +1,9 @@
|
||||||
|
- name: hedgedoc
|
||||||
|
- name: mobilizon
|
||||||
|
- name: signaturepdf
|
||||||
|
- name: nextcloud
|
||||||
|
subscription: true
|
||||||
|
- name: vikunja
|
||||||
|
subscription: true
|
||||||
|
- name: vaultwarden
|
||||||
|
subscription: true
|
|
@ -0,0 +1,5 @@
|
||||||
|
{{ if (.subscription | default false) -}}
|
||||||
|
{{- partial "inline-svg" (dict "src" "currency-euro" "stroke-width" "1" "stroke" "#ee52b7" "height" "1rem" "width" "1rem" "class" "svg-inline-custom") }}
|
||||||
|
{{ else }}
|
||||||
|
{{- partial "inline-svg" (dict "src" "currency-euro-off" "stroke-width" "1" "stroke" "#ee52b7" "height" "1rem" "width" "1rem" "class" "svg-inline-custom") }}
|
||||||
|
{{ end }}
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 600
|
weight: 600
|
||||||
toc: true
|
toc: true
|
||||||
icon: messages
|
icon: messages
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "" # custom title (optional)
|
title: "" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 500
|
weight: 500
|
||||||
toc: true
|
toc: true
|
||||||
icon: pencil
|
icon: pencil
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "" # custom title (optional)
|
title: "" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 300
|
weight: 300
|
||||||
toc: true
|
toc: true
|
||||||
icon: files
|
icon: files
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "Gérer vos données" # custom title (optional)
|
title: "Gérer vos données" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 900
|
weight: 900
|
||||||
toc: true
|
toc: true
|
||||||
icon: shield-lock
|
icon: shield-lock
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "" # custom title (optional)
|
title: "" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 700
|
weight: 700
|
||||||
toc: true
|
toc: true
|
||||||
icon: file-type-pdf
|
icon: file-type-pdf
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "" # custom title (optional)
|
title: "" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -8,6 +8,8 @@ draft: false
|
||||||
weight: 700
|
weight: 700
|
||||||
toc: true
|
toc: true
|
||||||
icon: list-details
|
icon: list-details
|
||||||
|
sidebar:
|
||||||
|
collapsed: true
|
||||||
seo:
|
seo:
|
||||||
title: "" # custom title (optional)
|
title: "" # custom title (optional)
|
||||||
description: "" # custom description (recommended)
|
description: "" # custom description (recommended)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
services:
|
services:
|
||||||
directus:
|
directus:
|
||||||
tool:
|
tool:
|
||||||
name: Directus
|
name: Directus
|
||||||
link: https://directus.io/
|
link: https://directus.io/
|
||||||
title: Gestion de contenu
|
title: Gestion de contenu
|
||||||
|
@ -9,7 +9,7 @@ services:
|
||||||
subdomain: admin
|
subdomain: admin
|
||||||
doc: /docs/nuage/gérer-vos-données/
|
doc: /docs/nuage/gérer-vos-données/
|
||||||
element:
|
element:
|
||||||
tool:
|
tool:
|
||||||
name: Element
|
name: Element
|
||||||
link: https://element.io/
|
link: https://element.io/
|
||||||
title: Discussion entre équipes
|
title: Discussion entre équipes
|
||||||
|
@ -18,7 +18,7 @@ services:
|
||||||
subdomain: chat
|
subdomain: chat
|
||||||
doc: /docs/chat/discussion-entre-%C3%A9quipes/
|
doc: /docs/chat/discussion-entre-%C3%A9quipes/
|
||||||
gitea:
|
gitea:
|
||||||
tool:
|
tool:
|
||||||
name: Gitea
|
name: Gitea
|
||||||
link: https://about.gitea.com/
|
link: https://about.gitea.com/
|
||||||
title: Forge logicielle
|
title: Forge logicielle
|
||||||
|
@ -36,7 +36,7 @@ services:
|
||||||
subdomain: notes
|
subdomain: notes
|
||||||
doc: /docs/notes/prise-de-notes/
|
doc: /docs/notes/prise-de-notes/
|
||||||
listmonk:
|
listmonk:
|
||||||
tool:
|
tool:
|
||||||
name: listmonk
|
name: listmonk
|
||||||
link: https://listmonk.app/
|
link: https://listmonk.app/
|
||||||
title: Infolettre
|
title: Infolettre
|
||||||
|
@ -45,7 +45,7 @@ services:
|
||||||
subdomain: infolettre
|
subdomain: infolettre
|
||||||
doc: /docs/nuage/gérer-vos-données/
|
doc: /docs/nuage/gérer-vos-données/
|
||||||
metabase:
|
metabase:
|
||||||
tool:
|
tool:
|
||||||
name: Metabase
|
name: Metabase
|
||||||
link: https://www.metabase.com/
|
link: https://www.metabase.com/
|
||||||
title: Analyse de données
|
title: Analyse de données
|
||||||
|
@ -53,8 +53,17 @@ services:
|
||||||
description: Solution d'informatique décisionnelle, mise en place de graphique de ses données pour piloter son activité.
|
description: Solution d'informatique décisionnelle, mise en place de graphique de ses données pour piloter son activité.
|
||||||
subdomain: tableaudebord
|
subdomain: tableaudebord
|
||||||
doc: /docs/nuage/gérer-vos-données/
|
doc: /docs/nuage/gérer-vos-données/
|
||||||
|
mobilizon:
|
||||||
|
tool:
|
||||||
|
name: Mobilizon
|
||||||
|
link: https://joinmobilizon.org/
|
||||||
|
title: Rassembler
|
||||||
|
icon: speakerphone
|
||||||
|
description: Un outil qui vous permet de trouver, créer et organiser des événements. Publiez une page pour votre groupe !
|
||||||
|
subdomain: mobilizon
|
||||||
|
doc: /docs/nuage/gérer-vos-données/
|
||||||
nextcloud:
|
nextcloud:
|
||||||
tool:
|
tool:
|
||||||
name: Nextcloud
|
name: Nextcloud
|
||||||
link: https://nextcloud.com/
|
link: https://nextcloud.com/
|
||||||
title: Gérer vos données
|
title: Gérer vos données
|
||||||
|
@ -63,7 +72,7 @@ services:
|
||||||
subdomain: nuage
|
subdomain: nuage
|
||||||
doc: /docs/nuage/gérer-vos-données/
|
doc: /docs/nuage/gérer-vos-données/
|
||||||
outline:
|
outline:
|
||||||
tool:
|
tool:
|
||||||
name: Outline
|
name: Outline
|
||||||
link: https://www.getoutline.com/
|
link: https://www.getoutline.com/
|
||||||
title: Prise de notes
|
title: Prise de notes
|
||||||
|
@ -72,7 +81,7 @@ services:
|
||||||
subdomain: docs
|
subdomain: docs
|
||||||
doc: /docs/notes/prise-de-notes/
|
doc: /docs/notes/prise-de-notes/
|
||||||
signaturepdf:
|
signaturepdf:
|
||||||
tool:
|
tool:
|
||||||
name: PDF Signature
|
name: PDF Signature
|
||||||
link: https://github.com/24eme/signaturepdf/
|
link: https://github.com/24eme/signaturepdf/
|
||||||
title: Gestion de PDF
|
title: Gestion de PDF
|
||||||
|
@ -81,7 +90,7 @@ services:
|
||||||
subdomain: pdf
|
subdomain: pdf
|
||||||
doc: /docs/pdf/gestion-de-pdf/
|
doc: /docs/pdf/gestion-de-pdf/
|
||||||
vaultwarden:
|
vaultwarden:
|
||||||
tool:
|
tool:
|
||||||
name: Vaultwarden
|
name: Vaultwarden
|
||||||
link: https://github.com/dani-garcia/vaultwarden/
|
link: https://github.com/dani-garcia/vaultwarden/
|
||||||
title: Mots de passe
|
title: Mots de passe
|
||||||
|
@ -90,7 +99,7 @@ services:
|
||||||
subdomain: pass
|
subdomain: pass
|
||||||
doc: /docs/pass/gestionnaire-de-mots-de-passe/
|
doc: /docs/pass/gestionnaire-de-mots-de-passe/
|
||||||
vikunja:
|
vikunja:
|
||||||
tool:
|
tool:
|
||||||
name: Vikunja
|
name: Vikunja
|
||||||
link: https://vikunja.io/
|
link: https://vikunja.io/
|
||||||
title: Gestion de projets
|
title: Gestion de projets
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
{{- $icon := $service.icon | default $defaultValues.icon -}}
|
{{- $icon := $service.icon | default $defaultValues.icon -}}
|
||||||
{{- partial "inline-svg" $icon -}}
|
{{- partial "inline-svg" $icon -}}
|
||||||
{{- $service.title | default $defaultValues.title -}}
|
{{- $service.title | default $defaultValues.title -}}
|
||||||
|
{{- partial "service/title-after.html" $service -}}
|
||||||
</h2>
|
</h2>
|
||||||
<p>{{ $service.description | default $defaultValues.description }}</p>
|
<p>{{ $service.description | default $defaultValues.description }}</p>
|
||||||
<div class="btn-group" role="group" aria-label="Basic outlined example">
|
<div class="btn-group" role="group" aria-label="Basic outlined example">
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
<!-- Allow to add custom icon after title -->
|
|
@ -0,0 +1,105 @@
|
||||||
|
{{- /*
|
||||||
|
Fichier original https://github.com/gethyas/doks-core/blob/main/layouts/partials/sidebar/render-section-menu.html
|
||||||
|
Based on: https://discourse.gohugo.io/t/automated-nested-menus/42835/2
|
||||||
|
|
||||||
|
Renders a recursive section menu starting from a page collection or menu.
|
||||||
|
|
||||||
|
As it walks the tree, this partial:
|
||||||
|
|
||||||
|
- Sets class="active" on the active list item
|
||||||
|
- Sets aria-current="page" on the active anchor
|
||||||
|
- Sets aria-current="true" on the ancestors of the active anchor
|
||||||
|
|
||||||
|
If you feed it a single page, you must wrap the page in a slice. See examples
|
||||||
|
below.
|
||||||
|
|
||||||
|
If you feed it a menu, menu entries defined in site configuration must use the
|
||||||
|
pageRef property, not the URL property. Everything must be a page.
|
||||||
|
|
||||||
|
By default, a home page reference in the page collection or menu will be
|
||||||
|
skipped. To override this behavior, set $skipHome to false below.
|
||||||
|
|
||||||
|
@param {page} currentPage The page currently being rendered.
|
||||||
|
@paran {slice} nodes A slice of top level pages or a menu.
|
||||||
|
|
||||||
|
@returns {template.HTML}
|
||||||
|
|
||||||
|
@examples
|
||||||
|
|
||||||
|
{{ with site.Menus.main }}
|
||||||
|
{{ partial "sidebar/render-section-menu.html" (dict "currentPage" $ "nodes" .) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with site.Sections }}
|
||||||
|
{{ partial "sidebar/render-section-menu.html" (dict "currentPage" $ "nodes" .) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with (.Site.GetPage "section" .Section).Sections }}
|
||||||
|
{{ partial "sidebar/render-section-menu.html" (dict "currentPage" $ "nodes" .) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ with slice (site.GetPage "/introduction") }}
|
||||||
|
{{ partial "sidebar/render-section-menu.html" (dict "currentPage" $ "nodes" .) }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
*/}}
|
||||||
|
|
||||||
|
{{- /* Configure. */}}
|
||||||
|
{{- $skipHome := true }}
|
||||||
|
|
||||||
|
{{- /* Get parameters. */}}
|
||||||
|
{{- $currentPage := .currentPage }}
|
||||||
|
{{- $nodes := .nodes }}
|
||||||
|
|
||||||
|
{{- /* Render. */}}
|
||||||
|
<nav class="section-nav docs-links">
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
{{- range $nodes }}
|
||||||
|
{{- if and .Page.IsHome $skipHome }}
|
||||||
|
{{- continue }}
|
||||||
|
{{- end }}
|
||||||
|
{{- template "walk" (dict "node" . "currentPage" $currentPage) }}
|
||||||
|
{{- end }}
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
{{- /* Recurively render list items. */}}
|
||||||
|
{{- define "walk" }}
|
||||||
|
{{- $currentPage := .currentPage }}
|
||||||
|
{{- $node := .node }}
|
||||||
|
|
||||||
|
{{- $linkContent := $node.Page.LinkTitle }}
|
||||||
|
{{- with $node.Name }}
|
||||||
|
{{- $linkContent = . }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- $ariaCurrent := "" }}
|
||||||
|
{{- $liClass := "" }}
|
||||||
|
|
||||||
|
{{- if in $currentPage.Ancestors $node.Page }}
|
||||||
|
{{- $ariaCurrent = "true" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
{{- if $currentPage.Eq $node.Page }}
|
||||||
|
{{- $ariaCurrent = "page" }}
|
||||||
|
{{- $liClass = "active" }}
|
||||||
|
{{- end }}
|
||||||
|
|
||||||
|
<li {{- with $liClass }} class="{{ . }}" {{ end -}}>
|
||||||
|
{{- with $node.Page.Pages }}
|
||||||
|
<details{{- with $ariaCurrent }} open{{- end }}{{- if ne $node.Page.Params.sidebar.collapsed true }} open{{- end }}>
|
||||||
|
<summary>
|
||||||
|
{{ if $node.Page.Params.icon }}{{- partial "inline-svg" $node.Page.Params.icon -}}{{ end }}
|
||||||
|
{{ $linkContent }}
|
||||||
|
</summary>
|
||||||
|
<ul class="list-unstyled list-nested">
|
||||||
|
{{- range . }}
|
||||||
|
{{- template "walk" (dict "node" . "currentPage" $currentPage) }}
|
||||||
|
{{- end }}
|
||||||
|
</ul>
|
||||||
|
</details>
|
||||||
|
{{- else }}
|
||||||
|
<a {{- with $ariaCurrent }} aria-current="{{ . }}" {{- end }} href="{{- $node.Page.RelPermalink }}">{{ $linkContent }}</a>
|
||||||
|
{{- end }}
|
||||||
|
</li>
|
||||||
|
{{- end }}
|
Loading…
Reference in New Issue