Allow codeblocks to show only part of the content
Have you read the Contributing Guidelines on issues?
- [X] I have read the Contributing Guidelines on issues.
Motivation
Often when writing code blocks you may be writing only a part of the code, for example a method in a class, even a one-liner.
In PHP this may look like the following:
public function doSomething(
string $someValue,
): void {
// ...
}
This works great for the most part, but it also isn't valid PHP on it's own.
It would be great if it were possible to add some metadata/comment so that you could provide the bare minimum to make the code valid, but only show the same code still.
For example:
```php
// docusaurus:stopDisplay
class Example {
// docusaurus:startDisplay
public function doSomething(
string $someValue,
): void {
// ...
}
// docusaurus:stopDisplay
}
\```
The benefit I'm after with doing this is the ability to somehow extract the full code blocks, and then to lint the code and check for any errors.
Self-service
- [X] I'd be willing to do some initial work on this proposal myself.
I'm happy to have a go at this if given guidance on how you'd want it to look. I imagine something along the same lines as the line highlighting support.
I'll also suggest that whatever comment is chosen should really be prefixed with something like docusaurus:.
I don't understand sorry, please use JS instead of PHP because it's been a while I haven't touched it. Can you draw a mockup of the expected result output? Is there any other doc solution that has that feature we could look at?
What prevents you from building this by swizzling our theme CodeBlock? Or creating a POC in a PR?
This way we can understand the UX you want, before even considering adding it to Docusaurus core.
If things can be built in userland, I'd prefer it to be, unless the community clearly show traction for this feature (which remains to be proven once it becomes clearer). If things are not easy to build in userland, we can work to make them easier to build.
I'm not sure, but would magic comments paired with display: none solve this?
This also seems highly related to https://github.com/facebook/docusaurus/issues/2215