facebook / facebook/docusaurus

TOC should render statically analyzable embedded expressions in headings (esp. imported partials)

Open
#9,772 2 comments 1 reaction 0 assignees View on GitHub
difficulty: advanced domain: markdown feature
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).

### Prerequisites

- [X] I'm using the latest version of Docusaurus.
- [X] I have tried the `npm run clear` or `yarn clear` command.
- [X] I have tried `rm -rf node_modules yarn.lock package-lock.json` and re-installing packages.
- [X] I have tried creating a repro with https://new.docusaurus.io.
- [X] I have read the console error message carefully (if applicable).

### Description

If a prop is passed to a partial Markdown file, then the ToC displays `{props.propname}`, instead of the actual value.

As @slorber pointed out in https://github.com/facebook/docusaurus/pull/9684, this is a known limitaion that stems from that even in non-partial files headings don't support expressions.
While having expressions in non-partial headings is a feature, that would be nice for completeness, it's probably not too practical. On the other hand, having expressions in headings of partials can be very useful.

### Reproducible demo

_No response_

### Steps to reproduce

1. Create a partial file that uses a prop in a heading
2. Import that file
3. Use the partial

### Expected behavior

The ToC shows the value passed to the partial

### Actual behavior

The ToC shows `{props.propname}`

### Your environment

_No response_

### Self-service

- [X] I'd be willing to fix this bug 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.