docusaurus icon indicating copy to clipboard operation
docusaurus copied to clipboard

Inaccesability of index when there also a file matching the directory name

Open JJWTimmer opened this issue 2 years ago • 2 comments

Have you read the Contributing Guidelines on 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

In e.g. /docs/module/ there could be an index.md and a module.mdx file. The module.mdx is served as root of the folder, and the index is unreachable, although it appears as 'next' link at the bottom of the module/ path. Clicking it stays on the same page though.

Reproducible demo

No response

Steps to reproduce

  1. Create /doc/demo folder and in there:
  2. Create a file index.md with a title like # Hello Index
  3. Create a file demo.mdx with a title like # Hello Demo
  4. Yarn start
  5. Navigate to /docs/demo
  6. Try to view both pages

Expected behavior

I expect there is a precedence, where index.md(x) is used as index and the demo.mdx is just a doc.

Actual behavior

/docs/demo will show you the content of demo.mdx, the content of index.mdx is ignored. Although the next-link shows index, you can't view it if you click it. It stays on the same page.

Your environment

  • Public source code: https://github.com/usethesource/rascal-website
  • Public site URL: eg. https://www.rascal-mpl.org/docs/Library/resource/jdbc/
  • Docusaurus version used: 2.2.0
  • Environment name and version (e.g. Chrome 89, Node.js 16.4):
  • Operating system and version (e.g. Ubuntu 20.04.2 LTS):

Self-service

  • [ ] I'd be willing to fix this bug myself.

JJWTimmer avatar Jan 17 '23 11:01 JJWTimmer

Yes, I'm afraid we do the slug remapping too aggressively. To be clear: the issue is not about the sidebar category indexes, but slug clashing. /docs/module/index.md and /docs/module/module.md both map to the same slug /docs/module/. To get around it for the time being, add an explicit slug front matter for one of the files.

Josh-Cena avatar Jan 18 '23 16:01 Josh-Cena

There are two ways to fix this: emit a warning/error telling the user to add an explicit front matter to one of the files, or have a priority of index > README > <category name>.

Josh-Cena avatar Jan 18 '23 16:01 Josh-Cena