Add support for consumer side customization of the actual astro config
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 42/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- À l'abandon
- Stack technique
- typescript
- Domaine
- build-system, cli, documentation
Piste de recherche
Commencez par cli/setFsRootDir.ts:17-19 et cli/cli.ts:138-141, puis suivez la manière dont les commandes CLI start, build, preview et les autres invoquent l’API programmatique. Définissez comment une configuration optionnelle du consumer est fusionnée avec la configuration de base, notamment la priorité et la prise en charge des types ; le travail est considéré comme terminé lorsque les valeurs par défaut existantes restent inchangées et que toutes les commandes listées prennent en charge la personnalisation sans manipulation de chaînes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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/
- Langage dominant
- TypeScript
- Étoiles
- 3
- Forks
- 11
- Merge moyen
- 3 j 22 h
- PR mergées (30 j)
- 1
Préparer son environnement
- Aucun Dockerfile ni fichier Docker Compose
- Aucun modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de patternfly/patternfly-doc-core
-
api
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
-
Update patternfly packages to pull in the component schemas from doc corePeut-être à nouveau libre @dlabaj l’a pris il y a 60 jours, et aucune pull request n’est ouverte. Ouverte
patternfly/patternfly-doc-core#236 · 1 commentaire · 1 réaction · 1 personne assignée ·
-
Bug: Version of api is not being updated.Peut-être à nouveau libre @dlabaj l’a pris il y a 108 jours, et aucune pull request n’est ouverte. Ouvertebug PF Team
patternfly/patternfly-doc-core#233 · 1 personne assignée ·
-
PF Team
Difficulté 3/5 1-2 jours Accessibilité débutants 48/100
-
PF Team
Difficulté 3/5 1-2 jours Accessibilité débutants 45/100
Toutes les issues de patternfly/patternfly-doc-core
Issues similaires
-
VS Code extension: clickable file links in chat drop the :line suffix, never jump to the lineOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100
MoonshotAI/kimi-code#4398 ·
Les mainteneurs répondent en général sous 1 jour
-
Xiaomi Mimo语音识别服务异常Ouvertepending triage
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
package-lock.json : les binaires natifs macOS et Linux de unrs-resolver ont disparu depuis #1823Ouvertebug dependencies
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
AxaFrance/design-system#2064 ·
Les mainteneurs répondent en général sous 3 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 85/100