Astro Docs
이 생성기는 Astro와 Starlight 문서 테마로 구동되는 문서 사이트를 스캐폴딩합니다. 기본적으로 로컬라이제이션, 재사용 가능한 콘텐츠 스니펫, 로케일 인식 내부 링크 및 starlight-blog 플러그인을 연결합니다.
기본적으로 Amazon Bedrock의 Strands Agent로 구동되는 자동화된 번역 파이프라인도 스캐폴딩합니다.
사용법
섹션 제목: “사용법”Astro 문서 사이트 생성
섹션 제목: “Astro 문서 사이트 생성”두 가지 방법으로 새로운 Astro 문서 사이트를 생성할 수 있습니다:
- 설치 Nx Console VSCode Plugin 아직 설치하지 않았다면
- VSCode에서 Nx 콘솔 열기
- 클릭
Generate (UI)"Common Nx Commands" 섹션에서 - 검색
@aws/nx-plugin - ts#astro-docs - 필수 매개변수 입력
- 클릭
Generate
pnpm nx g @aws/nx-plugin:ts#astro-docsyarn nx g @aws/nx-plugin:ts#astro-docsnpx nx g @aws/nx-plugin:ts#astro-docsbunx nx g @aws/nx-plugin:ts#astro-docs어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
pnpm nx g @aws/nx-plugin:ts#astro-docs --dry-runyarn nx g @aws/nx-plugin:ts#astro-docs --dry-runnpx nx g @aws/nx-plugin:ts#astro-docs --dry-runbunx nx g @aws/nx-plugin:ts#astro-docs --dry-run| 매개변수 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| name 필수 | string | docs | 문서 프로젝트의 이름입니다. |
| directory | string | . | 문서 프로젝트가 배치될 상위 디렉토리입니다. |
| subDirectory | string | - | 문서 프로젝트가 배치될 하위 디렉토리입니다. 기본값은 케밥 케이스 프로젝트 이름입니다. |
| noTranslation | boolean | 자동화된 문서 번역 파이프라인(Amazon Bedrock의 Strands Agent + `translate` 프로젝트 타겟)을 사용하지 않습니다. | |
| noBlog | boolean | `starlight-blog` 플러그인과 샘플 블로그 게시물을 사용하지 않습니다. | |
| skipInstall | boolean | 생성기 실행 후 의존성 설치를 건너뜁니다. |
생성기 출력
섹션 제목: “생성기 출력”기본적으로 생성기는 워크스페이스 루트의 docs/에 다음 프로젝트 구조를 생성합니다 (name, directory 및 subDirectory 옵션을 통해 구성 가능):
- astro.config.mjs Astro + Starlight 구성 (로케일, 사이드바, 블로그 플러그인)
- tsconfig.json @components / @assets 경로 별칭과 함께 astro/tsconfigs/strict를 확장
- project.json
build,start,preview(및 활성화된 경우translate) 타겟이 있는 Nx 프로젝트 디렉터리scripts
- translate.ts 번역 드라이버 — 범위가 지정된 파일 편집기 도구가 있는 Strands 에이전트 (
--noTranslation으로 생략됨) - translate.config.json 소스/타겟 로케일, glob 패턴, 모델 ID, 리전 (
--noTranslation으로 생략됨)
- translate.ts 번역 드라이버 — 범위가 지정된 파일 편집기 도구가 있는 Strands 에이전트 (
디렉터리src
디렉터리components
- link.astro 로케일 인식 링크 컴포넌트 (현재 로케일에 대해 경로를 해석)
- snippet.astro 로케일 인식 스니펫 로더 컴포넌트
디렉터리content
디렉터리docs
디렉터리en
- index.mdx 랜딩 페이지
디렉터리guides
- getting-started.mdx 링크 및 스니펫 컴포넌트를 참조하는 샘플 가이드
디렉터리blog
- welcome.mdx 샘플 블로그 게시물 (
--noBlog로 생략됨)
- welcome.mdx 샘플 블로그 게시물 (
디렉터리snippets
- example.mdx 재사용 가능한 샘플 스니펫
디렉터리styles
- custom.css Starlight 테마 오버라이드
- README.md 프로젝트 README
로컬라이제이션
섹션 제목: “로컬라이제이션”생성기는 기본적으로 단일 로케일(en)로 설정되며 루트 URL을 해당 로케일로 리디렉션합니다. 더 많은 언어를 추가하려면:
astro.config.mjs의locales아래에 항목을 추가합니다 (예:ko: { label: '한국어' }).src/content/docs/<locale>/아래에 일치하는 디렉토리를 생성합니다.- 수동으로 채우거나 아래에 설명된 번역 타겟을 사용합니다.
--noTranslation을 전달하지 않은 경우, 생성기는 project.json에 translate 타겟을 추가하므로 다음을 실행할 수 있습니다:
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-run--all 없이 실행하면 스크립트는 현재 브랜치의 마지막 번역 커밋 이후 변경된 파일만 번역합니다. 즉, 전체 사이트를 다시 번역하지 않고도 모든 문서 PR에서 안전하게 다시 실행할 수 있습니다.
번역 구성
섹션 제목: “번역 구성”scripts/translate.config.json을 편집하여 다음을 변경합니다:
| 필드 | 목적 |
|---|---|
sourceLanguage | 번역 원본 로케일 (기본값 en). |
targetLanguages | 번역 대상 로케일. 기본적으로 비어 있음. 예: ["fr", "de", "es", "ja", "ko"]. |
docsDir | 프로젝트 루트에 상대적인 문서 콘텐츠 디렉토리 경로. |
include | 번역할 파일에 대한 Glob 패턴 (<docsDir>/<sourceLanguage>에 상대적). |
exclude | 건너뛸 Glob 패턴. |
modelId | 번역에 사용할 Bedrock 모델. |
awsRegion | Bedrock 클라이언트가 구성된 AWS 리전. AWS_REGION을 통해서도 설정 가능. |
concurrency | 최대 동시 에이전트 호출 수. |
translationCommitMessage | 번역 커밋에 대한 커밋 메시지 마커 (기본값 docs: update translations). |
로케일 인식 내부 링크
섹션 제목: “로케일 인식 내부 링크”생성기는 현재 로케일에 대해 내부 문서 경로를 자동으로 해석하는 Link 컴포넌트를 제공하므로 단일 소스가 모든 언어에서 올바른 URL을 생성합니다:
import Link from '@components/link.astro';
<Link path="guides/getting-started">시작 가이드 읽기</Link>스니펫
섹션 제목: “스니펫”재사용 가능한 콘텐츠 조각은 src/content/docs/<locale>/snippets/에 있습니다. 생성된 Snippet 컴포넌트는 현재 로케일과 일치하는 스니펫을 로드합니다:
import Snippet from '@components/snippet.astro';
<Snippet name="example" />CI 연결
섹션 제목: “CI 연결”기본적으로 CI 워크플로는 생성되지 않습니다. 다음을 수행하는 워크플로를 추가하세요:
-
구성된 모델에서 Bedrock
InvokeModel을 호출할 수 있는 권한이 있는 AWS 자격 증명을 구성합니다. -
소스 언어 문서를 건드리는 풀 리퀘스트에서
translate타겟을 실행합니다:Terminal window pnpm nx translate docsTerminal window yarn nx translate docsTerminal window npx nx translate docsTerminal window bunx nx translate docs -
결과 번역을 PR 브랜치에 다시 커밋합니다. 커밋 메시지는
scripts/translate.config.json의translationCommitMessage값(기본값docs: update translations)과 일치해야 하므로 후속 증분 실행이 기준 커밋을 감지하고 그 이후 변경된 파일만 다시 번역할 수 있습니다.