Compare commits

...

15 Commits

Author SHA1 Message Date
b46c0b34a1 feat: Add docs
All checks were successful
continuous-integration/drone/push Build is passing
2023-06-01 09:37:49 +02:00
cac7f52e5f feat: Add analytic
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-31 14:34:57 +02:00
81e0fa147a fix: linter
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-31 14:31:49 +02:00
1f63a8e88f feat: Mise à jour de l'espacement de la phrase lead
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-31 14:18:45 +02:00
d45bfba43e feat: Update footer space
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-24 10:59:46 +02:00
bb72fb809b feat: Add documentation
Some checks failed
continuous-integration/drone/push Build is failing
2023-05-24 01:12:24 +02:00
73e310b277 feat: Update footer & add todo
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-24 00:21:34 +02:00
773458edf7 feat: Update documentation
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-24 00:14:27 +02:00
6e11e7bbe5 feat: Update design
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 23:58:17 +02:00
b97920e51e feat: Update design black 2023-05-23 23:41:55 +02:00
859eaccd6e fix: Color theme & add alert text
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 01:14:01 +02:00
6a6114f3c9 feat: Translate
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 00:46:48 +02:00
eae1a94052 feat: Update theme color
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 00:44:17 +02:00
11279b9167 feat: Add documentation
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-23 00:43:22 +02:00
be47e3db28 feat: Add ci with deploy
All checks were successful
continuous-integration/drone/push Build is passing
2023-05-22 16:00:52 +02:00
34 changed files with 1226 additions and 152 deletions

61
.drone.yml Normal file
View File

@ -0,0 +1,61 @@
---
# drone encrypt ResiLien/loi_re $AWS_ACCESS_KEY_ID
kind: secret
name: AWS_ACCESS_KEY_ID
data: 7xDOhroFzhF9AMnLnteYd+UBBmzSvgNW1nlhSZEoNMEzfL/E4MTykmgHKdQIPg+tNC7gRfz3
---
# drone encrypt ResiLien/loi_re $AWS_SECRET_ACCESS_KEY
kind: secret
name: AWS_SECRET_ACCESS_KEY
data: 9haqlgRCJ4W/wqmHVpJLOohv8kEQ+0hm83oECYcBpy7vdPoxT5vBQBFGpDnwenIbYX+7LNoJRl76E6mv1Q7olgxJh6DZtzCA9/00+LlH35DSVpWfqAYkRSdq6lo=
---
kind: pipeline
type: docker
name: production
steps:
- name: install npm
image: node:current-alpine
volumes:
- name: assets
path: /drone/src/node_modules
commands:
- npm install --ignore-scripts
- npm run test
- name: build website
image: jakejarvis/hugo-extended
environment:
AWS_ACCESS_KEY_ID:
from_secret: AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY:
from_secret: AWS_SECRET_ACCESS_KEY
volumes:
- name: assets
path: /drone/src/node_modules
- name: hugo-resources
path: /drone/src/resources
commands:
- hugo --gc --minify
- hugo deploy
- name: notify
image: plugins/matrix@sha256:f1affb31b0c86963c97c6f976fa0dcb3cc84272057fd8558d609d28b3064bd7f
settings:
homeserver: https://converser.eu
roomid: "QwOITmkKxRJJyCSDOZ:converser.eu"
userid: "resilien:converser.eu"
accesstoken:
from_secret: MATRIX_ACCESSTOKEN
when:
status: [ failure ]
volumes:
- name: assets
host:
path: /tmp/drone/cache/ResiLien/loi_re/node_modules
- name: hugo-resources
host:
path: /tmp/drone/cache/ResiLien/loi_re/resources

View File

@ -4,8 +4,13 @@ Documentation du Services Numériques Libres hébergé dans le département de l
## TODO
- [ ] Ajouter du contenu pour le logiciel PDF
- [ ] Ajouter le déploiement automatique
- [ ] Rédiger la page « Mentions légales »
- [ ] Rédifger la page « Politique de Protection des Données »
- [ ] Ajouter une page 404
- [x] Modifier les couleurs du theme
- [ ] Refaire faire le logo
- [x] Ajouter du contenu pour le logiciel PDF
- [x] Ajouter le déploiement automatique
## Commande

View File

@ -2,9 +2,15 @@
@import "bootstrap/scss/functions";
/** Import theme variables */
$primary: #42b883;
$link-color-dark: $primary;
@import "common/variables";
/** Import Bootstrap */
$primary: #42b883;
$link-color-dark: $primary;
@import "bootstrap/scss/bootstrap";
/** Import highlight.js */

View File

@ -0,0 +1,582 @@
/** Theme variables */
// Source: https://material.io/design/color/dark-theme.html
$body-bg-dark: $gray-900;
$body-overlay-dark: darken($body-bg-dark, 2.5%);
/*
$border-dark: darken($body-bg-dark, 2.5%);
*/
$border-dark: $gray-800;
$body-color-dark: $gray-300;
$dots-dark: darken($body-color-dark, 50%);
$link-color-dark: #42b883;
$button-color-dark: $link-color-dark;
$focus-color-dark: lighten($link-color-dark, 2.5%);
$navbar-dark-color: $body-color-dark;
$navbar-dark-hover-color: $link-color-dark;
$navbar-dark-active-color: $link-color-dark;
/** Theme styles */
[data-dark-mode] body {
background: $body-bg-dark;
color: $body-color-dark;
}
[data-dark-mode] body a {
color: $link-color-dark;
}
[data-dark-mode] body a.text-body {
color: $body-color-dark !important;
}
[data-dark-mode] body .btn-primary {
@include button-variant($button-color-dark, $button-color-dark);
color: $body-bg-dark !important;
}
[data-dark-mode] body .btn-outline-primary {
@include button-outline-variant($button-color-dark, $button-color-dark);
color: $link-color-dark;
}
[data-dark-mode] body .btn-outline-primary:hover {
color: $body-bg-dark;
}
[data-dark-mode] body .btn-doks-light {
color: $navbar-dark-color;
}
[data-dark-mode] body .show > .btn-doks-light,
[data-dark-mode] body .btn-doks-light:hover,
[data-dark-mode] body .btn-doks-light:active {
color: $link-color-dark;
}
[data-dark-mode] body .btn-menu svg {
color: $body-color-dark;
}
[data-dark-mode] body .doks-sidebar-toggle {
color: $navbar-dark-color;
}
[data-dark-mode] body .btn-menu:hover,
[data-dark-mode] body .btn-doks-light:hover,
[data-dark-mode] body .doks-sidebar-toggle:hover {
background: $body-overlay-dark;
}
/*
[data-dark-mode] body .dropdown-menu {
@extend .dropdown-menu-dark;
}
*/
[data-dark-mode] body .navbar,
[data-dark-mode] body .doks-subnavbar {
background-color: rgba(33, 37, 41, 0.95);
border-bottom: 1px solid $border-dark;
}
[data-dark-mode] body.home .navbar {
border-bottom: 0;
}
[data-dark-mode] body .offcanvas-header {
border-bottom: 1px solid $gray-800;
}
[data-dark-mode] body .offcanvas .nav-link {
color: $body-color-dark;
}
[data-dark-mode] body .offcanvas .nav-link:hover,
[data-dark-mode] body .offcanvas .nav-link:focus {
color: $link-color-dark;
}
[data-dark-mode] body .offcanvas .nav-link.active {
color: $link-color-dark;
}
[data-dark-mode] body .navbar-light .navbar-brand {
color: $navbar-dark-color !important;
}
[data-dark-mode] body .navbar-light .navbar-nav .nav-link {
color: $navbar-dark-color;
}
[data-dark-mode] body .navbar-light .navbar-nav .nav-link:hover,
[data-dark-mode] body .navbar-light .navbar-nav .nav-link:focus {
color: $navbar-dark-hover-color;
}
[data-dark-mode] body .navbar-light .navbar-nav .nav-link.disabled {
color: $navbar-dark-disabled-color;
}
[data-dark-mode] body .navbar-light .navbar-nav .show > .nav-link,
[data-dark-mode] body .navbar-light .navbar-nav .active > .nav-link,
[data-dark-mode] body .navbar-light .navbar-nav .nav-link.show,
[data-dark-mode] body .navbar-light .navbar-nav .nav-link.active {
color: $navbar-dark-active-color;
}
[data-dark-mode] body .navbar-light .navbar-text {
color: $navbar-dark-color;
}
[data-dark-mode] body .alert-primary a {
color: $body-bg-dark;
}
[data-dark-mode] body .alert-doks {
background: $body-overlay-dark;
color: $body-color-dark;
}
[data-dark-mode] body .alert-doks a {
color: $link-color-dark;
}
[data-dark-mode] body .page-links a {
color: $body-color-dark;
}
[data-dark-mode] body .btn-toggle-nav a {
color: $body-color-dark;
}
[data-dark-mode] body .showcase-meta a {
color: $body-color-dark;
}
[data-dark-mode] body .showcase-meta a:hover,
[data-dark-mode] body .showcase-meta a:focus {
color: $link-color-dark;
}
[data-dark-mode] body .docs-link:hover,
[data-dark-mode] body .docs-link.active,
[data-dark-mode] body .page-links a:hover {
text-decoration: none;
color: $link-color-dark;
}
[data-dark-mode] body .btn-toggle {
color: $body-color-dark;
background-color: transparent;
border: 0;
}
[data-dark-mode] body .btn-toggle:hover,
[data-dark-mode] body .btn-toggle:focus {
color: $body-color-dark;
}
[data-dark-mode] body .btn-toggle::before {
width: 1.25em;
line-height: 0;
content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
transition: transform 0.35s ease;
transform-origin: 0.5em 50%;
margin-bottom: 0.125rem;
}
[data-dark-mode] body .btn-toggle[aria-expanded="true"] {
color: $body-color-dark;
}
[data-dark-mode] body .btn-toggle[aria-expanded="true"]::before {
transform: rotate(90deg);
}
[data-dark-mode] body .btn-toggle-nav a:hover,
[data-dark-mode] body .btn-toggle-nav a:focus {
color: $link-color-dark;
}
[data-dark-mode] body .btn-toggle-nav a.active {
color: $link-color-dark;
}
[data-dark-mode] body .navbar-light .navbar-text a {
color: $navbar-dark-active-color;
}
[data-dark-mode] body .docs-links h3.sidebar-link a,
[data-dark-mode] body .page-links h3.sidebar-link a {
color: $body-color-dark;
}
[data-dark-mode] body .navbar-light .navbar-text a:hover,
[data-dark-mode] body .navbar-light .navbar-text a:focus {
color: $navbar-dark-active-color;
}
[data-dark-mode] body .navbar .btn-link {
color: $navbar-dark-color;
}
[data-dark-mode] body .content .btn-link {
color: $link-color-dark;
}
[data-dark-mode] body .content .btn-link:hover {
color: $link-color-dark;
}
[data-dark-mode] body .content img[src^="https://latex.codecogs.com/svg.latex"] {
filter: invert(1);
}
[data-dark-mode] body .navbar .btn-link:hover {
color: $navbar-dark-hover-color;
}
[data-dark-mode] body .navbar .btn-link:active {
color: $navbar-dark-active-color;
}
[data-dark-mode] body .form-control.is-search {
background: $body-overlay-dark;
border: 1px solid transparent;
color: $gray-300;
/*
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%236c757d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' class='feather feather-search'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right calc(0.375em + 0.1875rem) center;
background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
*/
}
[data-dark-mode] body .form-control.is-search:focus {
border: 1px solid $link-color-dark;
}
[data-dark-mode] body .doks-search::after {
color: $gray-300;
border: 1px solid $gray-700;
}
[data-dark-mode] body .text-dark {
color: $body-color-dark !important;
}
/*
[data-dark-mode] body .navbar-form::after {
color: $gray-600;
border: 1px solid $gray-800;
}
*/
[data-dark-mode] body .form-control {
color: $gray-300;
}
[data-dark-mode] body .form-control::placeholder {
color: $gray-400;
opacity: 1;
}
[data-dark-mode] body .border-top {
border-top: 1px solid $border-dark !important;
}
@include media-breakpoint-up(lg) {
[data-dark-mode] body .docs-sidebar {
order: 0;
border-right: 1px solid $border-dark;
}
}
[data-dark-mode] body .docs-navigation {
border-top: 1px solid $border-dark;
}
[data-dark-mode] body pre code::-webkit-scrollbar-thumb {
background: $gray-400;
}
[data-dark-mode] body code:not(.hljs) {
background: $body-overlay-dark;
color: $body-color-dark;
}
[data-dark-mode] body pre code:hover {
scrollbar-width: thin;
scrollbar-color: $border-dark transparent;
}
[data-dark-mode] body pre code::-webkit-scrollbar-thumb:hover {
background: $gray-500;
}
[data-dark-mode] body blockquote {
border-left: 3px solid $border-dark;
}
[data-dark-mode] body .footer {
border-top: 1px solid $border-dark;
}
[data-dark-mode] body .docs-links,
[data-dark-mode] body .docs-toc {
scrollbar-width: thin;
scrollbar-color: $body-bg-dark $body-bg-dark;
}
[data-dark-mode] body .docs-links::-webkit-scrollbar,
[data-dark-mode] body .docs-toc::-webkit-scrollbar {
width: 5px;
}
[data-dark-mode] body .docs-links::-webkit-scrollbar-track,
[data-dark-mode] body .docs-toc::-webkit-scrollbar-track {
background: $body-bg-dark;
}
[data-dark-mode] body .docs-links::-webkit-scrollbar-thumb,
[data-dark-mode] body .docs-toc::-webkit-scrollbar-thumb {
background: $body-bg-dark;
}
[data-dark-mode] body .docs-links:hover,
[data-dark-mode] body .docs-toc:hover {
scrollbar-width: thin;
scrollbar-color: $border-dark $body-bg-dark;
}
[data-dark-mode] body .docs-links:hover::-webkit-scrollbar-thumb,
[data-dark-mode] body .docs-toc:hover::-webkit-scrollbar-thumb {
background: $border-dark;
}
[data-dark-mode] body .docs-links::-webkit-scrollbar-thumb:hover,
[data-dark-mode] body .docs-toc::-webkit-scrollbar-thumb:hover {
background: $border-dark;
}
[data-dark-mode] body .docs-links h3:not(:first-child) {
border-top: 1px solid $border-dark;
}
[data-dark-mode] body a.docs-link {
color: $body-color-dark;
}
[data-dark-mode] body .page-links li:not(:first-child) {
border-top: 1px dashed $border-dark;
}
[data-dark-mode] body .card {
background: $body-bg-dark;
border: 1px solid $border-dark;
}
[data-dark-mode] body .card.bg-light {
background: $body-overlay-dark !important;
}
[data-dark-mode] body .navbar .menu-icon .navicon {
background: $navbar-dark-color;
}
[data-dark-mode] body .navbar .menu-icon .navicon::before,
[data-dark-mode] body .navbar .menu-icon .navicon::after {
background: $navbar-dark-color;
}
[data-dark-mode] body .logo-light {
display: none !important;
}
[data-dark-mode] body .logo-dark {
display: inline-block !important;
}
[data-dark-mode] body .bg-light {
background: darken($body-bg-dark, 1.5%) !important;
}
[data-dark-mode] body .bg-dots {
background-image: radial-gradient($dots-dark 15%, transparent 15%);
}
[data-dark-mode] body .text-muted {
color: darken($body-color-dark, 7.5%) !important;
}
[data-dark-mode] body .alert-primary {
background: $link-color-dark;
color: $body-bg-dark;
}
[data-dark-mode] body .figure-caption {
color: $body-color-dark;
}
[data-dark-mode] body table {
@extend .table-dark;
}
[data-dark-mode] body .copy-status::after {
content: "Copy";
display: block;
color: $body-color-dark;
}
[data-dark-mode] body .copy-status:hover::after {
content: "Copy";
display: block;
color: $link-color-dark;
}
[data-dark-mode] body .copy-status:focus::after,
[data-dark-mode] body .copy-status:active::after {
content: "Copied";
display: block;
color: $link-color-dark;
}
/*
[data-dark-mode] body .dropdown-toggle:focus,
[data-dark-mode] body .doks-sidebar-toggle:focus {
box-shadow: 0 0 0 0.2rem $focus-color-dark;
}
*/
[data-dark-mode] body .offcanvas {
background-color: $body-bg-dark;
}
[data-dark-mode] body .btn-close {
background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9IiNkZWUyZTYiIHN0cm9rZS13aWR0aD0iMiIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBjbGFzcz0iZmVhdGhlciBmZWF0aGVyLXgiPjxsaW5lIHgxPSIxOCIgeTE9IjYiIHgyPSI2IiB5Mj0iMTgiPjwvbGluZT48bGluZSB4MT0iNiIgeTE9IjYiIHgyPSIxOCIgeTI9IjE4Ij48L2xpbmU+PC9zdmc+");
background-size: 1.5rem;
}
@include media-breakpoint-up(md) {
[data-dark-mode] body .alert-dismissible .btn-close {
background-size: 1.25rem;
}
}
/*
[data-dark-mode] body .btn-close:focus {
box-shadow: 0 0 0 0.2rem $focus-color-dark;
}
*/
[data-dark-mode] .dropdown-item {
color: $body-bg-dark;
}
[data-dark-mode] body hr.text-black-50 {
color: $gray-600 !important;
}
[data-dark-mode] body .email-form .form-control {
background: $body-overlay-dark;
border: 1px solid transparent;
}
[data-dark-mode] body .email-form .form-control:focus {
border: 1px solid $link-color-dark;
}
[data-dark-mode] .page-link {
color: $link-color-dark;
background-color: transparent;
border: $pagination-border-width solid $border-dark;
&:hover {
color: $body-bg-dark;
background-color: $body-color-dark;
border-color: $body-color-dark;
}
&:focus {
color: $body-bg-dark;
background-color: $body-color-dark;
}
}
[data-dark-mode] .page-item {
&.active .page-link {
color: $body-bg-dark;
@include gradient-bg($link-color-dark);
border-color: $link-color-dark;
}
&.disabled .page-link {
color: $pagination-disabled-color;
background-color: $body-overlay-dark;
border-color: $border-dark;
}
}
[data-dark-mode] .dropdown-menu {
background: $body-overlay-dark;
}
[data-dark-mode] .dropdown-menu .dropdown-item {
color: $body-color-dark;
}
[data-dark-mode] .dropdown-menu .dropdown-item:hover {
color: $link-color-dark;
background: $body-bg-dark;
}
[data-dark-mode] .dropdown-menu .dropdown-item.active,
[data-dark-mode] .dropdown-menu .dropdown-item:focus {
color: $link-color-dark;
background: $body-bg-dark;
}
[data-dark-mode] .doks-navbar .dropdown-item.current,
[data-dark-mode] .doks-subnavbar .dropdown-item.current {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23dee2e6' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");
background-repeat: no-repeat;
background-position: right 1rem top 0.6rem;
background-size: 0.75rem 0.75rem;
}
[data-dark-mode] details {
border: 1px solid $border-dark;
}
[data-dark-mode] summary:hover {
background: $body-overlay-dark;
}
[data-dark-mode] details[open] > summary {
border-bottom: 1px solid $border-dark;
}
[data-dark-mode] details summary::before {
content: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='rgba%28222, 226, 230, 0.75%29' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M5 14l6-6-6-6'/%3e%3c/svg%3e");
}
[data-dark-mode] #toc a.active {
color: $link-color-dark;
}
[data-dark-mode] .btn-light {
color: $link-color-dark;
background: $body-overlay-dark;
border: 1px solid $body-overlay-dark;
}

View File

@ -30,7 +30,7 @@
[[main]]
name = "Documentation"
url = "/documentation/introduction/bienvenue/"
url = "/docs/introduction/bienvenue/"
weight = 10
#[[main]]

View File

@ -3,6 +3,10 @@
min = "0.80.0"
max = ""
[[mounts]]
source = "assets"
target = "assets"
[[mounts]]
source = "node_modules/@hyas/doks/archetypes"
target = "archetypes"
@ -39,10 +43,6 @@
source = "node_modules/mermaid"
target = "assets/js/vendor/mermaid"
[[mounts]]
source = "assets"
target = "assets"
[[mounts]]
source = "static"
target = "static"

View File

@ -65,16 +65,16 @@ defaultImage = "default-image.png" # put in `./assets/images/`
fillImage = "1270x740 Center" # normalize image size
# Footer
footer = "Réalisé par <a href=\"https://weko.io/\">Weko</a> avec ❤️ et Hébergé par <a href=\"https://resilien.fr/\">RésiLien</a> 🐱 de façon éco-responsable 🍃"
footer = "Réalisé par <a href=\"https://weko.io/\">Weko</a> avec ❤️ et Hébergé par <a href=\"https://resilien.fr/\">RésiLien</a> 🐱"
# Feed
copyRight = "Copyright (c) 2023 Weko"
# Alert
alert = false
alert = true
alertDismissable = true
# alertText = "Introducing the Doks child theme, several DX + UX updates, and more! <a class=\"alert-link stretched-link\" href=\"https://getdoks.org/blog/doks-v0.2/\" target=\"_blank\" rel=\"noopener\">Check out Doks v0.2</a>"
alertText = "Introducing the Doks child theme, several DX + UX updates, and more! <a class=\"alert-link stretched-link\" href=\"https://getdoks.org/blog/doks-v0.2/\">Check out Doks v0.2</a>"
alertText = "Ce site est en construction !"
# Edit Page
# repoHost [Github | Gitea | GitLab | Bitbucket | BitbucketServer ] is used for building the edit link based on git hoster
@ -111,4 +111,4 @@ lastMod = false
[menu]
[menu.section]
auto = true
collapsibleSidebar = true
collapsibleSidebar = false

View File

@ -1 +1,5 @@
canonifyURLs = false
[[deployment.targets]]
name = "production"
URL = "s3://loi.re?endpoint=https://s3.garage.resilien.cloud&disableSSL=true&s3ForcePathStyle=true&region=garage"

View File

@ -1,7 +1,7 @@
---
title : "Services Numériques Libres"
description: "L'ensemble des services sont hébergés dans le département de la Loire (42)"
lead: "Ce site WEB vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus « saine »."
lead: "Ce site WEB vous met à disposition de multiples services utiles pour collaborer, partager et avoir une vie numérique plus « saine »."
date: 2020-10-06T08:47:36+00:00
lastmod: 2020-10-06T08:47:36+00:00
draft: false

View File

@ -4,7 +4,7 @@ description: ""
lead: ""
date: 2022-01-25T14:41:21+01:00
lastmod: 2022-01-25T14:41:21+01:00
draft: false
draft: true
images: []
type: docs
weight: 40

View File

@ -4,7 +4,7 @@ description: "Doks is a Hugo theme for building secure, fast, and SEO-ready docu
lead: "Loi.re est un service en ligne pour permettre au plus de personne d'accéder à des outils numériques libre, vous trouverez de la documentation, des guides ainsi que des articles de blog vous permettant d'avoir un avis plus critique sur l'informatique."
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
draft: true
images: []
menu:
docs:

View File

@ -0,0 +1,11 @@
---
title: "Général"
description: ""
lead: ""
date: 2022-01-25T14:41:21+01:00
lastmod: 2022-01-25T14:41:21+01:00
draft: false
images: []
type: docs
weight: 40
---

View File

@ -0,0 +1,51 @@
---
title: "Navigateur WEB"
description: ""
lead: ""
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "general"
weight: 100
toc: true
type: docs
---
## Définition
Un navigateur WEB est un logiciel permettant de consulter des pages WEB, ce n'est donc pas [un moteur de recherche](../recherche/) 😜.
## 🖥️ Sur ordinateur
{{< alert icon="👍" >}}
Nous conseillons les navigateurs suivant :
- [Firefox](https://www.mozilla.org/fr/firefox/new/) réalisé et distribué par la [fondation Mozilla](https://foundation.mozilla.org/fr/)
- [Brave](https://brave.com/fr/) dont l'objectif est de protéger la vie privée de ses utilisateurs
- [Chromium](https://www.chromium.org/getting-involved/download-chromium/) est un équivalent de Chrome sans les mouchards de Google
{{< /alert >}}
Les navigateurs contenant de nombreux espions à éviter :
- Chrome fait par Google
- Safari fait par Apple
- Edge fait par Microsoft
## 📱 Sur téléphone
{{< alert icon="👍" >}}
Nous conseillons les navigateurs suivant :
- [Firefox](https://www.mozilla.org/fr/firefox/browsers/mobile/) réalisé et distribué par la [fondation Mozilla](https://foundation.mozilla.org/fr/)
{{< /alert >}}
## Culture
Un navigateur a besoin d'un moteur de rendu pour afficher correctement une page WEB, il en existe plusieurs mais c'est pour cela que parfois des pages ne s'affichent pas de la même manière selon le navigateur.
## Liens
- [Définition d'un navigateur WEB par Wikipedia](https://fr.wikipedia.org/wiki/Navigateur_web)

View File

@ -0,0 +1,36 @@
---
title: "Moteur de recherche"
description: ""
lead: ""
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "general"
weight: 80
toc: true
type: docs
---
## Définition
Un moteur de recherche est un service en ligne permettant à des utilisateur d'effectuer une recherche à parti d'un texte et ainsi afficher des ressources correspondante.
{{< alert icon="👍" >}}
Nous conseillons les moteurs de recherche suivant :
- [Lilo](https://search.lilo.org/) est une entreprise numérique française qui finance des projets sociaux et environnementaux, choisis par les internautes
- [Ecosia](https://brave.com/fr/) moteur de recherche allemand qui reverse une part de ses bénéfices à des associations à but non lucratif qui œuvrent aux programmes de reforestation
- [DuckDuckGo](https://duckduckgo.com/) est un moteur de recherche américain qui vise à préserver la vie privée de ses utilisateurs
{{< /alert >}}
Les moteurs de recherche que nous déconseillons :
- Google
- Bind
## Liens
- [Définition d'un moteur de recherche par Wikipedia](https://fr.wikipedia.org/wiki/Moteur_de_recherche)

View File

@ -0,0 +1,51 @@
---
title: "👋 Bienvenue !"
description: "Loi.re est un service en ligne pour permettre au plus de personne d'accéder à des outils numériques libre, vous trouverez de la documentation, des guides ainsi que des articles de blog vous permettant d'avoir un avis plus critique sur l'informatique."
lead: ""
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "introduction"
weight: 100
toc: true
type: docs
---
Vous êtes bienvenue dans la communauté [`Loi.re`](https://loi.re) !
Vous trouverez ici de la documentation autour des services que l'on propose ainsi que sur le numérique responsable !
## Questions ou suggestions
C'est une communauté ouverte n'hésitez pas à interagir avec nous par mail à [discussions@loi.re](mailto:discussions@loi.re).
Prochainement nous ouvrirons un forum pour faciliter les échanges.
## Qui sommes-nous ? 🐱
Derrière le service [`Loi.re`](https://loi.re) il y a l'équipe de [RésiLien](https://resilien.fr) un hébergeur alternatif présent dans la Loire, nous travaillons à promouvoir un numérique responsable ! Nous nous sommes engagé à respecter [la charte](https://www.chatons.org/charte) forte du [Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires](https://www.chatons.org) dont nous faisons partie depuis décembre 2021.
## La Loire
{{< alert icon="💡" >}}
**Information**
15 000 km c'est la distance moyenne parcourue par une donnée numérique (mail, téléchargement, vidéo, requête web, etc).
[Selon le rapport la Face cachée du numérique](/pdf/ademe_guide-pratique-face-cachee-numerique.pdf) édité par l'[ADEME](https://www.ademe.fr/).
{{< /alert >}}
Dans le département de la Loire, nous avons la chance d'avoir un réseau fibré
par [THD42](https://www.thd42.fr/) une initiative du
[SIEL - Territoire d'énergie](https://www.te42.fr/) un **acteur public**
opérationnel de la transition énergétique et de laménagement numérique.
Utilisons des services numériques directement hébergés localement plutôt
qu'à l'autre bout du monde.
## Autres départements ?
Vous êtes dans un autre département ? Vous pouvez retrouver d'autres services numérique libre depuis le site des [CHATONS](https://www.chatons.org/search/near-me).

View File

@ -0,0 +1,42 @@
---
title: "Découvrez les logiciels libres : libérez le potentiel de votre informatique !"
description: ""
lead: ""
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "introduction"
titleMenu: logiciels libres ?
weight: 100
toc: true
type: docs
---
Dans notre monde de plus en plus connecté, l'informatique joue un rôle central dans notre quotidien. Mais saviez-vous qu'il existe une approche alternative pour utiliser les outils informatiques ? **Les logiciels libres** offrent une solution qui met le pouvoir entre vos mains. Dans cet article, nous allons explorer le monde des logiciels libres et découvrir comment ils peuvent améliorer votre expérience informatique, tout en favorisant la transparence, la sécurité et l'autonomie.
## Qu'est-ce que les logiciels libres ?
Les logiciels libres sont des programmes informatiques dont le code source est disponible pour tous. En d'autres termes, ils sont "ouverts" et permettent à chacun de les étudier, de les modifier et de les distribuer selon ses besoins. Contrairement aux logiciels propriétaires, qui sont souvent la propriété exclusive d'une entreprise, les logiciels libres offrent une liberté d'utilisation et une transparence totale.
## Les avantages des logiciels libres
- **Contrôle total :** Avec les logiciels libres, vous avez le plein contrôle sur votre informatique. Vous pouvez personnaliser les programmes en fonction de vos besoins spécifiques, ce qui signifie que vous n'êtes pas limité aux fonctionnalités préétablies. Vous êtes le maître de votre outil, et non pas l'inverse !
- **Sécurité et confidentialité :** Les logiciels libres sont développés par des communautés engagées qui se soucient de la sécurité des utilisateurs. Étant donné que le code source est accessible, les erreurs et les vulnérabilités sont rapidement détectées et corrigées. Vous pouvez donc être sûr que votre logiciel est sécurisé et respecte votre vie privée.
- **Transparence et confiance :** Avec les logiciels libres, vous n'avez pas à faire confiance aveuglément à un éditeur. Vous pouvez inspecter le code source pour comprendre comment le logiciel fonctionne réellement. Cela garantit qu'il n'y a pas de fonctionnalités cachées ou de collecte excessive de données. Vous pouvez donc utiliser votre logiciel en toute confiance.
- **Coût et accessibilité :** Les logiciels libres sont souvent disponibles gratuitement, ce qui réduit considérablement les coûts liés à l'acquisition de licences. De plus, ils favorisent l'égalité d'accès à la technologie, car tout le monde peut les utiliser, indépendamment de ses moyens financiers.
- **Collaboration et communauté :** Les logiciels libres sont soutenus par des communautés dynamiques où les utilisateurs et les développeurs collaborent. Cela signifie que vous pouvez trouver un soutien, des conseils et des ressources auprès de personnes partageant les mêmes intérêts. Les forums et les groupes de discussion vous permettent d'apprendre et d'échanger avec d'autres passionnés.
## Conclusion
Les logiciels libres offrent une alternative passionnante et responsable pour utiliser l'informatique. En vous donnant le contrôle total, en garantissant la sécurité et la confidentialité, et en favorisant la collaboration, ils libèrent votre potentiel informatique. Alors, pourquoi ne pas rejoindre le mouvement des logiciels libres et explorer ce monde fascinant ? Libérez votre informatique et ouvrez-vous à de nouvelles possibilités infinies !
## Ressources
Voici quelques ressources si vous voulez approfondir le sujet :
- [« Logiciel libre » sur Wikipedia](https://fr.wikipedia.org/wiki/Logiciel_libre)
- La [Free Software Foundation](https://www.fsf.org/) est une organisation internationale dédiée à la promotion du logiciel libre. Sur leur site web, vous trouverez une section [« Qu'est-ce que le logiciel libre ? »](https://www.fsf.org/fr/quest-ce-que-le-logiciel-libre) qui fournit des informations détaillées sur les principes et les avantages des logiciels libres.
- L'[Open Source Initiative](https://opensource.org/) est une organisation qui promeut l'adoption de l'open source à travers le monde. Leur site web propose une section "À propos de l'open source" qui explique les principes fondamentaux de l'open source et fournit des informations sur les licences open source.

View File

@ -4,7 +4,7 @@ description: ""
lead: ""
date: 2022-01-25T14:41:21+01:00
lastmod: 2022-01-25T14:41:21+01:00
draft: false
draft: true
images: []
type: docs
weight: 20

View File

@ -4,7 +4,7 @@ description: "Doks is a Hugo theme for building secure, fast, and SEO-ready docu
lead: "Loi.re est un service en ligne pour permettre au plus de personne d'accéder à des outils numériques libre, vous trouverez de la documentation, des guides ainsi que des articles de blog vous permettant d'avoir un avis plus critique sur l'informatique."
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
draft: true
images: []
menu:
docs:

View File

@ -0,0 +1,36 @@
---
title: "Édition de fichier PDF"
description: ""
lead: ""
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "pdf"
weight: 100
toc: true
type: docs
---
Le service [`pdf.loi.re`](https://pdf.loi.re) permet de modifier un fichier PDF facilement.
## Fonctionnalités
Vous pouvez avec ce service :
- Modifier un fichier PDF (Signer, parapher, tamponner, compléter un document)
- Organiser les pages de fichiers PDFs (Fusionner, trier, pivoter, supprimer, extraire des pages)
- Modifier les métadonnées d'un fichier PDF (Ajouter, modifier ou supprimer)
<a class="btn btn-primary m-auto" href="https://pdf.loi.re">Accéder au service</a>
{.text-center .m-5}
## Vie privée
Le service ne sauvegarde jamais votre fichier, vous n'avez donc aucune crainte que quelqu'un puisse y accéder.
## Outil libre
L'outil utilisé est [signaturepdf](https://github.com/24eme/signaturepdf), il est édité par la coopérative parisienne « [24eme](https://www.24eme.fr/) » sous la licence [AGPLv3](https://www.gnu.org/licenses/agpl-3.0.html).

View File

@ -1,59 +0,0 @@
---
title: "👋 Bienvenue !"
description: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize."
lead: "Loi.re est un service en ligne pour permettre au plus de personne d'accéder à des outils numériques libre, vous trouverez de la documentation, des guides ainsi que des articles de blog vous permettant d'avoir un avis plus critique sur l'informatique."
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "introduction"
weight: 100
toc: true
type: docs
---
## Get started
There are two main ways to get started with Doks:
### Tutorial
{{< alert icon="👉" text="The Tutorial is intended for novice to intermediate users." />}}
Step-by-step instructions on how to start a new Doks project. [Tutorial →](https://getdoks.org/tutorial/introduction/)
### Quick Start
{{< alert icon="👉" text="The Quick Start is intended for intermediate to advanced users." />}}
One page summary of how to start a new Doks project. [Quick Start →]
## Go further
Recipes, Reference Guides, Extensions, and Showcase.
### Recipes
Get instructions on how to accomplish common tasks with Doks. [Recipes →](https://getdoks.org/docs/recipes/project-configuration/)
### Reference Guides
Learn how to customize Doks to fully make it your own. [Reference Guides →](https://getdoks.org/docs/reference-guides/security/)
### Extensions
Get instructions on how to add even more to Doks. [Extensions →](https://getdoks.org/docs/extensions/breadcrumb-navigation/)
### Showcase
See what others have build with Doks. [Showcase →](https://getdoks.org/showcase/electric-blocks/)
## Contributing
Find out how to contribute to Doks. [Contributing →](https://getdoks.org/docs/contributing/how-to-contribute/)
## Help
Get help on Doks. [Help →]

View File

@ -1,28 +0,0 @@
---
title: "La Loire"
description: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize."
lead: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize."
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: true
images: []
menu:
docs:
parent: "introduction"
weight: 100
toc: true
type: docs
---
Dans le département de la Loire, nous avons la chance d'avoir un réseau fibré
par [THD42](https://www.thd42.fr/) une initiative du
[SIEL - Territoire d'énergie](https://www.te42.fr/) un acteur public
opérationnel de la transition énergétique et de laménagement numérique.
Utilisons des services numérique directement hébergés localement plutôt
qu'aller jusqu'aux États-Unis.
Ce site WEB vous met à disposition de multiples services utiles pour collaborer,
partager et avoir une vie numérique plus « saine ».
N'hésitez pas à venir sur notre <a href="https://forum.loi.re">forum</a> ou nous
écrire à <a href="mailto:support@loi.re">support@loi.re</a> pour toutes questions.

View File

@ -1,17 +0,0 @@
---
title: "Édition de fichier PDF"
description: "Doks is a Hugo theme for building secure, fast, and SEO-ready documentation websites, which you can easily update and customize."
lead: "Loi.re est un service en ligne pour permettre au plus de personne d'accéder à des outils numériques libre, vous trouverez de la documentation, des guides ainsi que des articles de blog vous permettant d'avoir un avis plus critique sur l'informatique."
date: 2020-10-06T08:48:57+00:00
lastmod: 2020-10-06T08:48:57+00:00
draft: false
images: []
menu:
docs:
parent: "services"
weight: 100
toc: true
type: docs
---
## Get started

View File

@ -2,7 +2,7 @@
translation: "Get Started"
- id: on-this-page
translation: "On this page"
translation: "Menu"
- id: search-text
translation: "Rechercher..."
@ -14,4 +14,4 @@
translation: "La page que vous recherchez n'existe pas ou a changé d'emplacement."
- id: browse
translation: "Browse"
translation: "Explore"

View File

@ -0,0 +1,33 @@
<!doctype html>
<html data-dark-mode="" lang="{{ .Site.Params.languageTag | default "en-US" }}">
{{ partial "head/head.html" . }}
{{ if eq .Kind "home" -}}
{{ .Scratch.Set "class" "home" -}}
{{ else if eq .Kind "404" -}}
{{ .Scratch.Set "class" "error404" -}}
{{ else if eq .Kind "page" -}}
{{ .Scratch.Set "class" .Type -}}
{{ .Scratch.Add "class" " single" -}}
{{ else -}}
{{ .Scratch.Set "class" .Type -}}
{{ .Scratch.Add "class" " list" -}}
{{ end -}}
<body class="{{ .Scratch.Get "class" }}"{{ if eq .Site.Params.options.scrollSpy true }} data-bs-spy="scroll" data-bs-target="#toc" data-bs-root-margin="0px 0px -90%" data-bs-smooth-scroll="true" tabindex="0"{{ end }}>
{{ partial "header/header.html" . }}
<div class="wrap container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }}" role="document">
<div class="content">
{{ block "main" . }}{{ end }}
</div>
</div>
{{ block "sidebar-prefooter" . }}{{ end }}
{{ block "sidebar-footer" . }}{{ end }}
{{ partial "footer/footer.html" . }}
{{ partial "footer/script-footer.html" . }}
{{ if eq .Site.Params.options.toTopButton true -}}
<div class="d-flex fixed-bottom pb-4 pb-lg-5 pe-4 pe-lg-5">
<a id="toTop" href="#" class="btn btn-outline-primary rounded-circle ms-auto p-2"><span class="visually-hidden">Top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-up"><polyline points="18 15 12 9 6 15"></polyline></svg></a>
</div>
{{ end }}
<script defer data-domain="loi.re" src="https://analytiques.resilien.cloud/js/plausible.js"></script>
</body>
</html>

View File

@ -11,7 +11,7 @@
</div>
<div class="col-lg-9 col-xl-8 text-center">
<p class="lead">{{ .Params.lead | safeHTML }}</p>
<a class="btn btn-primary btn-lg px-4 mb-2" href="/documentation/{{ if .Site.Params.options.docsVersioning }}{{ .Site.Params.docsVersion }}/{{ end }}introduction/bienvenue/" role="button">En savoir plus</a>
<a class="btn btn-primary btn-lg px-4 mb-2" href="/docs/{{ if .Site.Params.options.docsVersioning }}{{ .Site.Params.docsVersion }}/{{ end }}introduction/bienvenue/" role="button">En savoir plus</a>
</div>
</div>
</section>
@ -21,7 +21,7 @@
<section class="section section-sm">
<div class="container">
<div class="row justify-content-center text-center">
<div class="col-lg-5">
{{/* <div class="col-lg-5">
<h2 class="h4">
<a href="https://mdp.loi.re">Mots de passes</a>
</h2>
@ -30,7 +30,7 @@
<a href="/documentation/services/mdp" class="btn btn-outline-primary">Documentation</a>
<a href="https://mdp.loi.re" class="btn btn-primary">Accéder au service</a>
</div>
</div>
</div> */}}
<div class="col-lg-5">
<h2 class="h4">
<a href="https://pdf.loi.re">Gestion de PDF</a>
@ -40,11 +40,11 @@
trier, pivoter, supprimer, extraire des pages !
</p>
<div class="btn-group" role="group" aria-label="Basic outlined example">
<a href="/documentation/services/pdf" class="btn btn-outline-primary">Documentation</a>
<a href="/docs/pdf/introduction/" class="btn btn-outline-primary">Docs</a>
<a href="https://pdf.loi.re" class="btn btn-primary">Accéder au service</a>
</div>
</div>
<div class="col-lg-5">
{{/* <div class="col-lg-5">
<h2 class="h4">
<a href="https://forum.loi.re">Discussion & support</a>
</h2>
@ -56,7 +56,7 @@
<a href="/documentation/services/forum" class="btn btn-outline-primary">Documentation</a>
<a href="https://forum.loi.re" class="btn btn-primary">Accéder au service</a>
</div>
</div>
</div> */}}
</div>
</div>
</section>

View File

@ -0,0 +1,18 @@
<footer class="footer text-muted text-center text-lg-start">
<div class="container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }}">
<div class="row">
<div class="col-lg-8 order-last order-lg-first">
<ul class="list-inline">
<li class="list-inline-item">{{ .Site.Params.footer | safeHTML }}</li>
</ul>
</div>
<div class="col-lg-8 order-first order-lg-last text-lg-end">
<ul class="list-inline">
{{ range .Site.Menus.footer -}}
<li class="list-inline-item"><a href="{{ .URL | relURL }}">{{ .Name }}</a></li>
{{ end -}}
</ul>
</div>
</div>
</div>
</footer>

View File

@ -0,0 +1,199 @@
{{ if .Site.Params.alert -}}
{{ partial "header/alert.html" . }}
{{ end -}}
{{ if eq .Site.Params.options.navbarSticky true -}}
<div class="sticky-top">
{{ end -}}
<div class="header-bar"></div>
<header class="navbar navbar-expand-lg navbar-light doks-navbar">
<nav class="container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }} flex-wrap flex-lg-nowrap" aria-label="Main navigation">
<a class="navbar-brand order-0" href="{{ "/" | relLangURL }}" aria-label="{{ .Site.Params.Title }}">
{{ .Site.Params.Title }}
</a>
{{ if (in .Site.Params.sections.sectionNav .Section) -}}
<button class="btn btn-link order-0 ms-auto d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasExample" aria-controls="offcanvasExample">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-more-horizontal"><circle cx="12" cy="12" r="1"></circle><circle cx="19" cy="12" r="1"></circle><circle cx="5" cy="12" r="1"></circle></svg>
</button>
<div class="offcanvas offcanvas-start d-lg-none" tabindex="-1" id="offcanvasExample" aria-labelledby="offcanvasExampleLabel">
<div class="header-bar"></div>
<div class="offcanvas-header">
<h5 class="offcanvas-title" id="offcanvasExampleLabel">{{ i18n "browse" }} {{ .Section }}</h5>
<button type="button" class="btn-close" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<aside class="doks-sidebar mt-n3">
<nav id="doks-docs-nav" aria-label="Tertiary navigation">
{{ partial "sidebar/docs-menu.html" . }}
</nav>
</aside>
</div>
</div>
{{ end -}}
<button class="btn btn-menu order-2 d-block d-lg-none" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasDoks" aria-controls="offcanvasDoks" aria-label="Open main menu">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-menu"><line x1="3" y1="12" x2="21" y2="12"></line><line x1="3" y1="6" x2="21" y2="6"></line><line x1="3" y1="18" x2="21" y2="18"></line></svg>
</button>
<div class="offcanvas offcanvas-end border-0 py-lg-1" tabindex="-1" id="offcanvasDoks" data-bs-backdrop="true" aria-labelledby="offcanvasDoksLabel">
<div class="header-bar d-lg-none"></div>
<div class="offcanvas-header d-lg-none">
<h2 class="h5 offcanvas-title ps-2" id="offcanvasDoksLabel"><a class="text-dark" href="{{ "/" | relLangURL }}">{{ .Site.Params.Title }}</a></h2>
<button type="button" class="btn-close text-reset me-2" data-bs-dismiss="offcanvas" aria-label="Close main menu"></button>
</div>
<div class="offcanvas-body p-4 p-lg-0">
<ul class="nav flex-column flex-lg-row align-items-lg-center mt-2 mt-lg-0 ms-lg-2 me-lg-auto">
{{- $current := . -}}
{{- $section := $current.Section -}}
{{ range .Site.Menus.main -}}
{{- $active := or ($current.IsMenuCurrent "main" .) ($current.HasMenuCurrent "main" .) -}}
{{- $active = or $active (eq .Name $current.Title) -}}
{{- $active = or $active (and (eq .Name ($section | humanize)) (eq $current.Section $section)) -}}
{{- $active = or $active (and (eq .Name "Blog") (eq $current.Section "blog" "contributors" "categories" "tags")) -}}
{{ if .HasChildren }}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle ps-0 py-1" href="#" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
{{ .Name }}
<span class="dropdown-caret"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
</a>
<ul class="dropdown-menu dropdown-menu-main shadow rounded border-0" aria-labelledby="navbarDropdownMenuLink">
{{ range .Children -}}
{{- $active = eq .Name $current.Title -}}
<li>
<a class="dropdown-item{{ if $active }} active{{ end }}" href="{{ .URL | relLangURL }}"{{ if $active }} aria-current="true"{{ end }}>{{ .Name }}</a>
</li>
{{ end -}}
</ul>
</li>
{{ else }}
<li class="nav-item">
<a class="nav-link ps-0 py-1{{ if $active }} active{{ end }}" href="{{ .URL | relLangURL }}">{{ .Name }}</a>
</li>
{{ end }}
{{ end -}}
</ul>
{{- $showFlexSearch := .Site.Params.options.flexSearch }}
{{- if $showFlexSearch }}
{{- if and (isset .Site.Params.options "searchsectionsshow") (not (eq .Site.Params.options.searchSectionsShow "ALL")) }}
{{- $showFlexSearch = or (eq (len .Site.Params.options.searchSectionsShow) 0) (in .Site.Params.options.searchSectionsShow .Section) (and .IsHome (in .Site.Params.options.searchSectionsShow "HomePage")) }}
{{- end }}
{{- end }}
{{ if $showFlexSearch -}}
<hr class="text-black-50 my-4 d-lg-none">
<form class="doks-search position-relative flex-grow-1 ms-lg-auto me-lg-2">
<input id="search" class="form-control is-search" type="search" placeholder="{{ i18n "search-text" }}" aria-label="{{ i18n "search-text" }}" autocomplete="off">
<div id="suggestions" class="shadow bg-white rounded d-none"></div>
</form>
{{ end -}}
<hr class="text-black-50 my-4 d-lg-none">
<ul class="nav flex-column flex-lg-row">
{{ range .Site.Menus.social -}}
<li class="nav-item">
<a class="nav-link social-link" href="{{ .URL | relURL }}">{{ .Pre | safeHTML }}<small class="ms-2 d-lg-none">{{ .Name | safeHTML }}</small></a>
</li>
{{ end -}}
</ul>
{{/* {{ if .Site.Params.options.darkMode -}}
<hr class="text-black-50 my-4 d-lg-none">
<button id="mode" class="btn btn-link" type="button" aria-label="Toggle user interface mode">
<span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
<span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
</button>
{{ end -}} */}}
{{ if eq .Site.Params.options.multilingualMode true -}}
<hr class="text-black-50 my-4 d-lg-none">
<div class="dropdown">
<button class="btn btn-doks-light dropdown-toggle" id="doks-languages" data-bs-toggle="dropdown" aria-expanded="false" data-bs-display="static">
{{ .Site.Params.languageName }}
<span class="dropdown-caret"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
</button>
<ul class="dropdown-menu dropdown-menu-lg-end me-lg-2 shadow rounded border-0" aria-labelledby="doks-languages">
<li><a class="dropdown-item current" aria-current="true" href="{{ .RelPermalink }}">{{ .Site.Language.LanguageName }}</a></li>
<li><hr class="dropdown-divider"></li>
{{ if .IsTranslated -}}
{{ range .Translations }}
<li><a class="dropdown-item" rel="alternate" href="{{ .RelPermalink }}" hreflang="{{ .Lang }}" lang="{{ .Lang }}">{{ .Language.LanguageName }}</a></li>
{{ end -}}
{{ else -}}
{{ range .Site.Languages -}}
{{ if ne $.Site.Language.Lang .Lang }}
<li><a class="dropdown-item" rel="alternate" href="{{ .Lang | relLangURL }}" hreflang="{{ .Lang }}" lang="{{ .Lang }}">{{ .LanguageName }}</a></li>
{{ end -}}
{{ end -}}
{{ end -}}
<!--
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="/docs/contributing/how-to-contribute/">Help Translate</a></li>
-->
</ul>
</div>
{{ end -}}
{{ if eq .Site.Params.options.docsVersioning true -}}
<hr class="text-black-50 my-4 d-lg-none">
<div class="dropdown">
<button class="btn btn-doks-light dropdown-toggle" id="doks-versions" data-bs-toggle="dropdown" aria-expanded="false" data-bs-display="static" aria-label="Toggle version menu">
<span class="d-none">Doks</span> v{{ .Site.Params.docsVersion }}
<span class="dropdown-caret"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-chevron-down"><polyline points="6 9 12 15 18 9"></polyline></svg></span>
</button>
<ul class="dropdown-menu dropdown-menu-lg-end me-lg-2 shadow rounded border-0" aria-labelledby="doks-versions">
<li><a class="dropdown-item current" aria-current="true" href="/docs/{{ .Site.Params.docsVersion }}/prologue/introduction/">Latest ({{ .Site.Params.docsVersion }}.x)</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="/docs/0.2/prologue/introduction/">v0.2.x</a></li>
<li><a class="dropdown-item" href="/docs/0.1/prologue/introduction/">v0.1.x</a></li>
<li><hr class="dropdown-divider"></li>
<li><a class="dropdown-item" href="/docs/versions/">All versions</a></li>
</ul>
</div>
{{ end -}}
</div>
</div>
</nav>
</header>
{{ if eq .Site.Params.options.navbarSticky true }}
</div>
{{ end -}}
{{ if eq .Section "docs" -}}
<div class="container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }}">
<aside class="doks-sidebar">
<nav id="doks-docs-nav" class="collapse d-lg-none" aria-label="Tertiary navigation">
{{ partial "sidebar/docs-menu.html" . }}
</nav>
</aside>
</div>
{{ else if ne .CurrentSection .FirstSection -}}
<!--
<nav class="doks-subnavbar py-2 sticky-lg-top d-lg-none" aria-label="Secondary navigation">
<div class="container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }} d-flex align-items-lg-center">
<span class="navbar-text ms-0">{{ .Section | humanize }}</span>
<button class="btn doks-sidebar-toggle d-lg-none ms-auto order-3 collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#doks-docs-nav" aria-controls="doks-docs-nav" aria-expanded="false" aria-label="Toggle documentation navigation">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="doks doks-expand" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Expand</title><polyline points="7 13 12 18 17 13"></polyline><polyline points="7 6 12 11 17 6"></polyline></svg>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" class="doks doks-collapse" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><title>Collapse</title><polyline points="17 11 12 6 7 11"></polyline><polyline points="17 18 12 13 7 18"></polyline></svg>
</button>
</div>
</nav>
-->
<div class="container-{{ if .Site.Params.options.fullWidth }}fluid{{ else }}xxl{{ end }}">
<aside class="doks-sidebar">
<nav id="doks-docs-nav" class="collapse d-lg-none" aria-label="Tertiary navigation">
{{ partial "sidebar/docs-menu.html" . }}
</nav>
</aside>
</div>
{{ end -}}

View File

@ -0,0 +1,37 @@
<!-- Auto default section menu -->
{{ $currentPage := . -}}
{{ $section := $currentPage.Section -}}
{{ range (where .Site.Sections "Section" "in" $section) }}
{{ range .Sections }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<h3 class="h6 text-uppercase mb-2">{{ .Title }}</h3>
<ul class="list-unstyled">
{{ range .Pages }}
{{ if .IsNode }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<h4 class="h6 text-uppercase ms-3 mt-3 mb-2">{{ .Title }}</h4>
<ul class="list-unstyled ms-3">
{{ range .Pages }}
{{ if .IsNode }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<h5 class="h6 text-uppercase mt-2 mb-2">{{ .Title }}</h5>
<ul class="list-unstyled ms-3">
{{ range .Pages }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<li><a class="docs-link{{ if $active }} active{{ end }}" href="{{ .Permalink }}">{{ .Name }}</a></li>
{{ end }}
</ul>
{{ else }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<li><a class="docs-link{{ if $active }} active{{ end }}" href="{{ .Permalink }}">{{ .Name }}</a></li>
{{ end }}
{{ end }}
</ul>
{{ else }}
{{ $active := in $currentPage.RelPermalink .RelPermalink }}
<li><a class="docs-link{{ if $active }} active{{ end }}" href="{{ .Permalink }}">{{ default .Name .Params.titleMenu }}</a></li>
{{ end }}
{{ end }}
</ul>
{{ end }}
{{ end }}

48
package-lock.json generated
View File

@ -1,14 +1,14 @@
{
"name": "doks-child-theme",
"version": "0.5.0",
"name": "loi.re",
"version": "0.1.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "doks-child-theme",
"version": "0.5.0",
"name": "loi.re",
"version": "0.1.0",
"hasInstallScript": true,
"license": "MIT",
"license": "GPLv3",
"devDependencies": {
"@babel/cli": "^7.18",
"@babel/core": "^7.18",
@ -18,7 +18,7 @@
"@hyas/images": "^0.2.1",
"auto-changelog": "^2.4.0",
"autoprefixer": "^10.4",
"bootstrap": "^5.1",
"bootstrap": "5.2.3",
"clipboard": "^2.0",
"eslint": "^8.19",
"exec-bin": "^1.0.0",
@ -1862,9 +1862,9 @@
}
},
"node_modules/@popperjs/core": {
"version": "2.11.5",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
"version": "2.11.7",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
"dev": true,
"peer": true,
"funding": {
@ -2249,16 +2249,22 @@
}
},
"node_modules/bootstrap": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz",
"integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==",
"dev": true,
"funding": {
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/twbs"
},
{
"type": "opencollective",
"url": "https://opencollective.com/bootstrap"
},
}
],
"peerDependencies": {
"@popperjs/core": "^2.10.2"
"@popperjs/core": "^2.11.6"
}
},
"node_modules/brace-expansion": {
@ -8284,9 +8290,9 @@
}
},
"@popperjs/core": {
"version": "2.11.5",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.5.tgz",
"integrity": "sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==",
"version": "2.11.7",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.11.7.tgz",
"integrity": "sha512-Cr4OjIkipTtcXKjAsm8agyleBuDHvxzeBoa1v543lbv1YaIwQjESsVcmjiWiPEbC1FIeHOG/Op9kdCmAmiS3Kw==",
"dev": true,
"peer": true
},
@ -8567,9 +8573,9 @@
}
},
"bootstrap": {
"version": "5.1.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz",
"integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==",
"version": "5.2.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.2.3.tgz",
"integrity": "sha512-cEKPM+fwb3cT8NzQZYEu4HilJ3anCrWqh3CHAok1p9jXqMPsPTBhU25fBckEJHJ/p+tTxTFTsFQGM+gaHpi3QQ==",
"dev": true,
"requires": {}
},

View File

@ -46,7 +46,7 @@
"@hyas/images": "^0.2.1",
"auto-changelog": "^2.4.0",
"autoprefixer": "^10.4",
"bootstrap": "^5.1",
"bootstrap": "5.2.3",
"clipboard": "^2.0",
"eslint": "^8.19",
"exec-bin": "^1.0.0",