Aperçu du CLI
Prévisualisez la documentation en local, validez la configuration, détectez les liens rompus et migrez depuis d'autres plateformes avec le CLI Jamdesk.
Le CLI Jamdesk vous permet de prévisualiser la documentation en local, de valider la configuration, de détecter les liens rompus et de migrer depuis d'autres plateformes. Il est open-source sous licence Apache License 2.0.
Installation
Installez-le globalement depuis npm pour utiliser jamdesk depuis n'importe où :
npm install -g jamdeskAprès l'installation, vérifiez que tout fonctionne :
jamdesk --version
Prérequis
- Node.js v20.0.0 ou supérieur
- npm v8 ou supérieur (recommandé)
Démarrage rapide
Créez un nouveau projet de documentation :
jamdesk init my-docs
cd my-docsLancez le serveur de développement local avec rechargement à chaud :
jamdesk devVotre documentation sera disponible à l'adresse http://localhost:3000/docs
Vérifiez les erreurs de configuration, les liens rompus et l'orthographe :
jamdesk validate
jamdesk broken-links
jamdesk fix --dry-run
jamdesk fix
jamdesk spellcheckCommandes
Exécutez jamdesk <command> --help pour obtenir des informations détaillées sur n'importe quelle commande.
Développement
Démarre le serveur de développement local avec rechargement à chaud.
jamdesk dev
jamdesk dev --port 3001Fonctionnalités :
- Validation automatique au démarrage (schéma docs.json, syntaxe MDX et spécifications OpenAPI référencées ; une spécification invalide arrête le serveur pour que vous le remarquiez avant de déployer)
- Rechargement à chaud lors des modifications de fichiers MDX
- Reconstruction automatique de la navigation lors des modifications de docs.json
- CSS personnalisé (
style.css) rechargé lors de l'actualisation du navigateur - Fonctionnalité de recherche complète
- Tous les thèmes et composants disponibles
Options :
| Flag | Description |
|---|---|
-p, --port <port> | Port sur lequel s'exécuter (par défaut : 3000) |
-v, --verbose | Activer la sortie détaillée |
Crée un nouveau projet de documentation.
jamdesk init # Interactive mode
jamdesk init my-docs # Create in new directoryCela crée un nouveau projet avec :
- Un fichier de configuration
docs.json - Des pages MDX d'exemple
- Une structure de dossiers recommandée
Authentification
Connectez-vous à Jamdesk via votre navigateur. Requis avant de déployer.
jamdesk loginOuvre le dashboard Jamdesk dans votre navigateur pour l'authentification. Les identifiants sont stockés localement dans ~/.jamdeskrc.
Efface les identifiants stockés.
jamdesk logoutAffiche l'utilisateur actuellement authentifié et vérifie que votre session est valide.
jamdesk whoamiValidation
Valide votre configuration docs.json, la syntaxe MDX et les spécifications OpenAPI.
jamdesk validate
jamdesk validate --skip-mdxVérifie :
- La syntaxe JSON valide dans docs.json
- Les champs requis (name, navigation)
- Les valeurs de thème valides
- Les erreurs de syntaxe MDX (par exemple, des caractères
<non échappés) - La validation des spécifications OpenAPI (si configurées)
- La conformité au schéma
Options :
| Flag | Description |
|---|---|
--skip-mdx | Ignorer la validation de la syntaxe MDX |
-v, --verbose | Afficher la sortie de validation détaillée |
Exécutez cette commande avant de déployer pour détecter les erreurs rapidement.
Analyse votre documentation à la recherche de liens internes rompus.
jamdesk broken-linksExemple de sortie :
docs/getting-started.mdx:15 - /docs/quikstart
Did you mean: /docs/quickstart
Found 1 broken link in 45 files.Détecte les liens vers des pages manquantes et les fautes de frappe. Consultez Liens et navigation pour plus de détails.
Corrige automatiquement les avertissements de liens internes rompus dont la cible est sans ambiguïté. Gère deux catégories :
- Ancres avec faute de frappe : un fragment comme
#instalationqui devrait clairement être#installation - Dérive d'ancre inter-locale : une page traduite a renommé ses titres, mais les liens de cette locale pointent encore vers l'ancien fragment anglais
# Preview what would change without touching any files
jamdesk fix --dry-run
# Apply fixes (prompts for confirmation)
jamdesk fixExemple de sortie en dry-run :
Planned fixes:
fr/ai/overview.mdx:9
/fr/ai/selectors#ai-strategies → /fr/ai/selectors#stratégies-ia
(dry run — no files written)Une correction n'est écrite que lorsque l'ancre corrigée correspond à un titre réel dans la page cible. Les cas ambigus sont laissés pour une révision manuelle.
Options :
| Flag | Description |
|---|---|
--dry-run | Prévisualiser les corrections prévues sans écrire de fichiers |
-y, --yes | Appliquer les corrections sans invite de confirmation |
--types <list> | Liste séparée par des virgules des types d'avertissements à corriger (par défaut : tous ceux pris en charge) |
Vérifie l'orthographe de votre documentation.
jamdesk spellcheckExemple de sortie :
getting-started.mdx:14 - "recieve"
└─ Did you mean: receive
Found 3 misspellings across 24 pages.
Tip: Run "jamdesk spellcheck --fix" to interactively fix or ignore words.Utilise un dictionnaire anglais avec plus de 150 termes techniques intégrés (API, GraphQL, Kubernetes, React, etc.) afin que le jargon courant ne soit pas signalé. Ignore les blocs de code, le code en ligne, le frontmatter, le JSX, les URLs et les chemins de fichiers. Actuellement en anglais uniquement ; la prise en charge d'un dictionnaire multilingue est prévue.
Options :
| Flag | Description |
|---|---|
--fix | Corriger interactivement les fautes ou les ajouter à la liste d'exclusion |
--json | Générer la sortie au format JSON (pour les pipelines CI) |
-v, --verbose | Afficher chaque fichier au fur et à mesure de la vérification |
Mode de correction interactif (--fix) parcourt chaque mot mal orthographié unique :
1/10 "recieve" — found in 3 files
intro.mdx:14, setup.mdx:7, guide.mdx:22
? What do you want to do?
❯ Fix → receive (recommended)
Fix → relieve
Ignore in the future (add to docs.json)
Skip- Fix remplace le mot par une suggestion dans tous les fichiers (sans risque pour le code, il ne modifie donc pas les blocs de code ni les attributs JSX). Jusqu'à 3 suggestions sont affichées, la meilleure correspondance étant marquée comme recommandée.
- Ignore ajoute le mot à
spellcheck.ignoredans votre docs.json afin qu'il ne soit plus signalé - Skip ne fait rien pour cette exécution
Les changements sont prévisualisés et confirmés avant d'être appliqués.
Liste d'exclusion personnalisée : ajoutez des termes spécifiques à votre projet dans votre docs.json :
{
"spellcheck": {
"ignore": ["YourProduct", "kubectl", "Terraform"]
}
}Le nom de votre projet issu de docs.json est automatiquement ignoré.
Valide un unique fichier de spécification OpenAPI.
jamdesk openapi-check openapi.yaml
jamdesk openapi-check api/spec.jsonValide :
- La syntaxe YAML/JSON valide
- La conformité au schéma OpenAPI 3.x
- Les définitions d'endpoint
- La résolution correcte des références
$ref
Vos spécifications OpenAPI sont validées à trois endroits. jamdesk dev s'arrête au démarrage si une spécification référencée est invalide, et jamdesk validate / jamdesk openapi-check vérifient les spécifications à la demande. Lorsque vous déployez, le build cloud valide également vos spécifications référencées, mais il s'agit alors d'un avertissement non bloquant : le reste de votre documentation est quand même publié, et vous êtes informé précisément de ce qui ne va pas (une erreur d'analyse avec ligne et colonne, une $ref non résolue ou un operationId en double) par e-mail et dans la liste des builds du dashboard. Corrigez la spécification et poussez à nouveau pour lever l'avertissement.
Gestion des fichiers
Renomme une page et met automatiquement à jour toutes les références.
jamdesk rename docs/old-name.mdx docs/new-name.mdxCela va :
- Renommer le fichier
- Mettre à jour la navigation dans docs.json
- Mettre à jour les liens dans tous les autres fichiers MDX
- Mettre à jour les références aux snippets
Utilisez cette commande plutôt qu'un renommage manuel pour garder toutes les références synchronisées.
Migration
Migre la documentation depuis Mintlify vers Jamdesk.
jamdesk migrateDétecte votre configuration Mintlify et la convertit au format Jamdesk. Dans la même opération, elle renomme les composants dépréciés (par exemple CardGroup → Columns), déplace les fichiers MDX de snippets orphelins vers /snippets/ et réécrit les imports relatifs au parent, extrait les composants en ligne utilisant des hooks React vers /snippets/<name>.tsx avec 'use client', et corrige automatiquement les problèmes mécaniques de syntaxe MDX. Idempotente, vous pouvez donc la relancer en toute sécurité.
Déploiement
Téléverse votre documentation et déclenche un build directement depuis le terminal.
jamdesk deploy
jamdesk deploy --detach
jamdesk deploy --full-rebuildLa progression s'affiche en direct à mesure que chaque phase du build se termine. Également disponible sous la forme jamdesk push.
| Flag | Description |
|---|---|
--detach | Mettre en file d'attente et quitter immédiatement |
--full-rebuild | Forcer un rebuild complet (sans cache) |
--project <id> | Déployer vers un projet spécifique |
--allow-empty | Autoriser le déploiement avec zéro page de contenu .mdx (refusé par défaut) |
Génère et déploie un Cloudflare Worker qui redirige /docs sur votre propre domaine vers votre site Jamdesk.
jamdesk deploy-proxy cloudflare
jamdesk deploy-proxy cloudflare --slug myproject --domain example.com --skip-deploy --yesInteractif par défaut : il vérifie Wrangler, valide votre compte Cloudflare, détecte automatiquement votre slug depuis docs.json, génère les fichiers du Worker, et effectue éventuellement le déploiement.
| Flag | Description |
|---|---|
--slug <slug> | Slug du projet Jamdesk |
--domain <domain> | Domaine cible (par exemple, example.com) |
--path <path> | Préfixe de chemin (par défaut : /docs) |
--output-dir <dir> | Répertoire de sortie (par défaut : cloudflare-worker/) |
--skip-deploy | Générer uniquement les fichiers, sans déployer |
--force | Écraser le répertoire existant sans demander de confirmation |
--yes | Ignorer toutes les invites de confirmation (mode CI) |
Maintenance
Vérifie votre environnement et diagnostique les problèmes.
jamdesk doctorVérifie :
- La version de Node.js (nécessite v20+)
- La version de npm
- L'existence et la validité de docs.json
- Le statut du cache ~/.jamdesk
- Les permissions d'écriture
Exécutez cette commande si vous rencontrez des problèmes avec le CLI.
Efface le répertoire de cache ~/.jamdesk.
jamdesk cleanCela supprime les dépendances mises en cache et les artefacts de build. Utilisez-le pour :
- Libérer de l'espace disque
- Résoudre les problèmes de cache corrompu
- Forcer une nouvelle installation des dépendances
Les dépendances seront réinstallées au prochain jamdesk dev.
Met à jour le CLI vers la dernière version.
jamdesk updateVous pouvez aussi mettre à jour manuellement :
npm update -g jamdeskConfiguration
Créez ~/.jamdeskrc pour définir les options par défaut :
{
"defaultPort": 3001,
"verbose": false,
"checkUpdates": true
}
| Option | Type | Défaut | Description |
|---|---|---|---|
defaultPort | number | 3000 | Port par défaut pour le serveur de développement |
verbose | boolean | false | Activer la sortie détaillée par défaut |
checkUpdates | boolean | true | Vérifier les mises à jour du CLI au démarrage |
Dépannage
Les fichiers MDX sont analysés comme du JSX, donc certains caractères ont une signification particulière.
Problème courant : le caractère < est interprété comme le début d'une balise JSX.
✗ Found 1 MDX syntax error(s)
getting-started.mdx:42
Unexpected character `5` (U+0035) before name
Fix: A < character is being parsed as JSX. Use < or rewriteSolutions :
- Utilisez
<pour un signe inférieur littéral :Values <50% are low - Réécrivez pour éviter le caractère :
"Below 50%"au lieu de"<50%" - Exécutez
jamdesk validatepour des messages d'erreur détaillés avec numéros de ligne
Assurez-vous d'être dans un répertoire contenant un fichier docs.json.
Solutions :
- Exécutez
jamdesk initpour créer un nouveau projet - Vérifiez que vous êtes dans le bon répertoire
- Vérifiez que le fichier est nommé exactement
docs.json(et nondoc.jsonou similaire)
Le serveur de développement peut échouer à démarrer pour plusieurs raisons.
Essayez ces étapes :
- Exécutez
jamdesk doctorpour vérifier votre environnement - Exécutez
jamdesk cleanpour vider le cache - Utilisez
jamdesk dev --verbosepour une sortie d'erreur détaillée - Vérifiez que Node.js v20+ est installé :
node --version
Le premier lancement installe les dépendances dans ~/.jamdesk/node_modules.
C'est normal et cela ne se produit qu'une seule fois. Les lancements suivants seront beaucoup plus rapides.
Un autre processus utilise le port par défaut.
Solutions :
# Use a different port
jamdesk dev --port 3001
# Or set a default in ~/.jamdeskrc
{ "defaultPort": 3001 }Vous n'avez peut-être pas les permissions d'écriture sur le répertoire de cache.
Solutions :
- Vérifiez les permissions sur
~/.jamdesk:ls -la ~/.jamdesk - Corrigez le propriétaire :
sudo chown -R $(whoami) ~/.jamdesk - Exécutez
jamdesk cleanet réessayez
Vous rencontrez toujours des problèmes ? Consultez le Guide de dépannage du CLI ou ouvrez un ticket sur GitHub.
