[docs] Website build fails on Windows: version-replace plugin doesn't substitute placeholders
- Dominant language
- Java
- Stars
- 2.1k
- Forks
- 625
- Avg merge
- 3d 14h
- Merged PRs (30d)
- 97
Description
### Search before asking
- [x] I searched in the issues and found nothing similar.
### Description
On Windows, building the documentation website (`npm run build` in `website/`) fails the broken-links check. The `remark-version-replace` plugin does not substitute the `$FLUSS_VERSION$` / `$FLUSS_MAVEN_REPO_URL$` placeholders, so the Maven-JAR links in `iceberg.md`, `lance.md` and `paimon.md` resolve to a literal `$FLUSS_MAVEN_REPO_URL$/...` and Docusaurus reports ~24 broken links (`onBrokenLinks: 'throw'`), failing the build.
**Root cause:** `getDocsVersionName()` in `website/src/plugins/remark-version-replace/index.js` splits the file path on `'/'` only:
```js
const parts = pathname.split('/');
const websiteIndex = parts.lastIndexOf('website');
```
On Windows `vfile.path` uses backslash separators (e.g. `C:\...\website\docs\engine-flink\reads.md`), so `split('/')` yields a single-element array, `lastIndexOf('website')` returns `-1`, the function returns `''`, and no replacements are applied.
### Steps to reproduce
On Windows, in `website/`:
```
npm run clear && npm run build
```
→ build fails with ~24 broken links pointing to `$FLUSS_MAVEN_REPO_URL$/...`.
### Willingness to contribute
- [x] I'm willing to submit a PR!
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with website/src/plugins/remark-version-replace/index.js and inspect getDocsVersionName(), then reproduce the issue from website/ with npm run clear && npm run build on Windows. Verify that placeholders in iceberg.md, lance.md, and paimon.md are replaced and the broken-links check completes without the reported failures.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- build-system, documentation
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 84/100