開発ドキュメント作成
フロント用、プロジェクト毎の開発ドキュメントを何で作るか検討
今考えてるのはこのあたり
- docsify
- docsaurus
条件としては、
- マークダウンでdocs追加
- codeブロックがある
- マーメイド入れたいから入れやすいの
- 検索機能
- githubのorg内に公開を閉じられる
- github pages使えば良いはずなので、ここは大きな問題にならないか
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にしよう
- Docsify
a. 社内実績も多いし、基本はこれの路線
b. プラグインとかも豊富そう - Docusaurus
a. Reactなのね…?(どゆこと?)
b. Search強いのか? - VuePress
a. SPAなんだ。github pagesってどういう仕組なんだろ…いけるのか? - Slate
a. APIドキュメントって書いてあるぞ?Swagger的なやつか? -
Docute
a. SPAベース
"documentation site generator"でmkdocsってのも上位にいた→なんかちょっと古い?感じがする
あとは、地味に開発用のリポジトリと分けるのか問題。
- 分けるメリット
- github pagesの枠を独立して使える(開発の方使うことはほぼ無いだろうが気持ち的に)
- 無いとは思うけどdocsの影響で開発の方が何か起きるとかがない
- 開発用のブランチ戦略の影響を受けない
- 一緒にするメリット
- リポジトリが分散しない
- 開発のバージョンと揃えられる(ゆーてもgithub pagesで公開できるのは最新だけだが)
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
でいじってるのか。入力しない場合は指定されたものより後ろで、アルファベット順かな?
- これどういう順番になってる…?あー
pages/docs/blogの3つがある…ちょっとよくわからんな。
開発ドキュメントでいうと、blogはいらない。
pages/docsの使い分けはどうする?
画像
/static/img内に入れて、![Docusaurus logo](/img/docusaurus.png)
いや、相対の方がわかりやすいか![Docusaurus logo](./img/docusaurus.png)
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.
npx create-docusaurus@latest my-website classic
- /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
お、docs内ではフォルダ名がURLになるが、フォルダ名を01_xxみたいにしても数字部分は無視される。エディタ内で整列しつつ、そこが修正されてもURLが変わらない。よき
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ですかね…
docsify
docsify init ./docs
docsify serve ./docs
theme
deploy
github でpagesの設定でブランチとフォルダを選ぶだけでいける。
む…うまくいかないので最小構成で試す→これテンプレにしたい気持ちあるな
いけてるなあ…
あ、時間が経ったらいけてた。キャッシュかなあ…
やっぱdocsify簡単すぎるな
あれ、mermaid動いてないやば。
これにしてみる
READMEに書いてある設定とプラスで下記やったらできた。
var num = 0; // 追加
mermaid.initialize({ startOnLoad: false }); // 追加
window.$docsify = { その他の設定
うわ、でもthemeとなんかバッティングしてる?Themeが崩れた。
これでなんとかした
まとめ
- docsaurusは結構本格的にドキュメントつくる用
- オープンソースのDocsとか外部公開用はこれで作り込むのがいいかも
- 多機能
- 内部で見れればいいし、すぐに立ち上げたい、なら、docsifyの方がよさそう
- 検索もmermaidもすぐ入れられるし、社内開発ドキュメントなら必要十分