facebook / facebook/docusaurus

Make it possible for third party cli extensions to use `[siteDir]` and `--config`

Open
#8,903 5 comments 1 reaction 0 assignees View on GitHub
difficulty: advanced proposal
Dominant language
TypeScript
Stars
66.2k
Forks
10k
Avg merge
1d 3h
Merged PRs (30d)
52

Description

### Have you read the Contributing Guidelines on issues?

- [X] I have read the [Contributing Guidelines on issues](https://github.com/facebook/docusaurus/blob/main/CONTRIBUTING.md#issues).

### Motivation

For some use cases, it would be nice to have a possibility for a third party to extend the CLI in a way so that those two options can be passed for custom setups.

As an example, look at [this](https://github.com/PaloAltoNetworks/docusaurus-openapi-docs/issues/490) issue, where you would want to use their extendCli functionality, but can't as your config is in a subfolder or named differently.

Obviously plugins could also "just" add siteDir and --config to their extendCli, but that seems weird to me as most get that from the context they get on initialization.

Maybe it would be possible to make those two arguments part of the "main" docusaurus cli, so it can be parsed before and be passed to the plugin. Something like https://www.npmjs.com/package/commander#parsing-configuration

I'm not a plugin dev so maybe I understood something wrong here.
So would be nice to hear your opinion on that topic.

### Self-service

- [ ] I'd be willing to do some initial work on this proposal myself.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.