Add support for consumer side customization of the actual astro config
まだ誰も着手していません。
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 42/100
- issue の種類
- 機能追加
- 明瞭さ
- おおむね明確
- 活発さ
- 停滞
- 技術スタック
- typescript
- 領域
- build-system, cli, documentation
調査の方向性
cli/setFsRootDir.ts:17-19 と cli/cli.ts:138-141 から始め、start、build、preview、その他の CLI コマンドがプログラム API をどのように呼び出しているかを追跡します。オプションの consumer config を base config とどのようにマージするかを、優先順位と型のサポートを含めて定義します。既存のデフォルト値が変更されず、一覧にあるすべてのコマンドが文字列操作なしでカスタマイズをサポートすれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Problem Summary
Consumers cannot customize the Astro configuration from their side. The framework uses a hardcoded astro.config.mjs file within the doc-core package, preventing users from:
- Adding custom Astro integrations
- Modifying Vite configuration for their specific needs
- Changing the deployment adapter (currently hardcoded to Cloudflare)
- Customizing build settings, output options, or other Astro configurations
Current limitation: While users can customize content via pf-docs.config.mjs, they cannot modify the actual Astro config without forking doc-core and requesting npm releases.
Use Cases
Consumers need to customize Astro config for:
- Deployment targets: Different hosting platforms (AWS, Netlify, Vercel) require different adapters
- Vite configuration: Custom resolve aliases, plugins, or build optimizations
- Integrations: Adding sitemap, analytics, or other Astro integrations
- Performance tuning: Customizing bundle splitting, compression, or caching strategies
- Environment-specific settings: Different configs for dev/staging/production
Current Architecture
The CLI currently modifies the Astro config via string replacement in setFsRootDir() (cli/setFsRootDir.ts:17-19), which is brittle and doesn't support general user customization.
// cli/cli.ts:138-141
await build({
root: astroRoot,
outDir: docsOutputDir,
})
The CLI invokes Astro's programmatic API with the hardcoded astroRoot config location. Consumers have no way to inject or merge their own configuration.
Completion Criteria
The issue is resolved when:
- User config file supported: Consumers can create an optional Astro config file that gets merged with the base config
- Configuration merging: User config is properly merged with doc-core's base config
- Backward compatibility: Existing setups without user config continue to work with default behavior
- Clear precedence rules: Documentation clearly explains which config values take precedence (user overrides vs. base defaults)
- Type safety: User config gets proper TypeScript support and validation
- All CLI commands supported: Config merging works for
start,build,preview, and other commands - No string manipulation: Replace the brittle string replacement approach in
setFsRootDir()with proper config merging
Technical Notes
- Astro 5.4.0+ supports
mergeConfig()for configuration merging (docs) - The CLI already uses Astro's programmatic API (
build(),dev(),preview()) inlineConfigparameter in programmatic API allows config override- File locations:
cli/cli.ts:138-141,cli/setFsRootDir.ts - Current string replacement hack:
cli/setFsRootDir.ts:17-19
Related Links
- Related issue: #95 (Add ability to pass in vite / astro configurations for doc core) - CLOSED
- Jira: PF-3604
- Astro mergeConfig API: https://docs.astro.build/en/reference/modules/astro-config/
- Astro programmatic API: https://docs.astro.build/en/reference/programmatic-reference/
- 主要言語
- TypeScript
- スター
- 3
- フォーク
- 11
- 平均マージ
- 4日 18時間
- マージ済み PR(30日)
- 2
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
patternfly/patternfly-doc-core のほかの issue
-
api
難易度 5/5 1週間以上 初心者へのやさしさ 35/100
-
Update patternfly packages to pull in the component schemas from doc core再び着手できるかも @dlabaj が 46 日前に担当しましたが、オープン中のプルリクエストはありません。 オープン
patternfly/patternfly-doc-core#236 · コメント 1 件 · リアクション 1 件 · 担当者 1 名 ·
-
Bug: Version of api is not being updated.再び着手できるかも @dlabaj が 94 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンbug PF Team
patternfly/patternfly-doc-core#233 · 担当者 1 名 ·
-
PF Team
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
-
PF Team
難易度 3/5 1〜2日 初心者へのやさしさ 45/100
patternfly/patternfly-doc-core の issue をすべて見る
似ている issue
-
area/frontend area/v2 kind/bug priority/needs-triage
難易度 2/5 1〜3時間 初心者へのやさしさ 70/100
kubeflow/notebooks#1498 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
P1
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
SuruchBoss/Cwork#90 ·
-
bug cli service
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
521xueweihan/HelloGitHub#3922 ·