Closed24

開発ドキュメント作成

kzk4043kzk4043

フロント用、プロジェクト毎の開発ドキュメントを何で作るか検討
今考えてるのはこのあたり

  • docsify
  • docsaurus

条件としては、

  • マークダウンでdocs追加
    • codeブロックがある
    • マーメイド入れたいから入れやすいの
    • 検索機能
  • githubのorg内に公開を閉じられる
    • github pages使えば良いはずなので、ここは大きな問題にならないか
kzk4043kzk4043

https://stackshare.io/stackups/docsify-vs-docusaurus

Customization: Docusaurus provides a theme-based approach to customization. It offers a variety of themes that can be further customized using CSS and React components. Docsify, on the other hand, provides fewer customization options compared to Docusaurus. It has a minimalistic design and offers limited customization features.

Docsifyはシンプル、Docsaurusは結構ちゃんと作れる感じなのかな?
検索はDocsaurusが強そう

In summary, Docsify excels in simplicity and ease of setup, while Docusaurus provides more features, better search functionality, and a structured navigational structure.

すぐにサクッとならDocsify、わりとちゃんとつくるならDocsaurusって感じか?
正直そんな作り込む必要はないのだが、ちょっとDocsaurus気になってきた。
Github pagesに公開さえできればDocsaurusにしよう

kzk4043kzk4043

あとは、地味に開発用のリポジトリと分けるのか問題。

  • 分けるメリット
    • github pagesの枠を独立して使える(開発の方使うことはほぼ無いだろうが気持ち的に)
    • 無いとは思うけどdocsの影響で開発の方が何か起きるとかがない
    • 開発用のブランチ戦略の影響を受けない
  • 一緒にするメリット
    • リポジトリが分散しない
    • 開発のバージョンと揃えられる(ゆーてもgithub pagesで公開できるのは最新だけだが)
kzk4043kzk4043

まあそんな時間かけて考えるほどの差はないな。
飛行機、スポーツ案件では一緒にしたので、次は分けてみるか。

kzk4043kzk4043

分けたら視点がばらついてめんどいかなくらい。
分けたほうがマージが雑にできていいかも

kzk4043kzk4043

Docsaurus

  • マークダウンでdocs追加→Powered by MDXってあるから大丈夫
    • codeブロックがある→大丈夫
    • マーメイド入れたいから入れやすいの→いけそう
    • 検索機能→これは強そう
  • githubのorg内に公開を閉じられる

余裕やな

kzk4043kzk4043

tutorial

npm init docusaurus@latest my-website classic
cd my-website
npm run start

Add Markdown or React files to src/pages to create a standalone page:

reactのページもmdのページも作れる。便利。

Documents are groups of pages connected through:
a sidebar
previous/next navigation
versioning

docs配下でも作れる。src/pagesとの違いがいまいちわからん。

  • URLはdocs/xxxになる。
  • docs配下のものはサイドバーが自動で作られる(sidebars.jsでカスタムすることも可能)
    • これどういう順番になってる…?あーsidebar_position: 3でいじってるのか。入力しない場合は指定されたものより後ろで、アルファベット順かな?
kzk4043kzk4043

pages/docs/blogの3つがある…ちょっとよくわからんな。
開発ドキュメントでいうと、blogはいらない。
pages/docsの使い分けはどうする?

kzk4043kzk4043

画像
/static/img内に入れて、![Docusaurus logo](/img/docusaurus.png)
いや、相対の方がわかりやすいか![Docusaurus logo](./img/docusaurus.png)

kzk4043kzk4043

Docsaurus構築

features

  • Built with 💚 and React
  • Pluggable:
  • ✂️ Developer experience:
  • 🎯 SEO friendly:
  • 📝 Powered by MDX:
  • 🔍 Search: Your full site is searchable.
  • 💾 Document Versioning: Helps you keep documentation in sync with project releases.
  • 🌍 Internationalization (i18n): Translate your site in multiple locales.
  • ⚡️ Lightning-fast. Docusaurus v2+ follows the PRPL Pattern that makes sure your content loads blazing fast.
  • 🦖 Accessible.
kzk4043kzk4043
  • /blog/ - Contains the blog Markdown files. You can delete the directory if you've disabled the blog plugin, or you can change its name after setting the path option. More details can be found in the blog guide
  • /docs/ - Contains the Markdown files for the docs. Customize the order of the docs sidebar in sidebars.js. You can delete the directory if you've disabled the docs plugin, or you can change its name after setting the path option. More details can be found in the docs guide
  • /src/ - Non-documentation files like pages or custom React components. You don't have to strictly put your non-documentation files here, but putting them under a centralized directory makes it easier to specify in case you need to do some sort of linting/processing
  • /src/pages - Any JSX/TSX/MDX file within this directory will be converted into a website page. More details can be found in the pages guide
  • /static/ - Static directory. Any contents inside here will be copied into the root of the final build directory
  • /docusaurus.config.js - A config file containing the site configuration. This is the equivalent of siteConfig.js in Docusaurus v1
  • /package.json - A Docusaurus website is a React app. You can install and use any npm packages you like in them
  • /sidebars.js - Used by the documentation to specify the order of documents in the sidebar
kzk4043kzk4043

お、docs内ではフォルダ名がURLになるが、フォルダ名を01_xxみたいにしても数字部分は無視される。エディタ内で整列しつつ、そこが修正されてもURLが変わらない。よき

kzk4043kzk4043

github pagesにデプロイ

configファイルに下記設定

  • organizationName The GitHub user or organization that owns the deployment repository.
  • projectName The name of the deployment repository.
  • deploymentBranch The name of the deployment branch. It defaults to 'gh-pages' for non-organization GitHub Pages repos (projectName not ending in .github.io). Otherwise, it needs to be explicit as a config field or environment variable.

うわ、CIの設定いるやん。めんど。docsifyでよかったな…余計なことした。早くつくるなら断然docsifyですかね…

kzk4043kzk4043

docsify

docsify init ./docs
docsify serve ./docs
kzk4043kzk4043

あれ、mermaid動いてないやば。
https://docsify.js.org/#/markdown?id=supports-mermaid

これにしてみる
https://github.com/Leward/mermaid-docsify

READMEに書いてある設定とプラスで下記やったらできた。

      var num = 0; // 追加
      mermaid.initialize({ startOnLoad: false }); // 追加

     window.$docsify = { その他の設定

うわ、でもthemeとなんかバッティングしてる?Themeが崩れた。
これでなんとかした
https://stackoverflow.com/questions/76530311/mermaid-in-docsify-return-object-promise

kzk4043kzk4043

まとめ

  • docsaurusは結構本格的にドキュメントつくる用
    • オープンソースのDocsとか外部公開用はこれで作り込むのがいいかも
    • 多機能
  • 内部で見れればいいし、すぐに立ち上げたい、なら、docsifyの方がよさそう
    • 検索もmermaidもすぐ入れられるし、社内開発ドキュメントなら必要十分
このスクラップは2024/01/24にクローズされました