パルカワ2

最近はFlutterをやっています

Docusaurusを動かしてみた

docusaurus.io

動機

チームのストック型のレビューが必要なドキュメント(手順書, 仕様書など)をGitHubで管理をするならどういうのがあるのか気になったので、OSSでよく使われてそうなDocusaurusを試してみた。名前かわいい

下調べ

Docusaurusの強みは、MDXが使えたりAlgoliaの検索が使えたり翻訳やバージョニングに対応してたりするのが強み。ただチームのストック型のドキュメントで考えると翻訳やバージョニングは不要かなと思う。OSSだと便利そう。

特にAlgoliaの検索が気になっていて、Docusaurusで作られているJestの日本語ドキュメントで試したところ良さそうだった。ただちょっと補完したときにEnterを押すとドキュメント選択したことになってしまうのでバグってそうだけどいざとなったらOSSなので自分で頑張れる。

ただAlgoliaのDocSearchがオープンなドキュメントを対象としているので、IPでアクセスを制限しているプライベートなドキュメントはOSSになっているdocsearch-scraperを使って自分でindexしてあげる必要がある。しかしログインが必要なプライベートページには対応していないっぽい。例えばGitHub PagesでprivateにしているとGitHubのログインが必要になるはずなのでダメそう。

しかもクローラーOSS自体も2週間ほど前に新しいDocSearchがリリースされたことで非推奨になってしまった。まだ使えるとはいえ新しいDocSearchの仕様が変わったりしたら困るし、自前で頑張ればいいけどまあ…めんどくさいよね…

Migrating from legacy | DocSearch by Algolia

動かした

まあ、一応やってみるかということでやってみた。

以下を実行してprivate repoにpushしてNetlifyにデプロイした。すぐできる。Deploy to Netlifyもあったけどエラーになった。あとNetlifyは認証を使うにはお金がかかるらしいので試していない。

npx @docusaurus/init@latest init website classic

肝心のAlgoliaは、Netlifyと連携していてAlgolia Crawlerがまだ使えない人でもAlgolia Crawlerを使える。しかもpushするたびクロールしてくれる。

Quickstart for Using Algolia on Netlify

ただsitemap.xmlに記載されているURLが、/docs/tutorial-extras/manage-docs-versions/docs/tutorial-extras/manage-docs-versions/ にリダイレクトされてIgnoreされる。

しかし、sitemapに記載されている /docs/tutorial-extras/manage-docs-versions を優先するのでリダイレクトされたあとのURLもignoreされるという悲しいことが起きてしまう。

f:id:hisaichi5518:20220215184234p:plain
ドキュメントの大半がIgnoreされている

これをどうにかしたかったけどsitemap生成するプラグインも設定がないようなので諦めた。

所感

結構期待して調べてたけど、まあサクッとはいかんなという感じだった。OSSには良さそう。