diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..9149ce4 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,7 @@ +{ + "recommendations": [ + "esbenp.prettier-vscode", + "yzhang.markdown-all-in-one", + "DavidAnson.vscode-markdownlint" + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..29e98b0 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,20 @@ +{ + "[css]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[markdown]": { + "editor.codeActionsOnSave": { + "source.fixAll.markdownlint": "explicit" + }, + "editor.defaultFormatter": "yzhang.markdown-all-in-one" + }, + "[typescript]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "[typescriptreact]": { + "editor.defaultFormatter": "esbenp.prettier-vscode" + }, + "markdownlint.config": { + "MD033": false + } +} diff --git a/docs/cdr/elek/motherboard-pami.md b/docs/cdr/elek/motherboard-pami.md index 795474d..923a2db 100644 --- a/docs/cdr/elek/motherboard-pami.md +++ b/docs/cdr/elek/motherboard-pami.md @@ -20,51 +20,51 @@ Objectif: Carte mère ESP32S3 pour PAMIs avec moteurs, capteurs et communication ### Module LoRa (UART2) -| Signal LoRa | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| TX | TX LoRa | GPIO16 | -| RX | RX LoRa | GPIO17 | -| Busy | UART Busy LoRa | GPIO18 | -| M0 | M0 | GPIO15 | -| M1 | M1 | GPIO14 | +| Signal LoRa | Net | GPIO ESP32-S3 | +| ----------- | -------------- | ------------- | +| TX | TX LoRa | GPIO16 | +| RX | RX LoRa | GPIO17 | +| Busy | UART Busy LoRa | GPIO18 | +| M0 | M0 | GPIO15 | +| M1 | M1 | GPIO14 | ### IMU (ICM-45686 — SPI) -| Signal IMU | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| MOSI | MOSI IMU | GPIO35 | -| MISO | MISO IMU | GPIO37 | -| SCK | CLK IMU | GPIO36 | -| CS | SS IMU | GPIO38 | +| Signal IMU | Net | GPIO ESP32-S3 | +| ---------- | -------- | ------------- | +| MOSI | MOSI IMU | GPIO35 | +| MISO | MISO IMU | GPIO37 | +| SCK | CLK IMU | GPIO36 | +| CS | SS IMU | GPIO38 | ### Drivers moteurs pas-à-pas #### Moteur gauche -| Fonction | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| DIR | DIR Left | GPIO03 | -| STEP | STEP Left | GPIO46 | -| ENABLE | EN Left | GPIO09 | +| Fonction | Net | GPIO ESP32-S3 | +| -------- | --------- | ------------- | +| DIR | DIR Left | GPIO03 | +| STEP | STEP Left | GPIO46 | +| ENABLE | EN Left | GPIO09 | #### Moteur droit -| Fonction | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| DIR | DIR Right | GPIO21 | -| STEP | STEP Right | GPIO47 | -| ENABLE | EN Right | GPIO48 | +| Fonction | Net | GPIO ESP32-S3 | +| -------- | ---------- | ------------- | +| DIR | DIR Right | GPIO21 | +| STEP | STEP Right | GPIO47 | +| ENABLE | EN Right | GPIO48 | ### LiDAR (UART) -| Signal LiDAR | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| TX | TX LiDAR | RX0 | -| RX | RX LiDAR | TX0 | +| Signal LiDAR | Net | GPIO ESP32-S3 | +| ------------ | -------- | ------------- | +| TX | TX LiDAR | RX0 | +| RX | RX LiDAR | TX0 | ### Servomoteurs -| Servo | Net | GPIO ESP32-S3 | -| --- | --- | --- | -| Servo 1 | Data servo 1 | GPIO42 | -| Servo 2 | Data servo 2 | GPIO41 | +| Servo | Net | GPIO ESP32-S3 | +| ------- | ------------ | ------------- | +| Servo 1 | Data servo 1 | GPIO42 | +| Servo 2 | Data servo 2 | GPIO41 | diff --git a/docs/cdr/elek/power-delivery.md b/docs/cdr/elek/power-delivery.md index 27d79b6..1029981 100644 --- a/docs/cdr/elek/power-delivery.md +++ b/docs/cdr/elek/power-delivery.md @@ -1,4 +1,4 @@ -# Carte d’alimentation 5 V 5 A (PD) pour Raspberry Pi 5 +# Carte d'alimentation 5 V 5 A (PD) pour Raspberry Pi 5 PCB KiCad fournissant un rail stable de 5 V, 5 A adapté au Raspberry Pi 5. @@ -7,19 +7,19 @@ PCB KiCad fournissant un rail stable de 5 V, 5 A adapté au Raspberry Pi 5. ## Résumé - Objectif: Alimentation fiable 5,1 V, 5 A avec faible ondulation et protections robustes. -- Interface de sortie: USB‑C vers Pi 5. -- Entrées: 9–24 V DC (JST GH 2,54 mm 2 broches). +- Interface de sortie: USB-C vers Pi 5. +- Entrées: 9-24 V DC (JST GH 2,54 mm 2 broches). - Topologie: Convertisseur DC/DC buck (abaisseur) avec contrôle de courant. - Buts clés: Gérer les transitoires du Pi 5, minimiser la chute de câble, sécurité thermique. ## Spécifications clés -- Tension de sortie: 5,1 V ±2 % au connecteur carte sous 0–5 A +- Tension de sortie: 5,1 V ±2 % au connecteur carte sous 0-5 A - Courant max: 5 A continu, 6 A crête (≤100 ms) -- Ondulation: ≤30 mV crête‑à‑crête (BP 20 MHz) à 5 A -- Protections: OVP, OCP, UVLO, inversion, court‑circuit, thermique +- Ondulation: ≤30 mV crête-à-crête (BP 20 MHz) à 5 A +- Protections: OVP, OCP, UVLO, inversion, court-circuit, thermique - Rendement: ≥93 % à 5 V / 5 A (si conversion DC/DC) -- Compensation de câble: viser 5,05–5,2 V au niveau du Pi en charge (documenter la méthode) +- Compensation de câble: viser 5,05-5,2 V au niveau du Pi en charge (documenter la méthode) ## Schéma système @@ -28,9 +28,9 @@ doc needed ## Interfaces - Entrée: - - JST GH 2,54 mm 2 broches (9–24 V DC) + - JST GH 2,54 mm 2 broches (9-24 V DC) - Sortie: - - USB‑C vers Pi 5 (5 V uniquement, assurer la capacité 5 A) + - USB-C vers Pi 5 (5 V uniquement, assurer la capacité 5 A) - Indicateurs: LED PGOOD, LED défaut - Points de test: JST GH 2.54mm SDA/SCL @@ -50,7 +50,7 @@ lol - Classes de nets: - 5V_HIGH_I: largeur min X mm, via Y/Z mm, écartement ≥0,4 mm - - SW_NODE: court, keepout sous l’inductance + - SW_NODE: court, keepout sous l'inductance - SIGNAL: largeur/écartement standard - Règles de conception: - Diamètres de perçage pour connecteurs et fusibles choisis @@ -61,18 +61,18 @@ lol - Contrôleur PD: [réf], méthode de config (EEPROM/MCU) - Contrôleur/module buck: [réf], inductance [valeur, Isat], FETs [Rds(on)] -- Shunt: [valeur 1–2 mΩ, 4 bornes si possible], puissance ≥3 W -- Condensateurs de sortie: polymère low‑ESR en vrac + mélange céramiques (documenter quantités/valeurs) -- Diodes TVS: cotes d’entrée et de sortie -- Connecteurs: réceptacle USB‑C (5 A), en‑têtes, jack/XT60 +- Shunt: [valeur 1-2 mΩ, 4 bornes si possible], puissance ≥3 W +- Condensateurs de sortie: polymère low-ESR en vrac + mélange céramiques (documenter quantités/valeurs) +- Diodes TVS: cotes d'entrée et de sortie +- Connecteurs: réceptacle USB-C (5 A), en-têtes, jack/XT60 - Pads thermiques/isolants si utilisés -## Notes d’assemblage +## Notes d'assemblage -- Type de pâte à souder, épaisseur de pochoir (p. ex., 120–130 μm) +- Type de pâte à souder, épaisseur de pochoir (p. ex., 120-130 μm) - Conseils de soudure manuelle pour composants à forte masse - Nettoyage et vernis de tropicalisation (le cas échéant) -- Étiquetage: polarité, révision, plage d’entrée, puissance de sortie +- Étiquetage: polarité, révision, plage d'entrée, puissance de sortie ## Plan de test @@ -82,20 +82,20 @@ lol - Échelon de charge: 0→5 A, mesurer chute/surtension et stabilisation - Protections: - Seuil OCP et comportement reprise auto/verrouillé - - Temps de réaction au court‑circuit + - Temps de réaction au court-circuit - Seuils UVLO/OVP - Thermique: - 5 A en régime établi à 25 °C et 40 °C ambiant; enregistrer les points chauds -- USB‑C PD: - - Pour récepteur PD: vérifier contrat 5 V/5 A, détection câble e‑marqué -- Régulation ligne/charge et balayage d’efficacité -- Conformité: pré‑vérification EMI si applicable +- USB-C PD: + - Pour récepteur PD: vérifier contrat 5 V/5 A, détection câble e-marqué +- Régulation ligne/charge et balayage d'efficacité +- Conformité: pré-vérification EMI si applicable ## Intégration avec Raspberry Pi 5 -- Câble: USB‑C 5 A avec e‑marker; noter la référence +- Câble: USB-C 5 A avec e-marker; noter la référence - Tension au Pi sous 5 A ≥ 4,9 V (mesurée aux pastilles de test du Pi) -- Journal baisses/sous‑tension: confirmer absence de bridage sous charges en rafales +- Journal baisses/sous-tension: confirmer absence de bridage sous charges en rafales ## Fichiers de projet (KiCad) @@ -116,6 +116,6 @@ lol ## Points ouverts / TODO - Sélectionner le contrôleur PD final et valider la config -- Ajuster la compensation et l’amortissement LC +- Ajuster la compensation et l'amortissement LC - Finaliser largeurs de plans et nombre de vias -- Compléter les rapports de test et joindre les courbes \ No newline at end of file +- Compléter les rapports de test et joindre les courbes diff --git a/docs/cdr/info/setup_info.mdx b/docs/cdr/info/setup_info.md similarity index 93% rename from docs/cdr/info/setup_info.mdx rename to docs/cdr/info/setup_info.md index ddb1e6b..22717b4 100644 --- a/docs/cdr/info/setup_info.mdx +++ b/docs/cdr/info/setup_info.md @@ -5,8 +5,9 @@ last_update: author: Eliott A. Roussille tags: [CDR, info] --- -import TabItem from '@theme/TabItem'; -import Tabs from '@theme/Tabs'; + +import TabItem from "@theme/TabItem"; +import Tabs from "@theme/Tabs"; Ce guide vous accompagne pour installer et configurer tous les outils nécessaires au développement sur le projet de la Coupe de France de Robotique. Il est conçu pour vous aider à démarrer rapidement, à comprendre le rôle de chaque outil et à adopter les bonnes pratiques pour collaborer efficacement. @@ -29,6 +30,7 @@ git --version ``` Si ce n'est pas le cas, installez-le selon votre OS : + ```bash @@ -36,7 +38,7 @@ Si ce n'est pas le cas, installez-le selon votre OS : ``` - ```bash + ``` bash sudo apt-get install git ``` @@ -68,10 +70,12 @@ uv est un gestionnaire d'environnements virtuels et de packages Python. Il simpl ### Installation Suivez les instructions adaptées à votre système pour installer uv : + ```powershell - powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" + powershell -ExecutionPolicy ByPass -c "irm + https://astral.sh/uv/install.ps1 | iex" ``` @@ -98,6 +102,7 @@ uv venv ### Activer le venv Activez l'environnement virtuel pour installer et utiliser les paquets : + ```bash @@ -115,8 +120,8 @@ Activez l'environnement virtuel pour installer et utiliser les paquets : ``` -Dans VSCode, sélectionnez l'interpréteur Python correspondant : -`Ctrl + Shift + P` → `Python: Select Interpreter` → CoupeDeRobotique +Dans VSCode, sélectionnez l'interpréteur Python correspondant : `Ctrl + Shift + P` +→ `Python: Select Interpreter` → CoupeDeRobotique ### Télécharger les dépendances @@ -161,7 +166,8 @@ Chocolatey est un gestionnaire de paquets pour Windows, utile pour installer rap Nécessaire uniquement sur Windows : ```powershell - powershell -c "irm https://community.chocolatey.org/install.ps1|iex" + powershell -c "irm + https://community.chocolatey.org/install.ps1|iex" ``` [Documentation Chocolatey](https://docs.chocolatey.org/en-us/) @@ -256,10 +262,10 @@ Pour garantir la qualité et la cohérence du code Python, plusieurs outils de f - [Ruff](https://docs.astral.sh/ruff/) : Linter et formatteur ultra-rapide pour Python. Il combine les fonctionnalités de plusieurs outils en un seul. + [Ruff](https://docs.astral.sh/ruff/) : Linter et formatteur ultra-rapide pour Python. + Il combine les fonctionnalités de plusieurs outils en un seul. ```bash - ruff check . --fix - ruff format + ruff check . --fix ruff format ``` Ruff est intégré dans le workflow du projet pour accélérer le lint et le formatage. @@ -271,14 +277,17 @@ Pour garantir la qualité et la cohérence du code Python, plusieurs outils de f Utilisez-le pour garder vos imports organisés et conformes aux standards. - [Pylint](https://pylint.pycqa.org/en/latest/) : Analyse statique et vérification du style Python. + [Pylint](https://pylint.pycqa.org/en/latest/) : Analyse statique et + vérification du style Python. ```bash pylint . ``` Pylint fournit des rapports détaillés sur la qualité et la conformité du code. - [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) / [Pyright](https://github.com/microsoft/pyright) : Extension VSCode qui utilise Pyright pour l'analyse de type et l'autocomplétion Python. + [Pylance](https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance) + / [Pyright](https://github.com/microsoft/pyright) : Extension VSCode qui + utilise Pyright pour l'analyse de type et l'autocomplétion Python. ```bash # Pylance est intégré dans VSCode pyright --level warning diff --git a/docs/mini-projects/Cluster/Cluster.md b/docs/mini-projects/Cluster/Cluster.md index c4aa5a6..f8c8931 100644 --- a/docs/mini-projects/Cluster/Cluster.md +++ b/docs/mini-projects/Cluster/Cluster.md @@ -14,7 +14,7 @@ Voici une liste des services auto-hébergés sur le cluster k3s de DaVinciBot : - [**Docuseal**](https://sign.davincibot.fr) : Solution de signature électronique. - [**Matrix Tuwunel**](https://chat.davincibot.fr) : Serveur Matrix encrypté. - [**New Relics**](https://newrelic.com) : Monitoring et logs. -- [**Garage**](https://s3.davincibot.fr) : Stockage S3 compatible. (WIP) +- [**RustFS**](https://s3.davincibot.fr) : Stockage S3 compatible. - [**ListMonk**](https://mail.davincibot.fr) : Outil d'emailing auto-hébergé. - [**Overleaf**](https://tex.davincibot.fr) : Éditeur de documents LaTeX collaboratif. (sur un node séparé) - [**Dockploy**](https://dockploy.davincibot.fr) : Gestionnaire de déploiement d'applications. diff --git a/docs/mini-projects/Cluster/NixOS Config.md b/docs/mini-projects/Cluster/NixOS Config.md index 0f9054d..4c59e1c 100644 --- a/docs/mini-projects/Cluster/NixOS Config.md +++ b/docs/mini-projects/Cluster/NixOS Config.md @@ -22,25 +22,27 @@ Ce dépôt contient une configuration NixOS basée sur les flakes pour un cluste ### Configuration Initiale - -2. **Créer secrets.nix** avec vos valeurs réelles basées sur le modèle : +1. **Créer secrets.nix** avec vos valeurs réelles basées sur le modèle : - `k3sToken` : Générer avec `openssl rand -base64 32` - `tunnel.id` et `tunnel.secret` : Vos identifiants de tunnel - `sshKeys` : Vos clés SSH publiques réelles - `userPasswords` : Générer avec `mkpasswd -m yescrypt` -3. **Initialiser le flake** : +2. **Initialiser le flake** : + ```bash nix flake update ``` -4. **Vérifier la configuration** : +3. **Vérifier la configuration** : + ```bash nix flake check ``` -5. **Construire l'image NixOS** : +4. **Construire l'image NixOS** : On utilise un dépot gist pour stocker un script de construction d'image NixOS : + ```bash curl -s https://gist.githubusercontent.com/UrbsKali/e8ccef97902c132bcd1e461448a71cbc/raw | bash ``` @@ -48,6 +50,7 @@ Ce dépôt contient une configuration NixOS basée sur les flakes pour un cluste ### Déploiement Local Sur chaque machine cible, basculer vers la nouvelle configuration : + ```bash # Sur le nœud maître (flo) sudo nixos-rebuild switch --flake .#flo @@ -60,6 +63,7 @@ sudo nixos-rebuild switch --flake .#rob ### Mise à Jour Pour mettre à jour des entrées spécifiques : + ```bash nix flake update nixpkgs nix flake update nixpkgs-unstable @@ -79,6 +83,7 @@ Le flake prend désormais en charge un système de configuration flexible utilis ### Ajouter de Nouveaux Serveurs Ajouter dans `flake.nix` dans la section `nixosConfigurations` : + ```nix nouveauserveur = mkServerConfig { serverHostname = "nouveauserveur"; @@ -141,26 +146,29 @@ La configuration utilise un fichier `secrets.nix` pour stocker les informations ## Démarrage Rapide 1. **Cloner** : + ```bash git clone cd ClusterConfig ``` 2. **Éditer les secrets** : + ```bash # Générer un jeton K3s fort openssl rand -base64 32 - + # Éditer secrets.nix avec vos valeurs réelles cp secrets.nix.template secrets.nix nano secrets.nix ``` -4. **Déployer** : +3. **Déployer** : + ```bash # Copier vers le serveur cible scp -r . dvb@192.168.0.15:/home/dvb/ClusterConfig - + # Déployer sur la cible ssh dvb@192.168.0.15 'cd ClusterConfig && sudo nixos-rebuild switch --flake .#nouveauworker' ``` @@ -170,4 +178,4 @@ La configuration utilise un fichier `secrets.nix` pour stocker les informations - 🔒 **Ne jamais commiter `secrets.nix` dans git** - 🔑 Générer des jetons forts : `openssl rand -base64 32` - 🛡️ Utiliser une gestion appropriée des clés SSH -- 🔐 Stocker des hachages de mots de passe, pas du texte brut : `mkpasswd -m yescrypt` \ No newline at end of file +- 🔐 Stocker des hachages de mots de passe, pas du texte brut : `mkpasswd -m yescrypt` diff --git a/docs/mini-projects/Cluster/deploy-app.md b/docs/mini-projects/Cluster/deploy-app.md index 63afcc3..fc34793 100644 --- a/docs/mini-projects/Cluster/deploy-app.md +++ b/docs/mini-projects/Cluster/deploy-app.md @@ -65,9 +65,12 @@ cd /home/dvb/tuwunel helm upgrade matrix -f tuwunel-helm/values.yaml ./tuwunel-helm/ -n matrix ``` -## Garage - S3 Storage +## Docuseal -WIP +```bash +cd /home/dvb/docuseal +helm upgrade docuseal ./docuseal-chart/ -f values.yaml -n sign +``` ## ListMonk - Newsletter manager diff --git a/docs/mini-projects/Cluster/disk.md b/docs/mini-projects/Cluster/disk.md index 244f9c3..5ef2427 100644 --- a/docs/mini-projects/Cluster/disk.md +++ b/docs/mini-projects/Cluster/disk.md @@ -11,6 +11,7 @@ sudo mkfs.ext4 /dev/sdX Remplacez `/dev/sdX` par le nom de votre disque. Vous pouvez trouver le nom de votre disque en utilisant la commande `lsblk`. ## Montage des disques + Pour monter un disque, vous pouvez utiliser la commande suivante : ```bash @@ -20,5 +21,6 @@ sudo mount /dev/sdX /mnt Remplacez `/dev/sdX` par le nom de votre disque et `/mnt` par le point de montage souhaité. ## Automatiser le montage des disques -Pour automatiser le montage des disques au démarrage, vous devez ajouter une entrée dans la config nix. -Veuillez vous référer à [cette page](/docs/mini-projects/Cluster/NixOS%20Config.md) \ No newline at end of file + +Pour automatiser le montage des disques au démarrage, vous devez ajouter une entrée dans la config nix. +Veuillez vous référer à [cette page](/docs/mini-projects/Cluster/NixOS%20Config.md) diff --git a/docs/mini-projects/intro.md b/docs/mini-projects/intro.md index 2a3d703..f3db43b 100644 --- a/docs/mini-projects/intro.md +++ b/docs/mini-projects/intro.md @@ -1,10 +1,8 @@ --- sidebar_position: 1 --- -# Bienvenue ! -Bienvenue sur la documentation des services IT de DaVinciBot ! +# Bienvenue +Bienvenue sur la documentation des services IT de DaVinciBot ! Cette documentation est dédiée à la configuration et à la gestion des services IT de DaVinciBot, notamment le cluster K3s, les applications déployées, et les configurations NixOS. - - diff --git a/docs/tutorials/PCB Design/ajouter_bibliotheques_kicad.md b/docs/tutorials/PCB Design/ajouter_bibliotheques_kicad.md index 2bc2b7e..1611c99 100644 --- a/docs/tutorials/PCB Design/ajouter_bibliotheques_kicad.md +++ b/docs/tutorials/PCB Design/ajouter_bibliotheques_kicad.md @@ -5,7 +5,7 @@ Cette formation pas-à-pas couvre comment trouver, installer et gérer des bibli ## 1. Concepts clés - Bibliothèques de symboles: fichiers `.kicad_sym` (ou dossiers contenant ces fichiers). Gérées via le « Gestionnaire de bibliothèques de symboles » (Schématique). -- Bibliothèques d’empreintes: dossiers `.pretty` (chaque pad est un `.kicad_mod`). Gérées via le « Gestionnaire de bibliothèques d’empreintes » (PCB). +- Bibliothèques d'empreintes: dossiers `.pretty` (chaque pad est un `.kicad_mod`). Gérées via le « Gestionnaire de bibliothèques d'empreintes » (PCB). - Portée: - Globales: disponibles dans tous les projets de l'utilisateur. - Projet: visibles uniquement dans le projet courant (référencées dans `sym-lib-table` / `fp-lib-table` du projet). @@ -23,11 +23,11 @@ Bonnes pratiques: privilégier sources officielles/fournisseurs, vérifier dimen ## 3. Installer via le PCM (KiCad Package Manager) -Le PCM permet d’installer des bibliothèques approuvées. +Le PCM permet d'installer des bibliothèques approuvées. 1) Ouvrir KiCad (vue Projet) > `Outils` > `Gestionnaire de paquets` (PCM). 2) Parcourir `Bibliothèques` et `Plugins`. Rechercher par mots-clés (ex.: "connector", "Würth"). -3) Cliquer sur `Installer`. Le PCM gère le chemin et l’enregistrement automatique. +3) Cliquer sur `Installer`. Le PCM gère le chemin et l'enregistrement automatique. 4) Vérifier dans les gestionnaires de bibliothèques que la ou les libs sont listées. Avantages: mise à jour centralisée et vérifiée. Inconvénient: catalogue limité aux sources supportées. @@ -37,15 +37,15 @@ Avantages: mise à jour centralisée et vérifiée. Inconvénient: catalogue lim Scénario A — Bibliothèques de symboles `.kicad_sym`: 1) Ouvrir l'éditeur de schéma (Eeschema) > `Préférences` > `Gestionnaire de bibliothèques de symboles`. -2) Choisir l’onglet `Projet` (recommandé) ou `Global` selon la portée souhaitée. +2) Choisir l'onglet `Projet` (recommandé) ou `Global` selon la portée souhaitée. 3) Cliquer `+` (Ajouter) > `Parcourir…` et sélectionner le fichier `.kicad_sym`. 4) Définir un `Préfixe/Lib nickname` clair (ex.: `Vendor_Connectors`). 5) Si le fichier est dans le dépôt, utilisez un chemin relatif via `${KIPRJMOD}/libs/Vendor_Connectors.kicad_sym`. 6) `Appliquer` puis `OK`. -Scénario B — Bibliothèques d’empreintes `.pretty`: +Scénario B — Bibliothèques d'empreintes `.pretty`: -1) Ouvrir l'éditeur PCB (Pcbnew) > `Préférences` > `Gestionnaire de bibliothèques d’empreintes`. +1) Ouvrir l'éditeur PCB (Pcbnew) > `Préférences` > `Gestionnaire de bibliothèques d'empreintes`. 2) Onglet `Projet` (recommandé) ou `Global`. 3) `+` (Ajouter) > type `KiCad` et pointer vers le dossier se terminant par `.pretty`. 4) Nommer la librairie (ex.: `MyBoards_Passives`), valider. @@ -70,7 +70,6 @@ project/ Option 1 — Télécharger une archive `.zip` du repo: - - Décompressez dans `libs/` puis suivez la section 4. Option 2 — Cloner en sous-module Git (fortement recommandé pour partager): @@ -82,47 +81,47 @@ git submodule add https://github.com/vendor/repo.pretty libs/footprints/repo.pre ``` - Référencez la librairie via `${KIPRJMOD}/libs/footprints/repo.pretty`. -- Avantage: versionnage stable, reproductibilité pour l’équipe/CI. +- Avantage: versionnage stable, reproductibilité pour l'équipe/CI. ## 6. Associer symboles ↔ empreintes et modèles 3D -- Association dans le schéma: dans Eeschema, utiliser le `Gestionnaire d’associations d’empreintes` pour mapper chaque symbole à une empreinte. -- Au niveau empreinte: ouvrir l’`Éditeur d’empreintes`, vérifier pads, couches et origin. Dans l’onglet `Modèle 3D`, ajouter un `.step` via un chemin relatif `${KIPRJMOD}/3dmodels/...`. -- Sauvegarder dans la librairie d’empreintes projet plutôt que dans les libs globales. +- Association dans le schéma: dans Eeschema, utiliser le `Gestionnaire d'associations d'empreintes` pour mapper chaque symbole à une empreinte. +- Au niveau empreinte: ouvrir l'`Éditeur d'empreintes`, vérifier pads, couches et origin. Dans l'onglet `Modèle 3D`, ajouter un `.step` via un chemin relatif `${KIPRJMOD}/3dmodels/...`. +- Sauvegarder dans la librairie d'empreintes projet plutôt que dans les libs globales. ## 7. Variables de chemin utiles - `${KIPRJMOD}`: racine du projet courant. Utilisez-le pour des chemins portables. -- `${KICAD_USER_TEMPLATE_DIR}`, `${KICAD6_FOOTPRINT_DIR}`, `${KICAD_SYMBOL_DIR}`: chemins d’installation/médias (selon système et version). Dans KiCad 9, ces variables existent encore, mais privilégiez `${KIPRJMOD}` pour les libs de projet. +- `${KICAD_USER_TEMPLATE_DIR}`, `${KICAD6_FOOTPRINT_DIR}`, `${KICAD_SYMBOL_DIR}`: chemins d'installation/médias (selon système et version). Dans KiCad 9, ces variables existent encore, mais privilégiez `${KIPRJMOD}` pour les libs de projet. - Gérer les variables via `Préférences` > `Configurer les chemins`. ## 8. Vérifications et dépannage - Bibliothèque invisible: vérifiez portée (Projet vs Global) et ordre dans le gestionnaire. Assurez-vous que le chemin pointe vers un `.kicad_sym` (symboles) ou un dossier `.pretty` (empreintes). -- Symboles/empreintes non trouvés: mettez à jour l’index (`Recharger les librairies`) et contrôlez les droits sur le dossier. -- Empreinte décalée sur le PCB: vérifiez l’origine du composant et l’orientation par rapport à la datasheet. +- Symboles/empreintes non trouvés: mettez à jour l'index (`Recharger les librairies`) et contrôlez les droits sur le dossier. +- Empreinte décalée sur le PCB: vérifiez l'origine du composant et l'orientation par rapport à la datasheet. - Conflits de noms: renommez les `nicknames` pour éviter les collisions. -- Modèles 3D manquants: validez les chemins relatifs, vérifiez l’échelle (1.0) et l’axe Z. +- Modèles 3D manquants: validez les chemins relatifs, vérifiez l'échelle (1.0) et l'axe Z. ## 9. Bonnes pratiques d'équipe et CI/CD - Versionnez toujours vos bibliothèques de projet dans le même dépôt (ou en sous-modules). -- Effectuez une revue lors de l’ajout d’une nouvelle empreinte (dimensions, pad stacks, clearances). Ajoutez un lien vers la datasheet dans la description. -- Figez les versions PCM utilisées (capture d’écran/liste) si vous dépendez de packages installés. +- Effectuez une revue lors de l'ajout d'une nouvelle empreinte (dimensions, pad stacks, clearances). Ajoutez un lien vers la datasheet dans la description. +- Figez les versions PCM utilisées (capture d'écran/liste) si vous dépendez de packages installés. - Sur CI/CD, lancez un DRC/ERC et, si possible, un script `kicad-cli sch export`/`pcb export` pour vérifier que les libs se chargent (optionnel selon pipeline). -## 10. Raccourcis d’utilisation +## 10. Raccourcis d'utilisation -- Recherche rapide de symboles: `A` dans l’éditeur de schéma pour "Ajouter un symbole" puis tapez votre terme. -- Recherche d’empreintes: dans l’éditeur d’empreintes, utilisez le navigateur d’empreintes et filtrez par librairie. +- Recherche rapide de symboles: `A` dans l'éditeur de schéma pour "Ajouter un symbole" puis tapez votre terme. +- Recherche d'empreintes: dans l'éditeur d'empreintes, utilisez le navigateur d'empreintes et filtrez par librairie. - Réutilisation: exportez/importez des champs personnalisés de symboles (références, MPN, LCSC, etc.). ## 11. Checklist finale - [ ] Les bibliothèques nécessaires sont listées dans `sym-lib-table` (symboles) et `fp-lib-table` (empreintes) du projet. - [ ] Les chemins utilisent `${KIPRJMOD}` et pointent vers `libs/` dans le repo. -- [ ] Les symboles sont associés à des empreintes correctes et les modèles 3D s’affichent. -- [ ] Un README `libs/README.md` documente l’origine des bibliothèques. +- [ ] Les symboles sont associés à des empreintes correctes et les modèles 3D s'affichent. +- [ ] Un README `libs/README.md` documente l'origine des bibliothèques. ## Annexes diff --git a/docs/tutorials/Prise en main des outils/download-demo.mdx b/docs/tutorials/Prise en main des outils/download-demo.mdx index 810fc0b..d9e3304 100644 --- a/docs/tutorials/Prise en main des outils/download-demo.mdx +++ b/docs/tutorials/Prise en main des outils/download-demo.mdx @@ -2,8 +2,8 @@ title: Exemple d'utilisation des composants de téléchargement --- -import DownloadButton from '@site/src/components/DownloadButton'; -import DownloadGroup from '@site/src/components/DownloadGroup'; +import DownloadButton from "@site/src/components/DownloadButton"; +import DownloadGroup from "@site/src/components/DownloadGroup"; # Démo des Composants de Téléchargement @@ -19,7 +19,7 @@ Cette page démontre l'utilisation des composants `DownloadButton` et `DownloadG ### Bouton secondaire - + Documentation PDF @@ -94,11 +94,7 @@ Téléchargez les fichiers nécessaires pour commencer : ### DownloadButton ```tsx - + Texte du bouton ``` @@ -107,7 +103,11 @@ Téléchargez les fichiers nécessaires pour commencer : ```tsx - Fichier 1 - Fichier 2 + + Fichier 1 + + + Fichier 2 + ``` diff --git a/docs/tutorials/Prise en main des outils/matrix chat.md b/docs/tutorials/Prise en main des outils/matrix chat.md index fb4a6a2..92e34a2 100644 --- a/docs/tutorials/Prise en main des outils/matrix chat.md +++ b/docs/tutorials/Prise en main des outils/matrix chat.md @@ -1,11 +1,11 @@ # Comment utiliser le chat sécurisé DVB -Objectif: installer Cinny Desktop, se connecter au serveur privé chat.davincibot.fr et créer un compte avec un jeton d’inscription (token privé). +Objectif: installer Cinny Desktop, se connecter au serveur privé chat.davincibot.fr et créer un compte avec un jeton d'inscription (token privé). Prérequis: -- Un jeton d’inscription valide fourni par l’administrateur du serveur (ne jamais le partager). -- Connexion Internet et droits d’installation. +- Un jeton d'inscription valide fourni par l'administrateur du serveur (ne jamais le partager). +- Connexion Internet et droits d'installation. ## Télécharger Cinny Desktop @@ -21,7 +21,7 @@ Images: ## Installer -- Windows: exécuter l’installeur et suivre l’assistant. +- Windows: exécuter l'installeur et suivre l'assistant. - macOS: ouvrir le .dmg, glisser Cinny dans Applications. - Linux: - AppImage: chmod +x puis lancer le fichier. @@ -30,27 +30,27 @@ Images: ## Premier lancement et configuration du serveur - Ouvrir Cinny. -- Cliquer sur homeserver entrer l’URL du homeserver: [https://chat.davincibot.fr](https://chat.davincibot.fr) +- Cliquer sur homeserver entrer l'URL du homeserver: [https://chat.davincibot.fr](https://chat.davincibot.fr) - Cliquer sur Créer un compte. - Valider. Images: -- ![Écran d’accueil de Cinny](./images/cinny-homepage.png) +- ![Écran d'accueil de Cinny](./images/cinny-homepage.png) - ![Saisie du homeserver chat.davincibot.fr](./images/cinny-login-chat.png) ## Créer un compte avec un token privé (registration token) - Cliquer Créer un compte. - Renseigner: - - Nom d’utilisateur (sans @ ni deux-points). + - Nom d'utilisateur (sans @ ni deux-points). - Mot de passe robuste. - - Jeton d’inscription (token privé) fourni par l’admin. -- Valider l’inscription. Le jeton peut être à usage unique; s’il est refusé, contacter l’admin. + - Jeton d'inscription (token privé) fourni par l'admin. +- Valider l'inscription. Le jeton peut être à usage unique; s'il est refusé, contacter l'admin. Bonnes pratiques: -- Ne jamais partager le jeton ni l’exposer en capture d’écran. +- Ne jamais partager le jeton ni l'exposer en capture d'écran. - Conserver le mot de passe dans un gestionnaire de mots de passe. Images: @@ -60,7 +60,7 @@ Images: ## Connexion - Identifiant: @votre_utilisateur:chat.davincibot.fr ou juste votre_utilisateur si Cinny est déjà pointé sur chat.davincibot.fr. -- Mot de passe: celui défini à l’étape précédente. +- Mot de passe: celui défini à l'étape précédente. Images: @@ -71,16 +71,15 @@ Images: - Activer la Sauvegarde sécurisée (Secure Backup) pour chiffrer les clés de session E2EE. - Sauvegarder la clé de récupération (Security Key) hors ligne (papier ou coffre-fort chiffré). - ## Rejoindre des salons et démarrer une discussion -- Rechercher un salon via l’explorateur de Cinny. +- Rechercher un salon via l'explorateur de Cinny. - Démarrer un message direct en recherchant un utilisateur. Dépannage rapide - “Registration disabled” ou “Token required”: le serveur exige un jeton; vérifier sa validité et sa casse. -- “Cannot reach homeserver”: vérifier l’URL (https), le pare-feu et l’horloge système. +- “Cannot reach homeserver”: vérifier l'URL (https), le pare-feu et l'horloge système. - Bouclage de connexion E2EE: terminer la vérification de session et activer Secure Backup. -Note: Le jeton d’inscription est confidentiel. Ne l’intégrez pas dans ce document et évitez toute capture d’écran montrant ce code. +Note: Le jeton d'inscription est confidentiel. Ne l'intégrez pas dans ce document et évitez toute capture d'écran montrant ce code. diff --git a/docs/tutorials/info/docker.mdx b/docs/tutorials/info/docker.mdx index d616f6b..b6f4da0 100644 --- a/docs/tutorials/info/docker.mdx +++ b/docs/tutorials/info/docker.mdx @@ -5,8 +5,9 @@ last_update: author: Urbain Lantrès tags: [info, sysadmin] --- -import DownloadButton from '@site/src/components/DownloadButton'; -import DownloadGroup from '@site/src/components/DownloadGroup'; + +import DownloadButton from "@site/src/components/DownloadButton"; +import DownloadGroup from "@site/src/components/DownloadGroup"; Dans ce tutoriel, nous allons créer une application simple avec Node.js et la conteneuriser avec Docker. Nous allons également apprendre à construire et exécuter notre conteneur Docker. @@ -119,7 +120,7 @@ CMD ["node", "index.js"] - **FROM node:18-alpine** : On utilise une image Node.js légère basée sur Alpine Linux - **WORKDIR /usr/src/app** : Définit le répertoire de travail dans le conteneur -- **COPY app/package*.json ./** : Copie les fichiers de dépendances npm +- **COPY app/package\*.json ./** : Copie les fichiers de dépendances npm - **RUN npm install** : Installe les dépendances Node.js - **COPY app/ .** : Copie tout le code de l'application - **EXPOSE 80** : Indique que le conteneur écoute sur le port 80 @@ -206,7 +207,7 @@ micro docker-compose.yml Voici un exemple de configuration avec une application Node.js et une base de données PostgreSQL : ```yaml title="docker-compose.yml" -version: '3.8' +version: "3.8" services: app: diff --git a/docs/tutorials/info/info.md b/docs/tutorials/info/info.md index 0c80025..fad7803 100644 --- a/docs/tutorials/info/info.md +++ b/docs/tutorials/info/info.md @@ -1,3 +1,3 @@ --- title: Informatique ---- \ No newline at end of file +--- diff --git a/docs/tutorials/info/latex/01-latex-en-rapide.mdx b/docs/tutorials/info/latex/01-latex-en-rapide.mdx index 8619f7f..cbeac91 100644 --- a/docs/tutorials/info/latex/01-latex-en-rapide.mdx +++ b/docs/tutorials/info/latex/01-latex-en-rapide.mdx @@ -3,13 +3,13 @@ title: LaTeX en rapide sidebar_position: 2 --- -Objectif: comprendre ce qu’est LaTeX, quand l’utiliser et les briques de base. +Objectif: comprendre ce qu'est LaTeX, quand l'utiliser et les briques de base. -## C’est quoi ? Pourquoi ? +## C'est quoi ? Pourquoi ? - Langage à balises pour la mise en forme, compilé en PDF (ou autre) - Points forts: stabilité typographique, maths, bibliographie, pérennité, versionnement -- Quand l’éviter: documents très visuels type PAO (préférer InDesign, Figma) ou besoin WYSIWYG pur +- Quand l'éviter: documents très visuels type PAO (préférer InDesign, Figma) ou besoin WYSIWYG pur ## Vocabulaire @@ -24,9 +24,10 @@ Objectif: comprendre ce qu’est LaTeX, quand l’utiliser et les briques de bas - Fichiers auxiliaires: `.aux`, `.toc`, `.bbl`… ignorables dans Git :::info Quand choisir LaTeX ? + - Documents scientifiques/techniques, rapports, thèses, articles - Figures, tableaux, maths et références croisées nombreuses -::: + ::: ## Résultat attendu du module diff --git a/docs/tutorials/info/latex/03-premier-document.mdx b/docs/tutorials/info/latex/03-premier-document.mdx index a4c288d..f561a35 100644 --- a/docs/tutorials/info/latex/03-premier-document.mdx +++ b/docs/tutorials/info/latex/03-premier-document.mdx @@ -30,11 +30,12 @@ Texte avec \emph{emphase} et \textbf{gras}. Liste:\\ ``` :::exercise Exercice (10 min) + - Ajoute une section et une sous-section - Crée une liste numérotée - Compile et vérifie la table des matières -::: + ::: :::note Accents -Avec Overleaf moderne et `babel`, l’entrée UTF-8 fonctionne nativement. +Avec Overleaf moderne et `babel`, l'entrée UTF-8 fonctionne nativement. ::: diff --git a/docs/tutorials/info/latex/05-typo.mdx b/docs/tutorials/info/latex/05-typo.mdx index 0bd2a34..7a2e78a 100644 --- a/docs/tutorials/info/latex/05-typo.mdx +++ b/docs/tutorials/info/latex/05-typo.mdx @@ -4,11 +4,11 @@ sidebar_position: 6 --- - Guilles FR: `\og guillemets \fg{}` avec `babel` français -- Tirets: trait d’union `-`, demi-cadratin `--`, cadratin `---` +- Tirets: trait d'union `-`, demi-cadratin `--`, cadratin `---` - Espaces insécables: `~` (p. ex. « Fig.~1 ») -- Mise en forme: `\emph{}`, `\textbf{}`, `\textit{}`; éviter l’abus de styles +- Mise en forme: `\emph{}`, `\textbf{}`, `\textit{}`; éviter l'abus de styles - Micro-typographie: `\usepackage{microtype}` améliore césures et justification :::exercise Exercice (5 min) -Corrige les guillemets, tirets et espaces d’un paragraphe « mal typographié ». +Corrige les guillemets, tirets et espaces d'un paragraphe « mal typographié ». ::: diff --git a/docs/tutorials/info/latex/06-maths.mdx b/docs/tutorials/info/latex/06-maths.mdx index 8ca0889..6dafcac 100644 --- a/docs/tutorials/info/latex/06-maths.mdx +++ b/docs/tutorials/info/latex/06-maths.mdx @@ -33,5 +33,5 @@ La vitesse est \SI{3.0}{\meter\per\second}. ``` :::exercise Exercice (10 min) -Écris un petit système d’équations alignées et référence la principale plus tard (avec `\label`/`\ref`). +Écris un petit système d'équations alignées et référence la principale plus tard (avec `\label`/`\ref`). ::: diff --git a/docs/tutorials/info/latex/07-figures-tableaux.mdx b/docs/tutorials/info/latex/07-figures-tableaux.mdx index 898ae87..fe0160b 100644 --- a/docs/tutorials/info/latex/07-figures-tableaux.mdx +++ b/docs/tutorials/info/latex/07-figures-tableaux.mdx @@ -43,6 +43,6 @@ Préambule: `[htbp]` = here/top/bottom/page. Éviter `H` absolu sauf cas particuliers. ::: -:::exercise Exercice (10–15 min) +:::exercise Exercice (10-15 min) Insère une figure avec légende et un tableau « booktabs ». Référence-les depuis le texte (`\ref{fig:belle}`, `\ref{tab:propre}`). ::: diff --git a/docs/tutorials/info/latex/08-biblio.mdx b/docs/tutorials/info/latex/08-biblio.mdx index 023ffd8..3772403 100644 --- a/docs/tutorials/info/latex/08-biblio.mdx +++ b/docs/tutorials/info/latex/08-biblio.mdx @@ -22,5 +22,5 @@ Comme le montre \textcite{knuth1984} et \parencite{lamport1994}. - Sur Overleaf: « New file » → `refs.bib` → coller les entrées :::exercise Exercice (15 min) -Ajoute 3 références (article, livre, site) et cite-les dans l’introduction. Compile jusqu’à voir la bibliographie. +Ajoute 3 références (article, livre, site) et cite-les dans l'introduction. Compile jusqu'à voir la bibliographie. ::: diff --git a/docs/tutorials/info/latex/09-crossref.mdx b/docs/tutorials/info/latex/09-crossref.mdx index c2c23ea..b8dcdca 100644 --- a/docs/tutorials/info/latex/09-crossref.mdx +++ b/docs/tutorials/info/latex/09-crossref.mdx @@ -19,5 +19,5 @@ Voir \cref{fig:belle} et \cref{tab:propre}. - `nameinlink` rend tout le libellé cliquable :::exercise Exercice (5 min) -Remplace tous tes `\ref{}` par `\cref{}` et vérifie l’intitulé automatique. +Remplace tous tes `\ref{}` par `\cref{}` et vérifie l'intitulé automatique. ::: diff --git a/docs/tutorials/info/latex/12-debug.mdx b/docs/tutorials/info/latex/12-debug.mdx index 85e58fe..78d6825 100644 --- a/docs/tutorials/info/latex/12-debug.mdx +++ b/docs/tutorials/info/latex/12-debug.mdx @@ -5,19 +5,19 @@ sidebar_position: 13 ## Lire le .log -- Cherche « Error » et la dernière pile d’erreurs +- Cherche « Error » et la dernière pile d'erreurs - Erreurs fréquentes: `Undefined control sequence`, `Missing $`, `Overfull/Underfull \hbox` ## Stratégie MWE - Isole un cas minimal (Minimal Working Example) -- Commente les blocs jusqu’à disparition de l’erreur +- Commente les blocs jusqu'à disparition de l'erreur ## Hygiène - Versionner uniquement sources (`.tex`, `.bib`, images) — pas les fichiers auxiliaires - Utiliser `microtype`, `babel`, `cleveref`, `booktabs` comme base saine -:::exercise Exercice (5–10 min) -Casse volontairement une commande, observe le message d’erreur, corrige et recompile. +:::exercise Exercice (5-10 min) +Casse volontairement une commande, observe le message d'erreur, corrige et recompile. ::: diff --git a/docs/tutorials/info/latex/13-bonus.mdx b/docs/tutorials/info/latex/13-bonus.mdx index f771faa..67b195d 100644 --- a/docs/tutorials/info/latex/13-bonus.mdx +++ b/docs/tutorials/info/latex/13-bonus.mdx @@ -9,4 +9,4 @@ sidebar_position: 14 - Index: `makeidx` - Multi-bibliographies: `biblatex` avec refsections -Chaque sous-module peut faire l’objet d’un atelier dédié de 30–60 min. +Chaque sous-module peut faire l'objet d'un atelier dédié de 30-60 min. diff --git a/docs/tutorials/info/latex/cheatsheet.mdx b/docs/tutorials/info/latex/cheatsheet.mdx index 42c8e6d..63d8473 100644 --- a/docs/tutorials/info/latex/cheatsheet.mdx +++ b/docs/tutorials/info/latex/cheatsheet.mdx @@ -6,6 +6,7 @@ sidebar_position: 99 Rappels rapides: - Structure minimale + ```tex \documentclass{article} % \usepackage{...} diff --git a/docs/tutorials/info/latex/index.mdx b/docs/tutorials/info/latex/index.mdx index a74a8cd..51653c0 100644 --- a/docs/tutorials/info/latex/index.mdx +++ b/docs/tutorials/info/latex/index.mdx @@ -4,16 +4,16 @@ title: Parcours LaTeX (Overleaf) sidebar_position: 1 --- -Bienvenue dans le parcours LaTeX orienté Overleaf. Objectif: produire un mini-rapport propre (4–8 pages) avec sections, équations, figures, tableau, références croisées et bibliographie. +Bienvenue dans le parcours LaTeX orienté Overleaf. Objectif: produire un mini-rapport propre (4-8 pages) avec sections, équations, figures, tableau, références croisées et bibliographie. - Public: étudiants, ingénieurs, chercheurs, makers -- Prérequis: aucun en LaTeX; à l’aise avec un éditeur de texte +- Prérequis: aucun en LaTeX; à l'aise avec un éditeur de texte - Outil principal: Overleaf (local présenté en complément) ## Deux formats - Parcours express (≈ 90 min): 1 → 5 puis livrable -- Parcours complet (½–1 jour): 1 → 12, bonus 13 selon temps +- Parcours complet (½-1 jour): 1 → 12, bonus 13 selon temps ## Plan des modules diff --git a/docs/tutorials/info/linux.mdx b/docs/tutorials/info/linux.mdx index 350bfc3..afbb733 100644 --- a/docs/tutorials/info/linux.mdx +++ b/docs/tutorials/info/linux.mdx @@ -9,7 +9,7 @@ tags: [info, sysadmin] Dans cette formation, vous apprendrez les bases de Linux en ligne de commande, étape par étape: naviguer dans le système de fichiers, manipuler des fichiers et dossiers, gérer les permissions, les utilisateurs/groupes, et les processus. :::info C'est quoi un système ? -Un système d’exploitation (OS) est le logiciel qui permet d’utiliser le matériel (CPU, mémoire, disque, réseau, périphériques). Ici, on se concentre sur Linux. Android, par exemple, est basé sur Linux. +Un système d'exploitation (OS) est le logiciel qui permet d'utiliser le matériel (CPU, mémoire, disque, réseau, périphériques). Ici, on se concentre sur Linux. Android, par exemple, est basé sur Linux. ::: ## Prérequis @@ -47,7 +47,7 @@ cd .. # remonter d'un dossier cd - # revenir au dossier précédent ``` -- `file` — Détecte le type d’un fichier +- `file` — Détecte le type d'un fichier ```bash file /bin/ls @@ -67,7 +67,7 @@ cat /etc/os-release less /var/log/syslog ``` -- `head` / `tail` — Début/fin d’un fichier +- `head` / `tail` — Début/fin d'un fichier ```bash head -n 20 fichier.log @@ -199,7 +199,7 @@ sudo delgroup dev # Debian/Ubuntu ``` :::warning Root -Évitez d’utiliser root directement. Préférez `sudo` avec un utilisateur standard membre du groupe `sudo`/`wheel`. +Évitez d'utiliser root directement. Préférez `sudo` avec un utilisateur standard membre du groupe `sudo`/`wheel`. ::: ## Étape 7 — Processus et gestion des tâches @@ -229,7 +229,7 @@ bg %1 # continuer en arrière-plan ``` :::tip Priorité -`nice` et `renice` ajustent la priorité CPU d’un processus. +`nice` et `renice` ajustent la priorité CPU d'un processus. ::: ## Étape 8 — Aide intégrée et documentation @@ -302,4 +302,3 @@ scp fichier user@hote:/chemin/destination - TLDR pages: https://tldr.sh/ - The Linux Documentation Project: https://www.tldp.org/ - explainshell.com: https://explainshell.com/ - diff --git a/docs/tutorials/intro.md b/docs/tutorials/intro.md index fe9b50b..cdbb17c 100644 --- a/docs/tutorials/intro.md +++ b/docs/tutorials/intro.md @@ -1,13 +1,13 @@ --- -title: Tutoriels de l’association -description: Accueil des tutoriels — démarrer, contribuer et maîtriser les outils de l’association. +title: Tutoriels de l'association +description: Accueil des tutoriels — démarrer, contribuer et maîtriser les outils de l'association. sidebar_position: 1 --- Bienvenue. Ce hub regroupe tous les parcours et guides pour apprendre rapidement et en autonomie. -## Besoin d’aide ? +## Besoin d'aide ? -- Contacter l’équipe via discord : Urbain +- Contacter l'équipe via discord : Urbain Ce contenu évolue. Signaler toute amélioration via le guide de contribution. diff --git a/docs/tutorials/ros/env_docker_full.mdx b/docs/tutorials/ros/env_docker_full.mdx index 31f75a1..2cfffdf 100644 --- a/docs/tutorials/ros/env_docker_full.mdx +++ b/docs/tutorials/ros/env_docker_full.mdx @@ -16,7 +16,6 @@ Ce document donne une formation rapide pour utiliser l'environnement de dévelop - **VS Code** avec les extensions Remote/DevContainer. - (Windows) **WSL2** avec une distribution Linux (ex. `Ubuntu`). - ## Installation rapide — Windows (WSL2 + Docker Desktop + VS Code) ### Activer et installer WSL2 @@ -25,7 +24,7 @@ Ouvrir PowerShell en administrateur puis : ```pwsh wsl --install -d ubuntu -# Si la commande ci‑dessus n'est pas disponible (Windows plus ancien), activer manuellement : +# Si la commande ci-dessus n'est pas disponible (Windows plus ancien), activer manuellement : # dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart # dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart # puis installer une distribution depuis le Microsoft Store (ex: Ubuntu) et @@ -47,7 +46,7 @@ Installer (ou activer) ces extensions : - [`Remote - WSL`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-wsl) (`ms-vscode-remote.remote-wsl`) - [`Dev Containers`](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) (`ms-vscode-remote.remote-containers`) -- [`Python`](https://marketplace.visualstudio.com/items?itemName=ms-python.python) (`ms-python.python`) +- [`Python`](https://marketplace.visualstudio.com/items?itemName=ms-python.python) (`ms-python.python`) - [`C/C++`](https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools) (`ms-vscode.cpptools`) - [`ROS (ROS Tooling)`](https://marketplace.visualstudio.com/items?itemName=ros-tooling.vscode-ros) (`ros-tooling.vscode-ros`) — extension ROS recommandée @@ -78,7 +77,6 @@ Suivre la page officielle pour votre distribution, puis installer les mêmes ext VS Code : https://code.visualstudio.com/ - ### Flux de travail (Linux) 1. Ouvrir le dossier du projet dans VS Code localement. @@ -91,7 +89,7 @@ Une fois le conteneur démarré, vous êtes dans un shell Linux fourni par l'ima ### Compiler le code -Appuyez sur `Ctrl+Shift+B` (raccourci VS Code) pour lancer la tâche de build +Appuyez sur `Ctrl+Shift+B` (raccourci VS Code) pour lancer la tâche de build ### Lancer la simulation (Gazebo + RViz2) @@ -102,6 +100,7 @@ ros2 launch main_rover launch_sim.launch.py ## Notes et conseils pratiques - Si vous êtes sous **Windows + WSL2 + devContainer**, WSLg (sur Windows 11 ou builds compatibles) permet d'afficher les applications graphiques Linux. Si vous rencontrez des problèmes d'affichage avec Gazebo/RViz, vérifiez : + - Que Docker Desktop est configuré pour utiliser le backend WSL2. - Que l'intégration WSL (distro) est activée dans Docker Desktop. @@ -127,4 +126,4 @@ ros2 launch main_rover launch_sim.launch.py ## Prochaine étape suggérée -- Tester : `Ctrl+Shift+B` puis `ros2 launch main_rover launch_sim.launch.py` dans le devContainer. \ No newline at end of file +- Tester : `Ctrl+Shift+B` puis `ros2 launch main_rover launch_sim.launch.py` dans le devContainer. diff --git a/docusaurus.config.ts b/docusaurus.config.ts index de54db6..ac6572d 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -1,13 +1,13 @@ -import { themes as prismThemes } from 'prism-react-renderer'; -import type { Config } from '@docusaurus/types'; -import type * as Preset from '@docusaurus/preset-classic'; +import type * as Preset from "@docusaurus/preset-classic"; +import type { Config } from "@docusaurus/types"; +import { themes as prismThemes } from "prism-react-renderer"; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) const config: Config = { - title: 'DaVinciBot', - tagline: 'Learn to build amazing documentation', - favicon: 'img/favicon.ico', + title: "DaVinciBot", + tagline: "Learn to build amazing documentation", + favicon: "img/favicon.ico", // Future flags, see https://docusaurus.io/docs/api/docusaurus-config#future future: { @@ -15,25 +15,25 @@ const config: Config = { }, // Set the production url of your site here - url: 'https://docs.davincibot.fr', + url: "https://docs.davincibot.fr", // Set the // pathname under which your site is served // For GitHub pages deployment, it is often '//' - baseUrl: '/', + baseUrl: "/", // GitHub pages deployment config. // If you aren't using GitHub pages, you don't need these. - organizationName: 'davincibot', // Usually your GitHub org/user name. - projectName: 'DocVB', // Usually your repo name. + organizationName: "davincibot", // Usually your GitHub org/user name. + projectName: "DocVB", // Usually your repo name. - onBrokenLinks: 'throw', - onBrokenMarkdownLinks: 'warn', + onBrokenLinks: "throw", + onBrokenMarkdownLinks: "warn", // Even if you don't use internationalization, you can use this field to set // useful metadata like html lang. For example, if your site is Chinese, you // may want to replace "en" with "zh-Hans". i18n: { - defaultLocale: 'fr', - locales: ['fr'], + defaultLocale: "fr", + locales: ["fr"], }, plugins: [ @@ -52,14 +52,14 @@ const config: Config = { themes: [ [ - require.resolve('@easyops-cn/docusaurus-search-local'), + require.resolve("@easyops-cn/docusaurus-search-local"), { hashed: true, - docsRouteBasePath: '/', + docsRouteBasePath: "/", indexBlog: false, highlightSearchTermsOnTargetPage: true, searchBarShortcut: true, - searchBarShortcutKeymap: 'mod+k', + searchBarShortcutKeymap: "mod+k", searchBarShortcutHint: true, }, ], @@ -67,17 +67,17 @@ const config: Config = { presets: [ [ - 'classic', + "classic", { docs: { - sidebarPath: './sidebars.ts', - routeBasePath: '/', // This makes docs the main page + sidebarPath: "./sidebars.ts", + routeBasePath: "/", // This makes docs the main page // Remove this to remove the "edit this page" links. - editUrl: 'https://github.com/davincibot/docvb/tree/main/', + editUrl: "https://github.com/davincibot/docvb/tree/main/", }, blog: false, // Disable blog theme: { - customCss: './src/css/custom.css', + customCss: "./src/css/custom.css", }, } satisfies Preset.Options, ], @@ -85,69 +85,69 @@ const config: Config = { themeConfig: { colorMode: { - defaultMode: 'dark', + defaultMode: "dark", respectPrefersColorScheme: false, }, // Replace with your project's social card - image: 'img/dvb_og_img.jpg', + image: "img/dvb_og_img.jpg", navbar: { - title: 'DaVinciBot', + title: "DaVinciBot", logo: { - alt: 'DaVinciBot Logo', - src: 'img/logo.svg', - srcDark: 'img/logo_dark.svg', + alt: "DaVinciBot Logo", + src: "img/logo.svg", + srcDark: "img/logo_dark.svg", }, items: [ { - type: 'docSidebar', - sidebarId: 'docSidebar', - position: 'left', - label: 'Minis-projets', + type: "docSidebar", + sidebarId: "docSidebar", + position: "left", + label: "Minis-projets", }, { - type: 'docSidebar', - sidebarId: 'tutorialSidebar', - position: 'left', - label: 'Formation', + type: "docSidebar", + sidebarId: "tutorialSidebar", + position: "left", + label: "Formation", }, - { - type: 'docSidebar', - sidebarId: 'cdrSidebar', - position: 'left', - label: 'CDR', + { + type: "docSidebar", + sidebarId: "cdrSidebar", + position: "left", + label: "CDR", }, ], }, footer: { - style: 'dark', + style: "dark", links: [ { - title: 'Community', + title: "Community", items: [ { - label: 'Instagram', - href: 'https://twitter.com/davincibot_pulv', + label: "Instagram", + href: "https://twitter.com/davincibot_pulv", }, { - label: 'LinkedIn', - href: 'https://www.linkedin.com/company/davincibot/', + label: "LinkedIn", + href: "https://www.linkedin.com/company/davincibot/", }, ], }, { - title: 'More', + title: "More", items: [ { - label: 'GitHub', - href: 'https://github.com/davincibot/docvb', + label: "GitHub", + href: "https://github.com/davincibot/docvb", }, { - label: 'davincibot.fr', - href: 'https://davincibot.fr', + label: "davincibot.fr", + href: "https://davincibot.fr", }, { - label: 'Documentation', - to: '/', + label: "Documentation", + to: "/", }, ], }, diff --git a/postcss.config.js b/postcss.config.js index b4bee66..de8ec71 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,6 +1,6 @@ module.exports = { plugins: { - '@tailwindcss/postcss': {}, + "@tailwindcss/postcss": {}, autoprefixer: {}, }, }; diff --git a/sidebars.ts b/sidebars.ts index 3498a89..cf952b5 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -1,4 +1,4 @@ -import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; +import type { SidebarsConfig } from "@docusaurus/plugin-content-docs"; // This runs in Node.js - Don't use client-side code here (browser APIs, JSX...) @@ -15,23 +15,22 @@ import type {SidebarsConfig} from '@docusaurus/plugin-content-docs'; const sidebars: SidebarsConfig = { tutorialSidebar: [ { - type: 'autogenerated', - dirName: 'tutorials', // generates sidebar from docs/ folder + type: "autogenerated", + dirName: "tutorials", // generates sidebar from docs/ folder }, ], docSidebar: [ { - type: 'autogenerated', - dirName: 'mini-projects', + type: "autogenerated", + dirName: "mini-projects", }, ], cdrSidebar: [ { - type: 'autogenerated', - dirName: 'cdr', + type: "autogenerated", + dirName: "cdr", }, ], }; export default sidebars; - diff --git a/src/components/DownloadButton/README.md b/src/components/DownloadButton/README.md index 5b74542..9d51542 100644 --- a/src/components/DownloadButton/README.md +++ b/src/components/DownloadButton/README.md @@ -23,9 +23,9 @@ import DownloadButton from '@site/src/components/DownloadButton'; Télécharger le fichier - @@ -73,9 +73,11 @@ import DownloadGroup from '@site/src/components/DownloadGroup'; ## Variantes de boutons ### Primary (Bleu) + Utilisé pour les fichiers principaux ou importants. ### Secondary (Gris) + Utilisé pour les fichiers secondaires ou optionnels. ## Responsive diff --git a/src/components/DownloadButton/index.tsx b/src/components/DownloadButton/index.tsx index e86a6e7..dd29d6b 100644 --- a/src/components/DownloadButton/index.tsx +++ b/src/components/DownloadButton/index.tsx @@ -1,18 +1,18 @@ -import React from 'react'; -import styles from './styles.module.css'; +import React from "react"; +import styles from "./styles.module.css"; interface DownloadButtonProps { href: string; children: React.ReactNode; - variant?: 'primary' | 'secondary'; - size?: 'sm' | 'md' | 'lg'; + variant?: "primary" | "secondary"; + size?: "sm" | "md" | "lg"; icon?: string; } export default function DownloadButton({ href, children, - size = 'lg', + size = "lg", icon, }: DownloadButtonProps): React.JSX.Element { const buttonClass = `button button--primary button--${size}`; diff --git a/src/components/DownloadButton/styles.module.css b/src/components/DownloadButton/styles.module.css index e9a7042..f39b28b 100644 --- a/src/components/DownloadButton/styles.module.css +++ b/src/components/DownloadButton/styles.module.css @@ -1,41 +1,39 @@ .downloadButton { - display: inline-flex; - align-items: center; - gap: 0.25rem; - text-decoration: none; - transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; - margin: 0; - color: white; - background-color: var(--ifm-color-primary); + display: inline-flex; + align-items: center; + gap: 0.25rem; + text-decoration: none; + transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out; + margin: 0; + color: white; + background-color: var(--ifm-color-primary); } .downloadButton p { - margin: 0; - padding: 0; + margin: 0; + padding: 0; } .downloadButton:hover { - transform: translateY(-2px); - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); - color: white; - text-decoration: none; + transform: translateY(-2px); + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + color: white; + text-decoration: none; } - - .downloadButton:active { - transform: translateY(0); + transform: translateY(0); } .icon { - font-size: 1.2em; - line-height: 1; + font-size: 1.2em; + line-height: 1; } @media (max-width: 768px) { - .downloadButton { - width: 100%; - justify-content: center; - margin-right: 0; - } -} \ No newline at end of file + .downloadButton { + width: 100%; + justify-content: center; + margin-right: 0; + } +} diff --git a/src/components/DownloadButton/styles.module.css.d.ts b/src/components/DownloadButton/styles.module.css.d.ts index 3d673e2..f2d12bb 100644 --- a/src/components/DownloadButton/styles.module.css.d.ts +++ b/src/components/DownloadButton/styles.module.css.d.ts @@ -1,4 +1,4 @@ -declare module '*.module.css' { +declare module "*.module.css" { const classes: { [key: string]: string }; export default classes; } diff --git a/src/components/DownloadGroup/index.tsx b/src/components/DownloadGroup/index.tsx index 127b0fd..d40cda0 100644 --- a/src/components/DownloadGroup/index.tsx +++ b/src/components/DownloadGroup/index.tsx @@ -1,5 +1,5 @@ -import React from 'react'; -import styles from './styles.module.css'; +import React from "react"; +import styles from "./styles.module.css"; interface DownloadGroupProps { children: React.ReactNode; diff --git a/src/components/DownloadGroup/styles.module.css.d.ts b/src/components/DownloadGroup/styles.module.css.d.ts index 3d673e2..f2d12bb 100644 --- a/src/components/DownloadGroup/styles.module.css.d.ts +++ b/src/components/DownloadGroup/styles.module.css.d.ts @@ -1,4 +1,4 @@ -declare module '*.module.css' { +declare module "*.module.css" { const classes: { [key: string]: string }; export default classes; } diff --git a/src/components/HomepageFeatures/index.tsx b/src/components/HomepageFeatures/index.tsx index f894715..dfe1ea5 100644 --- a/src/components/HomepageFeatures/index.tsx +++ b/src/components/HomepageFeatures/index.tsx @@ -1,15 +1,15 @@ -import type {ReactNode} from 'react'; -import Heading from '@theme/Heading'; +import Heading from "@theme/Heading"; +import type { ReactNode } from "react"; type FeatureItem = { title: string; - Svg: React.ComponentType>; + Svg: React.ComponentType>; description: ReactNode; }; const FeatureList: FeatureItem[] = []; -function Feature({title, Svg, description}: FeatureItem) { +function Feature({ title, Svg, description }: FeatureItem) { return (
diff --git a/src/components/TutorialShowcase/index.tsx b/src/components/TutorialShowcase/index.tsx index c10698a..09c9256 100644 --- a/src/components/TutorialShowcase/index.tsx +++ b/src/components/TutorialShowcase/index.tsx @@ -1,6 +1,6 @@ -import type {ReactNode} from 'react'; -import Link from '@docusaurus/Link'; -import Heading from '@theme/Heading'; +import Link from "@docusaurus/Link"; +import Heading from "@theme/Heading"; +import type { ReactNode } from "react"; type TutorialItem = { title: string; @@ -12,59 +12,73 @@ type TutorialItem = { const TutorialList: TutorialItem[] = [ { - title: 'Create a Document', - description: 'Learn how to create your first Markdown document and organize content with sidebars.', - link: '/docs/tutorial-basics/create-a-document', - icon: '📄', - color: 'blue' + title: "Create a Document", + description: + "Learn how to create your first Markdown document and organize content with sidebars.", + link: "/docs/tutorial-basics/create-a-document", + icon: "📄", + color: "blue", }, { - title: 'Create a Page', - description: 'Build custom React pages and create unique layouts for your documentation site.', - link: '/docs/tutorial-basics/create-a-page', - icon: '🎨', - color: 'purple' + title: "Create a Page", + description: + "Build custom React pages and create unique layouts for your documentation site.", + link: "/docs/tutorial-basics/create-a-page", + icon: "🎨", + color: "purple", }, { - title: 'Create a Blog Post', - description: 'Start blogging with Docusaurus and engage your community with regular updates.', - link: '/docs/tutorial-basics/create-a-blog-post', - icon: '✍️', - color: 'green' + title: "Create a Blog Post", + description: + "Start blogging with Docusaurus and engage your community with regular updates.", + link: "/docs/tutorial-basics/create-a-blog-post", + icon: "✍️", + color: "green", }, { - title: 'Markdown Features', - description: 'Discover advanced Markdown features, code blocks, and interactive elements.', - link: '/docs/tutorial-basics/markdown-features', - icon: '⚡', - color: 'orange' + title: "Markdown Features", + description: + "Discover advanced Markdown features, code blocks, and interactive elements.", + link: "/docs/tutorial-basics/markdown-features", + icon: "⚡", + color: "orange", }, { - title: 'Deploy Your Site', - description: 'Learn how to deploy your documentation to production with various hosting options.', - link: '/docs/tutorial-basics/deploy-your-site', - icon: '🚀', - color: 'red' + title: "Deploy Your Site", + description: + "Learn how to deploy your documentation to production with various hosting options.", + link: "/docs/tutorial-basics/deploy-your-site", + icon: "🚀", + color: "red", }, { - title: 'Translate Your Site', - description: 'Localize your documentation for a global audience with Docusaurus i18n support.', - link: '/docs/tutorial-extras/translate-your-site', - icon: '🌐', - color: 'teal' + title: "Translate Your Site", + description: + "Localize your documentation for a global audience with Docusaurus i18n support.", + link: "/docs/tutorial-extras/translate-your-site", + icon: "🌐", + color: "teal", }, ]; -function TutorialCard({title, description, link, icon, color}: TutorialItem) { +function TutorialCard({ title, description, link, icon, color }: TutorialItem) { return ( - +
{icon}
- + {title} -

{description}

+

+ {description} +

diff --git a/src/components/index.ts b/src/components/index.ts index b94a0a3..75b2d8c 100644 --- a/src/components/index.ts +++ b/src/components/index.ts @@ -1,2 +1,2 @@ -export { default as DownloadButton } from './DownloadButton'; -export { default as DownloadGroup } from './DownloadGroup'; +export { default as DownloadButton } from "./DownloadButton"; +export { default as DownloadGroup } from "./DownloadGroup"; diff --git a/src/css/custom.css b/src/css/custom.css index 55c2c3b..fff5c29 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -6,34 +6,40 @@ * Enhanced Glassmorphism Design with DaVinci Bot Colors */ -@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap'); +@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap"); /* DaVinci Bot Color Palette with Glassmorphism */ :root { - --ifm-font-family-base: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; - + --ifm-font-family-base: + "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif; + /* DaVinci Bot Color Palette */ - --ifm-color-primary: #0958EF; - --ifm-color-primary-dark: #084ED4; - --ifm-color-primary-darker: #0744BA; - --ifm-color-primary-darkest: #063B9F; - --ifm-color-primary-light: #246BF1; - --ifm-color-primary-lighter: #407DF3; - --ifm-color-primary-lightest: #5B90F4; - + --ifm-color-primary: #0958ef; + --ifm-color-primary-dark: #084ed4; + --ifm-color-primary-darker: #0744ba; + --ifm-color-primary-darkest: #063b9f; + --ifm-color-primary-light: #246bf1; + --ifm-color-primary-lighter: #407df3; + --ifm-color-primary-lightest: #5b90f4; + /* Custom DaVinci Colors */ --dv-blue-gray: #575e7d; - --dv-light-blue: #D9E0FF; - --dv-blue-peps: #0232FF; - --dv-main-blue: #0232FF; + --dv-light-blue: #d9e0ff; + --dv-blue-peps: #0232ff; + --dv-main-blue: #0232ff; --dv-dark-blue: #010128; - --dv-dark-blue-bg-sidebar: #D9E0FFf2; - + --dv-dark-blue-bg-sidebar: #d9e0fff2; + /* Glassmorphism Background System */ - --ifm-background-color: linear-gradient(135deg, #f0f4ff 0%, #e8f0ff 50%, #dae6ff 100%); + --ifm-background-color: linear-gradient( + 135deg, + #f0f4ff 0%, + #e8f0ff 50%, + #dae6ff 100% + ); --ifm-background-surface-color: rgba(217, 224, 255, 0.3); --ifm-color-content-secondary: #575e7d; - + /* Enhanced Glassmorphism Variables */ --glass-bg-primary: rgba(255, 255, 255, 0.25); --glass-bg-secondary: rgba(217, 224, 255, 0.6); @@ -42,12 +48,12 @@ --glass-shadow: 0 8px 32px rgba(9, 88, 239, 0.15); --glass-shadow-hover: 0 20px 60px rgba(9, 88, 239, 0.25); --glass-backdrop: blur(20px); - + /* Ultra-rounded corners */ --ifm-border-radius: 25px; --ifm-card-border-radius: 25px; --ifm-button-border-radius: 25px; - + /* Typography improvements */ --ifm-font-weight-light: 300; --ifm-font-weight-normal: 400; @@ -55,39 +61,43 @@ --ifm-font-weight-bold: 700; --ifm-font-weight-black: 900; --ifm-line-height-base: 1.6; - + /* Enhanced shadows with glassmorphism */ --ifm-box-shadow: var(--glass-shadow); --ifm-box-shadow-lg: var(--glass-shadow-hover); - + --docusaurus-highlighted-code-line-bg: rgba(9, 88, 239, 0.1); } /* Dark Theme Variables */ -[data-theme='dark'] { - --ifm-color-primary: #76A2F6; - --ifm-color-primary-dark: #5B90F4; - --ifm-color-primary-darker: #407DF3; - --ifm-color-primary-darkest: #246BF1; - --ifm-color-primary-light: #92B5F8; - --ifm-color-primary-lighter: #B3C2FF; - --ifm-color-primary-lightest: #D9E0FF; - - --ifm-background-color: linear-gradient(135deg, #010128 0%, #1a1a2e 50%, #16213e 100%); +[data-theme="dark"] { + --ifm-color-primary: #76a2f6; + --ifm-color-primary-dark: #5b90f4; + --ifm-color-primary-darker: #407df3; + --ifm-color-primary-darkest: #246bf1; + --ifm-color-primary-light: #92b5f8; + --ifm-color-primary-lighter: #b3c2ff; + --ifm-color-primary-lightest: #d9e0ff; + + --ifm-background-color: linear-gradient( + 135deg, + #010128 0%, + #1a1a2e 50%, + #16213e 100% + ); --ifm-background-surface-color: rgba(130, 138, 182, 0.15); - --ifm-color-content-secondary: #B3C2FF; - + --ifm-color-content-secondary: #b3c2ff; + --glass-bg-primary: rgba(1, 1, 40, 0.3); --glass-bg-secondary: rgba(130, 138, 182, 0.15); --glass-border: rgba(179, 194, 255, 0.2); --glass-border-hover: rgba(118, 162, 246, 0.4); --glass-shadow: 0 8px 32px rgba(1, 1, 40, 0.4); --glass-shadow-hover: 0 20px 60px rgba(1, 1, 40, 0.6); - - --docusaurus-highlighted-code-line-bg: rgba(118, 162, 246, 0.2); - --dv-dark-blue-bg-sidebar: rgba(1, 1, 40, 0.95); + --docusaurus-highlighted-code-line-bg: rgba(118, 162, 246, 0.2); + --dv-dark-blue-bg-sidebar: rgba(1, 1, 40, 0.95); } /* Global Enhancements */ @@ -96,7 +106,9 @@ html { } body { - font-feature-settings: 'rlig' 1, 'calt' 1; + font-feature-settings: + "rlig" 1, + "calt" 1; background: var(--ifm-background-color); background-attachment: fixed; } @@ -141,7 +153,6 @@ body { backdrop-filter: var(--glass-backdrop); border-right: 1px solid var(--glass-border); border-radius: 0 32px 32px 0; - margin: 1rem 0; box-shadow: var(--glass-shadow); /* Clip inner hover backgrounds/shadows to the rounded edge */ overflow: hidden; @@ -150,7 +161,6 @@ body { .menu { background: transparent; - padding: 1.5rem; } .menu__link { @@ -233,13 +243,18 @@ body { } .button::before { - content: ''; + content: ""; position: absolute; top: 0; left: -100%; width: 100%; height: 100%; - background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent); + background: linear-gradient( + 90deg, + transparent, + rgba(255, 255, 255, 0.2), + transparent + ); transition: left 0.5s; } @@ -248,7 +263,11 @@ body { } .button--primary { - background: linear-gradient(135deg, var(--dv-main-blue) 0%, var(--ifm-color-primary) 100%); + background: linear-gradient( + 135deg, + var(--dv-main-blue) 0%, + var(--ifm-color-primary) 100% + ); box-shadow: 0 8px 32px rgba(2, 50, 255, 0.3); color: rgb(39, 39, 39); } @@ -320,8 +339,6 @@ pre[class*="language-"] { box-shadow: var(--glass-shadow); } - - /* Enhanced Admonitions */ .alert { border-radius: var(--ifm-card-border-radius); @@ -376,7 +393,11 @@ table { } .pagination__item--active .pagination__link { - background: linear-gradient(135deg, var(--dv-main-blue) 0%, var(--ifm-color-primary) 100%); + background: linear-gradient( + 135deg, + var(--dv-main-blue) 0%, + var(--ifm-color-primary) 100% + ); border-radius: var(--ifm-button-border-radius); border: none; } @@ -407,12 +428,20 @@ table { } ::-webkit-scrollbar-thumb { - background: linear-gradient(135deg, var(--ifm-color-primary), var(--ifm-color-primary-light)); + background: linear-gradient( + 135deg, + var(--ifm-color-primary), + var(--ifm-color-primary-light) + ); border-radius: 10px; } ::-webkit-scrollbar-thumb:hover { - background: linear-gradient(135deg, var(--ifm-color-primary-dark), var(--ifm-color-primary)); + background: linear-gradient( + 135deg, + var(--ifm-color-primary-dark), + var(--ifm-color-primary) + ); } /* Enhanced focus states */ @@ -454,7 +483,12 @@ table { } /* Enhanced heading styles */ -h1, h2, h3, h4, h5, h6 { +h1, +h2, +h3, +h4, +h5, +h6 { font-weight: var(--ifm-font-weight-bold); letter-spacing: -0.025em; } @@ -462,7 +496,11 @@ h1, h2, h3, h4, h5, h6 { h1 { font-size: 3.5rem; line-height: 1.1; - background: linear-gradient(135deg, var(--ifm-color-primary) 0%, var(--ifm-color-primary-light) 100%); + background: linear-gradient( + 135deg, + var(--ifm-color-primary) 0%, + var(--ifm-color-primary-light) 100% + ); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; @@ -502,18 +540,32 @@ a:hover { } @keyframes shimmer { - 0% { transform: translateX(-100%) translateY(-100%) rotate(45deg); } - 100% { transform: translateX(100%) translateY(100%) rotate(45deg); } + 0% { + transform: translateX(-100%) translateY(-100%) rotate(45deg); + } + 100% { + transform: translateX(100%) translateY(100%) rotate(45deg); + } } @keyframes float { - 0%, 100% { transform: translateY(0px); } - 50% { transform: translateY(-10px); } + 0%, + 100% { + transform: translateY(0px); + } + 50% { + transform: translateY(-10px); + } } @keyframes pulse { - 0%, 100% { opacity: 1; } - 50% { opacity: 0.5; } + 0%, + 100% { + opacity: 1; + } + 50% { + opacity: 0.5; + } } /* Loading animation */ @@ -531,17 +583,17 @@ a:hover { .navbar { border-radius: 0 0 24px 24px; } - + .theme-doc-sidebar-container { border-radius: 0; margin: 0; } - + .markdown { padding: 1.5rem; margin: 1rem 0; } - + h1 { font-size: 2.5rem; } @@ -551,11 +603,11 @@ a:hover { .button { padding: 0.875rem 2rem; } - + .markdown { padding: 1rem; } - + h1 { font-size: 2rem; } diff --git a/src/pages/index.tsx b/src/pages/index.tsx index f8b6159..dedeba8 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,4 +1,4 @@ -import {Redirect} from '@docusaurus/router'; +import { Redirect } from "@docusaurus/router"; export default function Home() { return ; diff --git a/tailwind.config.js b/tailwind.config.js index f4cdffb..7560d72 100644 --- a/tailwind.config.js +++ b/tailwind.config.js @@ -4,8 +4,8 @@ module.exports = { preflight: false, block: false, }, - darkMode: ['class', '[data-theme="dark"]'], - content: ['./src/**/*.{js,jsx,ts,tsx,md,mdx}'], + darkMode: ["class", '[data-theme="dark"]'], + content: ["./src/**/*.{js,jsx,ts,tsx,md,mdx}"], theme: { extend: {}, }, diff --git a/tsconfig.json b/tsconfig.json index 920d7a6..0a13470 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,7 +2,9 @@ // This file is not used in compilation. It is here just for a nice editor experience. "extends": "@docusaurus/tsconfig", "compilerOptions": { - "baseUrl": "." + "baseUrl": ".", + "jsx": "react", + "esModuleInterop": true }, "exclude": [".docusaurus", "build"] }