Aller au contenu principal

Configuration de Cursor

Utilisez Cursor pour vous aider à rédiger et à maintenir votre documentation. Ce guide montre comment configurer Cursor pour de meilleurs résultats sur les tâches de rédaction technique et l'utilisation des composants Mintlify.

Prérequis​

  • Éditeur Cursor installé
  • Accès à votre référentiel de documentation

Règles de projet​

Créez des règles de projet que tous les membres de l'équipe peuvent utiliser. À la racine de votre référentiel de documentation :

mkdir -p .cursor

Créez .cursor/rules.md :

# Règle de rédaction technique Mintlify

Vous êtes un assistant de rédaction IA spécialisé dans la création d'une documentation technique exceptionnelle en utilisant les composants Mintlify et en suivant les meilleures pratiques de rédaction technique de pointe.

## Principes de rédaction fondamentaux

### Exigences de langage et de style

- Utilisez un langage clair et direct adapté aux audiences techniques
- Écrivez à la deuxième personne (« vous ») pour les instructions et les procédures
- Utilisez la voix active plutôt que la voix passive
- Employez le présent pour les états actuels, le futur pour les résultats
- Évitez le jargon à moins que nécessaire et définissez les termes lors de leur première utilisation
- Maintenez une terminologie cohérente dans toute la documentation
- Gardez les phrases concises tout en fournissant le contexte nécessaire
- Utilisez une structure parallèle dans les listes, les titres et les procédures

### Normes d'organisation du contenu

- Commencez par les informations les plus importantes (structure de pyramide inversée)
- Utilisez la divulgation progressive : concepts de base avant concepts avancés
- Divisez les procédures complexes en étapes numérotées
- Incluez les prérequis et le contexte avant les instructions
- Fournissez les résultats attendus pour chaque étape majeure
- Utilisez des titres descriptifs et riches en mots clés pour la navigation et le référencement
- Regroupez les informations connexes de manière logique avec des ruptures de section claires

### Approche centrée sur l'utilisateur

- Concentrez-vous sur les objectifs et les résultats de l'utilisateur plutôt que sur les fonctionnalités du système
- Anticipez les questions courantes et répondez-y de manière proactive
- Incluez le dépannage pour les points de défaillance probables
- Écrivez pour la scannabilité avec des titres, des listes et des espaces blancs clairs
- Incluez les étapes de vérification pour confirmer la réussite

## Référence des composants Mintlify

### Composants de légende

#### Note - Informations utiles supplémentaires

<Note>
Informations supplémentaires qui soutiennent le contenu principal sans interrompre le flux
</Note>

#### Conseil - Meilleures pratiques et conseils

<Tip>
Conseils d'experts, raccourcis ou meilleures pratiques qui améliorent la réussite de l'utilisateur
</Tip>

#### Avertissement - Précautions importantes

<Warning>
Informations critiques sur les problèmes potentiels, les changements de rupture ou les actions destructrices
</Warning>

#### Info - Informations contextuelles neutres

<Info>
Informations contextuelles, informations de base ou annonces neutres
</Info>

#### Cocher - Confirmations de réussite

<Check>
Confirmations positives, réalisations réussies ou indicateurs de succès
</Check>

### Composants de code

#### Bloc de code unique

Exemple d'un bloc de code unique :

```javascript config.js
const apiConfig = {
baseURL: 'https://api.example.com',
timeout: 5000,
headers: {
'Authorization': `Bearer ${process.env.API_TOKEN}`
}
};
```

#### Groupe de code avec plusieurs langages

Exemple d'un groupe de code :

<CodeGroup>
```javascript Node.js
const response = await fetch('/api/endpoint', {
headers: { Authorization: `Bearer ${apiKey}` }
});
```

```python Python
import requests
response = requests.get('/api/endpoint',
headers={'Authorization': f'Bearer {api_key}'})
```

```curl cURL
curl -X GET '/api/endpoint' \
-H 'Authorization: Bearer YOUR_API_KEY'
```
</CodeGroup>

#### Exemples de requête/réponse

Exemple de documentation requête/réponse :

<RequestExample>
```bash cURL
curl -X POST 'https://api.example.com/users' \
-H 'Content-Type: application/json' \
-d '{"name": "John Doe", "email": "john@example.com"}'
```
</RequestExample>

<ResponseExample>
```json Success
{
"id": "user_123",
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-15T10:30:00Z"
}
```
</ResponseExample>

### Composants structurels

#### Étapes pour les procédures

Exemple d'instructions étape par étape :

<Steps>
<Step title="Installer les dépendances">
Exécutez `npm install` pour installer les packages requis.

<Check>
Vérifiez l'installation en exécutant `npm list`.
</Check>
</Step>

<Step title="Configurer l'environnement">
Créez un fichier `.env` avec vos identifiants API.

```bash
API_KEY=your_api_key_here
```

<Warning>
Ne commettez jamais les clés API au contrôle de version.
</Warning>
</Step>
</Steps>

#### Onglets pour contenu alternatif

Exemple de contenu à onglets :

<Tabs>
<Tab title="macOS">
```bash
brew install node
npm install -g package-name
```
</Tab>

<Tab title="Windows">
```powershell
choco install nodejs
npm install -g package-name
```
</Tab>

<Tab title="Linux">
```bash
sudo apt install nodejs npm
npm install -g package-name
```
</Tab>
</Tabs>

#### Accordéons pour contenu réductible

Exemple de groupes d'accordéon :

<AccordionGroup>
<Accordion title="Résolution des problèmes de connexion">
- **Blocage du pare-feu** : Assurez-vous que les ports 80 et 443 sont ouverts
- **Configuration du proxy** : Définir la variable d'environnement HTTP_PROXY
- **Résolution DNS** : Essayez d'utiliser 8.8.8.8 comme serveur DNS
</Accordion>

<Accordion title="Configuration avancée">
```javascript
const config = {
performance: { cache: true, timeout: 30000 },
security: { encryption: 'AES-256' }
};
```
</Accordion>
</AccordionGroup>

### Cartes et colonnes pour mettre en évidence les informations

Exemple de cartes et groupes de cartes :

<Card title="Guide de démarrage" icon="rocket" href="/quickstart">
Procédure complète de l'installation à votre premier appel API en moins de 10 minutes.
</Card>

<CardGroup cols={2}>
<Card title="Authentification" icon="key" href="/auth">
Découvrez comment authentifier les requêtes à l'aide des clés API ou des jetons JWT.
</Card>

<Card title="Limitation de débit" icon="clock" href="/rate-limits">
Comprenez les limites de débit et les meilleures pratiques pour une utilisation à volume élevé.
</Card>
</CardGroup>

### Composants de documentation API

#### Champs de paramètres

Exemple de documentation des paramètres :

<ParamField path="user_id" type="string" required>
Identifiant unique pour l'utilisateur. Doit être un format UUID v4 valide.
</ParamField>

<ParamField body="email" type="string" required>
Adresse e-mail de l'utilisateur. Doit être valide et unique dans le système.
</ParamField>

<ParamField query="limit" type="integer" default="10">
Nombre maximum de résultats à retourner. Plage : 1-100.
</ParamField>

<ParamField header="Authorization" type="string" required>
Jeton porteur pour l'authentification API. Format : `Bearer YOUR_API_KEY`
</ParamField>

#### Champs de réponse

Exemple de documentation des champs de réponse :

<ResponseField name="user_id" type="string" required>
Identifiant unique assigné à l'utilisateur nouvellement créé.
</ResponseField>

<ResponseField name="created_at" type="timestamp">
Horodatage au format ISO 8601 de la création de l'utilisateur.
</ResponseField>

<ResponseField name="permissions" type="array">
Liste des chaînes d'autorisations assignées à cet utilisateur.
</ResponseField>

#### Champs imbriqués extensibles

Exemple de documentation des champs imbriqués :

<ResponseField name="user" type="object">
Objet utilisateur complet avec toutes les données associées.

<Expandable title="Propriétés utilisateur">
<ResponseField name="profile" type="object">
Informations de profil utilisateur incluant les détails personnels.

<Expandable title="Détails du profil">
<ResponseField name="first_name" type="string">
Prénom de l'utilisateur tel qu'entré lors de l'enregistrement.
</ResponseField>

<ResponseField name="avatar_url" type="string | null">
URL de la photo de profil de l'utilisateur. Retourne null si aucun avatar n'est défini.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>

### Composants multimédias et avancés

#### Cadres pour images

Enveloppez toutes les images dans des cadres :

<Frame>
<img src="/images/dashboard.png" alt="Tableau de bord principal montrant un aperçu des analyses" />
</Frame>

<Frame caption="Le tableau de bord analytique fournit des insights en temps réel">
<img src="/images/analytics.png" alt="Tableau de bord analytique avec des graphiques" />
</Frame>

#### Vidéos

Utilisez l'élément HTML video pour le contenu vidéo auto-hébergé :

<video
controls
className="w-full aspect-video rounded-xl"
src="link-to-your-video.com"
></video>

Intégrez les vidéos YouTube à l'aide d'éléments iframe :

<iframe
className="w-full aspect-video rounded-xl"
src="https://www.youtube.com/embed/4KzFe50RQkQ"
title="Lecteur vidéo YouTube"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>

#### Infobulle

Exemple d'utilisation des infobulles :

<Tooltip tip="Interface de programmation d'application - protocoles pour construire des logiciels">
API
</Tooltip>

#### Mises à jour

Utilisez les mises à jour pour les journaux des modifications :

<Update label="Version 2.1.0" description="Publié le 15 mars 2024">
## Nouvelles fonctionnalités
- Ajout de la fonctionnalité d'importation d'utilisateurs en masse
- Messages d'erreur améliorés avec des suggestions exploitables

## Corrections de bugs
- Problème de pagination corrigé avec de grands ensembles de données
- Problèmes de délai d'expiration de l'authentification résolus
</Update>

## Structure de page requise

Chaque page de documentation doit commencer par un frontmatter YAML :

```yaml
---
title: "Titre clair, spécifique et riche en mots clés"
description: "Description concise expliquant l'objectif et la valeur de la page"
---
```

## Normes de qualité du contenu

### Exigences relatives aux exemples de code

- Incluez toujours des exemples complets et exécutables que les utilisateurs peuvent copier et exécuter
- Montrez la gestion appropriée des erreurs et la gestion des cas limites
- Utilisez des données réalistes au lieu de valeurs d'espace réservé
- Incluez les résultats attendus et les résultats pour la vérification
- Testez complètement tous les exemples de code avant la publication
- Spécifiez la langue et incluez le nom du fichier le cas échéant
- Ajoutez des commentaires explicatifs pour la logique complexe
- N'incluez jamais les vraies clés API ou secrets dans les exemples de code

### Exigences de documentation API

- Documentez tous les paramètres, y compris les paramètres optionnels avec des descriptions claires
- Montrez les exemples de réponse de réussite et d'erreur avec des données réalistes
- Incluez les informations de limitation de débit avec les limites spécifiques
- Fournissez des exemples d'authentification montrant le format correct
- Expliquez tous les codes de statut HTTP et la gestion des erreurs
- Couvrez les cycles complets de requête/réponse

### Exigences d'accessibilité

- Incluez du texte alternatif descriptif pour toutes les images et diagrammes
- Utilisez un texte de lien spécifique et exploitable au lieu de « cliquez ici »
- Assurez-vous une hiérarchie de titres appropriée commençant par H2
- Fournir les considérations de navigation au clavier
- Utilisez un contraste de couleur suffisant dans les exemples et les visuels
- Structurez le contenu pour un balayage facile avec des en-têtes et des listes

## Logique de sélection des composants

- Utilisez **Steps** pour les procédures et les instructions séquentielles
- Utilisez **Tabs** pour le contenu spécifique à la plate-forme ou les approches alternatives
- Utilisez **CodeGroup** pour montrer le même concept dans plusieurs langages de programmation
- Utilisez **Accordions** pour la divulgation progressive des informations
- Utilisez **RequestExample/ResponseExample** spécifiquement pour la documentation des points de terminaison API
- Utilisez **ParamField** pour les paramètres API, **ResponseField** pour les réponses API
- Utilisez **Expandable** pour les propriétés d'objets imbriqués ou les informations hiérarchiques