Docusaurusで「index.md」的な挙動をさせるのに手こずった話

1 min read読了の目安(約800字

index.mdを作るとindexフォルダが作られてしまう

Docusaurusは、Markdownファイルの名前に対応したHTMLをビルドします。

例えば /docs/test/index.mdを作成すると、 /docs/test/index がURLになります。

/docs/test/でアクセスしたいところですが、これは404になります。

なんでこうなるかというと、index.mdという名前に対して test/index/index.htmlが生成されてしまうからです。

test/index.mdtest/index.htmlに変換するなら、ビルドの挙動を分岐せねばならず、めんどくさいんでしょうなあ。

対処法

---
slug: /test/
---

これで/docs/test/または/docs/testでアクセスできるようになります。

ただ、サブディレクトリの設定がいちいち面倒なのが難点。

ちなみに、docusaurus.config.js@docusaurus/preset-classicのオプションのrouteBasePathを変更することで、docsの部分を変える事ができます。

私はrouteBasePath:'/'にして、トップページ用にslug: /のMDを作ることで、docs/をURLから消しています。