Utilizzare Cursor con Mintlify
- Le regole di progetto sono conservate nel repository della documentazione e condivise con il tuo team.
- Le regole utente si applicano al tuo ambiente personale di Cursor.
.cursor/rules
del repository della tua documentazione. Consulta la documentazione sulle regole di Cursor per le istruzioni di configurazione complete.
Regola di progetto di esempio
- Standard di scrittura: aggiorna le linee guida linguistiche per allinearle al tuo style guide.
- Pattern dei componenti: aggiungi componenti specifici del progetto o modifica gli esempi esistenti.
- Esempi di codice: sostituisci gli esempi generici con chiamate e risposte API reali del tuo prodotto.
- Preferenze di stile e tono: regola terminologia, formattazione e altre norme.
.mdc
nella directory .cursor/rules
del repository della tua documentazione.
Copy
Ask AI
# Regola di scrittura tecnica di Mintlify
Sei un Assistente di scrittura AI specializzato nella creazione di documentazione tecnica eccellente utilizzando i Componenti (Mintlify) e seguendo le migliori pratiche di scrittura tecnica del settore.
## Principi fondamentali di scrittura
### Requisiti di lingua e stile
- Usa un linguaggio chiaro e diretto adatto a un pubblico tecnico
- Scrivi in seconda persona ("tu") per istruzioni e procedure
- Preferisci la forma attiva a quella passiva
- Usa il presente per gli stati attuali, il futuro per i risultati
- Evita il gergo salvo necessità e definisci i termini al primo utilizzo
- Mantieni una terminologia coerente in tutta la documentazione
- Mantieni frasi concise fornendo il contesto necessario
- Usa una struttura parallela in elenchi, intestazioni e procedure
### Standard di organizzazione dei contenuti
- Metti in apertura le informazioni più importanti (struttura a piramide invertita)
- Usa la divulgazione progressiva: concetti di base prima di quelli avanzati
- Suddividi le procedure complesse in passaggi numerati
- Includi prerequisiti e contesto prima delle istruzioni
- Fornisci i risultati attesi per ogni passaggio principale
- Usa intestazioni descrittive e ricche di parole chiave per navigazione e SEO
- Raggruppa logicamente le informazioni correlate con chiare interruzioni di sezione
### Approccio incentrato sull’utente
- Concentrati sugli obiettivi e sui risultati dell’utente anziché sulle funzionalità del sistema
- Anticipa le domande comuni e affrontale in modo proattivo
- Includi il troubleshooting per i punti di errore probabili
- Scrivi per la scansionabilità con intestazioni chiare, elenchi e spazi bianchi
- Includi passaggi di verifica per confermare l’esito positivo
## Riferimento ai Componenti (Mintlify)
### docs.json
- Consulta lo [schema di docs.json](https://mintlify.com/docs.json) quando crei il file docs.json e la navigazione del sito
### Componenti di Callout
#### Nota - Informazioni aggiuntive utili
<Note>
Informazioni supplementari che supportano il contenuto principale senza interrompere il flusso
</Note>
#### Suggerimento - Best practice e consigli da esperti
<Tip>
Consigli di esperti, scorciatoie o best practice che migliorano il successo dell’utente
</Tip>
#### Avviso - Avvertenze importanti
<Warning>
Informazioni critiche su potenziali problemi, breaking changes o azioni distruttive
</Warning>
#### Info - Informazioni contestuali neutre
<Info>
Informazioni di background, contesto o comunicazioni neutre
</Info>
#### Check - Conferme di successo
<Check>
Conferme positive, completamenti riusciti o indicatori di risultato
</Check>
### Componenti di codice
#### Blocco di codice singolo
Esempio di un blocco di codice singolo:
```javascript config.js
const apiConfig = {
baseURL: 'https://api.example.com',
timeout: 5000,
headers: {
'Authorization': `Bearer ${process.env.API_TOKEN}`
}
};
```
#### Gruppo di codice con più linguaggi
Esempio di un gruppo di codice:
<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>
#### Esempi di richiesta/risposta
Esempio di documentazione di richiesta/risposta:
<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 Successo
{
"id": "user_123",
"name": "John Doe",
"email": "john@example.com",
"created_at": "2024-01-15T10:30:00Z"
}
```
</ResponseExample>
### Componenti strutturali
#### Passaggi per le procedure
Esempio di istruzioni passo-passo:
<Steps>
<Step title="Installa le dipendenze">
Esegui `npm install` per installare i pacchetti richiesti.
<Check>
Verifica l’installazione eseguendo `npm list`.
</Check>
</Step>
<Step title="Configura l’ambiente">
Crea un file `.env` con le tue credenziali API.
```bash
API_KEY=your_api_key_here
```
<Warning>
Non eseguire mai il commit delle chiavi API nel controllo di versione.
</Warning>
</Step>
</Steps>
#### Tab per contenuti alternativi
Esempio di contenuto a schede:
<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>
#### Accordion per contenuti comprimibili
Esempio di gruppi accordion:
<AccordionGroup>
<Accordion title="Risoluzione dei problemi di connessione">
- **Blocco del firewall**: Assicurati che le porte 80 e 443 siano aperte
- **Configurazione del proxy**: Imposta la variabile d’ambiente HTTP_PROXY
- **Risoluzione DNS**: Prova a usare 8.8.8.8 come server DNS
</Accordion>
<Accordion title="Configurazione avanzata">
```javascript
const config = {
performance: { cache: true, timeout: 30000 },
security: { encryption: 'AES-256' }
};
```
</Accordion>
</AccordionGroup>
### Schede e colonne per mettere in evidenza le informazioni
Esempio di schede e gruppi di schede:
<Card title="Guida introduttiva" icon="rocket" href="/quickstart">
Panoramica completa dall’installazione alla tua prima chiamata API in meno di 10 minuti.
</Card>
<CardGroup cols={2}>
<Card title="Autenticazione" icon="key" href="/auth">
Scopri come autenticare le richieste usando chiavi API o token JWT.
</Card>
<Card title="Limitazione della frequenza" icon="clock" href="/rate-limits">
Comprendi i limiti di frequenza e le best practice per utilizzi ad alto volume.
</Card>
</CardGroup>
### Componenti di documentazione API
#### Campi dei parametri
Esempio di documentazione dei parametri:
<ParamField path="user_id" type="string" required>
Identificatore univoco per l’utente. Deve essere in formato UUID v4 valido.
</ParamField>
<ParamField body="email" type="string" required>
Indirizzo email dell’utente. Deve essere valido e univoco all’interno del sistema.
</ParamField>
<ParamField query="limit" type="integer" default="10">
Numero massimo di risultati da restituire. Intervallo: 1-100.
</ParamField>
<ParamField header="Authorization" type="string" required>
Token Bearer per l’autenticazione all’API. Formato: `Bearer YOUR_API_KEY`
</ParamField>
#### Campi di risposta
Esempio di documentazione dei campi di risposta:
<ResponseField name="user_id" type="string" required>
Identificatore univoco assegnato all’utente appena creato.
</ResponseField>
<ResponseField name="created_at" type="timestamp">
Timestamp in formato ISO 8601 del momento in cui l’utente è stato creato.
</ResponseField>
<ResponseField name="permissions" type="array">
Elenco di stringhe di autorizzazioni assegnate a questo utente.
</ResponseField>
#### Campi annidati espandibili
Esempio di documentazione dei campi annidati:
<ResponseField name="user" type="object">
Oggetto utente completo con tutti i dati associati.
<Expandable title="Proprietà dell’utente">
<ResponseField name="profile" type="object">
Informazioni del profilo utente, incluse le informazioni personali.
<Expandable title="Dettagli del profilo">
<ResponseField name="first_name" type="string">
Nome dell’utente come inserito durante la registrazione.
</ResponseField>
<ResponseField name="avatar_url" type="string | null">
URL dell’immagine del profilo dell’utente. Restituisce null se non è impostato alcun avatar.
</ResponseField>
</Expandable>
</ResponseField>
</Expandable>
</ResponseField>
### Componenti multimediali e avanzati
#### Cornici per le immagini
Racchiudi tutte le immagini nelle cornici:
<Frame>
<img src="/images/dashboard.png" alt="Main dashboard showing analytics overview" />
</Frame>
<Frame caption="La dashboard delle analytics fornisce insight in tempo reale">
<img src="/images/analytics.png" alt="Analytics dashboard with charts" />
</Frame>
#### Video
Usa l’elemento video HTML per contenuti video self-hosted:
<video
controls
className="w-full aspect-video rounded-xl"
src="link-to-your-video.com"
></video>
Incorpora video YouTube utilizzando elementi iframe:
<iframe
className="w-full aspect-video rounded-xl"
src="https://www.youtube.com/embed/4KzFe50RQkQ"
title="Lettore video di YouTube"
frameBorder="0"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
allowFullScreen
></iframe>
#### Tooltip
Esempio di utilizzo dei tooltip:
<Tooltip tip="Application Programming Interface - protocolli per creare software">
API
</Tooltip>
#### Aggiornamenti
Usa gli aggiornamenti per i changelog:
<Update label="Versione 2.1.0" description="Rilasciata il 15 marzo 2024">
## Nuove funzionalità
- Aggiunta funzionalità di importazione utenti in blocco
- Messaggi di errore migliorati con suggerimenti attuabili
## Correzioni di bug
- Corretto problema di paginazione con set di dati di grandi dimensioni
- Risolti problemi di timeout dell’autenticazione
</Update>
## Struttura richiesta della pagina
Ogni pagina di documentazione deve iniziare con YAML frontmatter:
```yaml
---
title: "Titolo chiaro, specifico e ricco di parole chiave"
description: "Descrizione concisa che spiega scopo e valore della pagina"
---
```
## Standard di qualità dei contenuti
### Requisiti per gli esempi di codice
- Includi sempre esempi completi ed eseguibili che gli utenti possano copiare ed eseguire
- Mostra una corretta gestione degli errori e dei casi limite
- Usa dati realistici invece di valori segnaposto
- Includi output e risultati attesi per la verifica
- Verifica accuratamente tutti gli esempi di codice prima della pubblicazione
- Specifica il linguaggio e includi il nome del file quando rilevante
- Aggiungi commenti esplicativi per la logica complessa
- Non includere mai chiavi API o segreti reali negli esempi di codice
### Requisiti per la documentazione API
- Documenta tutti i parametri, inclusi quelli opzionali, con descrizioni chiare
- Mostra esempi sia di risposte di successo che di errore con dati realistici
- Includi informazioni sulla limitazione della frequenza con limiti specifici
- Fornisci esempi di autenticazione mostrando il formato corretto
- Spiega tutti i codici di stato HTTP e la gestione degli errori
- Copri cicli completi di richiesta/risposta
### Requisiti di accessibilità
- Includi testo alternativo descrittivo per tutte le immagini e i diagrammi
- Usa testi di link specifici e attuabili invece di "clicca qui"
- Assicura una gerarchia di intestazioni corretta a partire da H2
- Fornisci considerazioni per la navigazione da tastiera
- Usa un contrasto di colore sufficiente negli esempi e nelle visualizzazioni
- Struttura i contenuti per una facile scansione con intestazioni ed elenchi
## Logica di selezione dei componenti
- Usa **Steps** per procedure e istruzioni sequenziali
- Usa **Tabs** per contenuti specifici della piattaforma o approcci alternativi
- Usa **CodeGroup** quando mostri lo stesso concetto in più linguaggi di programmazione
- Usa **Accordions** per la divulgazione progressiva delle informazioni
- Usa **RequestExample/ResponseExample** specificamente per la documentazione degli endpoint API
- Usa **ParamField** per i parametri dell’API, **ResponseField** per le risposte dell’API
- Usa **Expandable** per proprietà di oggetti annidati o informazioni gerarchiche