Astro Docs
Questo generatore crea uno scheletro per un sito di documentazione basato su Astro
e il tema di documentazione Starlight. Configura
la localizzazione, frammenti di contenuto riutilizzabili, link interni sensibili alla lingua e un
plugin starlight-blog per impostazione predefinita.
Per impostazione predefinita, crea anche una pipeline di traduzione automatizzata basata su uno Strands Agent su Amazon Bedrock.
Utilizzo
Sezione intitolata “Utilizzo”Generare un sito di documentazione Astro
Sezione intitolata “Generare un sito di documentazione Astro”Puoi generare un nuovo sito di documentazione Astro in due modi:
pnpm nx g @aws/nx-plugin:ts#docsyarn nx g @aws/nx-plugin:ts#docsnpx nx g @aws/nx-plugin:ts#docsbunx nx g @aws/nx-plugin:ts#docsPuoi anche eseguire una prova per vedere quali file verrebbero modificati
pnpm nx g @aws/nx-plugin:ts#docs --dry-runyarn nx g @aws/nx-plugin:ts#docs --dry-runnpx nx g @aws/nx-plugin:ts#docs --dry-runbunx nx g @aws/nx-plugin:ts#docs --dry-run- Installa il Nx Console VSCode Plugin se non l'hai già fatto
- Apri la console Nx in VSCode
- Clicca su
Generate (UI)nella sezione "Common Nx Commands" - Cerca
@aws/nx-plugin - ts#docs - Compila i parametri richiesti
- Clicca su
Generate
Opzioni
Sezione intitolata “Opzioni”| Parametro | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| name Obbligatorio | string | docs | Il nome del progetto di documentazione. |
| directory | string | . | La directory principale in cui viene posizionato il progetto di documentazione. |
| subDirectory | string | - | La sottodirectory in cui viene posizionato il progetto di documentazione. Per impostazione predefinita, il nome del progetto in formato kebab-case. |
| framework | astro | astro | Il framework di documentazione da utilizzare. |
| noTranslation | boolean | Rinuncia alla pipeline di traduzione automatica della documentazione (Strands Agent su Amazon Bedrock + un target di progetto `translate`). | |
| noBlog | boolean | Rinuncia al plugin `starlight-blog` e al post di blog di esempio. | |
| preferInstallDependencies | boolean | true | Se preferire l'installazione delle dipendenze dopo l'esecuzione del generatore. Impostare su false per rimandare l'installazione quando si eseguono più generatori in batch (l'installazione viene comunque eseguita se necessaria affinché i generatori successivi possano calcolare il grafo dei progetti Nx); installare una volta alla fine. |
Output del generatore
Sezione intitolata “Output del generatore”Per impostazione predefinita, il generatore crea la seguente struttura di progetto in docs/ nella
radice del workspace (configurabile tramite le opzioni name, directory e subDirectory):
- astro.config.mjs Astro + Starlight configuration (locales, sidebar, blog plugin)
- tsconfig.json Extends astro/tsconfigs/strict with @components / @assets path aliases
- project.json Nx project with
build,start,preview(andtranslateif enabled) targets Directoryscripts
- translate.ts Translation driver — a Strands agent with a scoped file-editor tool (omitted with
--noTranslation) - translate.config.json Source/target locales, glob patterns, model id, region (omitted with
--noTranslation)
- translate.ts Translation driver — a Strands agent with a scoped file-editor tool (omitted with
Directorysrc
Directorycomponents
- link.astro Locale-aware link component (resolves paths against the current locale)
- snippet.astro Locale-aware snippet loader component
Directorycontent
Directorydocs
Directoryen
- index.mdx Landing page
Directoryguides
- getting-started.mdx Sample guide referencing the link and snippet components
Directoryblog
- welcome.mdx Sample blog post (omitted with
--noBlog)
- welcome.mdx Sample blog post (omitted with
Directorysnippets
- example.mdx Sample reusable snippet
Directorystyles
- custom.css Starlight theme overrides
- README.md Project README
Localizzazione
Sezione intitolata “Localizzazione”Il generatore utilizza per impostazione predefinita una singola lingua (en) e reindirizza l’URL radice ad
essa. Per aggiungere altre lingue:
- Aggiungi una voce sotto
localesinastro.config.mjs(ad esempioko: { label: '한국어' }). - Crea una directory corrispondente sotto
src/content/docs/<locale>/. - Popolala manualmente, oppure usa il target di traduzione descritto di seguito.
Traduzione
Sezione intitolata “Traduzione”A meno che tu non abbia passato --noTranslation, il generatore aggiunge un target translate a
project.json, quindi puoi eseguire:
pnpm nx translate docs -- --allpnpm nx translate docs -- --languages jp,kopnpm nx translate docs -- --dry-runyarn nx translate docs -- --allyarn nx translate docs -- --languages jp,koyarn nx translate docs -- --dry-runnpx nx translate docs -- --allnpx nx translate docs -- --languages jp,konpx nx translate docs -- --dry-runbunx nx translate docs -- --allbunx nx translate docs -- --languages jp,kobunx nx translate docs -- --dry-runQuando eseguito senza --all, lo script traduce solo i file che sono cambiati
dall’ultimo commit di traduzione sul branch corrente — il che significa che puoi
eseguirlo nuovamente in sicurezza su ogni PR di documentazione senza ritradurre l’intero sito.
Le traduzioni il cui file sorgente non esiste più vengono eliminate, quindi rinominare o rimuovere una pagina non lascia copie obsolete in ogni lingua.
Ogni traduzione viene scritta come un file completo. All’agente vengono forniti il sorgente, la traduzione esistente e un diff di ciò che è cambiato, e riutilizza la formulazione esistente per le sezioni che il diff ha lasciato intatte — quindi solo il testo che il diff ha toccato viene ritradotto, e i blocchi di codice vengono copiati dal sorgente così come sono.
Configurare la traduzione
Sezione intitolata “Configurare la traduzione”Modifica scripts/translate.config.json per cambiare:
| Campo | Scopo |
|---|---|
sourceLanguage | Lingua da cui tradurre (predefinita en). |
targetLanguages | Lingue verso cui tradurre. Vuoto per impostazione predefinita. Ad esempio ["fr", "de", "es", "ja", "ko"]. |
docsDir | Percorso della directory del contenuto della documentazione, relativo alla radice del progetto. |
include | Pattern glob (relativi a <docsDir>/<sourceLanguage>) per i file da tradurre. |
exclude | Pattern glob da saltare. |
modelId | Modello Bedrock da utilizzare per le traduzioni. |
awsRegion | Regione AWS con cui è configurato il client Bedrock. Può anche essere impostata tramite AWS_REGION. |
concurrency | Numero massimo di invocazioni simultanee dell’agente. |
translationCommitMessage | Marcatore del messaggio di commit per i commit di traduzione (predefinito docs: update translations). |
Link interni sensibili alla lingua
Sezione intitolata “Link interni sensibili alla lingua”Il generatore include un componente Link che risolve automaticamente i percorsi
interni della documentazione rispetto alla lingua corrente, quindi un’unica fonte di verità produce
l’URL corretto in ogni lingua:
import Link from '@components/link.astro';
<Link path="guides/getting-started">Read the getting-started guide</Link>Snippet
Sezione intitolata “Snippet”I frammenti di contenuto riutilizzabili si trovano in src/content/docs/<locale>/snippets/. Il
componente Snippet generato carica lo snippet che corrisponde alla lingua
corrente:
import Snippet from '@components/snippet.astro';
<Snippet name="example" />Configurare la CI
Sezione intitolata “Configurare la CI”Nessun workflow CI viene generato di default — aggiungine uno che:
-
Configuri le credenziali AWS con il permesso di invocare
InvokeModeldi Bedrock sul modello configurato. -
Esegua il target
translatesulle pull request che toccano la documentazione nella lingua sorgente:Terminal window pnpm nx translate docsTerminal window yarn nx translate docsTerminal window npx nx translate docsTerminal window bunx nx translate docs -
Effettui il commit delle traduzioni risultanti nel branch della PR. Il messaggio di commit deve corrispondere al valore
translationCommitMessageinscripts/translate.config.json(predefinitodocs: update translations) in modo che le successive esecuzioni incrementali possano rilevare il commit di base e ritradurre solo i file che sono cambiati da allora.