ajout du nouveau site dans le dépot
73
.drone.yml
|
@ -1,73 +0,0 @@
|
||||||
---
|
|
||||||
# see https://docs.drone.io/pipeline/configuration/
|
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: build
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: restore-cache
|
|
||||||
image: meltwater/drone-cache:v1.1.0
|
|
||||||
environment:
|
|
||||||
AWS_ACCESS_KEY_ID:
|
|
||||||
from_secret: cache_aws_access_key_id
|
|
||||||
AWS_SECRET_ACCESS_KEY:
|
|
||||||
from_secret: cache_aws_secret_access_key
|
|
||||||
pull: true
|
|
||||||
settings:
|
|
||||||
restore: true
|
|
||||||
bucket: drone-cache
|
|
||||||
region: garage
|
|
||||||
mount:
|
|
||||||
- 'node_modules'
|
|
||||||
path_style: true
|
|
||||||
endpoint: https://garage.deuxfleurs.fr
|
|
||||||
|
|
||||||
- name: build
|
|
||||||
# cf https://hub.docker.com/_/node?tab=description&page=1&ordering=last_updated
|
|
||||||
image: node:14-buster
|
|
||||||
commands:
|
|
||||||
- npm install
|
|
||||||
- node render.js
|
|
||||||
|
|
||||||
- name: upload
|
|
||||||
image: plugins/s3
|
|
||||||
settings:
|
|
||||||
bucket: deuxfleurs.fr
|
|
||||||
access_key:
|
|
||||||
from_secret: aws_access_key_id
|
|
||||||
secret_key:
|
|
||||||
from_secret: aws_secret_access_key
|
|
||||||
source: static/**/*
|
|
||||||
strip_prefix: static/
|
|
||||||
target: /
|
|
||||||
path_style: true
|
|
||||||
endpoint: https://garage.deuxfleurs.fr
|
|
||||||
region: garage
|
|
||||||
when:
|
|
||||||
branch:
|
|
||||||
- main
|
|
||||||
event:
|
|
||||||
exclude:
|
|
||||||
- pull_request
|
|
||||||
|
|
||||||
- name: rebuild-cache
|
|
||||||
image: meltwater/drone-cache:v1.1.0
|
|
||||||
environment:
|
|
||||||
AWS_ACCESS_KEY_ID:
|
|
||||||
from_secret: cache_aws_access_key_id
|
|
||||||
AWS_SECRET_ACCESS_KEY:
|
|
||||||
from_secret: cache_aws_secret_access_key
|
|
||||||
pull: true
|
|
||||||
settings:
|
|
||||||
rebuild: true
|
|
||||||
bucket: drone-cache
|
|
||||||
region: garage
|
|
||||||
mount:
|
|
||||||
- 'node_modules'
|
|
||||||
path_style: true
|
|
||||||
endpoint: https://garage.deuxfleurs.fr
|
|
||||||
---
|
|
||||||
kind: signature
|
|
||||||
hmac: f1fcc439a2180d4e98224dec1cd2dc10691b58161bfee7739ae700e84f04c905
|
|
||||||
|
|
||||||
...
|
|
18
DEPLOY.md
|
@ -1,18 +0,0 @@
|
||||||
## À réaliser au premier clonage du dépôt
|
|
||||||
|
|
||||||
Commencer par créer un fichier `.awsclirc` avec cette structure :
|
|
||||||
|
|
||||||
```
|
|
||||||
export AWS_ACCESS_KEY_ID='xxxx'
|
|
||||||
export AWS_SECRET_ACCESS_KEY='xxxx'
|
|
||||||
export AWS_DEFAULT_REGION='garage'
|
|
||||||
alias awsdf="aws --endpoint-url https://garage.deuxfleurs.fr"
|
|
||||||
```
|
|
||||||
|
|
||||||
Installer [l'outil en ligne de commande de AWS version 2](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html) qui fournit la commande `aws`.
|
|
||||||
|
|
||||||
Enfin, déployer en exécutant :
|
|
||||||
|
|
||||||
```
|
|
||||||
./deploy
|
|
||||||
```
|
|
65
README.md
|
@ -1,64 +1 @@
|
||||||
# site
|
WIP
|
||||||
|
|
||||||
[![Build Status](https://drone.deuxfleurs.fr/api/badges/Deuxfleurs/site/status.svg?ref=refs/heads/main)](https://drone.deuxfleurs.fr/Deuxfleurs/site)
|
|
||||||
|
|
||||||
Ce dépôt git contient les sources pour le site [deuxfleurs.fr](https://deuxfleurs.fr/).
|
|
||||||
C'est ici que vous pourrez apporter des modifications au site.
|
|
||||||
|
|
||||||
## Comment ajouter du contenu ?
|
|
||||||
|
|
||||||
Prérequis :
|
|
||||||
- Un compte sur cette instance gitea.
|
|
||||||
- Le logiciel git d'installé. [téléchager](https://git-scm.com/downloads).
|
|
||||||
|
|
||||||
Pour commencer, assurez-vous d'être connecté.
|
|
||||||
Ensuite cliquez sur le bouton "Bifurcation" en haut à droite (*fork* en anglais).
|
|
||||||
Finalement, vous pourrez cloner votre dépôt en local :
|
|
||||||
|
|
||||||
```
|
|
||||||
git clone https://git.deuxfleurs.fr/<votre nom d'utilisateur>/site.git
|
|
||||||
```
|
|
||||||
|
|
||||||
Pour ajouter du contenu, vous pouvez tout simplement ajouter un fichier dans le dossier `src`.
|
|
||||||
Par exemple, le fichier `src/Association/Statuts.md` se retrouve à l'adresse `https://deuxfleurs.fr/Association/Statuts.html`.
|
|
||||||
|
|
||||||
Deux formats de fichiers différents sont supportés pour l'instant :
|
|
||||||
|
|
||||||
- `.md` pour Markdown. [documentation](https://fr.wikipedia.org/wiki/Markdown). Rapide à apprendre, il est très pratique pour rajouter du contenu sans se poser la question de l'apparence.
|
|
||||||
- `.pug` pour Pug. [documentation](https://pugjs.org). PugJS est une syntaxe différente pour représenter du HTML. Elle offre donc toute la souplesse de ce dernier et s'adapte plus à des mises en page complexe.
|
|
||||||
|
|
||||||
Si vous ne savez pas par où commencer, choisissez markdown !
|
|
||||||
N'hésitez pas à vous inspirer des fichiers existants.
|
|
||||||
|
|
||||||
Une fois vos modifications terminées, vous pouvez commit et push :
|
|
||||||
|
|
||||||
```
|
|
||||||
git add src/Association/MonFichier.md
|
|
||||||
git commit -a
|
|
||||||
git push
|
|
||||||
```
|
|
||||||
|
|
||||||
Ensuite, vous pouvez créer une demande d'ajout (*pull request* ou *merge request* en anglais) depuis cette adresse (ou en cliquant sur l'onglet éponyme) : https://git.deuxfleurs.fr/Deuxfleurs/site/pulls
|
|
||||||
|
|
||||||
## Comment prévisualiser mes modifications ?
|
|
||||||
|
|
||||||
Prérequis :
|
|
||||||
- nodejs et npm d'installé. [télécharger](https://nodejs.org/en/download/)
|
|
||||||
|
|
||||||
Vous pourriez vouloir vérifier que vos modifications rendent bien avant de faire votre demande d'ajout.
|
|
||||||
Pour cela, nous utilisons un script de notre cru nommé `render.js`. Il convertit le dossier `src/` vers un site web contenu dans le dossier `static/` et peut, optionnellement, servir de serveur web.
|
|
||||||
|
|
||||||
La façon la plus simple de prévisualiser vos modifications est donc de :
|
|
||||||
|
|
||||||
```bash
|
|
||||||
npm install # installer les dépendances
|
|
||||||
LISTEN=3000 node render.js # effectuer le rendu puis démarrer un serveur web sur le port 3000
|
|
||||||
```
|
|
||||||
|
|
||||||
Votre aperçu est alors disponible à cette URL : http://127.0.0.1:3000
|
|
||||||
|
|
||||||
À chaque modification, vous pouvez arrêter la dernière commande (CTRL+C) et la relancer pour forcer le rendu.
|
|
||||||
|
|
||||||
## Comment le site est mis à jour depuis ce dépôt ?
|
|
||||||
|
|
||||||
*Nous sommes actuellement dans une phase de transition sur ce point. Veuillez contacter un·e des maintainers. Si vous êtes maintainer ou curieux·se, vous pouvez vous réferrer au fichier DEPLOY.md*
|
|
||||||
|
|
7
deploy
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
shopt -s expand_aliases
|
|
||||||
source .awsclirc
|
|
||||||
npm install
|
|
||||||
node render.js
|
|
||||||
awsdf s3 sync --size-only static s3://deuxfleurs.fr
|
|
BIN
img/deuxfleurs-common-ratio.jpg
Normal file
After Width: | Height: | Size: 228 KiB |
BIN
img/deuxfleurs-rect.jpg
Normal file
After Width: | Height: | Size: 230 KiB |
BIN
img/deuxfleurs-square.jpg
Normal file
After Width: | Height: | Size: 247 KiB |
BIN
img/favicon.ico
Normal file
After Width: | Height: | Size: 15 KiB |
1603
index.html
Normal file
909
package-lock.json
generated
|
@ -1,909 +0,0 @@
|
||||||
{
|
|
||||||
"name": "site",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"lockfileVersion": 2,
|
|
||||||
"requires": true,
|
|
||||||
"packages": {
|
|
||||||
"": {
|
|
||||||
"name": "site",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"license": "ISC",
|
|
||||||
"dependencies": {
|
|
||||||
"clean-css": "^5.1.2",
|
|
||||||
"jstransformer-markdown-it": "^2.1.0",
|
|
||||||
"marked": "^0.8.2",
|
|
||||||
"pug": "^3.0.2",
|
|
||||||
"source-map": "^0.7.3",
|
|
||||||
"uglify-js": "^3.13.3"
|
|
||||||
},
|
|
||||||
"devDependencies": {}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/helper-validator-identifier": {
|
|
||||||
"version": "7.12.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
|
|
||||||
"integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
|
|
||||||
},
|
|
||||||
"node_modules/@babel/parser": {
|
|
||||||
"version": "7.13.15",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz",
|
|
||||||
"integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ==",
|
|
||||||
"bin": {
|
|
||||||
"parser": "bin/babel-parser.js"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=6.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@babel/types": {
|
|
||||||
"version": "7.13.14",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz",
|
|
||||||
"integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-validator-identifier": "^7.12.11",
|
|
||||||
"lodash": "^4.17.19",
|
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/acorn": {
|
|
||||||
"version": "7.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
|
||||||
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
|
|
||||||
"bin": {
|
|
||||||
"acorn": "bin/acorn"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/argparse": {
|
|
||||||
"version": "1.0.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
|
||||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
|
||||||
"dependencies": {
|
|
||||||
"sprintf-js": "~1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/asap": {
|
|
||||||
"version": "2.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
|
||||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
|
||||||
},
|
|
||||||
"node_modules/assert-never": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
|
|
||||||
},
|
|
||||||
"node_modules/babel-walk": {
|
|
||||||
"version": "3.0.0-canary-5",
|
|
||||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
|
||||||
"integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/types": "^7.9.6"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/call-bind": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
|
||||||
"dependencies": {
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"get-intrinsic": "^1.0.2"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/character-parser": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
|
||||||
"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
|
|
||||||
"dependencies": {
|
|
||||||
"is-regex": "^1.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/clean-css": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==",
|
|
||||||
"dependencies": {
|
|
||||||
"source-map": "~0.6.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/clean-css/node_modules/source-map": {
|
|
||||||
"version": "0.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
||||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/constantinople": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.6.0",
|
|
||||||
"@babel/types": "^7.6.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/doctypes": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
|
|
||||||
},
|
|
||||||
"node_modules/entities": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
|
|
||||||
},
|
|
||||||
"node_modules/function-bind": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
|
||||||
},
|
|
||||||
"node_modules/get-intrinsic": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
|
||||||
"dependencies": {
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/has": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
|
||||||
"dependencies": {
|
|
||||||
"function-bind": "^1.1.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/has-symbols": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/is-core-module": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"has": "^1.0.3"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/is-expression": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
|
|
||||||
"dependencies": {
|
|
||||||
"acorn": "^7.1.1",
|
|
||||||
"object-assign": "^4.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/is-promise": {
|
|
||||||
"version": "2.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
|
||||||
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
|
|
||||||
},
|
|
||||||
"node_modules/is-regex": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
|
|
||||||
"dependencies": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 0.4"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/js-stringify": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
|
|
||||||
},
|
|
||||||
"node_modules/jstransformer": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
|
|
||||||
"dependencies": {
|
|
||||||
"is-promise": "^2.0.0",
|
|
||||||
"promise": "^7.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/jstransformer-markdown-it": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jstransformer-markdown-it/-/jstransformer-markdown-it-2.1.0.tgz",
|
|
||||||
"integrity": "sha1-aewwzkUYvtWZezjwJ2SOjChekvc=",
|
|
||||||
"dependencies": {
|
|
||||||
"markdown-it": "^8.0.0"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=7"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/linkify-it": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
|
|
||||||
"dependencies": {
|
|
||||||
"uc.micro": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/lodash": {
|
|
||||||
"version": "4.17.21",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
|
||||||
},
|
|
||||||
"node_modules/markdown-it": {
|
|
||||||
"version": "8.4.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
|
|
||||||
"integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"argparse": "^1.0.7",
|
|
||||||
"entities": "~1.1.1",
|
|
||||||
"linkify-it": "^2.0.0",
|
|
||||||
"mdurl": "^1.0.1",
|
|
||||||
"uc.micro": "^1.0.5"
|
|
||||||
},
|
|
||||||
"bin": {
|
|
||||||
"markdown-it": "bin/markdown-it.js"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/marked": {
|
|
||||||
"version": "0.8.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz",
|
|
||||||
"integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw==",
|
|
||||||
"bin": {
|
|
||||||
"marked": "bin/marked"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8.16.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/mdurl": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
|
|
||||||
},
|
|
||||||
"node_modules/object-assign": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
||||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/path-parse": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
|
||||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
|
|
||||||
},
|
|
||||||
"node_modules/promise": {
|
|
||||||
"version": "7.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
|
||||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
|
||||||
"dependencies": {
|
|
||||||
"asap": "~2.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
|
|
||||||
"dependencies": {
|
|
||||||
"pug-code-gen": "^3.0.2",
|
|
||||||
"pug-filters": "^4.0.0",
|
|
||||||
"pug-lexer": "^5.0.1",
|
|
||||||
"pug-linker": "^4.0.0",
|
|
||||||
"pug-load": "^3.0.0",
|
|
||||||
"pug-parser": "^6.0.0",
|
|
||||||
"pug-runtime": "^3.0.1",
|
|
||||||
"pug-strip-comments": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-attrs": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
|
|
||||||
"dependencies": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"js-stringify": "^1.0.2",
|
|
||||||
"pug-runtime": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-code-gen": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
|
|
||||||
"dependencies": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"doctypes": "^1.1.0",
|
|
||||||
"js-stringify": "^1.0.2",
|
|
||||||
"pug-attrs": "^3.0.0",
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-runtime": "^3.0.0",
|
|
||||||
"void-elements": "^3.1.0",
|
|
||||||
"with": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-error": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ=="
|
|
||||||
},
|
|
||||||
"node_modules/pug-filters": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
|
|
||||||
"dependencies": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"jstransformer": "1.0.0",
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-walk": "^2.0.0",
|
|
||||||
"resolve": "^1.15.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-lexer": {
|
|
||||||
"version": "5.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
|
|
||||||
"integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
|
|
||||||
"dependencies": {
|
|
||||||
"character-parser": "^2.2.0",
|
|
||||||
"is-expression": "^4.0.0",
|
|
||||||
"pug-error": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-linker": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
|
|
||||||
"dependencies": {
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-walk": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-load": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"pug-walk": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-parser": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
|
|
||||||
"dependencies": {
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"token-stream": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-runtime": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg=="
|
|
||||||
},
|
|
||||||
"node_modules/pug-strip-comments": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
|
|
||||||
"dependencies": {
|
|
||||||
"pug-error": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/pug-walk": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ=="
|
|
||||||
},
|
|
||||||
"node_modules/resolve": {
|
|
||||||
"version": "1.20.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
|
|
||||||
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
|
|
||||||
"dependencies": {
|
|
||||||
"is-core-module": "^2.2.0",
|
|
||||||
"path-parse": "^1.0.6"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/ljharb"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/source-map": {
|
|
||||||
"version": "0.7.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
|
||||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==",
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 8"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/sprintf-js": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
|
||||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
|
||||||
},
|
|
||||||
"node_modules/to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/token-stream": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ="
|
|
||||||
},
|
|
||||||
"node_modules/uc.micro": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
|
|
||||||
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
|
|
||||||
},
|
|
||||||
"node_modules/uglify-js": {
|
|
||||||
"version": "3.13.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz",
|
|
||||||
"integrity": "sha512-otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig==",
|
|
||||||
"bin": {
|
|
||||||
"uglifyjs": "bin/uglifyjs"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.8.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/void-elements": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
|
|
||||||
"integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=0.10.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/with": {
|
|
||||||
"version": "7.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
|
|
||||||
"integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/parser": "^7.9.6",
|
|
||||||
"@babel/types": "^7.9.6",
|
|
||||||
"assert-never": "^1.2.1",
|
|
||||||
"babel-walk": "3.0.0-canary-5"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">= 10.0.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"@babel/helper-validator-identifier": {
|
|
||||||
"version": "7.12.11",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz",
|
|
||||||
"integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw=="
|
|
||||||
},
|
|
||||||
"@babel/parser": {
|
|
||||||
"version": "7.13.15",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.13.15.tgz",
|
|
||||||
"integrity": "sha512-b9COtcAlVEQljy/9fbcMHpG+UIW9ReF+gpaxDHTlZd0c6/UU9ng8zdySAW9sRTzpvcdCHn6bUcbuYUgGzLAWVQ=="
|
|
||||||
},
|
|
||||||
"@babel/types": {
|
|
||||||
"version": "7.13.14",
|
|
||||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.13.14.tgz",
|
|
||||||
"integrity": "sha512-A2aa3QTkWoyqsZZFl56MLUsfmh7O0gN41IPvXAE/++8ojpbz12SszD7JEGYVdn4f9Kt4amIei07swF1h4AqmmQ==",
|
|
||||||
"requires": {
|
|
||||||
"@babel/helper-validator-identifier": "^7.12.11",
|
|
||||||
"lodash": "^4.17.19",
|
|
||||||
"to-fast-properties": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"acorn": {
|
|
||||||
"version": "7.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
|
||||||
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
|
|
||||||
},
|
|
||||||
"argparse": {
|
|
||||||
"version": "1.0.10",
|
|
||||||
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
|
|
||||||
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
|
|
||||||
"requires": {
|
|
||||||
"sprintf-js": "~1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"asap": {
|
|
||||||
"version": "2.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
|
|
||||||
"integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY="
|
|
||||||
},
|
|
||||||
"assert-never": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw=="
|
|
||||||
},
|
|
||||||
"babel-walk": {
|
|
||||||
"version": "3.0.0-canary-5",
|
|
||||||
"resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz",
|
|
||||||
"integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==",
|
|
||||||
"requires": {
|
|
||||||
"@babel/types": "^7.9.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"call-bind": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
|
|
||||||
"requires": {
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"get-intrinsic": "^1.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"character-parser": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz",
|
|
||||||
"integrity": "sha1-x84o821LzZdE5f/CxfzeHHMmH8A=",
|
|
||||||
"requires": {
|
|
||||||
"is-regex": "^1.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"clean-css": {
|
|
||||||
"version": "5.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.1.2.tgz",
|
|
||||||
"integrity": "sha512-QcaGg9OuMo+0Ds933yLOY+gHPWbxhxqF0HDexmToPf8pczvmvZGYzd+QqWp9/mkucAOKViI+dSFOqoZIvXbeBw==",
|
|
||||||
"requires": {
|
|
||||||
"source-map": "~0.6.0"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"source-map": {
|
|
||||||
"version": "0.6.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
|
||||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"constantinople": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz",
|
|
||||||
"integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==",
|
|
||||||
"requires": {
|
|
||||||
"@babel/parser": "^7.6.0",
|
|
||||||
"@babel/types": "^7.6.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"doctypes": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz",
|
|
||||||
"integrity": "sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk="
|
|
||||||
},
|
|
||||||
"entities": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
|
|
||||||
},
|
|
||||||
"function-bind": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
|
|
||||||
},
|
|
||||||
"get-intrinsic": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
|
|
||||||
"requires": {
|
|
||||||
"function-bind": "^1.1.1",
|
|
||||||
"has": "^1.0.3",
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
|
|
||||||
"requires": {
|
|
||||||
"function-bind": "^1.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"has-symbols": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
|
|
||||||
"integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw=="
|
|
||||||
},
|
|
||||||
"is-core-module": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==",
|
|
||||||
"requires": {
|
|
||||||
"has": "^1.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-expression": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==",
|
|
||||||
"requires": {
|
|
||||||
"acorn": "^7.1.1",
|
|
||||||
"object-assign": "^4.1.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"is-promise": {
|
|
||||||
"version": "2.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz",
|
|
||||||
"integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="
|
|
||||||
},
|
|
||||||
"is-regex": {
|
|
||||||
"version": "1.1.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.2.tgz",
|
|
||||||
"integrity": "sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg==",
|
|
||||||
"requires": {
|
|
||||||
"call-bind": "^1.0.2",
|
|
||||||
"has-symbols": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"js-stringify": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-Fzb939lyTyijaCrcYjCufk6Weds="
|
|
||||||
},
|
|
||||||
"jstransformer": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-7Yvwkh4vPx7U1cGkT2hwntJHIsM=",
|
|
||||||
"requires": {
|
|
||||||
"is-promise": "^2.0.0",
|
|
||||||
"promise": "^7.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"jstransformer-markdown-it": {
|
|
||||||
"version": "2.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/jstransformer-markdown-it/-/jstransformer-markdown-it-2.1.0.tgz",
|
|
||||||
"integrity": "sha1-aewwzkUYvtWZezjwJ2SOjChekvc=",
|
|
||||||
"requires": {
|
|
||||||
"markdown-it": "^8.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"linkify-it": {
|
|
||||||
"version": "2.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
|
|
||||||
"integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
|
|
||||||
"requires": {
|
|
||||||
"uc.micro": "^1.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"lodash": {
|
|
||||||
"version": "4.17.21",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
|
||||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
|
|
||||||
},
|
|
||||||
"markdown-it": {
|
|
||||||
"version": "8.4.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
|
|
||||||
"integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
|
|
||||||
"requires": {
|
|
||||||
"argparse": "^1.0.7",
|
|
||||||
"entities": "~1.1.1",
|
|
||||||
"linkify-it": "^2.0.0",
|
|
||||||
"mdurl": "^1.0.1",
|
|
||||||
"uc.micro": "^1.0.5"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"marked": {
|
|
||||||
"version": "0.8.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/marked/-/marked-0.8.2.tgz",
|
|
||||||
"integrity": "sha512-EGwzEeCcLniFX51DhTpmTom+dSA/MG/OBUDjnWtHbEnjAH180VzUeAw+oE4+Zv+CoYBWyRlYOTR0N8SO9R1PVw=="
|
|
||||||
},
|
|
||||||
"mdurl": {
|
|
||||||
"version": "1.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
|
|
||||||
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
|
|
||||||
},
|
|
||||||
"object-assign": {
|
|
||||||
"version": "4.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
|
||||||
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
|
|
||||||
},
|
|
||||||
"path-parse": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
|
|
||||||
"integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
|
|
||||||
},
|
|
||||||
"promise": {
|
|
||||||
"version": "7.3.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz",
|
|
||||||
"integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==",
|
|
||||||
"requires": {
|
|
||||||
"asap": "~2.0.3"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==",
|
|
||||||
"requires": {
|
|
||||||
"pug-code-gen": "^3.0.2",
|
|
||||||
"pug-filters": "^4.0.0",
|
|
||||||
"pug-lexer": "^5.0.1",
|
|
||||||
"pug-linker": "^4.0.0",
|
|
||||||
"pug-load": "^3.0.0",
|
|
||||||
"pug-parser": "^6.0.0",
|
|
||||||
"pug-runtime": "^3.0.1",
|
|
||||||
"pug-strip-comments": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-attrs": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==",
|
|
||||||
"requires": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"js-stringify": "^1.0.2",
|
|
||||||
"pug-runtime": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-code-gen": {
|
|
||||||
"version": "3.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz",
|
|
||||||
"integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==",
|
|
||||||
"requires": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"doctypes": "^1.1.0",
|
|
||||||
"js-stringify": "^1.0.2",
|
|
||||||
"pug-attrs": "^3.0.0",
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-runtime": "^3.0.0",
|
|
||||||
"void-elements": "^3.1.0",
|
|
||||||
"with": "^7.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-error": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ=="
|
|
||||||
},
|
|
||||||
"pug-filters": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==",
|
|
||||||
"requires": {
|
|
||||||
"constantinople": "^4.0.1",
|
|
||||||
"jstransformer": "1.0.0",
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-walk": "^2.0.0",
|
|
||||||
"resolve": "^1.15.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-lexer": {
|
|
||||||
"version": "5.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz",
|
|
||||||
"integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==",
|
|
||||||
"requires": {
|
|
||||||
"character-parser": "^2.2.0",
|
|
||||||
"is-expression": "^4.0.0",
|
|
||||||
"pug-error": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-linker": {
|
|
||||||
"version": "4.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz",
|
|
||||||
"integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==",
|
|
||||||
"requires": {
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"pug-walk": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-load": {
|
|
||||||
"version": "3.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz",
|
|
||||||
"integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==",
|
|
||||||
"requires": {
|
|
||||||
"object-assign": "^4.1.1",
|
|
||||||
"pug-walk": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-parser": {
|
|
||||||
"version": "6.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz",
|
|
||||||
"integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==",
|
|
||||||
"requires": {
|
|
||||||
"pug-error": "^2.0.0",
|
|
||||||
"token-stream": "1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-runtime": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz",
|
|
||||||
"integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg=="
|
|
||||||
},
|
|
||||||
"pug-strip-comments": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==",
|
|
||||||
"requires": {
|
|
||||||
"pug-error": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"pug-walk": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz",
|
|
||||||
"integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ=="
|
|
||||||
},
|
|
||||||
"resolve": {
|
|
||||||
"version": "1.20.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
|
|
||||||
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
|
|
||||||
"requires": {
|
|
||||||
"is-core-module": "^2.2.0",
|
|
||||||
"path-parse": "^1.0.6"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"source-map": {
|
|
||||||
"version": "0.7.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz",
|
|
||||||
"integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ=="
|
|
||||||
},
|
|
||||||
"sprintf-js": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
|
|
||||||
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
|
|
||||||
},
|
|
||||||
"to-fast-properties": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4="
|
|
||||||
},
|
|
||||||
"token-stream": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-zCAOqyYT9BZtJ/+a/HylbUnfbrQ="
|
|
||||||
},
|
|
||||||
"uc.micro": {
|
|
||||||
"version": "1.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
|
|
||||||
"integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
|
|
||||||
},
|
|
||||||
"uglify-js": {
|
|
||||||
"version": "3.13.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.13.3.tgz",
|
|
||||||
"integrity": "sha512-otIc7O9LyxpUcQoXzj2hL4LPWKklO6LJWoJUzNa8A17Xgi4fOeDC8FBDOLHnC/Slo1CQgsZMcM6as0M76BZaig=="
|
|
||||||
},
|
|
||||||
"void-elements": {
|
|
||||||
"version": "3.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz",
|
|
||||||
"integrity": "sha1-YU9/v42AHwu18GYfWy9XhXUOTwk="
|
|
||||||
},
|
|
||||||
"with": {
|
|
||||||
"version": "7.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz",
|
|
||||||
"integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==",
|
|
||||||
"requires": {
|
|
||||||
"@babel/parser": "^7.9.6",
|
|
||||||
"@babel/types": "^7.9.6",
|
|
||||||
"assert-never": "^1.2.1",
|
|
||||||
"babel-walk": "3.0.0-canary-5"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
23
package.json
|
@ -1,23 +0,0 @@
|
||||||
{
|
|
||||||
"name": "site",
|
|
||||||
"version": "1.0.0",
|
|
||||||
"description": "deuxfleurs.fr",
|
|
||||||
"main": "render.js",
|
|
||||||
"dependencies": {
|
|
||||||
"clean-css": "^5.1.2",
|
|
||||||
"jstransformer-markdown-it": "^2.1.0",
|
|
||||||
"marked": "^0.8.2",
|
|
||||||
"pug": "^3.0.2",
|
|
||||||
"source-map": "^0.7.3",
|
|
||||||
"uglify-js": "^3.13.3"
|
|
||||||
},
|
|
||||||
"scripts": {
|
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
|
||||||
},
|
|
||||||
"repository": {
|
|
||||||
"type": "git",
|
|
||||||
"url": "git@git.deuxfleurs.fr:Deuxfleurs/site.git"
|
|
||||||
},
|
|
||||||
"author": "",
|
|
||||||
"license": "ISC"
|
|
||||||
}
|
|
264
render.js
|
@ -1,264 +0,0 @@
|
||||||
'use strict'
|
|
||||||
|
|
||||||
const pug = require('pug')
|
|
||||||
const marked = require('marked')
|
|
||||||
const fs = require('fs').promises
|
|
||||||
const http = require('http')
|
|
||||||
|
|
||||||
const unit = (...args) => null
|
|
||||||
const log = process.env.VERBOSE ? console.log : unit
|
|
||||||
|
|
||||||
const walk = async (path, filename) => {
|
|
||||||
log('[walk]', path)
|
|
||||||
const type = await fs.lstat(path)
|
|
||||||
if (type.isFile()) return {type: 'file', path: path, name: filename || path, tags:[]}
|
|
||||||
if (!type.isDirectory()) return null
|
|
||||||
|
|
||||||
const files = await fs.readdir(path)
|
|
||||||
return {
|
|
||||||
type: 'folder',
|
|
||||||
path: path,
|
|
||||||
name: filename || path,
|
|
||||||
tags: [],
|
|
||||||
children: await Promise.all(files.map(file => walk(`${path}/${file}`, file)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const ext_static = ['.css', '.js', '.otf', '.png', '.svg', '.txt', '.png', '.jpg', '.webp', 'client', 'server', '.pdf', '.ttf', '.xml', '.properties']
|
|
||||||
const ext_md = ['.md', '.markdown']
|
|
||||||
const ext_pug = ['.pug', '.jade']
|
|
||||||
|
|
||||||
const suffix = file => ext => file.substring(file.length - ext.length) == ext ? ext : null
|
|
||||||
const suffixl = (...l) => file => l.find(suffix(file))
|
|
||||||
const is_static = suffixl(...ext_static)
|
|
||||||
const is_md = suffixl(...ext_md)
|
|
||||||
const is_pug = suffixl(...ext_pug)
|
|
||||||
const is_templated = f => is_md(f) /* || is_rst(f) */
|
|
||||||
const is_document = f => is_templated(f) || is_pug(f)
|
|
||||||
|
|
||||||
const prefix = file => ext => file.substring(0, ext.length) == ext ? ext : null
|
|
||||||
const prefixl = (...l) => file => l.find(prefix(file))
|
|
||||||
|
|
||||||
const rm_prefix = (...l) => file => file.substring(prefixl(...l)(file).length)
|
|
||||||
const rm_suffix = (...l) => file => file.substring(0, file.length - suffixl(...l)(file).length)
|
|
||||||
|
|
||||||
const propagate_md_layout = (tree, markdown_template) => {
|
|
||||||
if (tree.type == 'file' && is_templated(tree.name)) {
|
|
||||||
tree.template = markdown_template
|
|
||||||
log('[propagate_md_layout]', tree ? tree.path : null, markdown_template ? markdown_template.path : null)
|
|
||||||
} else if (tree.type == 'folder') {
|
|
||||||
const find_md_tpl = tree.children.filter(c => c.type == 'file' && c.name == '_markdown.pug')
|
|
||||||
const new_md_tpl = find_md_tpl.length > 0 ? find_md_tpl[0] : markdown_template
|
|
||||||
tree.children.forEach(c => propagate_md_layout(c, new_md_tpl))
|
|
||||||
}
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const elagate = tree => {
|
|
||||||
if (tree.type != 'folder') return tree
|
|
||||||
|
|
||||||
const lh = e => log('[elagate]', e.path) && false
|
|
||||||
tree.children = tree.children.filter(e => !(e.name[0] == '_') || lh(e))
|
|
||||||
tree.children.forEach(elagate)
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const tag_document = tree => {
|
|
||||||
if (tree.type == 'file' && is_document(tree.name) && tree.name[0] != '@') {
|
|
||||||
tree.tags.push('document_leaf', 'document')
|
|
||||||
log('[tag_document]', tree.path, 'document_leaf')
|
|
||||||
} else if (tree.type == 'folder') {
|
|
||||||
tree.children.forEach(tag_document)
|
|
||||||
if(tree.children.some(c => c.tags.includes('document'))) {
|
|
||||||
tree.tags.push('document_branch', 'document')
|
|
||||||
log('[tag_document]', tree.path, 'document_branch')
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const reference_index = indexes => tree => {
|
|
||||||
if (tree.type != 'folder') return tree;
|
|
||||||
|
|
||||||
const index = tree.children.find(e => indexes.includes(e.name))
|
|
||||||
if (index) {
|
|
||||||
tree.index = index
|
|
||||||
tree.tags.push('has_index')
|
|
||||||
log('[reference_index]', tree.path, index.name)
|
|
||||||
index.tags.push('is_index')
|
|
||||||
}
|
|
||||||
tree.children.forEach(reference_index(indexes))
|
|
||||||
|
|
||||||
return tree;
|
|
||||||
}
|
|
||||||
|
|
||||||
const propagate_nice_name = prefix => tree => {
|
|
||||||
const without_prefix = tree.path.substring(prefix.length)
|
|
||||||
const splitted = without_prefix.split('/').filter(v => v.length > 0)
|
|
||||||
if (splitted.length > 0) {
|
|
||||||
tree.nice_path = splitted.slice(0, -1)
|
|
||||||
tree.nice_name = splitted[splitted.length - 1].split('.')[0]
|
|
||||||
tree.url = tree.type == 'folder' ? without_prefix + '/' : without_prefix
|
|
||||||
log('[propagate_nice_name]', [...tree.nice_path, tree.nice_name].join('|'))
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tree.type == 'folder') tree.children.forEach(propagate_nice_name(prefix))
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const prepare_copy = (old_prefix, new_prefix, exts) => tree => {
|
|
||||||
if (tree.type == 'file' && is_static(tree.name)) {
|
|
||||||
tree.generate = {
|
|
||||||
cmd: 'copy',
|
|
||||||
src: tree.path,
|
|
||||||
out: new_prefix + rm_prefix(old_prefix)(tree.path)
|
|
||||||
}
|
|
||||||
log('[prepare_copy]',tree.generate.src,'->',tree.generate.out)
|
|
||||||
} else if (tree.type == 'folder') {
|
|
||||||
tree.children.forEach(prepare_copy(old_prefix, new_prefix, exts))
|
|
||||||
}
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const prepare_pug = (old_prefix, new_prefix) => tree => {
|
|
||||||
if (tree.type == 'file' && is_pug(tree.name)) {
|
|
||||||
tree.old_url = tree.url
|
|
||||||
tree.url = rm_prefix(old_prefix)(rm_suffix(...ext_pug)(tree.path)) + '.html'
|
|
||||||
tree.generate = {
|
|
||||||
cmd: 'pug',
|
|
||||||
src: tree.path,
|
|
||||||
out: new_prefix + tree.url
|
|
||||||
}
|
|
||||||
log('[prepare_pug]',tree.generate.src,'->',tree.generate.out)
|
|
||||||
}
|
|
||||||
else if (tree.type == 'folder') {
|
|
||||||
tree.children.forEach(prepare_pug(old_prefix, new_prefix))
|
|
||||||
}
|
|
||||||
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const prepare_md = (old_prefix, new_prefix) => tree => {
|
|
||||||
if (tree.type == 'file' && is_md(tree.name)) {
|
|
||||||
tree.old_url = tree.url
|
|
||||||
tree.url = rm_prefix(old_prefix)(rm_suffix(...ext_md)(tree.path)) + '.html'
|
|
||||||
tree.generate = {
|
|
||||||
cmd: 'pug',
|
|
||||||
src: tree.template.path,
|
|
||||||
markdown: tree.path,
|
|
||||||
out: new_prefix + tree.url
|
|
||||||
}
|
|
||||||
log('[prepare_md]',tree.generate.markdown,'+',tree.generate.src,'->',tree.generate.out)
|
|
||||||
}
|
|
||||||
else if (tree.type == 'folder') {
|
|
||||||
tree.children.forEach(prepare_md(old_prefix, new_prefix))
|
|
||||||
}
|
|
||||||
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const prepare_folder = (old_prefix, new_prefix) => tree => {
|
|
||||||
if (tree.type == 'folder') {
|
|
||||||
tree.generate = {
|
|
||||||
cmd: 'mkdir',
|
|
||||||
out: new_prefix + rm_prefix(old_prefix)(tree.path)
|
|
||||||
}
|
|
||||||
log('[prepare_folder]',tree.generate.out)
|
|
||||||
tree.children.forEach(prepare_folder(old_prefix, new_prefix))
|
|
||||||
}
|
|
||||||
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const do_folder = async tree => {
|
|
||||||
if (!tree.generate || tree.generate.cmd != 'mkdir') return tree
|
|
||||||
await fs.mkdir(tree.generate.out, { recursive: true })
|
|
||||||
log('[do_folder]',tree.generate.out)
|
|
||||||
await Promise.all(tree.children.map(do_folder))
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const do_copy = async tree => {
|
|
||||||
if (tree.generate && tree.generate.cmd == 'copy') {
|
|
||||||
await fs.copyFile(tree.generate.src, tree.generate.out)
|
|
||||||
log('[do_copy]',tree.generate.out)
|
|
||||||
} else if (tree.type == 'folder')
|
|
||||||
await Promise.all(tree.children.map(do_copy))
|
|
||||||
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const do_pug = (prt, root) => async tree => {
|
|
||||||
prt = prt || tree
|
|
||||||
root = root || tree
|
|
||||||
if (tree.generate && tree.generate.cmd == 'pug') {
|
|
||||||
const html = pug.renderFile(tree.generate.src, {
|
|
||||||
markdown: tree.generate.markdown ? marked(await fs.readFile(tree.generate.markdown, 'utf-8')) : null,
|
|
||||||
root: root,
|
|
||||||
prt: prt,
|
|
||||||
element: tree
|
|
||||||
})
|
|
||||||
await fs.writeFile(tree.generate.out, html)
|
|
||||||
log('[do_pug]',tree.generate.out)
|
|
||||||
} else if (tree.type == 'folder')
|
|
||||||
await Promise.all(tree.children.map(do_pug(tree,root)))
|
|
||||||
|
|
||||||
return tree
|
|
||||||
}
|
|
||||||
|
|
||||||
const rm_tree = t => {
|
|
||||||
if (t == null) return
|
|
||||||
if (t.type == 'file') {
|
|
||||||
log('[do_clean] file', t.path)
|
|
||||||
return fs.unlink(t.path)
|
|
||||||
}
|
|
||||||
|
|
||||||
return Promise
|
|
||||||
.all(t.children.map(rm_tree))
|
|
||||||
.then(_ => {
|
|
||||||
log('[do_clean] path', t.path)
|
|
||||||
return fs.rmdir(t.path)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
const do_clean = path => tree =>
|
|
||||||
walk(path)
|
|
||||||
.catch(_ => null)
|
|
||||||
.then(rm_tree)
|
|
||||||
.then(_ => tree)
|
|
||||||
|
|
||||||
const listen = async t =>
|
|
||||||
process.env.LISTEN &&
|
|
||||||
http.createServer(async (req,res) => {
|
|
||||||
const file = fs.readFile(__dirname + '/static/' + decodeURI(req.url))
|
|
||||||
.catch(_ => fs.readFile(__dirname + '/static/' + decodeURI(req.url) + '/index.html'))
|
|
||||||
|
|
||||||
try {
|
|
||||||
const f = await file
|
|
||||||
res.writeHead(200)
|
|
||||||
res.end(f)
|
|
||||||
} catch (e) {
|
|
||||||
console.error(e)
|
|
||||||
res.writeHead(404)
|
|
||||||
res.end("404 not found")
|
|
||||||
}
|
|
||||||
}).listen(process.env.LISTEN);
|
|
||||||
|
|
||||||
const conf = { src: './src', dest: './static'}
|
|
||||||
walk(conf.src)
|
|
||||||
.then(propagate_md_layout)
|
|
||||||
.then(elagate)
|
|
||||||
.then(tag_document)
|
|
||||||
.then(reference_index(['index.md', 'index.pug']))
|
|
||||||
.then(propagate_nice_name(conf.src))
|
|
||||||
.then(prepare_copy(conf.src, conf.dest))
|
|
||||||
.then(prepare_pug(conf.src, conf.dest))
|
|
||||||
.then(prepare_md(conf.src, conf.dest))
|
|
||||||
.then(prepare_folder(conf.src, conf.dest))
|
|
||||||
//.then(v => {log(v) ; return v})
|
|
||||||
.then(do_clean(conf.dest))
|
|
||||||
.then(do_folder)
|
|
||||||
.then(do_copy)
|
|
||||||
.then(do_pug())
|
|
||||||
.then(listen)
|
|
||||||
.catch(console.error)
|
|
BIN
ronce.webp
Normal file
After Width: | Height: | Size: 416 KiB |
44
script-bon.js
Normal file
|
@ -0,0 +1,44 @@
|
||||||
|
// dictionary to keep track of frame count for each animation
|
||||||
|
let frameCounts = {};
|
||||||
|
|
||||||
|
function animate(id, delay) {
|
||||||
|
|
||||||
|
// get the container and frames for the amination
|
||||||
|
const container = document.getElementById(id);
|
||||||
|
const frames = container.children;
|
||||||
|
|
||||||
|
// set up the frame counter
|
||||||
|
frameCounts[id] = 0;
|
||||||
|
|
||||||
|
// hide all frames except for the first
|
||||||
|
frames[0].style.display = "flex";
|
||||||
|
for (let i = 1; i < frames.length; i++) {
|
||||||
|
frames[i].style.display = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
// start the animation
|
||||||
|
const interval = setInterval(updateAnimation, delay, id, frames, frames.length);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateAnimation(id, frames, totalFrames) {
|
||||||
|
|
||||||
|
// increment the frame counter for the given id
|
||||||
|
frameCounts[id] = (frameCounts[id] + 1) % totalFrames;
|
||||||
|
|
||||||
|
// show the next frame
|
||||||
|
frames[frameCounts[id]].style.display = "flex";
|
||||||
|
|
||||||
|
// hide the previous frame
|
||||||
|
if (frameCounts[id] == 0) {
|
||||||
|
frames[totalFrames - 1].style.display = "none";
|
||||||
|
} else {
|
||||||
|
frames[frameCounts[id] - 1].style.display = "none";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
animate("illustration-accueil", 500);
|
||||||
|
animate("rennes", 1000);
|
||||||
|
animate("orsay", 2000);
|
||||||
|
animate("parterre", 1500);
|
|
@ -1,27 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<clientConfig version="1.1">
|
|
||||||
<emailProvider id="deuxfleurs.fr">
|
|
||||||
<domain>deuxfleurs.fr</domain>
|
|
||||||
<displayName>Deuxfleurs Mail</displayName>
|
|
||||||
<displayShortName>Deuxfleurs</displayShortName>
|
|
||||||
<incomingServer type="imap">
|
|
||||||
<hostname>imap.deuxfleurs.fr</hostname>
|
|
||||||
<port>993</port>
|
|
||||||
<socketType>SSL</socketType>
|
|
||||||
<authentication>plain</authentication>
|
|
||||||
<username>%EMAILADDRESS%</username>
|
|
||||||
</incomingServer>
|
|
||||||
<outgoingServer type="smtp">
|
|
||||||
<hostname>smtp.deuxfleurs.fr</hostname>
|
|
||||||
<port>465</port>
|
|
||||||
<socketType>SSL</socketType>
|
|
||||||
<authentication>plain</authentication>
|
|
||||||
<username>%EMAILADDRESS%</username>
|
|
||||||
</outgoingServer>
|
|
||||||
<documentation url="https://deuxfleurs.fr/Guide/Email.html">
|
|
||||||
<descr lang="fr">Documentation générique pour la configuration</descr>
|
|
||||||
<descr lang="en">Generic settings page</descr>
|
|
||||||
</documentation>
|
|
||||||
</emailProvider>
|
|
||||||
</clientConfig>
|
|
||||||
|
|
|
@ -1,30 +0,0 @@
|
||||||
file.class = service
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
service.name = Cryptpad
|
|
||||||
service.description = Pads, sondages, tableurs collaboratifs et chiffrés
|
|
||||||
service.website = https://pad.deuxfleurs.fr
|
|
||||||
service.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
service.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
service.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
service.guide.user = https://guide.deuxfleurs.fr/prise_en_main/cryptpad/
|
|
||||||
service.contact.url = https://deuxfleurs.fr/
|
|
||||||
service.contact.email = coucou@deuxfleurs.fr
|
|
||||||
service.startdate = 01/01/2020
|
|
||||||
service.status.level = OK
|
|
||||||
service.registration = None
|
|
||||||
service.registration.load = OPEN
|
|
||||||
service.install.type = SOURCES
|
|
||||||
software.name = cryptpad
|
|
||||||
software.website = https://cryptpad.fr/
|
|
||||||
software.license.url = https://github.com/xwiki-labs/cryptpad/blob/main/LICENSE
|
|
||||||
software.license.name = AGPL-3.0
|
|
||||||
software.version = 4.14.1
|
|
||||||
software.source.url = https://github.com/superboum/cryptpad
|
|
||||||
host.name=Deuxfleurs
|
|
||||||
host.server.distribution=NixOS
|
|
||||||
host.server.type=PHYSICAL
|
|
||||||
host.provider.type=HOME
|
|
||||||
host.country.code=FR
|
|
||||||
host.country.name=France
|
|
|
@ -1,28 +0,0 @@
|
||||||
file.class = organization
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
organization.name = Deuxfleurs
|
|
||||||
organization.description = Fabriquons un internet convivial
|
|
||||||
#organization.type = ASSOCIATION
|
|
||||||
organization.website = https://deuxfleurs.fr
|
|
||||||
organization.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
organization.socialnetworks.plume = https://plume.deuxfleurs.fr/~/Deuxfleurs
|
|
||||||
organization.socialnetworks.twitter = https://twitter.com/deuxfleurs_org/
|
|
||||||
organization.chatrooms.matrix = https://matrix.to/#/#deuxfleurs:deuxfleurs.fr
|
|
||||||
organization.contact.url = https://deuxfleurs.fr
|
|
||||||
organization.contact.email = coucou@deuxfleurs.fr
|
|
||||||
organization.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
organization.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
organization.guide.user = https://guide.deuxfleurs.fr/prise_en_main/
|
|
||||||
organization.status.level = ACTIVE
|
|
||||||
organization.startdate = 01/01/2020
|
|
||||||
organization.memberof.chatons.startdate = 21/06/2022
|
|
||||||
organization.memberof.chatons.status.level = ACTIVE
|
|
||||||
organization.country.name = France
|
|
||||||
organization.country.code = FR
|
|
||||||
subs.jitsi = https://deuxfleurs.fr/.well-known/chatonsinfos/jitsi.properties
|
|
||||||
subs.cryptpad = https://deuxfleurs.fr/.well-known/chatonsinfos/cryptpad.properties
|
|
||||||
subs.matrix = https://deuxfleurs.fr/.well-known/chatonsinfos/matrix.properties
|
|
||||||
subs.plume = https://deuxfleurs.fr/.well-known/chatonsinfos/plume.properties
|
|
||||||
subs.garage = https://deuxfleurs.fr/.well-known/chatonsinfos/garage.properties
|
|
|
@ -1,91 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
||||||
<svg
|
|
||||||
viewBox="0 0 70.424515 70.300102"
|
|
||||||
version="1.1"
|
|
||||||
id="svg8"
|
|
||||||
sodipodi:docname="logo.svg"
|
|
||||||
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
|
|
||||||
inkscape:export-filename="/home/quentin/Documents/dev/deuxfleurs/site/src/img/logo.png"
|
|
||||||
inkscape:export-xdpi="699.30194"
|
|
||||||
inkscape:export-ydpi="699.30194"
|
|
||||||
width="70.424515"
|
|
||||||
height="70.300102"
|
|
||||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
|
||||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:svg="http://www.w3.org/2000/svg">
|
|
||||||
<defs
|
|
||||||
id="defs12" />
|
|
||||||
<sodipodi:namedview
|
|
||||||
id="namedview10"
|
|
||||||
pagecolor="#ffffff"
|
|
||||||
bordercolor="#666666"
|
|
||||||
borderopacity="1.0"
|
|
||||||
inkscape:pageshadow="2"
|
|
||||||
inkscape:pageopacity="0.0"
|
|
||||||
inkscape:pagecheckerboard="0"
|
|
||||||
showgrid="false"
|
|
||||||
inkscape:zoom="12.125"
|
|
||||||
inkscape:cx="43.092783"
|
|
||||||
inkscape:cy="48.082474"
|
|
||||||
inkscape:window-width="3072"
|
|
||||||
inkscape:window-height="1659"
|
|
||||||
inkscape:window-x="0"
|
|
||||||
inkscape:window-y="0"
|
|
||||||
inkscape:window-maximized="1"
|
|
||||||
inkscape:current-layer="svg8" />
|
|
||||||
<g
|
|
||||||
id="g79969"
|
|
||||||
transform="translate(-0.827,34.992103)">
|
|
||||||
<path
|
|
||||||
fill="#ffffff"
|
|
||||||
d="m 15.632,34.661 c -0.799,-0.597 -1.498,-1.484 -2.035,-2.592 l -0.228,-0.47 -0.46,0.249 c -0.975,0.528 -1.913,0.858 -2.744,0.969 L 9.963,29.061 6.327,30.029 C 6.17,29.175 6.202,28.142 6.423,27.007 L 6.526,26.482 5.994,26.416 C 4.752,26.262 3.688,25.891 2.89,25.336 L 4.411,22.419 1.423,20.896 C 1.742,19.952 2.371,19.014 3.257,18.161 L 3.634,17.798 3.255,17.438 C 2.452,16.674 1.847,15.884 1.485,15.127 L 4.995,13.774 2.95,10.615 C 3.69,10.213 4.643,9.929 5.739,9.783 L 6.258,9.715 6.167,9.201 C 5.952,7.99 5.995,6.863 6.291,5.913 l 3.308,0.523 0.524,-3.308 c 0.988,0.013 2.08,0.326 3.164,0.907 L 13.749,4.283 13.975,3.81 C 14.454,2.807 15.019,1.986 15.628,1.406 L 18,4.326 20.372,1.406 c 0.609,0.58 1.175,1.401 1.653,2.404 l 0.226,0.473 0.462,-0.247 C 23.798,3.455 24.891,3.142 25.877,3.13 L 26.4,6.438 29.71,5.913 c 0.296,0.951 0.34,2.078 0.124,3.288 l -0.092,0.515 0.518,0.069 c 1.095,0.145 2.048,0.43 2.788,0.832 l -2.046,3.156 3.511,1.355 c -0.361,0.757 -0.966,1.547 -1.77,2.311 l -0.379,0.36 0.377,0.363 c 0.888,0.854 1.516,1.793 1.835,2.736 l -2.984,1.52 1.521,2.984 c -0.812,0.574 -1.871,0.964 -3.094,1.134 l -0.518,0.072 0.096,0.514 c 0.201,1.089 0.226,2.083 0.073,2.909 l -3.634,-0.97 -0.204,3.757 c -0.83,-0.11 -1.768,-0.44 -2.742,-0.968 l -0.459,-0.249 -0.228,0.47 c -0.539,1.107 -1.237,1.994 -2.036,2.591 L 18,32.293 Z"
|
|
||||||
id="path2" />
|
|
||||||
<path
|
|
||||||
d="M 7.092,10.678 C 6.562,9.189 6.394,7.708 6.66,6.478 l 2.368,0.375 0.987,0.156 0.157,-0.988 0.375,-2.368 C 11.808,3.78 13.16,4.396 14.409,5.359 14.527,5.022 14.653,4.696 14.791,4.392 13.24,3.257 11.568,2.629 10.061,2.629 9.938,2.629 9.816,2.633 9.695,2.642 L 9.184,5.865 5.96,5.354 C 5.36,6.841 5.395,8.769 6.045,10.747 6.38,10.71 6.729,10.686 7.092,10.678 Z M 21.593,5.359 c 1.248,-0.962 2.6,-1.578 3.86,-1.705 l 0.376,2.368 0.156,0.988 0.987,-0.157 2.369,-0.376 c 0.266,1.23 0.098,2.71 -0.432,4.2 0.361,0.009 0.711,0.032 1.046,0.07 C 30.606,8.769 30.64,6.841 30.04,5.353 L 26.815,5.865 26.304,2.641 c -0.12,-0.008 -0.242,-0.012 -0.365,-0.012 -1.507,0 -3.179,0.628 -4.73,1.762 0.14,0.306 0.266,0.631 0.384,0.968 z M 7.368,27 h 0.035 c 0.067,0 0.157,-0.604 0.26,-0.947 -0.098,0.004 -0.197,0.046 -0.294,0.046 -1.496,0 -2.826,-0.303 -3.83,-0.89 L 4.628,23.081 5.082,22.194 4.191,21.742 2.055,20.654 C 2.563,19.503 3.57,18.404 4.873,17.511 4.586,17.292 4.312,17.07 4.063,16.842 2.376,18.059 1.217,19.597 0.828,21.152 l 2.908,1.483 -1.482,2.843 C 3.475,26.501 5.303,27 7.368,27 Z m 27.806,-5.846 c -0.39,-1.555 -1.548,-3.093 -3.234,-4.311 -0.25,0.228 -0.523,0.451 -0.81,0.669 1.304,0.893 2.31,1.992 2.817,3.145 l -2.136,1.088 -0.891,0.453 0.454,0.892 1.089,2.137 c -1.004,0.587 -2.332,0.904 -3.828,0.904 -0.099,0 -0.199,-0.01 -0.299,-0.013 0.103,0.344 0.192,0.683 0.26,1.011 l 0.039,0.002 c 2.066,0 3.892,-0.563 5.112,-1.587 l -1.482,-2.908 z m -12.653,9.182 c -0.447,1.517 -1.181,2.812 -2.119,3.651 L 18.707,32.293 18,31.586 l -0.707,0.707 -1.695,1.694 c -0.938,-0.839 -1.673,-2.136 -2.12,-3.652 -0.296,0.206 -0.593,0.397 -0.886,0.563 0.636,1.98 1.741,3.559 3.1,4.409 L 18,33 l 2.308,2.308 c 1.358,-0.851 2.464,-2.428 3.101,-4.408 -0.295,-0.168 -0.591,-0.359 -0.888,-0.564 z"
|
|
||||||
fill="#ea596e"
|
|
||||||
id="path4" />
|
|
||||||
<path
|
|
||||||
fill="#ea596e"
|
|
||||||
d="m 20.118,5.683 c 0.426,1.146 0.748,2.596 0.841,4.284 l 0.2,3.683 3.564,-0.946 c 1.32,-0.351 2.655,-0.536 3.86,-0.536 0.16,0 0.318,0.003 0.474,0.01 l -1.827,2.819 3.139,1.211 c -0.958,0.759 -2.237,1.514 -3.814,2.123 l -3.441,1.328 2.001,3.099 c 0.918,1.42 1.509,2.782 1.838,3.96 L 23.709,25.853 23.527,29.21 C 22.508,28.533 21.395,27.55 20.329,26.237 L 18,23.374 15.672,26.236 c -1.066,1.312 -2.179,2.295 -3.198,2.972 l -0.18,-3.354 -3.248,0.864 c 0.329,-1.178 0.921,-2.54 1.839,-3.961 L 12.889,19.658 9.447,18.33 C 7.87,17.721 6.591,16.967 5.633,16.208 L 8.768,15 6.941,12.177 c 0.155,-0.006 0.313,-0.01 0.473,-0.01 1.206,0 2.541,0.185 3.861,0.536 l 3.564,0.947 0.202,-3.683 c 0.092,-1.688 0.415,-3.138 0.84,-4.284 L 18,8.292 20.118,5.683 M 20.308,0.692 18,3.533 15.692,0.692 C 13.703,2.224 12.271,5.684 12.046,9.804 10.429,9.374 8.854,9.167 7.414,9.167 c -2.11,0 -3.929,0.445 -5.161,1.289 l 1.989,3.073 -3.415,1.316 c 0.842,2.366 3.69,4.797 7.54,6.283 -2.241,3.465 -3.116,7.106 -2.407,9.516 l 3.537,-0.941 0.196,3.654 c 2.512,-0.07 5.703,-2.027 8.307,-5.228 2.603,3.201 5.796,5.158 8.306,5.228 l 0.198,-3.655 3.535,0.943 c 0.71,-2.411 -0.165,-6.05 -2.404,-9.517 3.849,-1.485 6.696,-3.918 7.538,-6.283 l -3.415,-1.318 1.99,-3.07 c -1.233,-0.844 -3.053,-1.29 -5.164,-1.29 -1.438,0 -3.013,0.207 -4.63,0.636 C 23.729,5.684 22.297,2.224 20.308,0.692 Z"
|
|
||||||
id="path6" />
|
|
||||||
</g>
|
|
||||||
<g
|
|
||||||
id="g79964"
|
|
||||||
transform="translate(-1.043816,35.993714)">
|
|
||||||
<path
|
|
||||||
fill="#ffffff"
|
|
||||||
d="m 51.92633,-2.0247139 c -0.799,-0.597 -1.498,-1.484 -2.035,-2.592 l -0.228,-0.47 -0.46,0.249 c -0.975,0.528 -1.913,0.858 -2.744,0.969 l -0.202,-3.7560001 -3.636,0.968 c -0.157,-0.854 -0.125,-1.887 0.096,-3.022 l 0.103,-0.525 -0.532,-0.066 c -1.242,-0.154 -2.306,-0.525 -3.104,-1.08 l 1.521,-2.917 -2.988,-1.523 c 0.319,-0.944 0.948,-1.882 1.834,-2.735 l 0.377,-0.363 -0.379,-0.36 c -0.803,-0.764 -1.408,-1.554 -1.77,-2.311 l 3.51,-1.353 -2.045,-3.159 c 0.74,-0.402 1.693,-0.686 2.789,-0.832 l 0.519,-0.068 -0.091,-0.514 c -0.215,-1.211 -0.172,-2.338 0.124,-3.288 l 3.308,0.523 0.524,-3.308 c 0.988,0.013 2.08,0.326 3.164,0.907 l 0.462,0.248 0.226,-0.473 c 0.479,-1.003 1.044,-1.824 1.653,-2.404 l 2.372,2.92 2.372,-2.92 c 0.609,0.58 1.175,1.401 1.653,2.404 l 0.226,0.473 0.462,-0.247 c 1.085,-0.581 2.178,-0.894 3.164,-0.906 l 0.523,3.308 3.31,-0.525 c 0.296,0.951 0.34,2.078 0.124,3.288 l -0.092,0.515 0.518,0.069 c 1.095,0.145 2.048,0.43 2.788,0.832 l -2.046,3.156 3.511,1.355 c -0.361,0.757 -0.966,1.547 -1.77,2.311 l -0.379,0.36 0.377,0.363 c 0.888,0.854 1.516,1.793 1.835,2.736 l -2.984,1.52 1.521,2.984 c -0.812,0.574 -1.871,0.964 -3.094,1.134 l -0.518,0.072 0.096,0.514 c 0.201,1.089 0.226,2.083 0.073,2.909 l -3.634,-0.97 -0.204,3.7570001 c -0.83,-0.11 -1.768,-0.44 -2.742,-0.968 l -0.459,-0.249 -0.228,0.47 c -0.539,1.107 -1.237,1.994 -2.036,2.591 l -2.367,-2.369 z"
|
|
||||||
id="path2-9" />
|
|
||||||
<path
|
|
||||||
d="m 43.38633,-26.007714 c -0.53,-1.489 -0.698,-2.97 -0.432,-4.2 l 2.368,0.375 0.987,0.156 0.157,-0.988 0.375,-2.368 c 1.261,0.127 2.613,0.743 3.862,1.706 0.118,-0.337 0.244,-0.663 0.382,-0.967 -1.551,-1.135 -3.223,-1.763 -4.73,-1.763 -0.123,0 -0.245,0.004 -0.366,0.013 l -0.511,3.223 -3.224,-0.511 c -0.6,1.487 -0.565,3.415 0.085,5.393 0.335,-0.037 0.684,-0.061 1.047,-0.069 z m 14.501,-5.319 c 1.248,-0.962 2.6,-1.578 3.86,-1.705 l 0.376,2.368 0.156,0.988 0.987,-0.157 2.369,-0.376 c 0.266,1.23 0.098,2.71 -0.432,4.2 0.361,0.009 0.711,0.032 1.046,0.07 0.651,-1.978 0.685,-3.906 0.085,-5.394 l -3.225,0.512 -0.511,-3.224 c -0.12,-0.008 -0.242,-0.012 -0.365,-0.012 -1.507,0 -3.179,0.628 -4.73,1.762 0.14,0.306 0.266,0.631 0.384,0.968 z m -14.225,21.641 h 0.035 c 0.067,0 0.157,-0.604 0.26,-0.947 -0.098,0.004 -0.197,0.046 -0.294,0.046 -1.496,0 -2.826,-0.303 -3.83,-0.89 l 1.089,-2.128 0.454,-0.887 -0.891,-0.452 -2.136,-1.088 c 0.508,-1.151 1.515,-2.25 2.818,-3.143 -0.287,-0.219 -0.561,-0.441 -0.81,-0.669 -1.687,1.217 -2.846,2.755 -3.235,4.31 l 2.908,1.483 -1.482,2.843 c 1.221,1.023 3.049,1.522 5.114,1.522 z m 27.806,-5.846 c -0.39,-1.555 -1.548,-3.093 -3.234,-4.311 -0.25,0.228 -0.523,0.451 -0.81,0.669 1.304,0.893 2.31,1.992 2.817,3.145 l -2.136,1.088 -0.891,0.453 0.454,0.892 1.089,2.137 c -1.004,0.587 -2.332,0.904 -3.828,0.904 -0.099,0 -0.199,-0.01 -0.299,-0.013 0.103,0.344 0.192,0.683 0.26,1.011 l 0.039,0.002 c 2.066,0 3.892,-0.563 5.112,-1.587 l -1.482,-2.908 z m -12.653,9.182 c -0.447,1.5170001 -1.181,2.8120001 -2.119,3.6510001 l -1.695,-1.694 -0.707,-0.707 -0.707,0.707 -1.695,1.694 c -0.938,-0.839 -1.673,-2.136 -2.12,-3.6520001 -0.296,0.2060001 -0.593,0.3970001 -0.886,0.5630001 0.636,1.98 1.741,3.559 3.1,4.409 l 2.308,-2.307 2.308,2.308 c 1.358,-0.851 2.464,-2.428 3.101,-4.408 -0.295,-0.168 -0.591,-0.359 -0.888,-0.5640001 z"
|
|
||||||
fill="#ea596e"
|
|
||||||
id="path4-3" />
|
|
||||||
<path
|
|
||||||
fill="#ea596e"
|
|
||||||
d="m 56.41233,-31.002714 c 0.426,1.146 0.748,2.596 0.841,4.284 l 0.2,3.683 3.564,-0.946 c 1.32,-0.351 2.655,-0.536 3.86,-0.536 0.16,0 0.318,0.003 0.474,0.01 l -1.827,2.819 3.139,1.211 c -0.958,0.759 -2.237,1.514 -3.814,2.123 l -3.441,1.328 2.001,3.099 c 0.918,1.42 1.509,2.782 1.838,3.96 l -3.244,-0.865 -0.182,3.357 c -1.019,-0.677 -2.132,-1.66 -3.198,-2.973 l -2.329,-2.863 -2.328,2.862 c -1.066,1.312 -2.179,2.295 -3.198,2.972 l -0.18,-3.354 -3.248,0.864 c 0.329,-1.178 0.921,-2.54 1.839,-3.961 l 2.004,-3.099 -3.442,-1.328 c -1.577,-0.609 -2.856,-1.363 -3.814,-2.122 l 3.135,-1.208 -1.827,-2.823 c 0.155,-0.006 0.313,-0.01 0.473,-0.01 1.206,0 2.541,0.185 3.861,0.536 l 3.564,0.947 0.202,-3.683 c 0.092,-1.688 0.415,-3.138 0.84,-4.284 l 2.119,2.609 2.118,-2.609 m 0.19,-4.991 -2.308,2.841 -2.308,-2.841 c -1.989,1.532 -3.421,4.992 -3.646,9.112 -1.617,-0.43 -3.192,-0.637 -4.632,-0.637 -2.11,0 -3.929,0.445 -5.161,1.289 l 1.989,3.073 -3.415,1.316 c 0.842,2.366 3.69,4.797 7.54,6.283 -2.241,3.465 -3.116,7.106 -2.407,9.5160001 l 3.537,-0.9410001 0.196,3.6540001 c 2.512,-0.07 5.703,-2.027 8.307,-5.2280001 2.603,3.2010001 5.796,5.1580001 8.306,5.2280001 l 0.198,-3.6550001 3.535,0.9430001 c 0.71,-2.4110001 -0.165,-6.0500001 -2.404,-9.5170001 3.849,-1.485 6.696,-3.918 7.538,-6.283 l -3.415,-1.318 1.99,-3.07 c -1.233,-0.844 -3.053,-1.29 -5.164,-1.29 -1.438,0 -3.013,0.207 -4.63,0.636 -0.225,-4.119 -1.657,-7.579 -3.646,-9.111 z"
|
|
||||||
id="path6-6" />
|
|
||||||
</g>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-weight:normal;font-size:42.6667px;line-height:1.25;font-family:sans-serif;fill:#ea596e;fill-opacity:1;stroke:none"
|
|
||||||
x="2.2188232"
|
|
||||||
y="31.430677"
|
|
||||||
id="text46212"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan46210"
|
|
||||||
x="2.2188232"
|
|
||||||
y="31.430677"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.6667px;font-family:'TeX Gyre Termes';-inkscape-font-specification:'TeX Gyre Termes'">D</tspan></text>
|
|
||||||
<text
|
|
||||||
xml:space="preserve"
|
|
||||||
style="font-style:normal;font-weight:normal;font-size:42.6667px;line-height:1.25;font-family:sans-serif;fill:#ea596e;fill-opacity:1;stroke:none"
|
|
||||||
x="41.347008"
|
|
||||||
y="67.114784"
|
|
||||||
id="text46212-1"><tspan
|
|
||||||
sodipodi:role="line"
|
|
||||||
id="tspan46210-5"
|
|
||||||
x="41.347008"
|
|
||||||
y="67.114784"
|
|
||||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:42.6667px;font-family:'TeX Gyre Termes';-inkscape-font-specification:'TeX Gyre Termes'">F</tspan></text>
|
|
||||||
</svg>
|
|
Before Width: | Height: | Size: 12 KiB |
|
@ -1,30 +0,0 @@
|
||||||
file.class = service
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
service.name = Hébergement site statique
|
|
||||||
service.description = Hébergez votre blog, site vitrine ou n'importe quel site statique
|
|
||||||
service.website = https://guide.deuxfleurs.fr/prise_en_main/web/
|
|
||||||
service.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
service.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
service.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
service.guide.user = https://guide.deuxfleurs.fr/prise_en_main/web/
|
|
||||||
service.contact.url = https://deuxfleurs.fr/
|
|
||||||
service.contact.email = coucou@deuxfleurs.fr
|
|
||||||
service.startdate = 01/01/2020
|
|
||||||
service.status.level = OK
|
|
||||||
service.registration = Member
|
|
||||||
service.registration.load = OPEN
|
|
||||||
service.install.type = SOURCES
|
|
||||||
software.name = Garage
|
|
||||||
software.website = https://garagehq.deuxfleurs.fr/
|
|
||||||
software.license.url = https://git.deuxfleurs.fr/Deuxfleurs/garage/src/branch/main/LICENSE
|
|
||||||
software.license.name = AGPL-3.0
|
|
||||||
software.version = 0.7.2
|
|
||||||
software.source.url = https://git.deuxfleurs.fr/Deuxfleurs/garage
|
|
||||||
host.name=Deuxfleurs
|
|
||||||
host.server.distribution=NixOS
|
|
||||||
host.server.type=PHYSICAL
|
|
||||||
host.provider.type=HOME
|
|
||||||
host.country.code=FR
|
|
||||||
host.country.name=France
|
|
|
@ -1,30 +0,0 @@
|
||||||
file.class = service
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
service.name = Jitsi
|
|
||||||
service.description = Visioconférence dans le navigateur et sur mobile
|
|
||||||
service.website = https://jitsi.deuxfleurs.fr
|
|
||||||
service.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
service.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
service.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
service.guide.user = https://guide.deuxfleurs.fr/prise_en_main/jitsi/
|
|
||||||
service.contact.url = https://deuxfleurs.fr/
|
|
||||||
service.contact.email = coucou@deuxfleurs.fr
|
|
||||||
service.startdate = 01/01/2020
|
|
||||||
service.status.level = OK
|
|
||||||
service.registration = None
|
|
||||||
service.registration.load = OPEN
|
|
||||||
service.install.type = SOURCES
|
|
||||||
software.name = jitsimeet
|
|
||||||
software.website = https://jitsi.org/jitsi-meet/
|
|
||||||
software.license.url = https://github.com/jitsi/jitsi-meet/blob/master/LICENSE
|
|
||||||
software.license.name = Apache License 2.0
|
|
||||||
software.version = 6826
|
|
||||||
software.source.url = https://git.deuxfleurs.fr/Deuxfleurs/infrastructure/src/branch/main/app/jitsi/build
|
|
||||||
host.name=Deuxfleurs
|
|
||||||
host.server.distribution=NixOS
|
|
||||||
host.server.type=PHYSICAL
|
|
||||||
host.provider.type=HOME
|
|
||||||
host.country.code=FR
|
|
||||||
host.country.name=France
|
|
|
@ -1,30 +0,0 @@
|
||||||
file.class = service
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
service.name = Matrix
|
|
||||||
service.description = Discussions instantanées chiffrées et en groupe
|
|
||||||
service.website = https://riot.deuxfleurs.fr
|
|
||||||
service.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
service.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
service.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
service.guide.user = https://guide.deuxfleurs.fr/prise_en_main/matrix/
|
|
||||||
service.contact.url = https://deuxfleurs.fr/
|
|
||||||
service.contact.email = coucou@deuxfleurs.fr
|
|
||||||
service.startdate = 01/01/2020
|
|
||||||
service.status.level = OK
|
|
||||||
service.registration = Member
|
|
||||||
service.registration.load = OPEN
|
|
||||||
service.install.type = SOURCES
|
|
||||||
software.name = Synapse
|
|
||||||
software.website = https://matrix-org.github.io/synapse/latest/
|
|
||||||
software.license.url = https://github.com/matrix-org/synapse/blob/develop/LICENSE
|
|
||||||
software.license.name = Apache-2.0
|
|
||||||
software.version = 1.61.1
|
|
||||||
software.source.url = https://github.com/matrix-org/synapse
|
|
||||||
host.name=Deuxfleurs
|
|
||||||
host.server.distribution=NixOS
|
|
||||||
host.server.type=PHYSICAL
|
|
||||||
host.provider.type=HOME
|
|
||||||
host.country.code=FR
|
|
||||||
host.country.name=France
|
|
|
@ -1,30 +0,0 @@
|
||||||
file.class = service
|
|
||||||
file.protocol = ChatonsInfos-0.5
|
|
||||||
file.datetime = 2022-07-20T00:00:00
|
|
||||||
file.generator = L'équipe Deuxfleurs
|
|
||||||
service.name = Plume
|
|
||||||
service.description = Plateforme de blog fédérée via ActivityPub
|
|
||||||
service.website = https://plume.deuxfleurs.fr/
|
|
||||||
service.logo = https://deuxfleurs.fr/.well-known/chatonsinfos/deuxfleurs.svg
|
|
||||||
service.legal.url = https://deuxfleurs.fr/Mentions%20l%C3%A9gales.html
|
|
||||||
service.guide.technical = https://guide.deuxfleurs.fr/operations/
|
|
||||||
service.guide.user = https://guide.deuxfleurs.fr/prise_en_main/plume/
|
|
||||||
service.contact.url = https://deuxfleurs.fr/
|
|
||||||
service.contact.email = coucou@deuxfleurs.fr
|
|
||||||
service.startdate = 01/01/2020
|
|
||||||
service.status.level = OK
|
|
||||||
service.registration = Member
|
|
||||||
service.registration.load = OPEN
|
|
||||||
service.install.type = SOURCES
|
|
||||||
software.name = Plume
|
|
||||||
software.website = https://joinplu.me/
|
|
||||||
software.license.url = https://git.joinplu.me/Plume/Plume/src/branch/main/LICENSE
|
|
||||||
software.license.name = AGPL-3.0
|
|
||||||
software.version = 8709f6cf9f8ff7e3c5ee7ea699ee7c778e92fefc
|
|
||||||
software.source.url = https://git.joinplu.me/Plume/Plume
|
|
||||||
host.name=Deuxfleurs
|
|
||||||
host.server.distribution=NixOS
|
|
||||||
host.server.type=PHYSICAL
|
|
||||||
host.provider.type=HOME
|
|
||||||
host.country.code=FR
|
|
||||||
host.country.name=France
|
|
|
@ -1,12 +0,0 @@
|
||||||
{
|
|
||||||
"m.homeserver": {
|
|
||||||
"base_url": "https://im.deuxfleurs.fr"
|
|
||||||
},
|
|
||||||
"m.identity_server": {
|
|
||||||
"base_url": "https://vector.im"
|
|
||||||
},
|
|
||||||
"im.vector.riot.jitsi": {
|
|
||||||
"preferredDomain": "jitsi.deuxfleurs.fr"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
{ "m.server": "im.deuxfleurs.fr:443" }
|
|
13
src/@404.pug
|
@ -1,13 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "deuxfleurs"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
h1 404 - Page non trouvée
|
|
||||||
|
|
||||||
p La page que vous cherchez n'existe pas sur ce site web.
|
|
||||||
|
|
||||||
p Si vous pensez que c'est une erreur, les informations pour nous contacter sont disponibles sur notre page d'accueil.
|
|
||||||
|
|
144
src/CGU.pug
|
@ -1,144 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "CGU"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
h1 Conditions Générales d'Utilisation
|
|
||||||
|
|
||||||
p 10/03/2022
|
|
||||||
|
|
||||||
p En utilisant les services de Deuxfleurs, vous acceptez d’être lié par les conditions suivantes.
|
|
||||||
|
|
||||||
h2 Évolution des conditions générales d'utilisation
|
|
||||||
|
|
||||||
p Deuxfleurs se réserve le droit de mettre à jour et modifier ces conditions. Dans ce cas, Deuxfleurs informe les personnes concernées par mail si elle le peut ou par un affichage sur le site.
|
|
||||||
|
|
||||||
h2 Accès aux services
|
|
||||||
|
|
||||||
p
|
|
||||||
| Certains services sont en accès libre, d'autre requièrent un compte. Vous pouvez obtenir un compte par cooptation d'un membre existant ou en faisant une demande directement par email à l'association.
|
|
||||||
| Certains services sont soumis à l'approbation préalable de Deuxfleurs selon les ressources disponibles. La liste des services et leurs conditions d'accès peut-être obtenue en contactant l'association.
|
|
||||||
|
|
||||||
h2 Fonctionnement
|
|
||||||
|
|
||||||
h3 Délais de mise en service
|
|
||||||
|
|
||||||
p Deuxfleurs propose ses services grâce à des bénévoles, de ce fait Deuxfleurs ne s’engage sur aucun délai de mise en service. Nous essayons toutefois de faire de notre mieux pour les fournir dans les 7 jours.
|
|
||||||
|
|
||||||
h3 Transmission sécurisée d’identifiants
|
|
||||||
|
|
||||||
p
|
|
||||||
| Deuxfleurs ne vous demandera jamais de communiquer vos mots ou phrases de passe.
|
|
||||||
| Lorsque Deuxfleurs doit vous transmettre un identifiant, Deuxfleurs le fera via email ou en physique.
|
|
||||||
|
|
||||||
h3 Intervention en cas de panne
|
|
||||||
|
|
||||||
p En cas de panne constatée et si aucun message n’atteste sur la page de statut que Deuxfleurs est en train de corriger le dysfonctionnement, vous devez faire un signalement via Matrix.
|
|
||||||
|
|
||||||
p Deuxfleurs propose l’ensemble de ses services grâce à des bénévoles qui feront ce qu’ils et elles peuvent pour résoudre les problèmes techniques qui pourraient subvenir.
|
|
||||||
|
|
||||||
|
|
||||||
h3 Intégrité des données
|
|
||||||
|
|
||||||
p Deuxfleurs réalise des sauvegardes quotidiennes afin d’éviter des pertes de données. Les sauvegardes sont conservées selon cette politique suivante : 1/jour jusqu’à 1 mois, 1/semaine jusqu’à 3 mois, 1/mois jusqu’à 1 an. Les sauvegardes sont stockées de manière chiffrée avec un mot de passe par l'association à Suresnes.
|
|
||||||
|
|
||||||
p Deuxfleurs ne peut être tenu responsable de l’intégrité des données et des conséquences liées à une perte de données.
|
|
||||||
|
|
||||||
p Deuxfleurs recommande aux usager·es d’avoir une sauvegarde locale afin d’assurer l’intégrité de leurs données.
|
|
||||||
|
|
||||||
h3 Responsabilité de Deuxfleurs
|
|
||||||
|
|
||||||
p Deuxfleurs est assujetti à une obligation de moyens. En cas de défaillance, Deuxfleurs ne peut être tenu pour responsable des dommages indirects tels que pertes d’exploitation, préjudices commerciaux, perte de Clientèle, de chiffre d’affaires, de bénéfices ou d’économies prévus, ou de tout autre préjudice indirect.
|
|
||||||
|
|
||||||
h3 Mésusage des services
|
|
||||||
|
|
||||||
p Vous devez respecter les lois et réglementations en vigueur lors de l’usage des services proposés que ce soit en matière de respect de la vie privée, d’envoi de mails en grande quantité, de propriété intellectuelle, de propos discriminatoires, d’appel à la haine, de harcèlement, d’atteinte aux libertés fondamentales de personnes, etc.
|
|
||||||
|
|
||||||
p En cas d’usage prohibé, Deuxfleurs peut se trouver dans l’obligation de déclencher la suspension totale ou partielle du service, le retrait de contenu, ou toute autre mesure que les lois et réglementations lui imposent. Vous devez respecter les autres utilisateurs en faisant preuve de civisme et de politesse. Deuxfleurs se réserve le droit de supprimer tout contenu paraissant non pertinent ou contrevenant à ces principes, selon son seul jugement.
|
|
||||||
|
|
||||||
p Par ailleurs, si un ou une utilisatrice abuse du service, par exemple en monopolisant des ressources machines partagées, son contenu ou son accès pourra être supprimé, si nécessaire sans avertissement ni négociation. Deuxfleurs reste seul juge de cette notion « d’abus » dans le but de fournir le meilleur service possible à l’ensemble des usagers et usagères.
|
|
||||||
|
|
||||||
h3 Devenir des services
|
|
||||||
|
|
||||||
p Deuxfleurs peut par ailleurs choisir (de résilier des abonnements ou) d’arrêter des services si Deuxfleurs estime ne plus être en mesure de fournir lesdits services. Si Deuxfleurs en a la possibilité, elle fera de son mieux pour laisser un délai suffisant pour permettre à tout le monde de migrer sereinement.
|
|
||||||
|
|
||||||
h3 Support et conseil
|
|
||||||
|
|
||||||
p Vous pouvez nous signaler des souhaits sur la création de futur service, mais sachez que nous ne pourrons pas créer de nouveaux services en moins de 6 mois. Deuxfleurs pourra toutefois vous rediriger vers des chatons à même de répondre à vos demandes.
|
|
||||||
|
|
||||||
p En dehors de dysfonctionnement technique, Deuxfleurs propose également de vous aider dans la réalisation de votre projet avec les services de Deuxfleurs selon l'envie et le temps disponible de ses membres. Deuxfleurs se réserve le droit de facturer le temps de support et de conseil pour des projets importants après avoir prévenu les utilisateurs en amont.
|
|
||||||
|
|
||||||
h3 Résiliation d’un compte
|
|
||||||
|
|
||||||
p Si vous souhaitez résilier un compte, vous devez le signaler à Deuxfleurs.
|
|
||||||
|
|
||||||
h2 Nos engagements
|
|
||||||
|
|
||||||
p
|
|
||||||
| Deuxfleurs n’exploitera vos données personnelles que dans le cadre de ces 5 finalités:
|
|
||||||
ul
|
|
||||||
li fournir le service pour lesquels vous avez transmis vos données
|
|
||||||
li produire d‘éventuelles statistiques anonymisées et agrégées
|
|
||||||
li vous prévenir d’un changement important sur le service (panne, notification d’intrusion et de vol de données, changement d’interface, date d’arrêt du service...)
|
|
||||||
li obtenir votre avis sur les services et l’action de l’association
|
|
||||||
li vous inviter à participer à un évènement de Deuxfleurs
|
|
||||||
|
|
||||||
p Deuxfleurs ne transmettra ni ne revendra vos données personnelles (votre vie privée nous tient - vraiment - à cœur). Votre contenu vous appartient tout autant, toutefois, nous vous encourageons à le publier sous licence libre si c’est pertinent.
|
|
||||||
|
|
||||||
p
|
|
||||||
| Une modification du paragraphe précédent, contrairement au reste de la présente charte, ne peut se faire simplement par une simple notification. Si une telle modification devait survenir, elle :
|
|
||||||
ul
|
|
||||||
li Ne serait pas rétroactive
|
|
||||||
li Demandera un accord explicite de votre part pour continuer à utiliser les services fournis par Deuxfleurs
|
|
||||||
li Provoquera une révocation préalable à la modification auprès de tous les soutiens de Deuxfleurs ayant à cœur les problématiques de respect de la vie privée.
|
|
||||||
|
|
||||||
|
|
||||||
h3 Charte CHATONS
|
|
||||||
|
|
||||||
p Deuxfleurs s’engage à respecter la charte du Collectif des Hébergeurs Alternatifs, Transparents, Ouverts, Neutres et Solidaires dans le cadre de son activité d’hébergeur et de fourniture de services en ligne
|
|
||||||
|
|
||||||
p Deuxfleurs est candidat à l’intégration au sein de ce collectif.
|
|
||||||
|
|
||||||
p Plus d’information sur la charte C.H.A.T.O.N.S. :
|
|
||||||
a(href="https://chatons.org/fr/charte") chatons.org/fr/charte
|
|
||||||
|
|
||||||
|
|
||||||
h3 Localisation des données
|
|
||||||
|
|
||||||
p
|
|
||||||
| Vos données sont localisées en France et en Belgique, sur les serveurs de nos membres. Un détail complet de l'infrastructure et de l'emplacement des données par service est disponible sur notre page
|
|
||||||
a(href="https://wiki.deuxfleurs.fr/Technique/Infra") Infrastructure
|
|
||||||
| .
|
|
||||||
|
|
||||||
h3 Devenir des données
|
|
||||||
|
|
||||||
p Une fois le compte clôturé, Deuxfleurs peut procéder à la suppression des données.
|
|
||||||
|
|
||||||
p Certains services en libre accès permettent de configurer la péremption des données, d’autres les conservent de façon permanentes, mais vous pouvez demander leur retrait si vous pouvez prouver que vous en êtes l’auteur⋅ice.
|
|
||||||
|
|
||||||
h3 Exercice de vos droits
|
|
||||||
|
|
||||||
p
|
|
||||||
| Conformément à l’article 34 de la loi « Informatique et Libertés », vous pouvez exercer les droits suivant en envoyant un mail à ca
|
|
||||||
img.simple(height="15", src="img/arobase.png")
|
|
||||||
| deuxfleurs.fr :
|
|
||||||
ul
|
|
||||||
li droits d’accès, de rectification, d’effacement et d’opposition
|
|
||||||
li droit à la limitation du traitement
|
|
||||||
li droit à la portabilité des données
|
|
||||||
li droit de ne pas faire l’objet d’une décision individuelle automatisée
|
|
||||||
|
|
||||||
h3 RGPD
|
|
||||||
|
|
||||||
p Vous et Deuxfleurs s’engagent à respecter la réglementation en vigueur applicable au traitement de données à caractère personnel et, en particulier, le règlement (UE) 2016/679 du Parlement européen et du Conseil du 27 avril 2016 applicable à compter du 25 mai 2018, dite RGPD.
|
|
||||||
|
|
||||||
h2 Litige et juridiction compétente
|
|
||||||
|
|
||||||
p Le droit applicable aux présentes est le droit français. En cas de différent, les parties recherchent une solution amiable. Si la démarche échoue, le litige sera tranché par le Tribunal de Grande Instance de Rennes.
|
|
||||||
|
|
||||||
p Le fait que l’usager ou Deuxfleurs ne se prévale pas à un moment donné de l’une des présentes conditions générales et/ou tolère un manquement par l’autre partie ne peut être interprété comme valant renonciation par l’usager ou Deuxfleurs à se prévaloir ultérieurement de ces conditions.
|
|
||||||
|
|
||||||
p La nullité d’une des clauses de ces conditions en application d’une loi, d’une réglementation ou d’une décision de justice n’implique pas la nullité de l’ensemble des autres clauses. Par ailleurs l’esprit général de la clause sera à conserver en accord avec le droit applicable.
|
|
||||||
|
|
|
@ -1,130 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "Gestion des risques"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
h1 Gestion des risques
|
|
||||||
|
|
||||||
p
|
|
||||||
| Un risque se définit par la combinaison d'un danger, c'est à dire un évènement redouté, et sa probabilité d'occurence.
|
|
||||||
| La gestion des risques consiste à minimiser les risques en les évaluant et en mettant en place des solutions pour réduire leur impact.
|
|
||||||
|
|
||||||
h2 🧰 Risques matériels
|
|
||||||
|
|
||||||
h3 Panne de composants informatiques
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Un serveur est composé d'un ensemble de pièces avec une durée de vie limitée. La panne d'une de ces pièces cause une interruption de service et possiblement une perte de données (comme dans le cas d'un disque dur par exemple). La probabilité de ces pannes est importante car certains composants ont une durée de vie limité, comme les disques durs, et de plus nous utilisons du matériel reconditionné qui a donc déjà été utilisé.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous avons à disposition des pièces de rechange pour pouvoir réparer rapidement nos serveurs. De plus, nous avons en permanence plusieurs machines en production de sorte que lorsque l'une d'elle tombe en panne, les services qu'elle gérait sont automatiquement basculés sur les autres machines fonctionnelles. Les données sont répliquées sur 3 disques durs différents, de sorte que si un disque dur tombe en panne, cette dernière est toujours disponible sur 2 autres disques.
|
|
||||||
|
|
||||||
h3 Bug logiciel
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Un bug logiciel peut rendre un service indisponible voire impliquer une perte de données. Cette indisponibilité et cette perte de donnée, contrairement à une panne matériel, peut se propager à l'ensemble de nos serveurs.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Les données, en plus d'être répliquées automatiquement, sont périodiquement sauvegardées via un logiciel indépendant sur une période d'au moins 2 mois sur un site distant (Suresnes), de sorte que le logiciel qui fournisse le service n'ait pas accès aux données de sauvegardes et ne puisse donc pas les effacer. Les services quant à eux sont définis déclarativement, dans chaque modification est archivée, de sorte qu'il est possible de revenir sur une version antérieure du service qui soit stable.
|
|
||||||
|
|
||||||
h3 Panne du réseau électrique ou internet
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Nous faisons appel à des prestataires externe pour l'électricité (eg. EDF) et la connexion Internet (eg. Free). Lors de travaux dans la rue, de tension sur le réseau (eg. froid ou confinement), ou simplement d'erreur de gestion, ces réseaux peuvent être coupés localement ou au niveau national. En résulte une indisponibilité des services pendant la coupure.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Notre infrastructure est répartie sur des zones éloignées géographiquement (aujourd'hui Rennes et Orsay), de sorte qu'une panne locale ne nécessitera que de migrer les services d'une zone à l'autre. Pour le cas d'une panne au niveau national, nous acceptons ce risque : il est très faible et, la plupart du temps, le service est rétabli en quelques heures.
|
|
||||||
|
|
||||||
h3 Panne des autres prestataires et tiers-parties
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Deuxfleurs fait appel à un certains nombre de prestataires et tiers parties pour fournir ses services : bureau d'enregistrement DNS (Gandi), Hébergeur DNS (Gandi), certificats X.509 (Let's Encrypt), système d'exploitation (NixOS, Debian), logiciels (Docker Hub, Github, etc.). La panne ou le blocage par une de ces tiers-parties impacteraient les services de Deuxfleurs.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous essayons de limiter le nombre de prestataires que nous utilisons et évitons de verrouiller fortement nos choix technologiques vis à vis d'un fournisseur particulier.
|
|
||||||
| En dehors de ces points, nous acceptons ces risques.
|
|
||||||
|
|
||||||
h2 😵 Risques humains
|
|
||||||
|
|
||||||
h3 Erreur d'administration
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Une erreur d'administration des services peut aboutir à une interruption de services et à une perte de données sur l'ensemble de nos serveurs. Elle peut également générer beaucoup de stress pour la personne en charge de l'administration.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Les données, en plus d'être répliquées automatiquement, sont périodiquement sauvegardées via un logiciel indépendant sur une période d'au moins 2 mois sur un site distant (Suresnes), de sorte que le logiciel qui fournisse le service n'ait pas accès aux données de sauvegardes et ne puisse donc pas les effacer. Les services quant à eux sont définis déclarativement, dans chaque modification est archivée, de sorte qu'il est possible de revenir sur une version antérieure du service qui soit stable. En cas d'erreur, la personne en charge de l'administration doit demander un accompagnement ou un relai pour limiter les risques d'aggravement de la situation et ne pas avoir à supporter cette situation stressante seule.
|
|
||||||
|
|
||||||
h3 Absence d'astreinte
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Que ce soit dans les datacenters au niveau matériel, ou dans les services informatiques, au niveau logiciel, de nombreuses organisations mettent en place des astreintes.
|
|
||||||
| Autrement dit, une ou plusieurs personnes identifiées doivent se rendre disponible sur des périodes données pour pouvoir intervenenir rapidement sur les serveurs.
|
|
||||||
| Dans le cas de Deuxfleurs, une astreinte empêcherait une personne de quitter son domicile pour des vacances ou même rendre visite à sa famille !
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous faisons en sorte d'avoir des serveurs chez des membres différents et d'avoir plusieurs personnes en mesure de réaliser une même opération de maintenance.
|
|
||||||
| Si un problème devait arriver pendant l'absence de la personne concernée, un autre membre devrait pouvoir prendre le relai dans les heures ou les jours qui viennent, par exemple en migrant les services chez lui ou en le réparant à distance.
|
|
||||||
|
|
||||||
|
|
||||||
h3 Perte d'expertise
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : L'infrastructure que nous avons déployée demande des connaissances avancées en informatique détenues par une fraction des membres de l'association. Si cette fraction venait à quitter l'association, la maintenance de ses services pourrait ne plus être réalisée par les membres restants, mettant en péril sa pérennité.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous essayons d'avoir toujours au moins deux personnes en mesure de réaliser une tâche. Nous essayons de documenter et standardiser notre infrastructure.
|
|
||||||
|
|
||||||
h3 Risques juridiques
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Deuxfleurs pourrait enfreindre la loi et voir sa pérennité engagée en cas de procès.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous faisons une veille juridique concernant les hébergeurs. Nous mitigeons aussi ce risque via la co-optation qui permet de contrôler notre croissance et les personnes qui nous rejoignent.
|
|
||||||
|
|
||||||
h2 👿 Malveillance
|
|
||||||
|
|
||||||
h3 Attaque informatique
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Une attaque informatique, venant d'un·e administrateur·ice ou d'une personne extérieure, peut aboutir à l'indisponibilité de nos services, à une perte de données, mais aussi à la fuite de ces dernières.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Pour se protéger d'un·e administrateur·ice malveillant·e, le groupe d'administrateur·ices existant ne recrute que de nouvelles personnes sur cooptation et après avoir jugé cette personne de confiance. Nous prévoyions également de chiffrer de plus en plus de données côté client, de sorte qu'une personne en charge de l'administration ne soit pas en mesure de lire le contenu stocké sur les serveurs. Pour se protéger d'une personne extérieure, nous maintenons notre système à jour et avons entamé une démarche de défense en profondeur.
|
|
||||||
|
|
||||||
|
|
||||||
h3 Vol du matériel
|
|
||||||
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Une personne entrant par effraction chez un de nos membres pourrait voler les ordinateurs. Cet évènement peut impacter la disponibilité de nos services, l'intégrité de nos données, mais aussi la confidentialité de ces dernières.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous acceptons ce risque pour le moment. Le chiffrement côté client, pour les services le supportant, permet de protéger la confidentialité des données. Nous prévoyions à terme de chiffrer les disques durs à froid en plus.
|
|
||||||
|
|
||||||
|
|
||||||
h3 Abus des services
|
|
||||||
p
|
|
||||||
b Définition du risque
|
|
||||||
| : Une personne ayant des accès au service, où se les aillant fait voler, peut opérer un déni de service sur notre infrastructure, ou alors nuire à la réputation de notre service sur un réseau fédéré (eg. spam via email). Cela entraine une indisponibilité des services et/ou une dégradation plus ou moins durable de la qualité de ces derniers.
|
|
||||||
|
|
||||||
p
|
|
||||||
b Mesure mise en place
|
|
||||||
| : Nous mitigeons actuellement ce risque via la cooptation, où nous faisons confiance aux nouveaux membres et les invitons à bien gérer leurs identifiants.
|
|
|
@ -1,96 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "Mentions légales"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
h1 Mentions légales
|
|
||||||
|
|
||||||
h2 Éditeur et hébergeur
|
|
||||||
|
|
||||||
|
|
||||||
p
|
|
||||||
b Deuxfleurs
|
|
||||||
br
|
|
||||||
| Deuxfleurs est l'éditeur et l'hébergeur de l'ensemble de ses services et contenus à l'exception de sa
|
|
||||||
a(href="https://git.deuxfleurs.fr")  forge git
|
|
||||||
br
|
|
||||||
| Association loi 1901 déclarée en préfecture d'Ille-et-Vilaine le 29 janvier 2020.
|
|
||||||
|
|
||||||
p
|
|
||||||
| Numéro RNA : W353020804
|
|
||||||
br
|
|
||||||
| Numéro SIRET : 89961256800019
|
|
||||||
|
|
||||||
p
|
|
||||||
| Siège social : Association Deuxfleurs
|
|
||||||
br
|
|
||||||
| 10A Allée de Lanvaux
|
|
||||||
br
|
|
||||||
| 35700 RENNES
|
|
||||||
br
|
|
||||||
| FRANCE
|
|
||||||
|
|
||||||
p
|
|
||||||
b OVH
|
|
||||||
br
|
|
||||||
| OVH est uniquement en charge de l'hébergement de la
|
|
||||||
a(href="https://git.deuxfleurs.fr")  forge git.
|
|
||||||
br
|
|
||||||
| SASU Société par actions simplifiée à associé unique.
|
|
||||||
|
|
||||||
p Numéro SIRET : 42476141900045
|
|
||||||
|
|
||||||
p
|
|
||||||
| Siège social : OVH
|
|
||||||
br
|
|
||||||
| 2 RUE KELLERMANN
|
|
||||||
br
|
|
||||||
| 59100 ROUBAIX
|
|
||||||
br
|
|
||||||
| FRANCE
|
|
||||||
|
|
||||||
h3 Direction de la publication
|
|
||||||
|
|
||||||
p
|
|
||||||
| Quentin Dufour
|
|
||||||
br
|
|
||||||
| Adrien Luxey
|
|
||||||
|
|
||||||
h2 Informatique et libertés
|
|
||||||
|
|
||||||
h3 Informations personnelles collectées
|
|
||||||
|
|
||||||
p En France, les données personnelles sont notamment protégées par la loi n° 78-17 du 6 janvier 1978, la loi n° 2004-801 du 6 août 2004, l’article L. 226-13 du Code pénal et la Directive Européenne du 24 octobre 1995.
|
|
||||||
|
|
||||||
p En tout état de cause Deuxfleurs ne collecte des informations personnelles relatives à l’utilisateur (nom, adresse électronique, coordonnées téléphoniques) que pour le besoin des services proposés par les sites du réseau Deuxfleurs. L’utilisateur fournit ces informations en toute connaissance de cause, notamment lorsqu’il procède par lui-même à leur saisie. Il est alors précisé à l’utilisateur des sites du réseau Deuxfleurs le caractère obligatoire ou non des informations qu’il serait amené à fournir.
|
|
||||||
|
|
||||||
h3 Rectification des informations nominatives collectées
|
|
||||||
|
|
||||||
p
|
|
||||||
| Conformément aux dispositions de l’article 34 de la loi n° 48-87 du 6 janvier 1978, l’utilisateur dispose d’un droit de modification des données nominatives collectées le concernant. Pour ce faire, l’utilisateur envoie à Deuxfleurs :
|
|
||||||
ul
|
|
||||||
li un courrier électronique à ca (arobase) deuxfleurs.fr
|
|
||||||
li un courrier à l’adresse du siège de l’association (indiquée ci-dessus) en indiquant son nom ou sa raison sociale, ses coordonnées physiques et/ou électroniques, ainsi que le cas échéant la référence dont il disposerait en tant qu’utilisateur du site Deuxfleurs.
|
|
||||||
|
|
||||||
p La modification interviendra dans des délais raisonnables à compter de la réception de la demande de l’utilisateur.
|
|
||||||
|
|
||||||
|
|
||||||
h2 Limitation de responsabilité
|
|
||||||
|
|
||||||
p Ce site comporte des informations mises à disposition par des communautés ou sociétés externes ou des liens hypertextes vers d’autres sites qui n’ont pas été développés par Deuxfleurs. Le contenu mis à disposition sur le site est fourni à titre informatif. L’existence d’un lien de ce site vers un autre site ne constitue pas une validation de ce site ou de son contenu. Il appartient à l’internaute d’utiliser ces informations avec discernement et esprit critique. La responsabilité de Deuxfleurs ne saurait être engagée du fait des informations, opinions et recommandations formulées par des tiers.
|
|
||||||
|
|
||||||
p Deuxfleurs ne pourra être tenue responsable des dommages directs et indirects causés au matériel de l’utilisateur, lors de l’accès au site, et résultant soit de l’utilisation d’un matériel ne répondant pas aux spécifications techniques requises, soit de l’apparition d’un bug ou d’une incompatibilité.
|
|
||||||
|
|
||||||
p Deuxfleurs ne pourra également être tenue responsable des dommages indirects (tels par exemple qu’une perte de marché ou perte d’une chance) consécutifs à l’utilisation du site.
|
|
||||||
|
|
||||||
p Des espaces interactifs (comme la solution de messagerie instantanée Matrix) sont à la disposition des utilisateurs sur le site Deuxfleurs. Deuxfleurs se réserve le droit de supprimer, sans mise en demeure préalable, tout contenu déposé dans cet espace qui contreviendrait à la législation applicable en France, en particulier aux dispositions relatives à la protection des données. Le cas échéant, Deuxfleurs se réserve également la possibilité de mettre en cause la responsabilité civile et/ou pénale de l’utilisateur, notamment en cas de message à caractère raciste, injurieux, diffamant, ou pornographique, quel que soit le support utilisé (texte, photographie…).
|
|
||||||
|
|
||||||
h2 Limitations contractuelles sur les données techniques
|
|
||||||
|
|
||||||
p Deuxfleurs ne pourra être tenue responsable de dommages matériels liés à l’utilisation du site.
|
|
||||||
|
|
||||||
h2 Propriété intellectuelle
|
|
||||||
|
|
||||||
p Les contenus sont publiés sous la responsabilité des utilisateurs.
|
|
|
@ -1,41 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "Sources"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
h1 Accéder aux sources des logiciels utilisés
|
|
||||||
|
|
||||||
p Deuxfleurs utilise exclusivement des logiciels libres dans le cadre de son activité. Vous pouvez retrouver ici la liste des sources des logiciels utilisés.
|
|
||||||
:markdown-it
|
|
||||||
- [Debian](https://packages.debian.org/)
|
|
||||||
- [NixOS](https://github.com/NixOS)
|
|
||||||
- [Nomad](https://github.com/hashicorp/nomad)
|
|
||||||
- [Consul](https://github.com/hashicorp/consul/)
|
|
||||||
- [Garage](https://git.deuxfleurs.fr/Deuxfleurs/garage)
|
|
||||||
- [Tricot](https://git.deuxfleurs.fr/Deuxfleurs/tricot)
|
|
||||||
- [Bottin](https://git.deuxfleurs.fr/Deuxfleurs/bottin/)
|
|
||||||
- [Guichet](https://git.deuxfleurs.fr/Deuxfleurs/guichet/)
|
|
||||||
- [Diplonat](https://git.deuxfleurs.fr/Deuxfleurs/diplonat/)
|
|
||||||
- [Stolon](https://github.com/sorintlab/stolon)
|
|
||||||
- [Docker](https://github.com/moby/moby)
|
|
||||||
- [Ansible](https://github.com/ansible/ansible)
|
|
||||||
- [Drone](https://github.com/harness/drone)
|
|
||||||
- [Restic](https://github.com/restic/restic)
|
|
||||||
- [Cryptpad](https://github.com/xwiki-labs/cryptpad)
|
|
||||||
- [Sogo](https://github.com/inverse-inc/sogo)
|
|
||||||
- [alps](git.deuxfleurs.fr/Deuxfleurs/alps)
|
|
||||||
- [Synapse](https://github.com/matrix-org/synapse)
|
|
||||||
- [Element](https://github.com/vector-im/element-web)
|
|
||||||
- [Jitsi](https://github.com/jitsi)
|
|
||||||
- [Plume](https://github.com/Plume-org/Plume)
|
|
||||||
- [age](https://github.com/FiloSottile/age)
|
|
||||||
- [Minio](https://github.com/minio/minio)
|
|
||||||
- [Proxmox](https://git.proxmox.com/)
|
|
||||||
- [Grafana](https://github.com/grafana/grafana)
|
|
||||||
- [Prometheus](https://github.com/prometheus/prometheus)
|
|
||||||
- [Infra (legacy)](https://git.deuxfleurs.fr/Deuxfleurs/infrastructure)
|
|
||||||
- [Infra (next)](git.deuxfleurs.fr/Deuxfleurs/nixcfg)
|
|
||||||
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
include _mixin/menu.pug
|
|
||||||
|
|
||||||
block root
|
|
||||||
doctype html
|
|
||||||
html(lang="fr")
|
|
||||||
head
|
|
||||||
meta(charset='utf-8')
|
|
||||||
title 💮💮 deuxfleurs - #{title}
|
|
||||||
link(rel="stylesheet", href="/css/main.css")
|
|
||||||
meta(name="viewport", content="width=device-width, initial-scale=1.0")
|
|
||||||
body
|
|
||||||
aside
|
|
||||||
header
|
|
||||||
a#menu(href="#").mobile_inline
|
|
||||||
svg(viewBox="0 0 100 80", width="40", height="40")
|
|
||||||
rect(width="100", height="20")
|
|
||||||
rect(y="30" width="100" height="20")
|
|
||||||
rect(y="60" width="100" height="20")
|
|
||||||
|
|
||||||
h1
|
|
||||||
a(href="/") deuxfleurs
|
|
||||||
nav.computer_block
|
|
||||||
section.center
|
|
||||||
img(alt="emoji fleur", src="/img/flower.svg", width="40")
|
|
||||||
|
|
|
||||||
img(alt="emoji fleur", src="/img/flower.svg", width="40")
|
|
||||||
ul
|
|
||||||
li
|
|
||||||
a(href="https://plume.deuxfleurs.fr/timeline/1") Actualités
|
|
||||||
li
|
|
||||||
a(href="https://man.deuxfleurs.fr") Wiki
|
|
||||||
li
|
|
||||||
a(href="https://guichet.deuxfleurs.fr") Mon compte
|
|
||||||
hr
|
|
||||||
+menu(root, element)
|
|
||||||
|
|
||||||
main
|
|
||||||
block content
|
|
||||||
|
|
||||||
script.
|
|
||||||
(_ => {
|
|
||||||
const hamburger = document.getElementById('menu')
|
|
||||||
hamburger.onclick = _ => {
|
|
||||||
const nav = document.querySelector('body > aside > header > nav')
|
|
||||||
console.log(nav.style.display)
|
|
||||||
nav.style.display = nav.style.display != 'block' ? 'block' : 'none'
|
|
||||||
}
|
|
||||||
})()
|
|
|
@ -1,10 +0,0 @@
|
||||||
extends ./_layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- if (element.tags.includes('is_index'))
|
|
||||||
- title = element.nice_path[element.nice_path.length - 1]
|
|
||||||
- else
|
|
||||||
- title = element.nice_name
|
|
||||||
|
|
||||||
block content
|
|
||||||
!= markdown
|
|
|
@ -1,14 +0,0 @@
|
||||||
mixin menu(o, element)
|
|
||||||
ul
|
|
||||||
each val in o.children
|
|
||||||
- if (val.type == 'folder' && val.tags.includes('document'))
|
|
||||||
li
|
|
||||||
- if (val.tags.includes('has_index'))
|
|
||||||
a(href=val.url, class=val.index.url == element.url ? 'selected' : null)= val.nice_name
|
|
||||||
- else
|
|
||||||
span= val.nice_name
|
|
||||||
- if (element.url.includes(val.url))
|
|
||||||
+menu(val, element)
|
|
||||||
- else if (val.type == 'file' && val.tags.includes('document') && !val.tags.includes('is_index'))
|
|
||||||
li
|
|
||||||
a(href=val.url, class=val.url == element.url ? 'selected' : null)= val.nice_name
|
|
|
@ -1,82 +0,0 @@
|
||||||
/* some reset */
|
|
||||||
html, body {
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
border: 0;
|
|
||||||
font-size: 100%;
|
|
||||||
font: inherit;
|
|
||||||
vertical-align: baseline;
|
|
||||||
height: 100%;
|
|
||||||
font-size: 24px;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* fonts */
|
|
||||||
@font-face {
|
|
||||||
font-family: 'IM Fell English';
|
|
||||||
font-style: italic;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url(../fonts/IMFellEnglish-Italic.ttf) format('truetype');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: 'IM Fell English';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url(../fonts/IMFellEnglish-Regular.ttf) format('truetype');
|
|
||||||
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
background-color: #fbfcf8;
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
max-width: 900px;
|
|
||||||
padding: 1em;
|
|
||||||
margin: auto;
|
|
||||||
font-family: 'IM Fell English', Times, Serif;
|
|
||||||
color: #5c544a;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero {
|
|
||||||
background-image: url("../img/illus.jpg");
|
|
||||||
transform: rotate(-2deg);
|
|
||||||
height: 530px;
|
|
||||||
background-size: cover;
|
|
||||||
background-position: 50% 0%;
|
|
||||||
border-radius: 10px;
|
|
||||||
margin: -1.8em -1em 3em -1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero img {
|
|
||||||
position: absolute;
|
|
||||||
top: -14px;
|
|
||||||
left: 25px;
|
|
||||||
height: 100px;
|
|
||||||
}
|
|
||||||
|
|
||||||
header {
|
|
||||||
padding: 1em 0em 2em 0em;
|
|
||||||
}
|
|
||||||
|
|
||||||
article {
|
|
||||||
background-color: #f4eccd;
|
|
||||||
padding: 1em;
|
|
||||||
border-radius: 10px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.brand {
|
|
||||||
font-size: 2em;
|
|
||||||
float: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav li {
|
|
||||||
padding: 0.5em;
|
|
||||||
display: inline;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 550 KiB |
Before Width: | Height: | Size: 26 KiB |
|
@ -1,39 +0,0 @@
|
||||||
doctype html
|
|
||||||
html
|
|
||||||
head
|
|
||||||
meta(charset="utf-8")
|
|
||||||
title df #{title}
|
|
||||||
link(rel="stylesheet", href="css/main.css")
|
|
||||||
meta(name="viewport", content="width=device-width, initial-scale=1.0")
|
|
||||||
body
|
|
||||||
header
|
|
||||||
.brand Deuxfleurs
|
|
||||||
nav
|
|
||||||
ul
|
|
||||||
li L'association
|
|
||||||
li Nos services
|
|
||||||
li Documentation
|
|
||||||
li
|
|
||||||
a(href="https://guichet.deuxfleurs.fr") Mon compte
|
|
||||||
br(style="clear:both")
|
|
||||||
|
|
||||||
main
|
|
||||||
article
|
|
||||||
.hero
|
|
||||||
img(src="img/paper-clip.png")
|
|
||||||
h1 Cher·e internaute, un autre internet est possible
|
|
||||||
p
|
|
||||||
| Arrêtez-vous cinq minutes. Prenez le temps de l'imaginer avec moi.
|
|
||||||
| Imaginez pouvoir accéder à l'information sans avoir à se demander si c'est une publicité ou non ?
|
|
||||||
| Imaginez que vos communications avec vos proches ne soient pas espionnées pour prédire votre prochain malus d'assurance ?
|
|
||||||
| Imaginez un lieux où vos amis verrez le contenu que vous publiez et non un obscure contenu viral ?
|
|
||||||
// Peut être rajouter des petits dessins genre gribouillage carnet.
|
|
||||||
|
|
||||||
h2 Des cabanes pour se protéger du sombre nuage
|
|
||||||
p Blabla
|
|
||||||
|
|
||||||
h2 Rejoignez-nous
|
|
||||||
|
|
||||||
footer
|
|
||||||
p Un footer
|
|
||||||
|
|
323
src/css/main.css
|
@ -1,323 +0,0 @@
|
||||||
/*
|
|
||||||
* FONTS
|
|
||||||
*/
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "Heroes";
|
|
||||||
src: url('../fonts/texgyreheros-regular.otf') format('truetype');
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RESET CSS
|
|
||||||
*/
|
|
||||||
|
|
||||||
* {
|
|
||||||
font-family: Heroes;
|
|
||||||
font-size: 1em;
|
|
||||||
/* We use browser's default */
|
|
||||||
margin: 0;
|
|
||||||
padding: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
html {
|
|
||||||
height: 100%
|
|
||||||
}
|
|
||||||
|
|
||||||
body {
|
|
||||||
display: flex;
|
|
||||||
max-width: 1200px;
|
|
||||||
flex-direction: row;
|
|
||||||
margin: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* RESPONSIVE
|
|
||||||
*/
|
|
||||||
.mobile_block,
|
|
||||||
.mobile_inline {
|
|
||||||
display: none
|
|
||||||
}
|
|
||||||
|
|
||||||
@media screen and (max-width: 800px) {
|
|
||||||
body {
|
|
||||||
flex-direction: column
|
|
||||||
}
|
|
||||||
|
|
||||||
.computer_block {
|
|
||||||
display: none
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile_block {
|
|
||||||
display: block
|
|
||||||
}
|
|
||||||
|
|
||||||
.mobile_inline {
|
|
||||||
display: inline
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* CORE TEMPLATE
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* Header + Menu */
|
|
||||||
body>aside>header {
|
|
||||||
color: white;
|
|
||||||
background: rgb(12, 144, 110);
|
|
||||||
background: linear-gradient(0deg, rgb(21, 65, 73) 0%, rgb(55, 141, 100) 50%, rgb(12, 144, 110) 100%);
|
|
||||||
padding: 1.5rem;
|
|
||||||
margin: 0.8rem;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
box-shadow: 0px 0px 30px rgba(31, 38, 103, 0.2);
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>a>svg {
|
|
||||||
fill: white;
|
|
||||||
display: inline;
|
|
||||||
vertical-align: sub;
|
|
||||||
margin-right: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>h1 {
|
|
||||||
display: inline
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header a {
|
|
||||||
color: white;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>nav ul {
|
|
||||||
list-style-type: none;
|
|
||||||
padding-left: 1em;
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>nav>ul {
|
|
||||||
padding-left: 0px
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>nav a:hover {
|
|
||||||
text-decoration: underline
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>nav .selected {
|
|
||||||
font-weight: bold
|
|
||||||
}
|
|
||||||
|
|
||||||
body>aside>header>nav .selected::before {
|
|
||||||
content: "» "
|
|
||||||
}
|
|
||||||
|
|
||||||
body>main {
|
|
||||||
padding: 1.5rem;
|
|
||||||
max-width: 1200px;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* TEXT CORE (think markdown)
|
|
||||||
*/
|
|
||||||
|
|
||||||
h1 {
|
|
||||||
font-size: 2.5rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h2 {
|
|
||||||
font-size: 2.0rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
font-size: 1.75rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h4 {
|
|
||||||
font-size: 1.50rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h5 {
|
|
||||||
font-size: 1.25rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h6 {
|
|
||||||
font-size: 1.10rem
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4,
|
|
||||||
h5,
|
|
||||||
h6 {
|
|
||||||
margin-bottom: 1rem
|
|
||||||
}
|
|
||||||
|
|
||||||
section,
|
|
||||||
p,
|
|
||||||
ul,
|
|
||||||
ol,
|
|
||||||
table,
|
|
||||||
pre {
|
|
||||||
margin-bottom: 1rem
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
padding-left: 1.5em
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
color: #08634c;
|
|
||||||
}
|
|
||||||
|
|
||||||
table {
|
|
||||||
border-collapse: collapse
|
|
||||||
}
|
|
||||||
|
|
||||||
th {
|
|
||||||
background-color: #fafafa
|
|
||||||
}
|
|
||||||
|
|
||||||
td,
|
|
||||||
th {
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
padding: 0.3rem 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
background-color: #1e1e1e;
|
|
||||||
padding: 1rem;
|
|
||||||
overflow-x: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
code {
|
|
||||||
font-family: Monospace;
|
|
||||||
background-color: #1e1e1e;
|
|
||||||
color: #fff;
|
|
||||||
padding: 0.25rem 0.4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
box-shadow: 0px 0px 30px rgba(31, 38, 103, 0.2);
|
|
||||||
margin: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.simple {
|
|
||||||
border-radius: 0px;
|
|
||||||
box-shadow: none;
|
|
||||||
margin: 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
strong {
|
|
||||||
background-color: rgb(12, 144, 110);
|
|
||||||
color: #fff;
|
|
||||||
padding: 0.20rem 0.4rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* UTILS
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* float */
|
|
||||||
.left {
|
|
||||||
float: left
|
|
||||||
}
|
|
||||||
|
|
||||||
.right {
|
|
||||||
float: right
|
|
||||||
}
|
|
||||||
|
|
||||||
section::after,
|
|
||||||
p::after {
|
|
||||||
clear: both;
|
|
||||||
display: block;
|
|
||||||
content: "";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* center */
|
|
||||||
.center {
|
|
||||||
margin-left: auto;
|
|
||||||
margin-right: auto;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* ELEMENTS
|
|
||||||
*/
|
|
||||||
|
|
||||||
input {
|
|
||||||
border: 0.1em black solid;
|
|
||||||
width: 50%;
|
|
||||||
min-width: 300px;
|
|
||||||
font-size: 1.6em;
|
|
||||||
border: 0.1em black solid;
|
|
||||||
padding: 0.3em;
|
|
||||||
}
|
|
||||||
|
|
||||||
.button {
|
|
||||||
padding: 0.3em;
|
|
||||||
background-color: #519c60;
|
|
||||||
font-size: 1.6em;
|
|
||||||
border: 0.1em solid #519c60;
|
|
||||||
color: white;
|
|
||||||
margin: 0em 0em 0em 1em;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* service button */
|
|
||||||
|
|
||||||
.service-box {
|
|
||||||
color: #000;
|
|
||||||
text-decoration: none;
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
border-radius: 0.5rem;
|
|
||||||
width: 250px;
|
|
||||||
text-align: center;
|
|
||||||
margin: 1em 1em 0em 0em;
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.service-box:hover {
|
|
||||||
background-color: #000;
|
|
||||||
color: #fff;
|
|
||||||
}
|
|
||||||
|
|
||||||
.callout {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
text-align: center;
|
|
||||||
position: relative;
|
|
||||||
margin: 2rem 0;
|
|
||||||
padding: 1rem;
|
|
||||||
border: 1px solid rgba(10, 10, 10, 0.25);
|
|
||||||
border-radius: .2rem;
|
|
||||||
background-color: #cbf0e6;
|
|
||||||
}
|
|
||||||
|
|
||||||
.frame {
|
|
||||||
border-left: 1rem solid #ddd;
|
|
||||||
padding-left: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
img.hero {
|
|
||||||
width: 100%;
|
|
||||||
margin:-0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1.slogan {
|
|
||||||
text-align:center;
|
|
||||||
font-size:2rem;
|
|
||||||
padding: 2rem 0rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon {
|
|
||||||
font-size: 80px;
|
|
||||||
height: 120px;
|
|
||||||
}
|
|
||||||
|
|
||||||
section.list {
|
|
||||||
padding-left:1.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
p.fill {
|
|
||||||
margin: 2rem 0rem;
|
|
||||||
}
|
|
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 11 KiB |
|
@ -1 +0,0 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill-opacity="0.0" fill="#FFF" d="M15.632 34.661c-.799-.597-1.498-1.484-2.035-2.592l-.228-.47-.46.249c-.975.528-1.913.858-2.744.969l-.202-3.756-3.636.968c-.157-.854-.125-1.887.096-3.022l.103-.525-.532-.066c-1.242-.154-2.306-.525-3.104-1.08l1.521-2.917-2.988-1.523c.319-.944.948-1.882 1.834-2.735l.377-.363-.379-.36c-.803-.764-1.408-1.554-1.77-2.311l3.51-1.353-2.045-3.159c.74-.402 1.693-.686 2.789-.832l.519-.068-.091-.514c-.215-1.211-.172-2.338.124-3.288l3.308.523.524-3.308c.988.013 2.08.326 3.164.907l.462.248.226-.473c.479-1.003 1.044-1.824 1.653-2.404L18 4.326l2.372-2.92c.609.58 1.175 1.401 1.653 2.404l.226.473.462-.247c1.085-.581 2.178-.894 3.164-.906l.523 3.308 3.31-.525c.296.951.34 2.078.124 3.288l-.092.515.518.069c1.095.145 2.048.43 2.788.832l-2.046 3.156 3.511 1.355c-.361.757-.966 1.547-1.77 2.311l-.379.36.377.363c.888.854 1.516 1.793 1.835 2.736l-2.984 1.52 1.521 2.984c-.812.574-1.871.964-3.094 1.134l-.518.072.096.514c.201 1.089.226 2.083.073 2.909l-3.634-.97-.204 3.757c-.83-.11-1.768-.44-2.742-.968l-.459-.249-.228.47c-.539 1.107-1.237 1.994-2.036 2.591L18 32.293l-2.368 2.368z"/><path d="M7.092 10.678c-.53-1.489-.698-2.97-.432-4.2l2.368.375.987.156.157-.988.375-2.368c1.261.127 2.613.743 3.862 1.706.118-.337.244-.663.382-.967-1.551-1.135-3.223-1.763-4.73-1.763-.123 0-.245.004-.366.013l-.511 3.223-3.224-.511c-.6 1.487-.565 3.415.085 5.393.335-.037.684-.061 1.047-.069zm14.501-5.319c1.248-.962 2.6-1.578 3.86-1.705l.376 2.368.156.988.987-.157 2.369-.376c.266 1.23.098 2.71-.432 4.2.361.009.711.032 1.046.07.651-1.978.685-3.906.085-5.394l-3.225.512-.511-3.224c-.12-.008-.242-.012-.365-.012-1.507 0-3.179.628-4.73 1.762.14.306.266.631.384.968zM7.368 27h.035c.067 0 .157-.604.26-.947-.098.004-.197.046-.294.046-1.496 0-2.826-.303-3.83-.89l1.089-2.128.454-.887-.891-.452-2.136-1.088c.508-1.151 1.515-2.25 2.818-3.143-.287-.219-.561-.441-.81-.669-1.687 1.217-2.846 2.755-3.235 4.31l2.908 1.483-1.482 2.843C3.475 26.501 5.303 27 7.368 27zm27.806-5.846c-.39-1.555-1.548-3.093-3.234-4.311-.25.228-.523.451-.81.669 1.304.893 2.31 1.992 2.817 3.145l-2.136 1.088-.891.453.454.892 1.089 2.137c-1.004.587-2.332.904-3.828.904-.099 0-.199-.01-.299-.013.103.344.192.683.26 1.011l.039.002c2.066 0 3.892-.563 5.112-1.587l-1.482-2.908 2.909-1.482zm-12.653 9.182c-.447 1.517-1.181 2.812-2.119 3.651l-1.695-1.694-.707-.707-.707.707-1.695 1.694c-.938-.839-1.673-2.136-2.12-3.652-.296.206-.593.397-.886.563.636 1.98 1.741 3.559 3.1 4.409L18 33l2.308 2.308c1.358-.851 2.464-2.428 3.101-4.408-.295-.168-.591-.359-.888-.564z" fill="#FFF"/><path fill="#FFF" d="M20.118 5.683c.426 1.146.748 2.596.841 4.284l.2 3.683 3.564-.946c1.32-.351 2.655-.536 3.86-.536.16 0 .318.003.474.01l-1.827 2.819 3.139 1.211c-.958.759-2.237 1.514-3.814 2.123l-3.441 1.328 2.001 3.099c.918 1.42 1.509 2.782 1.838 3.96l-3.244-.865-.182 3.357c-1.019-.677-2.132-1.66-3.198-2.973L18 23.374l-2.328 2.862c-1.066 1.312-2.179 2.295-3.198 2.972l-.18-3.354-3.248.864c.329-1.178.921-2.54 1.839-3.961l2.004-3.099-3.442-1.328c-1.577-.609-2.856-1.363-3.814-2.122L8.768 15l-1.827-2.823c.155-.006.313-.01.473-.01 1.206 0 2.541.185 3.861.536l3.564.947.202-3.683c.092-1.688.415-3.138.84-4.284L18 8.292l2.118-2.609m.19-4.991L18 3.533 15.692.692c-1.989 1.532-3.421 4.992-3.646 9.112-1.617-.43-3.192-.637-4.632-.637-2.11 0-3.929.445-5.161 1.289l1.989 3.073-3.415 1.316c.842 2.366 3.69 4.797 7.54 6.283-2.241 3.465-3.116 7.106-2.407 9.516l3.537-.941.196 3.654c2.512-.07 5.703-2.027 8.307-5.228 2.603 3.201 5.796 5.158 8.306 5.228l.198-3.655 3.535.943c.71-2.411-.165-6.05-2.404-9.517 3.849-1.485 6.696-3.918 7.538-6.283l-3.415-1.318 1.99-3.07c-1.233-.844-3.053-1.29-5.164-1.29-1.438 0-3.013.207-4.63.636-.225-4.119-1.657-7.579-3.646-9.111z"/></svg>
|
|
Before Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 82 KiB |
|
@ -1,75 +0,0 @@
|
||||||
extends _layout.pug
|
|
||||||
|
|
||||||
prepend root
|
|
||||||
- title = "deuxfleurs"
|
|
||||||
|
|
||||||
block content
|
|
||||||
section
|
|
||||||
img.hero(alt="Photo d'illustration d'un parterre de fleurs en noir et blanc avec un effet tramage.", src="/img/flower.png")
|
|
||||||
|
|
||||||
section
|
|
||||||
h1.slogan fabriquons un internet convivial
|
|
||||||
|
|
||||||
section
|
|
||||||
h2 avec des outils sobres
|
|
||||||
section
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/matrix/')
|
|
||||||
.icon 💬
|
|
||||||
h5 discussion
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/jitsi/')
|
|
||||||
.icon 📞
|
|
||||||
h5 visioconférence
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/web/')
|
|
||||||
.icon 🌐
|
|
||||||
h5 sites web
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/emails/')
|
|
||||||
.icon 📨
|
|
||||||
h5 emails (beta)
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/cryptpad/')
|
|
||||||
.icon 📄
|
|
||||||
h5 collaboration
|
|
||||||
a.service-box.left(href='https://man.deuxfleurs.fr/prise_en_main/plume/')
|
|
||||||
.icon ✍️
|
|
||||||
h5 blog
|
|
||||||
|
|
||||||
p ⚠️ À part pour la visioconférence et le pad, vous devez avoir un compte pour utiliser ces outils. Faisons connaissance d'abord 👇
|
|
||||||
|
|
||||||
section
|
|
||||||
h2 avec notre propre infrastructure résiliente
|
|
||||||
|
|
||||||
p.fill
|
|
||||||
img.hero(alt="Une photo en noir et blanc de nos différents serveurs hébergés à domicile.", src="/img/servers.jpg")
|
|
||||||
|
|
||||||
p
|
|
||||||
| Pour fournir nos outils, nous récupérons <b>d'anciens ordinateurs</b> que nous reconditionnons pour servir de serveurs et que nous installons à nos domiciles.
|
|
||||||
| Actuellement nous avons des machines à <b>Rennes</b> en Bretagne et à <b>Orsay</b> en Ile de France pour la fourniture des services. Nous avons également des machines à <b>Suresnes</b> en Ile de France pour les sauvegarde. Certains de nos outils techniques sont (temporairement) hébergés en datacenter chez OVH.
|
|
||||||
| <a href="https://man.deuxfleurs.fr/infrastructures/">En savoir plus</a>.
|
|
||||||
|
|
||||||
p
|
|
||||||
| Cette infrastructure atypique nous mène à développer de nouveaux logiciels libres.
|
|
||||||
| Si vous êtes dans la technique, vous pourriez être intéressé·e par <a href="https://garagehq.deuxfleurs.fr/">Garage</a>, <a href="https://bottin.eu">Bottin</a>, <a href="https://git.deuxfleurs.fr/lx/tricot">Tricot</a>, <a href="https://git.deuxfleurs.fr/Deuxfleurs/diplonat">Diplonat</a> et nos <a href="https://git.deuxfleurs.fr/Deuxfleurs">autres projets</a>.
|
|
||||||
|
|
||||||
|
|
||||||
section
|
|
||||||
h2 avec des valeurs fortes
|
|
||||||
|
|
||||||
section.list
|
|
||||||
div ⇨ <b>la coopération</b> - eg. promouvoir l'intéropérabilité, les communs, le libre, et les formats de données ouverts
|
|
||||||
div ⇨ <b>l'autonomie</b> - eg. gérer nos propres moyens de communications, prendre nos propres décisions
|
|
||||||
div ⇨ <b>la solidarité</b> - eg. partager le savoir, partager les ressources informatiques, s'entraider pour la gestion des services
|
|
||||||
div ⇨ <b>la liberté</b> - eg. permettre à toutes et tous de s'exprimer, respecter la vie privée
|
|
||||||
|
|
||||||
p
|
|
||||||
a(href="https://plume.deuxfleurs.fr/timeline/1") Suivez notre actualité, réflexions et analyses sur notre blog Plume</a>
|
|
||||||
|
|
||||||
section
|
|
||||||
h2 rejoignez-nous !
|
|
||||||
p.spacing L'accès à nos services est à <b>prix libre</b>, se fait <b>sur demande</b> directement à un membre ou par email et est conditionné par <b>les ressources disponibles</b>, à la fois matérielles et humaines.
|
|
||||||
|
|
||||||
p.spacing Nous encourageons nos usager·es ainsi que toute personne souhaitant collaborer à <b>rejoindre l'association</b> afin de participer à sa gestion. L'admission se fait par <b>cooptation</b>, soit directement si vous connaissez déjà un membre, soit en échangeant d'abord avec nous par email ou sur Matrix. L'objectif de la cooptation est de s'assurer que nos futurs membres partageront bien les valeurs de notre association. La cotisation est de <b>10 euros par an</b>.
|
|
||||||
|
|
||||||
p.spacing
|
|
||||||
| Si vous connaissez un membre de l'association, contactez le directement !
|
|
||||||
br
|
|
||||||
| Sinon, vous pouvez nous écrire à <b>coucou</b><img class="simple" alt="arobase" src="img/arobase.png" height="15"/><b>deuxfleurs.fr</b> ou nous rejoindre sur notre salon Matrix #deuxfleurs:deuxfleurs.fr pour un premier contact.
|
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
User-agent: *
|
|
||||||
Allow: /
|
|
865
style-bon.css
Normal file
|
@ -0,0 +1,865 @@
|
||||||
|
/*PARAMETRES GENERAUX*/
|
||||||
|
:root{
|
||||||
|
--big_margin:100px;
|
||||||
|
--med_margin:50px;
|
||||||
|
--small_margin:10px;
|
||||||
|
--day-background: #fdfff9;
|
||||||
|
--day-highlight-color: white;
|
||||||
|
--day-highlight-bg: darkgreen;
|
||||||
|
--night-highlight-color: #ebebed;
|
||||||
|
--night-highlight-bg: #565a4d;
|
||||||
|
--night-background: #242526;/*#3c3c39;*/
|
||||||
|
--txt-night: #ebebed;/*#c7c4d4;*/
|
||||||
|
color-scheme: light dark;
|
||||||
|
/*
|
||||||
|
--menu: pink;
|
||||||
|
--jardin: darkseagreen;
|
||||||
|
--infras: gold;
|
||||||
|
--rennes: orange;
|
||||||
|
--orsay: chartreuse;
|
||||||
|
--txt_infras: bisque;
|
||||||
|
--outils: coral;
|
||||||
|
--liste_outils: aliceblue;
|
||||||
|
--txt_outils: aquamarine;
|
||||||
|
--valeurs: grey;
|
||||||
|
--ronce: cornflowerblue;
|
||||||
|
--liste_valeurs: brown;
|
||||||
|
--connaissance: chocolate;
|
||||||
|
--txt_connaissance: crimson;
|
||||||
|
--calendrier: darkkhaki;
|
||||||
|
--footer: deeppink;
|
||||||
|
--lightgrey: lightgrey;*/
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body, main{
|
||||||
|
margin:0;
|
||||||
|
padding: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body{
|
||||||
|
font-family: monospace;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre{
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
p{
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:after, h2:after{
|
||||||
|
content:'\A___________________________________\A"""""""""""""""""""""""""""""""""""';
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
text-transform: uppercase;
|
||||||
|
white-space:pre;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
img{
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#txt_infras, #txt_outils, #txt_connaissance{
|
||||||
|
line-height: 1.3rem;
|
||||||
|
text-align: justify;
|
||||||
|
text-justify: inter-character;
|
||||||
|
hyphens: auto;
|
||||||
|
word-spacing: -2px;
|
||||||
|
-ms-hyphens: auto;
|
||||||
|
-webkit-hyphens: auto;
|
||||||
|
-moz-hyphens: auto;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.noscroll{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.center{
|
||||||
|
font-size: 1rem;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#calendrier > pre.center{
|
||||||
|
justify-content: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
#calendrier #mois_actuel{
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mois_actuel, #mois_suivant{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.highlight{
|
||||||
|
color: var(--day-highlight-color);
|
||||||
|
background-color: var(--day-highlight-bg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#txt_connaissance li{
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#txt_connaissance p{
|
||||||
|
margin-top: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre.center > a{
|
||||||
|
font-size: 1rem;
|
||||||
|
display: contents;
|
||||||
|
text-decoration: 1px black solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*GESTION DE LA GRILLE DU DOCUMENT*/
|
||||||
|
div#container{
|
||||||
|
background-color: var(--day-background);
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: [main-col-start] repeat(12, calc(100% / 12) [main-col-sep]);
|
||||||
|
grid-template-rows:
|
||||||
|
[main-row-debut] auto [main-row-fin]
|
||||||
|
var(--big_margin)
|
||||||
|
[footer-start] auto [footer-end]
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*GESTION DE LA GRILLE DU MAIN*/
|
||||||
|
main{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: [col-start] repeat(12, calc(100% / 12) [col-sep]);
|
||||||
|
grid-template-rows:
|
||||||
|
[row-start] var(--med_margin) [h1-start] auto [h1-end] auto [jardin-end]
|
||||||
|
repeat(3,
|
||||||
|
var(--big_margin)
|
||||||
|
[title-start] auto [title-end]
|
||||||
|
var(--med_margin)
|
||||||
|
[illu-start] auto [illu-end] auto [illu-extended-end]
|
||||||
|
var(--med_margin)
|
||||||
|
[txt-start] auto [txt-end])
|
||||||
|
var(--big_margin)
|
||||||
|
[title-start-contact] auto [title-end-contact]
|
||||||
|
var(--med_margin)
|
||||||
|
[txt-start-contact] auto [txt-end-contact] auto [cal-end-contact] /* au lieu de mettre auto on pourrait mettre 100px ici pour avoir les 2 cadres de la même taille*/
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*POSITIONNEMENT SUR LA GRILLE PRINCIPALE*/
|
||||||
|
nav#menu{
|
||||||
|
/*
|
||||||
|
grid-area: row-start / col-sep 6 / end-nav / col-sep 12;*/
|
||||||
|
background-color: var(--day-background);
|
||||||
|
display: flex;
|
||||||
|
justify-content: flex-end;
|
||||||
|
flex-direction: column;
|
||||||
|
position: fixed;
|
||||||
|
bottom: 1rem;
|
||||||
|
right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
main{
|
||||||
|
grid-area: main-row-debut / main-col-start / main-row-fin / main-col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone > pre{
|
||||||
|
padding-top: 1rem;
|
||||||
|
color: black;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone{
|
||||||
|
position : relative;
|
||||||
|
display: inline-block;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone .img_top{
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
z-index: 99;
|
||||||
|
background-color: var(--day-background);
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone:hover .img_top{
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone a{
|
||||||
|
text-decoration: none;
|
||||||
|
color:black;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav#menu > a{
|
||||||
|
display: block;
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav#menu > a:hover{
|
||||||
|
color: darkgreen;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1#deuxfleurs{
|
||||||
|
grid-area: h1-start / col-sep 1 / h1-end / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#jardin{
|
||||||
|
background-color: var(--jardin);
|
||||||
|
grid-area: row-start / col-start / jardin-end / col-sep 12;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
height: 100vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#jardin p{
|
||||||
|
display: flex;
|
||||||
|
justify-content:center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#infras{
|
||||||
|
background-color: var(--infras);
|
||||||
|
grid-area: title-start 1 / col-sep 1 / title-end 1 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes{
|
||||||
|
background-color: var(--rennes);
|
||||||
|
grid-area: illu-start 1 / col-sep 1 / illu-end 1 / col-sep 6;
|
||||||
|
overflow: hidden;
|
||||||
|
/*height: 450px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
div#orsay{
|
||||||
|
background-color: var(--orsay);
|
||||||
|
grid-area: illu-start 1 / col-sep 6 / illu-end 1 / col-sep 11;
|
||||||
|
overflow: hidden;
|
||||||
|
/*height:450px;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
p#txt_infras{
|
||||||
|
background-color: var(--txt_infras);
|
||||||
|
grid-area: txt-start 1 / col-sep 1 / txt-end 1 / col-sep 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#outils{
|
||||||
|
background-color: var(--outils);
|
||||||
|
grid-area: title-start 2 / col-sep 1 / title-end 2 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils{
|
||||||
|
background-color: var(--liste_outils);
|
||||||
|
grid-area: illu-start 2 / col-sep 7 / illu-end 2 / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils > a > div > p{
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils > a{
|
||||||
|
/*display: contents;*/
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils > a:hover{
|
||||||
|
color: darkgreen;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_outils{
|
||||||
|
background-color: var(--txt_outils);
|
||||||
|
grid-area: txt-start 2 / col-sep 1 / txt-end 2 / col-sep 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#valeurs{
|
||||||
|
background-color: var(--valeurs);
|
||||||
|
grid-area: title-start 3 / col-sep 1 / title-end 3 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ronce{
|
||||||
|
background-color: var(--ronce);
|
||||||
|
grid-area: illu-start 3 / col-sep 2 / illu-end 3 / col-sep 10;
|
||||||
|
padding: 0.5rem;
|
||||||
|
filter: grayscale(100%);
|
||||||
|
border: 1px dashed black;
|
||||||
|
transition: filter 0.15s ease 0s;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ronce:hover{
|
||||||
|
filter: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_valeurs{
|
||||||
|
background-color: var(--liste_valeurs);
|
||||||
|
grid-area: txt-start 3 / col-sep 2 / txt-end 3 / col-sep 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#connaissance{
|
||||||
|
background-color: var(--connaissance);
|
||||||
|
grid-area: title-start-contact / col-sep 1 / title-end-contact / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_connaissance{
|
||||||
|
background-color: var(--txt_connaissance);
|
||||||
|
grid-area: txt-start-contact / col-sep 1 / txt-end-contact / col-sep 6;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#calendrier{
|
||||||
|
background-color: var(--calendrier);
|
||||||
|
grid-area: txt-start-contact / col-sep 7 / txt-end-contact / col-sep 10;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mois_actuel, .mois_suivant{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer{
|
||||||
|
background-color: var(--footer);
|
||||||
|
grid-area: footer-start / main-col-start / footer-end / main-col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
#liens{
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: var(--med_margin)
|
||||||
|
}
|
||||||
|
|
||||||
|
/*GESTION DE LA GRILLE LISTE DE NOS VALEURS*/
|
||||||
|
|
||||||
|
section#liste_valeurs{
|
||||||
|
/*on ne peut pas faire plusieurs opérations en même temps dans calc, il faut un calc par opération*/
|
||||||
|
--demie-goutiere: calc(var(--small_margin) / 2);
|
||||||
|
--valeurs_width: calc(50% - var(--demie-goutiere));
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns:
|
||||||
|
[col2-start] var(--valeurs_width) [col2-mid-left] /*bloc de gauche*/
|
||||||
|
var(--small_margin) /*goutière*/
|
||||||
|
[col2-mid-right] var(--valeurs_width) [col2-end]; /*bloc de droite*/
|
||||||
|
grid-template-rows:
|
||||||
|
[line1-start] auto [line1-end]
|
||||||
|
var(--small_margin)
|
||||||
|
[line2-start] auto [line2-end]
|
||||||
|
var(--small_margin)
|
||||||
|
[suivre-start] auto [suivre-end];
|
||||||
|
}
|
||||||
|
|
||||||
|
p#coop{
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col2-start / line1-end / col2-mid-left;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#autonomie{
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col2-mid-right / line1-end / col2-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#solidarite{
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col2-start / line2-end / col2-mid-left;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#liberte{
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col2-mid-right / line2-end / col2-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#suivre {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: suivre-start / col2-start / suivre-end / col2-end;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#coop, #autonomie, #solidarite, #liberte{
|
||||||
|
padding: 2rem;
|
||||||
|
border: 1px dashed black;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr;
|
||||||
|
column-gap: 1rem;
|
||||||
|
row-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils > a > div {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ordinateur {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: illu-start 2 / col-start / illu-end 2 / col-sep 7;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
div#discussion {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col-start / line1-end / col-mid-left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#visio {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col-start / line2-end / col-mid-left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#sites-web {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line3-start / col-start / line3-end / col-mid-left;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#emails {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col-mid-right / line1-end / col-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#collaboration {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col-mid-right / line2-end / col-end;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
div#blog {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line3-start / col-mid-right / line3-end / col-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
nav ul{
|
||||||
|
list-style: none;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*GESTION DES MEDIA QUERIES*/
|
||||||
|
|
||||||
|
/*Tablettes et petits ordinateurs*/
|
||||||
|
@media (max-width: 1500px) and (min-width: 801px){
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
font-size: 1rem;
|
||||||
|
font-weight: normal;
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
text-transform: uppercase;
|
||||||
|
white-space:pre;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1#deuxfleurs{
|
||||||
|
grid-area: h1-start / col-sep 1 / h1-end / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#infras{
|
||||||
|
grid-area: title-start 1 / col-sep 1 / title-end 1 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#outils{
|
||||||
|
grid-area: title-start 2 / col-sep 1 / title-end 2 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#valeurs{
|
||||||
|
grid-area: title-start 3 / col-sep 1 / title-end 3 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#connaissance{
|
||||||
|
grid-area: title-start-contact / col-sep 1 / title-end-contact / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes{
|
||||||
|
grid-area: illu-start 1 / col-sep 2 / illu-end 1 / col-sep 6;
|
||||||
|
margin-right: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#orsay{
|
||||||
|
grid-area: illu-start 1 / col-sep 6 / illu-end 1 / col-sep 10;
|
||||||
|
margin-left: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes, div#orsay{
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes pre.center, div#orsay pre.center{
|
||||||
|
margin-top: -5px;
|
||||||
|
margin-bottom: -5px
|
||||||
|
}
|
||||||
|
|
||||||
|
div#orsay pre.center{
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#txt_infras{
|
||||||
|
background-color: var(--txt_infras);
|
||||||
|
grid-area: txt-start 1 / col-sep 2 / txt-end 1 / col-sep 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_outils{
|
||||||
|
background-color: var(--txt_outils);
|
||||||
|
grid-area: txt-start 2 / col-sep 2 / txt-end 2 / col-sep 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_connaissance{
|
||||||
|
grid-area: txt-start-contact / col-sep 2 / txt-end-contact / col-sep 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_connaissance ul{
|
||||||
|
padding-left: 0px;
|
||||||
|
list-style-position: inside;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ordinateur {
|
||||||
|
grid-area: illu-start 2 / col-sep 1 / illu-end 2 / col-sep 11;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils{
|
||||||
|
background-color: var(--liste_outils);
|
||||||
|
grid-area: illu-end 2 / col-sep 1 / illu-extended-end 2 / col-sep 11;
|
||||||
|
margin-top: var(--med_margin);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
section#liste_outils {
|
||||||
|
--demie-goutiere: calc(var(--small_margin) / 2);
|
||||||
|
--valeurs_width: calc(33% - var(--demie-goutiere));
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns:
|
||||||
|
[col-tiers1-start] var(--valeurs_width) [col-tiers1-end] bloc de gauche
|
||||||
|
var(--small_margin) goutière
|
||||||
|
[col-tiers2-start] var(--valeurs_width) [col-tiers2-end]
|
||||||
|
var(--small_margin) goutière
|
||||||
|
[col-tiers3-start] var(--valeurs_width) [col-tiers3-end]; bloc de droite
|
||||||
|
|
||||||
|
grid-template-rows:
|
||||||
|
[line1-start] auto [line1-end]
|
||||||
|
var(--small_margin)
|
||||||
|
[line2-start] auto [line2-end]
|
||||||
|
var(--small_margin)
|
||||||
|
[faisons-connaissance-start] auto [faisons-connaissance-end];
|
||||||
|
);
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
section#liste_outils{
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: 1fr 1fr 1fr;
|
||||||
|
row-gap: 1rem;
|
||||||
|
column-gap: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#discussion {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col-tiers1-start / line1-end / col-tiers1-end;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#emails {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col-tiers2-start / line1-end / col-tiers2-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#visio {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line1-start / col-tiers3-start / line1-end / col-tiers3-end;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**/
|
||||||
|
|
||||||
|
div#sites-web {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col-tiers1-start / line2-end / col-tiers1-end;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#collaboration {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col-tiers2-start / line2-end / col-tiers2-end;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
div#blog {
|
||||||
|
background-color: var(--lightgrey);
|
||||||
|
grid-area: line2-start / col-tiers3-start / line2-end / col-tiers3-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ronce{
|
||||||
|
grid-area: illu-start 3 / col-sep 1 / illu-end 3 / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#calendrier{
|
||||||
|
margin-top: var(--med_margin);
|
||||||
|
grid-area: txt-end-contact / col-sep 1 / cal-end-contact / col-sep 11;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mois_actuel, #mois_suivant{
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
#mois_actuel{
|
||||||
|
margin-bottom: 0px;
|
||||||
|
margin-right: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*Smartphones*/
|
||||||
|
@media (max-width: 800px){
|
||||||
|
|
||||||
|
:root{
|
||||||
|
--big_margin:50px;
|
||||||
|
--med_margin:25px;
|
||||||
|
--small_margin:5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:before, h1:after{
|
||||||
|
content: '';
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:before{
|
||||||
|
content: '______________________________________________________________________\A""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""\A* ';
|
||||||
|
}
|
||||||
|
|
||||||
|
h2:after{
|
||||||
|
content: ' *\A______________________________________________________________________\A""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""';
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
font-size: 1rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h1{
|
||||||
|
text-transform: uppercase;
|
||||||
|
white-space: pre;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1#deuxfleurs{
|
||||||
|
grid-area: h1-start / col-start / h1-end / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#infras{
|
||||||
|
grid-area: title-start 1 / col-start / title-end 1 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#outils{
|
||||||
|
grid-area: title-start 2 / col-start / title-end 2 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#valeurs{
|
||||||
|
grid-area: title-start 3 / col-start / title-end 3 / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2#connaissance{
|
||||||
|
grid-area: title-start-contact / col-start / title-end-contact / col-sep 12;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#jardin{
|
||||||
|
grid-area: row-start / col-sep 1 / jardin-end / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav#menu{
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
right: 0px;
|
||||||
|
bottom: 0px;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
background-color: --day-background;
|
||||||
|
z-index: 1;
|
||||||
|
border-top: black 1px dashed;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav#menu ul{
|
||||||
|
list-style: none;
|
||||||
|
flex-direction: row;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-evenly;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_connaissance ul{
|
||||||
|
padding-left: 0px;
|
||||||
|
list-style-position: inside;
|
||||||
|
margin-bottom: var(--med_margin);
|
||||||
|
}
|
||||||
|
|
||||||
|
.icone > pre{
|
||||||
|
font-size: 0.8rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#illustration-accueil > pre.center{
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#orsay{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes{
|
||||||
|
grid-area: illu-start 1 / col-sep 1 / illu-end 1 / col-sep 11;
|
||||||
|
border: 1px solid black;
|
||||||
|
border-radius: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#rennes pre{
|
||||||
|
margin-top: -5px;
|
||||||
|
margin-bottom: -5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
pre{
|
||||||
|
font-size: 0.95rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#txt_infras, #txt_outils, #txt_connaissance{
|
||||||
|
text-align: left;
|
||||||
|
hyphens: none;
|
||||||
|
margin-top: 0;
|
||||||
|
hyphens: none;
|
||||||
|
word-spacing: -2px;
|
||||||
|
-ms-hyphens: none;
|
||||||
|
-webkit-hyphens: none;
|
||||||
|
-moz-hyphens: none;
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
p#txt_infras{
|
||||||
|
background-color: var(--txt_infras);
|
||||||
|
grid-area: txt-start 1 / col-sep 1 / txt-end 1 / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_outils{
|
||||||
|
background-color: var(--txt_outils);
|
||||||
|
grid-area: txt-start 2 / col-sep 1 / txt-end 2 / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#txt_connaissance{
|
||||||
|
grid-area: txt-start-contact / col-sep 1 / txt-end-contact / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ordinateur {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils{
|
||||||
|
grid-area: illu-start 2 / col-start / illu-end 2 / col-sep 12;
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils pre{
|
||||||
|
font-size: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_outils > a > div{
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#ronce{
|
||||||
|
grid-area: illu-start 3 / col-sep 1 / illu-end 3 / col-sep 11;
|
||||||
|
border: none;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#coop, #autonomie, #solidarite, #liberte{
|
||||||
|
padding: 1rem;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#suivre{
|
||||||
|
margin-top: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_valeurs{
|
||||||
|
grid-area: txt-start 3 / col-sep 1 / txt-end 3 / col-sep 11;
|
||||||
|
}
|
||||||
|
|
||||||
|
section#liste_valeurs .description{
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#calendrier{
|
||||||
|
grid-area: txt-end-contact / col-sep 1 / cal-end-contact / col-sep 11;
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
div#calendrier > pre.center {
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer pre.center{
|
||||||
|
font-size: 0.85rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
#liens{
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 12rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (prefers-color-scheme: dark) {
|
||||||
|
div#container, nav#menu, body{
|
||||||
|
background-color: var(--night-background);
|
||||||
|
}
|
||||||
|
p, pre, ul, li, a, a:hover, h1, h2, footer{
|
||||||
|
color: var(--txt-night);
|
||||||
|
}
|
||||||
|
.highlight{
|
||||||
|
color: var(--night-highlight-color);
|
||||||
|
background-color: var(--night-highlight-bg);
|
||||||
|
}
|
||||||
|
.icone > pre{
|
||||||
|
color: var(--txt-night);
|
||||||
|
}
|
||||||
|
.icone .img_top{
|
||||||
|
background-color: var(--night-background);
|
||||||
|
color: var(--txt-night);
|
||||||
|
}
|
||||||
|
.icone a{
|
||||||
|
color: var(--txt-night);
|
||||||
|
}
|
||||||
|
div#ronce, #coop, #autonomie, #solidarite, #liberte, nav#menu, div#rennes, div#orsay{
|
||||||
|
border-color: var(--txt-night);
|
||||||
|
}
|
||||||
|
}
|